This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Fix VxWorks breakage from my earlier MIPS GOT changes
- From: Richard Sandiford <rdsandiford at googlemail dot com>
- To: binutils at sourceware dot org
- Date: Sun, 19 Sep 2010 11:06:43 +0100
- Subject: Fix VxWorks breakage from my earlier MIPS GOT changes
My patches (from a while back) to use GGA_RELOC_ONLY was SVR4-specific,
so broke the VxWorks testsuite. This patch adds the missing !is_vxworks
check.
Tested on mips-wrs-vxworks and applied.
Richard
bfd/
* elfxx-mips.c (allocate_dynrelocs): Don't add relocation symbols
to the global GOT on VxWorks.
Index: bfd/elfxx-mips.c
===================================================================
--- bfd/elfxx-mips.c 2010-09-19 10:28:59.000000000 +0100
+++ bfd/elfxx-mips.c 2010-09-19 10:34:45.000000000 +0100
@@ -8172,9 +8172,14 @@ allocate_dynrelocs (struct elf_link_hash
if (do_copy)
{
/* Even though we don't directly need a GOT entry for this symbol,
- a symbol must have a dynamic symbol table index greater that
- DT_MIPS_GOTSYM if there are dynamic relocations against it. */
- if (hmips->global_got_area > GGA_RELOC_ONLY)
+ the SVR4 psABI requires it to have a dynamic symbol table
+ index greater that DT_MIPS_GOTSYM if there are dynamic
+ relocations against it.
+
+ VxWorks does not enforce the same mapping between the GOT
+ and the symbol table, so the same requirement does not
+ apply there. */
+ if (!htab->is_vxworks && hmips->global_got_area > GGA_RELOC_ONLY)
hmips->global_got_area = GGA_RELOC_ONLY;
mips_elf_allocate_dynamic_relocations