Solaris -z combreloc bug?

Antti Kerola antti.kerola@insta.fi
Thu Oct 21 09:37:00 GMT 2004



> On Thu, Oct 21, 2004 at 08:02:06AM +0300, Antti Kerola wrote:
> > I tried to find out whether combreloc is on by default on Solaris or
not,
> > but I was unable to find anything either from the
> > source code, mailing lists or the documentation. I am obviously not
familiar
> > with binutils internals. I also could not find
> > the combreloc bug in Bugzilla.
>
> Use readelf -S or objdump -h, and look for .rela.dyn in the executable.
> If you have one, -zcombreloc was on.
>
Thank you! I tried that one out and I found .rela.dyn in both the executable
and
the shared libraries. So my analysis has not been correct.

What could then explain what I am seeing?

We are experiencing very long application start up times which is due to the
fact that the runtime
linker is spending a _lot_ of time binding symbols. Stacktrace of the
process proves that the
application is just sitting in the runtime linker. I verified this with the
LD_DEBUG  variable of the
Solaris runtime linker. For example, the constructor for std::string is
bound once for each single place
where it is used. Same goes for our own symbols. With objdump -R std::string
is printed hundreds
of times in the library. Normal C-functions are just printed once even
though they are used a lot.

Antti





More information about the Binutils mailing list