Question:
How to disable prelinker?
Answer:
The purpose of the prelinker is to examine set of objects and libraries before linking. The prelinker also instructs the compiler driver to recompile files or add other libraries or switches, as needed.
The compiler driver invokes the prelinker just before invoking the linker. Language features supported by the prelinker include:
•C++ template instantiation
•Interprocedural analysis
•Instrumented profiling
This process is a necessary part of the Interprocedural Analysis, and can only be avoided by disabling IPA.
Because The IPA Solver is invoked by the prelinker when any of the input files were compiled with IPA optimization enabled.
All of the -ipa optimizations are invoked after the initial link, whereupon a special program called the prelinker reinvokes the compiler to perform the new optimizations, recompiling source files where necessary, to make use of gathered information.
Whether a file may be recompiled by the prelinker, do not use the -S option to see the final optimized assembler file when -ipa is enabled. Instead, use the -save-temps switch, so that the full compile/link cycle can be performed first.