Compilation with Real Object Files
In certain situations you might need to generate real object files with
-ipo. To force the compiler to produce real object
files instead of "mock" ones with IPO, you must specify -ipo_obj in addition to -ipo.
Use of -ipo_obj is necessary under the following
conditions:
- The objects produced by the compilation phase of
-ipo will be placed in a static library without
the use of xild or xild -lib.
The compiler does not support multifile IPO for static libraries, so all
static libraries are passed to the linker. Linking with a static library
that contains "mock" object files will result in linkage errors
because the objects do not contain real code or data. Specifying -ipo_obj causes the compiler to generate object files
that can be used in static libraries.
- Alternatively, if you create the static library using
xild or xild -lib, then
the resulting static library will work as a normal library.
- The objects produced by the compilation phase of
-ipo might be linked without the -ipo
option and without the use of xild.
- You want to generate an assembly listing for each
source file (using -S) while compiling with -ipo. If you use -ipo with -S, but without -ipo_obj, the
compiler issues a warning and an empty assembly file is produced for each
compiled source file.