- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am trying to compile a program that requires ~13 Gb of data in memory. We are using ifort professional v11, on a Sun workstation with 64Gb of ram. When trying to compile the program I get a series of messages similar to :
(.text+0x263b): relocation truncated to fit: R_X86_64_32S against `.bss'
Any suggestions on how to proceed?
Thanks,
Todd
(.text+0x263b): relocation truncated to fit: R_X86_64_32S against `.bss'
Any suggestions on how to proceed?
Thanks,
Todd
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you want to use default memory model, any arrays >2GB should be ALLOCATABLE. That looks like a link step failure, not a compile problem.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - tschaack
I am trying to compile a program that requires ~13 Gb of data in memory. We are using ifort professional v11, on a Sun workstation with 64Gb of ram. When trying to compile the program I get a series of messages similar to :
(.text+0x263b): relocation truncated to fit: R_X86_64_32S against `.bss'
Any suggestions on how to proceed?
Thanks,
Todd
(.text+0x263b): relocation truncated to fit: R_X86_64_32S against `.bss'
Any suggestions on how to proceed?
Thanks,
Todd
From man ifort:
-mcmodel= mem_model
Tells the compiler to use a specific memory model to gen-
erate code and store data.
Architectures: Intel 64 architecture
Default:
-mcmodel=small On systems using Intel 64 architec-
ture, the compiler restricts code and
data to the first 2GB of address space.
Instruction Pointer (IP)-relative
addressing can be used to access code
and data.
Description:
This option tells the compiler to use a specific memory
model to generate code and store data. It can affect code
size and performance. If your program has COMMON blocks
and local data with a total size smaller than 2GB,
-mcmodel=small is sufficient. COMMONs larger than 2GB
require-mcmodel=medium or -mcmodel=large. Allocation of
memory larger than 2GB can be done with any setting of
-mcmodel.
IP-relative addressing requires only 32 bits, whereas
absolute addressing requires 64-bits. IP-relative address-
ing is somewhat faster. So, the small memory model has the
least impact on performance.
NOTE: When you specify -mcmodel=medium or -mcmodel=large,
you must also specify compiler option -shared-intel to
ensure that the correct dynamic versions of the Intel
run-time libraries are used.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page