|
Description
|
As part of the Compiler Annotations by default project (see http://toolsre.sfbay/Email_Archives/cat-team/Jul06/1662.html), we need to save some object file information in a particular section of the resultant binary. Since this will be the default compiler behavior, we need to save this information in a manner that is least disruptive to the current compiler link process. Using the linker's support interface infrastructure would meet this requirement.
Thus, using support interface calls, the compiler needs to be able to:
[a] Add data to a pre-existing section of a .o file (stand-alone or from an archive library).
[b] If the particular section does not exist, the ability to create it and add data to it.
A prototype implementation, provided by Rod, which enhanced the support library interface, met all of the above requirements.
We also need this back-ported to all compiler supported versions of Solaris. Thus we need this back-ported to Solaris 9 and 10.
Sheldon
To improve the robustness of -xipo with parallel make and archive
files, we need an interface in the support library that would allow
us to link in the cross-file-optimized version of an object file
instead of the plain object file. The optimized object file will
be in a cached directory (currently io overwrites the .o's)
Example:
cc -xipo ... t1.o t2.o
=> ipo t1.o t2.o libt.a # this creates .cache/t1-opt.o
# .cache/t2-opt.o .cache/libt.a
=> ld ... t1.o t2.o libt.a ... # Use of a support library here to link in
# the optimized t1, t2, and libt.a
|