Intel® C++ Compiler for Linux* - Linker May Report Change in Symbol Size Warning Messages

When linking, warnings similar to the following are reported:

ld: Warning: size of symbol `MODULE$diagnostics_1' changed from 1080 to 456 in compile/diagnostics.o

The default linker on some older operating systems, ld 2.11, does not create an executable in the presence of these warnings. If the symbol size has been increased, you may force the creation of an executable with ld 2.11 by using the option, -Qoption,link,--noinhibit-exec, when building your application. If the symbol size has been reduced, you should either change the order of the linked objects so that the smaller symbol size comes first, or, preferably, use a more recent version of ld as below.

A more recent linker, such as ld 2.13.90.0.20, will create an executable and will choose the larger size for a given symbol, regardless of which comes first. It will generate a warning message if the symbol size is enlarged. The Linux* binutils 2.13.90.0.20 can be obtained from http://ftp.kernel.org/pub/linux/devel/binutils/.

For more complete information about compiler optimizations, see our Optimization Notice.

1 comment

Top
anonymous's picture

If I am geting change in Symbol Size Warning Messages then executable those will be created work properly or not?
Can you suggest how come I resolve this warning?
Same application work properly on other plateform (HP-RISC, SUN).Why this warning getting on Linux only?

Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.