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.