Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Mar 2012 10:59:00 +0100
From:      John Marino <draco@marino.st>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        Pedro Giffuni <pfg@freebsd.org>, freebsd-toolchain@freebsd.org
Subject:   DragonFly added DT_GNU_HASH support to rtld
Message-ID:  <4F5C7764.2@marino.st>
In-Reply-To: <20120216154730.GL3283@deviant.kiev.zoral.com.ua>
References:  <4F3C5A3A.6050107@FreeBSD.org> <20120216154730.GL3283@deviant.kiev.zoral.com.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi Konstantin,

It seems that no BSD supported DT_GNU_HASH despite this option being 
available on the base binutils (FreeBSD's 2.17.50 binutils supports it). 
  This gnu extension is a big performance improvement over the specified 
SysV hash.

The guy porting libreoffice to pkgsrc was finding -Wl,--hash-style=gnu 
to be the default build for that package.  Indeed, using the standard 
hash results in very long startup times for something like Writer (> 8 
seconds launched from a SSD)

The result is that we brought in DT_GNU_HASH support to our real-time 
linker this weekend.  We're still waiting to see how that improves 
libreoffice startup times.

full commit:
> http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/7629c6317998f850ebca23c296822ba08af09e5b


Modification to base compiler so all system libs and binaries can take 
advantage of it:
> http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/4687ecd9561d76f3d02ccb4f7adeecd5e3afdd8f


For a while, binaries with dynamic symbol tables will have both types of 
hashes embedded.  At some point in the future, we may switch over to 
only generating the GNU hash.  This will break forward compatibility, 
but that happens rather frequently for other reasons anyway.

I was a bit surprised FreeBSD didn't already have this functionality 
given the performance benefits, so hopefully these DragonFly commits 
will be interesting for you.

Regards,
John



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4F5C7764.2>