Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 27 May 2015 10:06:58 -0400
From: Rich Felker <>
Subject: Re: Question re: dynamic linking in musl

On Wed, May 27, 2015 at 04:23:26PM +0300, Timo Teras wrote:
> On Wed, 27 May 2015 15:15:03 +0200
> Alex Dowad <> wrote:
> > On 27/05/15 15:09, Timo Teras wrote:
> > > On Wed, 27 May 2015 16:01:50 +0300 (MSK)
> > > Alexander Monakov <> 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.


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.