Subject: New ld.elf_so from FreeBSD
To: None <tech-toolchain@netbsd.org>
From: Charles Hannum <abuse@spamalicious.com>
List: tech-toolchain
Date: 09/05/2002 02:24:36
This is a note that I plan to import FreeBSD's ld.elf_so. Among other
things, their code has major performance wins over ours
(c.f. http://www.freebsd.org/cgi/cvsweb.cgi/src/libexec/rtld-elf/rtld.c?rev=1.52&content-type=text/x-cvsweb-markup),
and fixed at least one serious bug over ours (c.f. occasional
`undefined PLT symbol' problems on Alpha).
In short:
* C++ code (and thus GNOME, KDE, mozilla, etc.) starts up much faster.
* The Alpha platform attains reasonable performance, where right now
things like the XF86 4 server are basically unusable.
* The occasional `undefined PLT symbol' problems (on Alpha) are gone.
* Multi-threading support (i.e. r/w locking for dl*() calls) is added.
The disadvantage is that some platform support will have to be moved
over. Basically, the mdreloc.c implementation has a few API changes.
They are very straightforward.
Unless someone ponies up to make similar improvements to our
ld.elf_so, I will import the FreeBSD version on September 9, and do
the support for a handful of platforms (specifically, x86, Alpha and
PowerPC). People responsible for other platforms should deal.