From: mmitchel Date: Tue, 3 Aug 1999 16:58:24 +0000 (+0000) Subject: * elf32-mips.c (mips_elf_calculate_relocation): Restore X-Git-Tag: pre-cygwin-heap~3402 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=178e853176f2689f75da9e9409ee1d58715a50aa;p=pf3gnuchains%2Fpf3gnuchains4x.git * elf32-mips.c (mips_elf_calculate_relocation): Restore _DYNAMIC_LINK handling and handling of undefined symbols in shared libraries. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 487589aac2..980c633d32 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +1999-08-03 Mark Mitchell + + * elf32-mips.c (mips_elf_calculate_relocation): Restore + _DYNAMIC_LINK handling and handling of undefined symbols in shared + libraries. + 1999-08-03 Ian Lance Taylor * elf32-ppc.c (ppc_elf_relocate_section): Don't use the relocation diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c index 945d3a5afe..dd2c55ce0b 100644 --- a/bfd/elf32-mips.c +++ b/bfd/elf32-mips.c @@ -5877,6 +5877,19 @@ mips_elf_calculate_relocation (abfd, and check to see if they exist by looking at their addresses. */ symbol = 0; + else if (info->shared && !info->symbolic && !info->no_undefined) + relocation = 0; + else if (strcmp (h->root.root.root.string, "_DYNAMIC_LINK") == 0) + { + /* If this is a dynamic link, we should have created a + _DYNAMIC_LINK symbol in mips_elf_create_dynamic_sections. + Otherwise, we should define the symbol with a value of 0. + FIXME: It should probably get into the symbol table + somehow as well. */ + BFD_ASSERT (! info->shared); + BFD_ASSERT (bfd_get_section_by_name (abfd, ".dynamic") == NULL); + relocation = 0; + } else { (*info->callbacks->undefined_symbol)