This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]