This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: libstdc++ libtool lossage
- From: Jakub Jelinek <jakub at redhat dot com>
- To: David Edelsohn <dje at watson dot ibm dot com>
- Cc: Richard Henderson <rth at redhat dot com>, Alexandre Oliva <aoliva at redhat dot com>, Mark Mitchell <mark at codesourcery dot com>, gcc-patches at gcc dot gnu dot org
- Date: Sun, 24 Feb 2002 18:21:16 -0500
- Subject: Re: libstdc++ libtool lossage
- References: <rth@redhat.com> <200202242304.SAA26226@makai.watson.ibm.com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Sun, Feb 24, 2002 at 06:04:32PM -0500, David Edelsohn wrote:
> >>>>> Richard Henderson writes:
>
> Richard> On Sat, Feb 23, 2002 at 08:51:17PM -0500, David Edelsohn wrote:
> >> Note that this is one area where AIX's design is very clean and
> >> efficient, if you cared to research the topic.
>
> Richard> It's not nearly as flexible as the SVR4 design, particularly
> Richard> with regard to name binding. It's a flexibility not to be
> Richard> discarded lightly.
>
> With the AIX -brtl option, I believe that AIX provides most of the
> equivalent name binding flexibility, with the additional start-up cost.
> One difference which I just learned about is satisfying weak external
> symbols with the first definition versus searching all dependent libraries
> for a strong definition. Searching all libraries is expensive.
It should be satisfied by first definition actually (and is not
only because libpthread implementation in glibc still relies on the old
behaviour).
> The features of AIX I was referring to are the types of
> relocations (relative versus absolute), the number of relocations, and
> prelinking executables so that no relocation is needed if they are loaded
> at the default load address.
I've implemented prelinking for linux too.
But, even with prelinking, you may need to do some relocations
(without symbol lookup; due to symbol interposition) and even with
prelinking, all the non-relocation costs of any additional
shared library (non-shareable dirtied pages, load overhead) still count.
Jakub