- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Help,
I cannot get my application to linkthe x64 configuration (neither release nor debug)using 11.1.046 compiler. See attached build log for details of error messages.
The 32-bit configs link OK in both release and debug modes. And the same solution used to link all configurationsOK using the previous version of the compiler 11.1.038.
Is there a new setting that may be causing this?
I cannot get my application to linkthe x64 configuration (neither release nor debug)using 11.1.046 compiler. See attached build log for details of error messages.
The 32-bit configs link OK in both release and debug modes. And the same solution used to link all configurationsOK using the previous version of the compiler 11.1.038.
Is there a new setting that may be causing this?
Link Copied
13 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I don't see any errors. It says that x64Release/general.lib has been built ok 0 errors, and 1 warning
Les
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Les Neilson
I don't see any errors. It says that x64Release/general.lib has been built ok 0 errors, and 1 warning
Les
Er yes, I've uploaded the wrong BuildLog file! That's what 'upgrading' to a new version does to you.
I hope I've got the correct file attached this time.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Do you have some .obj built with IPO in addition to those shown as built with debug in the log? If so, rebuilding those .obj without IPO may help. If there is no such simple explanation, a submission to premier.intel.com might be in order.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - tim18
Do you have some .obj built with IPO in addition to those shown as built with debug in the log? If so, rebuilding those .obj without IPO may help. If there is no such simple explanation, a submission to premier.intel.com might be in order.
Tim,
What is IPO? If it relates to parallel processing then I don't have such object files.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - tim18
Do you have some .obj built with IPO in addition to those shown as built with debug in the log? If so, rebuilding those .obj without IPO may help. If there is no such simple explanation, a submission to premier.intel.com might be in order.
IPO == Inter Procedure Optimizations, and is turned on by default at higher opt-levels than the default in the DEBUG configuration. Sometime people turn optimization on for a subset of their source files, even in the DEBUG configuration.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Lorri Menard (Intel)
IPO == Inter Procedure Optimizations, and is turned on by default at higher opt-levels than the default in the DEBUG configuration. Sometime people turn optimization on for a subset of their source files, even in the DEBUG configuration.
I have no such IPO's, I checked Optimizationproperty pages for all projects within my solution(unless some have been set automatically by the new compiler).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - dannycat
I have no such IPO's, I checked Optimizationproperty pages for all projects within my solution(unless some have been set automatically by the new compiler).
OK. Try this please, and let me know if it works. Hopefully, this will get you further.
In the Linker property pages, in the "Command Line" section, add
-qnoipo
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Lorri Menard (Intel)
OK. Try this please, and let me know if it works. Hopefully, this will get you further.
In the Linker property pages, in the "Command Line" section, add
-qnoipo
Hi Lorri,
I tried your suggestion of adding the -Qnoipo to the command and it appears to have solved the problem (at least on my 32-bit Vista OS. I still have issues when trying to build the same solution on 64-bit Vista OS (I am going to clean to whole solution later and try again but it will take about 1.5 hours to completely rebuild).
What does this tell you about the problem. Is it a bug in the compiler/linker or is it something that was wrongly set somewherebut notpicked up before in 11.1.038?
Steve (alias Dannycat)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - dannycat
Hi Lorri,
I tried your suggestion of adding the -Qnoipo to the command and it appears to have solved the problem (at least on my 32-bit Vista OS. I still have issues when trying to build the same solution on 64-bit Vista OS (I am going to clean to whole solution later and try again but it will take about 1.5 hours to completely rebuild).
What does this tell you about the problem. Is it a bug in the compiler/linker or is it something that was wrongly set somewherebut notpicked up before in 11.1.038?
Steve (alias Dannycat)
Hi Steve -
Ok, first question - what problem were you having on 32-bit systems? I thought you'd said it was building OK there? Did I misunderstand your original post?
That aside, can I confirm, please, that you added the switch to the Linker command line section? Can I also confirm that you spelled it with a lowercase "q" instead of an uppercase "Q"?
There is a final phase run to make sure there are no IPO references left around, even in a debug configuration. This disables that final run.
I'm sure this isn't a surprise, but your application is huge. It's possible that in debug configuration, where the object files are bigger {generally} than in release mode, that with 11.1.046 you've run out of memory.
- Lorri
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Lorri Menard (Intel)
Hi Steve -
Ok, first question - what problem were you having on 32-bit systems? I thought you'd said it was building OK there? Did I misunderstand your original post?
That aside, can I confirm, please, that you added the switch to the Linker command line section? Can I also confirm that you spelled it with a lowercase "q" instead of an uppercase "Q"?
There is a final phase run to make sure there are no IPO references left around, even in a debug configuration. This disables that final run.
I'm sure this isn't a surprise, but your application is huge. It's possible that in debug configuration, where the object files are bigger {generally} than in release mode, that with 11.1.046 you've run out of memory.
- Lorri
Lorri,
I'll just clarify everything so there is no confusion.
Machine A - Laptop with Vista 32-bit OS
Solution contains the following build configurations:
32-bit Release Built and linked OK without -qnoipo command
32-bit Debug Built and linked OK without -qnoipo command
64-bit Release Only builds/links OK with -qnoipo command
64-bit Debug Only builds/links OK with -qnoipo command
I also have Compaq VF Version 6.6c version (32-bit Debug and release) using the same source files.
Machine B - Desktop with Vista 64-bit OS
Solution contains the following build configurations:
32-bit Release Built and linked OK without -qnoipo command
32-bit Debug Built and linked OK without -qnoipo command
64-bit Release Only fails because it can't find bufferoverflowu.lib (should be in SDK - I'm looking into this)
64-bit Debug Only as above
Could not install CVF on 64-bit OS machine.
Later today I am going to completely rebuild the 64-bit desktop solutions. These were copied last week from my laptop and in order to pick up libraries like IMSL I've have to change settings that call up Program Files area because it is called Program Files (x86) on 64-bit OS. I will let you know what happens on this.
I always used the lower case q ie -qnoipo (not -Qnoipo)
I would be surprised if I run out of memory on my desktop when there is no problem on my laptop unless the 64-bit OS uses more to do the linker processing.
Is that "final phase" you refer to a new feature in 11.1.046?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Several nagging points have come up here.
I have customers reporting link time failures in the default search for ipo objects on 64-bit desktop links, where the objects are significantly larger than on 32-bit, and I found myself that it occurred intermittently. Debug might be expected to make it worse, if it is associated with object size. I heard that the ipo link phase was suppressed by the debug option until 11.0, but that would have incurred failure if ipo objects were present. Documented advice on how to suppress that search on both Windows and linux, for both 10.1 and 11.1 compilers, would be useful.
With certain versions of ifort, it was necessary to set /link /nodefaultlib:bufferoverflowu.lib. It seems this would be a bug if it came up again, unless it is caused by an old object from an earlier version of ifort or icl. I suppose there is no such library in current ifort, so it shouldn't be required, nor should it even be requested if the objects are up to date.
CVF can't be installed normally on 64-bit OS, as the top level autorun script is 16-bit. It is usually possible to navigate down and run the 32-bit installer in a lower folder. Of course, this is unsupported; CVF development terminated before the X64 OS was invented, and SSE support was never included. As CVF had no whole program optimization, it should not be subject to this type of link time error. It has taken a long time for ifort to approach the performance of CVF on variable stride loops.
I have customers reporting link time failures in the default search for ipo objects on 64-bit desktop links, where the objects are significantly larger than on 32-bit, and I found myself that it occurred intermittently. Debug might be expected to make it worse, if it is associated with object size. I heard that the ipo link phase was suppressed by the debug option until 11.0, but that would have incurred failure if ipo objects were present. Documented advice on how to suppress that search on both Windows and linux, for both 10.1 and 11.1 compilers, would be useful.
With certain versions of ifort, it was necessary to set /link /nodefaultlib:bufferoverflowu.lib. It seems this would be a bug if it came up again, unless it is caused by an old object from an earlier version of ifort or icl. I suppose there is no such library in current ifort, so it shouldn't be required, nor should it even be requested if the objects are up to date.
CVF can't be installed normally on 64-bit OS, as the top level autorun script is 16-bit. It is usually possible to navigate down and run the 32-bit installer in a lower folder. Of course, this is unsupported; CVF development terminated before the X64 OS was invented, and SSE support was never included. As CVF had no whole program optimization, it should not be subject to this type of link time error. It has taken a long time for ifort to approach the performance of CVF on variable stride loops.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
First, let me say, the "final phase" has been there right along. Perhaps it was disabled (by default) in Debug configuration until 11.0, I'm not sure and would have to do some archeological digging. It certainly would have been there in 11.1.038.
However, beyond what Tim has expressed, I'm puzzled by one thing in your post.
I don't understand how your application would link successfully, in Release mode, either IA32 or Intel64, with
-qnoipo.
Would you be willing to post your .vfproj file? Not your whole application (I think we've established that it's huge
:-) ) but the build script could be enlightening for me.
Thanks -
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Lorri Menard (Intel)
First, let me say, the "final phase" has been there right along. Perhaps it was disabled (by default) in Debug configuration until 11.0, I'm not sure and would have to do some archeological digging. It certainly would have been there in 11.1.038.
However, beyond what Tim has expressed, I'm puzzled by one thing in your post.
I don't understand how your application would link successfully, in Release mode, either IA32 or Intel64, with
-qnoipo.
Would you be willing to post your .vfproj file? Not your whole application (I think we've established that it's huge
:-) ) but the build script could be enlightening for me.
Thanks -
Lorri,
I've attached the top level project file. There are 36 projects in total within the solution, I can send the vfproj files forif required.
Cheers
Steve

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