Subject: couple of ELF hints

From: Philip Blundell <[email-masked]>
Date: Sat, 25 Jul 1998 18:36:08 +0100

There seems to be a problem with binutils-2.9.1.0.7 and symbol versioning.  
This causes a slew of `BFD assertion failed' messages from the linker.  At a 
first glance I think one of the assertions is spurious but the other seems to 
indicate a real problem.  To work around this, configure glibc with the 
`--disable-versioning' switch.  You may need to apply the appended small 
patch to elf/Makefile as well.

--- clean/libc-980516/elf/Makefile      Sat May 16 01:01:33 1998
+++ libc/elf/Makefile   Sat Jul 25 16:18:14 1998
@@ -35,7 +35,9 @@
 # ld.so uses those routines, plus some special stuff for being the program
 # interpreter and operating independent of libc.
 rtld-routines  := rtld $(dl-routines) dl-sysdep dl-minimal
+ifeq ($(versioning),yes)
 ld-map         = $(..)libc.map
+endif
 distribute     = $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \
                  dl-hash.h soinit.c sofini.c ldd.sh.in ldd.bash.in eval.c \
                  genrtldtbl.awk atomicity.h dl-procinfo.h ldsodefs.h \

Also, there is a potential pitfall with GCC and libgcc.a.  You may need to add 
-DPIC to the CFLAGS used when compiling libgcc.a.  It's important that the
calls to __div0 are done through the PLT, otherwise some PC24 relocs can end 
up leaking into places you don't want them (like the dynamic linker).

Russell: is it true that both 2.0 and 2.1 kernels now have the same (and 
correct) ELF loading behaviour?

p.

unsubscribe: body of `unsubscribe linux-arm' to [email-masked]