ppc32 _SDA_BASE_
Alan Modra
amodra@bigpond.net.au
Tue May 24 02:03:00 GMT 2005
glibc uses a ld -r stage to build crt1.o, and due to stupidity on my
part ld -r was providing values for _SDA_BASE_.
$ readelf -a /home/alan/toolchain/lib/crt1.o | grep _SDA_BASE_
00000000 00001401 R_PPC_ADDR32 00000000 _SDA_BASE_ + 0
20: 00000000 0 OBJECT LOCAL HIDDEN ABS _SDA_BASE_
Resulted in failure of gcc.dg/980827-1.
* emultempl/ppc32elf.em (after_allocation): Don't call
ppc_elf_set_sdata_syms when relocatable.
Index: ld/emultempl/ppc32elf.em
===================================================================
RCS file: /cvs/src/src/ld/emultempl/ppc32elf.em,v
retrieving revision 1.6
diff -u -p -r1.6 ppc32elf.em
--- ld/emultempl/ppc32elf.em 12 May 2005 07:32:04 -0000 1.6
+++ ld/emultempl/ppc32elf.em 24 May 2005 00:26:05 -0000
@@ -113,8 +113,9 @@ ppc_before_allocation (void)
static void
gld${EMULATION_NAME}_after_allocation (void)
{
- if (link_info.hash->creator == &bfd_elf32_powerpc_vec
- || link_info.hash->creator == &bfd_elf32_powerpcle_vec)
+ if ((link_info.hash->creator == &bfd_elf32_powerpc_vec
+ || link_info.hash->creator == &bfd_elf32_powerpcle_vec)
+ && !link_info.relocatable)
{
if (!ppc_elf_set_sdata_syms (output_bfd, &link_info))
einfo ("%X%P: cannot set sdata syms %E\n");
--
Alan Modra
IBM OzLabs - Linux Technology Centre
More information about the Binutils
mailing list