Glenn Skinner wrote:
>     Date: Mon, 07 Jan 2008 11:09:56 -0800
>     From: Rod Evans <Rod.Evans at sun.com>
>     Subject: 2008/006: make ld(1) -z combreloc become default behavior
> 
>     ...
>     ld(1) should make -z combreloc the default behavior when creating a
>     final object (ie., an executable or shared object).  The -z combreloc
>     option will still be recognized, but effectively ignored.  A new
>     -z nocombreloc option will be added to disable the relocation section
>     concatenation.
> 
> Under what circumstances might one wish to use the old behavior?

I have no idea why anyone would want to use the old behavior.  The
relocation tables within dynamic objects have always been concatenated
together, and are read by ld.so.1 as one contiguous table.  Creating a
single table doesn't change how ld.so.1 reads it, it just allows the
table to be better optimized (sorted).  But, like so many historic artifacts,
there's always the possibly that someone, somewhere would like the
old layout.  -z nocombreloc provides this back door - plus, gld provides
the option too, so in a way we're conforming with gld use.

> What is the compatibility impact of switching this default?

None that we're aware of.  We've used the option ourself throughout the
OS for years, and have advised others to do so too.  As the gld folks
have made it their default, I suspect they've found no compatibility
issues either.  Given this background, making the behavior default
rather than trying to keep asking developers to use -z combreloc will
help the startup performance of all dynamic objects (a bit).

-- 

Rod.

Reply via email to