Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Thu, 28 May 2015 16:03:34 +0200
From: Natanael Copa <ncopa@...inelinux.org>
To: Rich Felker <dalias@...c.org>
Cc: musl@...ts.openwall.com
Subject: Re: Question re: dynamic linking in musl

On Wed, 27 May 2015 10:06:58 -0400
Rich Felker <dalias@...c.org> wrote:

> On Wed, May 27, 2015 at 04:23:26PM +0300, Timo Teras wrote:
> > On Wed, 27 May 2015 15:15:03 +0200
> > Alex Dowad <alexinbeijing@...il.com> wrote:
> > 
> > > On 27/05/15 15:09, Timo Teras wrote:
> > > > On Wed, 27 May 2015 16:01:50 +0300 (MSK)
> > > > Alexander Monakov <amonakov@...ras.ru> wrote:
> > > >
> > > >> I'm not familiar with Alpine.  Hopefully someone else can chime in
> > > >> whether .gnu.hash is deliberately disabled.
> > > > We have not touched, so we are using the gcc default. Which
> > > > apparently then is sysv only (bummer).
> > >
> > > Yes, that callgrind profile was from a program installed from Alpine
> > > repos.
> > > 
> > > Use --hash-style=both in LD_FLAGS when building the APKs, and dynamic 
> > > linking will become much faster!
> > 
> > We want that in the toolchain. It's gcc configure option:
> >   --with-linker-hash-style={sysv,gnu,both}
> > 
> > I wonder if it should be 'gnu' or 'both'. Apparently 'both' will be
> > larger as then everything is hashed twice.
> > 
> > Is there any known issues if I just specify 'gnu' ?
> 
> In the sense of "known issues" I would say no, but I would still
> strongly discourage this. A valid dynamic ELF file requries the sysv
> (standard ELF) hash table; the original reason musl added support for
> GNU hash was for ABI-compat to be able to run binaries from distros
> that were producing "invalid" ELF files. :-) While musl fully supports
> either, and will perform considerably better when GNU hash is present
> once we get Alexander Monakov's improvements in, it's possible that
> some simple tools for processing ELF files, or programs which do
> various sorts of introspection via dl_iterate_phdr or otherwise, may
> expect the sysv hash table to be present and fail badly without it.

Seems like at least ubuntu has done gnu-only hash style last 5 years.
https://bugs.launchpad.net/ubuntu/+source/gcc-4.4/+bug/704691

-nc

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.