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 220.127.116.11.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 18.104.22.168.20 can be obtained from http://ftp.kernel.org/pub/linux/devel/binutils/.
For more complete information about compiler optimizations, see our Optimization Notice.