freebsd-dev/libexec/rtld-elf
Marcel Moolenaar 30ec71ad04 Unbreak ia64.
With r169630 I disabled symbol versioning because it broke rtld.  With
r211706 rtld got broken for ia64 & powerpc64.  It was fixed for powerpc64
with r212497.  In between, r211749 removed the exports table because the
version script handled the exports.  But wait, symbol versioning was
disabled on ia64.

With exports controlled by the version script and symbol versioning
disabled, all symbols are exported and too many symbols bind to the
definition in rtld. Let's just say that waird things happen.

So, enable symbol versioning on ia64 and apply a work-around for the
SIGSEGV that triggered r169630 to begin with: when rtld relocates
itself, it comes across r_debug_state and for some reason can't find the
definition. This causes a failure, relocation aborts and null pointers
galore. The work-around is to ignore the missing definition when rtld
is relocating itself and keep going.

Maybe with the next binutils this will all go away. Maybe not, in
which case I still need to figure out why r_debug_state cannot be found.

BTW: r_debug_state is in the symbol map -- I don't think any other rtld
symbols that rtld references are in the symbol map...
2010-10-22 04:43:04 +00:00
..
amd64 MFtbemd: 2010-08-23 22:24:11 +00:00
arm Only use the cache after the early stage of loading. This is 2010-05-18 08:55:23 +00:00
i386 MFtbemd: 2010-08-23 22:24:11 +00:00
ia64 Unbreak ia64. 2010-10-22 04:43:04 +00:00
mips Add parentheses around the argument 'x' used in the __bswapXX(x) macros. Revert 2010-08-11 02:28:39 +00:00
powerpc Fix two subtle problems in PPC32 RTLD. The first is a concurrency issue 2010-10-04 16:02:11 +00:00
powerpc64 Check for undefined weak symbols during PLT binding on powerpc64, and do 2010-09-12 17:04:51 +00:00
sparc64 Only use the cache after the early stage of loading. This is 2010-05-18 08:55:23 +00:00
debug.c Fix warnings on 64 bit platforms. 2003-06-19 16:09:18 +00:00
debug.h Use C99's varadic macro syntax instead of gcc's. 2006-03-28 18:26:47 +00:00
libmap.c Fix a malloc overrun in 32-bit compat libmap lookup code. 2006-01-31 06:08:28 +00:00
libmap.h Description from Dan: 2005-02-04 02:46:41 +00:00
Makefile Unbreak ia64. 2010-10-22 04:43:04 +00:00
malloc.c Use the newly provided aux vectors to get pagesize and osreldate information. 2010-08-17 09:05:39 +00:00
map_object.c In rtld's map_object(), use pread(..., 0) rather than read() to read the 2009-10-06 17:14:39 +00:00
rtld_lock.c Prefer <sys/param.h> to <machine/param.h> for the definition of 2009-04-20 10:35:50 +00:00
rtld_lock.h Provide custom simple allocator for rtld locks in libthr. The allocator 2008-12-02 11:58:31 +00:00
rtld_tls.h Add support for Thread Local Storage. 2004-08-03 08:51:00 +00:00
rtld.1 mdoc: drop redundant .Pp and .LP calls 2010-10-08 12:40:16 +00:00
rtld.c Check for undefined weak symbols during PLT binding on powerpc64, and do 2010-09-12 17:04:51 +00:00
rtld.h Check for undefined weak symbols during PLT binding on powerpc64, and do 2010-09-12 17:04:51 +00:00
Symbol.map Introduce implementation-private rtld interface _rtld_addr_phdr, which 2010-08-23 15:27:03 +00:00
xmalloc.c Add function prototypes. 2003-06-19 05:28:26 +00:00