Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29278 Discussions

Fortran Project Linker Requires Too Much Memory

manny_rios
Beginner
782 Views
I am trying to build a rather complex fortran/c application (for which I can't share with anybody outside the US govt).
It compiles, but when it tries to link, the linker allocates too much memory and I get the following error from the linker:
"Link: error: problem during multi-file optimization compilation (code 1)"
"Link: error: problem during multi-file optimization compilation (code 1)"
"Fatal compilation error: Out of memory error asking for 2097160"
Now, I am working with a EM64T machine with WindowsXP x64, and the latest INTEL 9.1 Fortran EM64T Compiler and Visual Studio 2005, so I know I have no reason to have a 2GB peak limit in memory (plus I do have 6BG of RAM, and 9GB min of pagefile).
Questions: WHY am I running against this memory wall?????????
Is the Operating System the issue? (WindowsXP x64)
Or is the LINKER the issue?
Which Linker is used? The INTEL Fortran 9.1 Linker? The Visual Studio 2005 C++ Linker?
Is it that I am using a 32-bit Linker or64-bit Linker; or that somehow the Compiler suite is calling the wrong linker?

Message Edited by Manny.Rios@faa.gov on 06-02-200611:26 AM

0 Kudos
7 Replies
Steven_L_Intel1
Employee
782 Views
I'd guess that it's the Intel "pre-linker" that is doing this. It shouldn't need a lot of memory unless you've used the /Qipo option ("optimize across multiple source files"), in which case you're essentially asking it to compile all the sources together. If you're using that option, try turning it off.

The Intel tools are 32-bit applications, even though they generate 64-bit code.
0 Kudos
manny_rios
Beginner
782 Views
The documentation statesand my assumption is that IPO is turned off by default.
Is that true?
I have not used the /Qipo switch.
Next?
0 Kudos
Steven_L_Intel1
Employee
782 Views
It is true. What is the total size of the .obj files in your project and how many are there?

Try this experiment:

1. Open the folder C:Program FilesIntelCompilerFortran9.1em64tin
2. Rename xilink.exe to xilink-orig.exe
3. Copy link.exe from Visual Studio 2005 into this folder and rename it xilink.exe
4. Try linking

Tell me what happens.

Message Edited by Steve_Lionel on 06-02-2006 03:19 PM

0 Kudos
manny_rios
Beginner
782 Views

I swapped the link.exe files and it worked for a 32-bit target!!!

Same code, for the x64 target, it compiles and links (with no errors reported), but at run time I get the following:

Program aborting due failure in common I/O library call.

Subroutine called: CFRWFC

File header validation error.

The system cannot find the file specified.

Any ideas?

0 Kudos
Steven_L_Intel1
Employee
782 Views
No - at this point I'm going to suggest that you send an example to Intel Premier Support. Please include as much detail as you can about the problem.
0 Kudos
jimdempseyatthecove
Honored Contributor III
782 Views
Manny,
I found this reference using Google
See FAQ 15
This seems to indicate the problem is related to how the floating point exceptions are handled.
Jim Dempsey
0 Kudos
Steven_L_Intel1
Employee
782 Views
Ah - that error is not coming from the Intel Fortran product itself.
0 Kudos
Reply