OpenSolaris

Printable Version Enter a New Search
Bug ID 6479848
Synopsis Enhancements to the linker support interface needed.
State 10-Fix Delivered (Fix available in build)
Category:Subcategory compiler:linker
Keywords rtiq_reviewed
Responsible Engineer Rod Evans
Reported Against
Duplicate Of
Introduced In solaris_2.0
Commit to Fix snv_52
Fixed In snv_52
Release Fixed solaris_nevada(snv_52) , solaris_10u5(s10u5_06) (Bug ID:2143747)
Related Bugs 6484996 , 6491940
Submit Date 9-October-2006
Last Update Date 1-June-2009
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
Work Around
N/A
Comments
N/A