OpenSolaris

Printable Version Enter a New Search
Bug ID 6629404
Synopsis ld with -z ignore doesn't scale
State 10-Fix Delivered (Fix available in build)
Category:Subcategory compiler:linker
Keywords
Responsible Engineer Rod Evans
Reported Against
Duplicate Of
Introduced In solaris_9
Commit to Fix snv_80
Fixed In snv_80
Release Fixed solaris_nevada(snv_80) , solaris_10u7(s10u7_01) (Bug ID:2164918)
Related Bugs 6606203 , 6634436
Submit Date 14-November-2007
Last Update Date 27-October-2008
Description
A customer is building a very large application, one that is close to reaching the
present 2GB ELF file limit.  In an attempt to reduce the size of the application a
mapfile was used to limit the resulting global interfaces (this was based off our
own OSnet MAPFILE.NGB).  The mapfile alone was reported to save a lot, but when
combined with -z ignore another 280mb was saved.

The problem however is that a link-edit that took about 15 minutes now took around
9 hours.   -z ignore is good for uncovering and eliminating unused material from a
link-edit, but it needs to be efficient to be useful.   The culprit seems to be the
string compaction that is carried out for the symbol string tables.  Under -z ignore,
strings that have been accumulated for the string tables must be removed.  Without
string table compaction (ie. with -z nocompstrtab), the -z ignore use gets very close
to that of a default link-edit.
Work Around
N/A
Comments
N/A