This is the mail archive of the
libc-alpha@sourceware.cygnus.com
mailing list for the glibc project.
origtest failure with MIPS-Linux glibc
- To: libc-alpha Mailinglist <libc-alpha at sourceware dot cygnus dot com>
- Subject: origtest failure with MIPS-Linux glibc
- From: Andreas Jaeger <aj at suse dot de>
- Date: 30 Jun 2000 17:09:20 +0200
- Cc: linux-mips at oss dot sgi dot com
The current glibc testsuite contains in the elf subdirectory a test
called origtest which loads dynamically (via dlopen) the shared file
testobj1.so.
This test fails on MIPS-Linux since testobj1.so contains an undefined
reference to foo which can't be fulfilled.
In elf_machine_runtime_setup (sysdeps/mips/dl-machine.h)
elf_machine_got_rel is called to relocate the GOT table. The ABI
defines that "if an entry correspondends to an undefined symbol and
the global offset table entry contains a zero, the entry must be
resolved by the dynamic linker". foo has a value of 0 and therefore we
need to relocate it (even if it is not called at all) - but there's no
reference at all:
Symbol table '.dynsym' contains 50 entries:
Num: Value Size Type Bind Vis Ndx Name
[...]
48: 00000000 0 NOTYPE GLOBAL DEFAULT UND foo
Who's to blame here? Is this a restriction of the MIPS ELF ABI (I do
think that glibc's dynamic linker does the right think in this case)?
Or is there a bug in binutils/gcc which should produce a wrong symbol
entry?
Is there anything I can do to fix this failure?
Any comments are very welcome.
Andreas
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de