Fix x86-64 GOT table

Andreas Jaeger aj@suse.de
Mon Apr 30 03:08:00 GMT 2001


This patches fixes values in the GOT table for symbols.  I'll
commit it after some more testing.

Andreas

2001-04-30  Andreas Jaeger  <aj@suse.de>, Andreas Schwab <schwab@suse.de>

	* elf64-x86-64.c (elf64_x86_64_relocate_section): Correct test for
	R_X86_64_GOTPCREL, don't use assignments instead of comparisons.

============================================================
Index: bfd/elf64-x86-64.c
--- bfd/elf64-x86-64.c	2001/04/29 13:42:45	1.14
+++ bfd/elf64-x86-64.c	2001/04/30 10:06:24
@@ -1250,11 +1250,10 @@
 	      || h->root.type == bfd_link_hash_defweak)
 	    {
 	      sec = h->root.u.def.section;
-	      if (r_type == R_X86_64_GOTPCREL
-		  || (r_type = R_X86_64_PLT32
-		      && splt != NULL
-		      && h->plt.offset != (bfd_vma) -1)
-		  || (r_type = R_X86_64_GOT32
+	      if ((r_type == R_X86_64_PLT32
+		   && splt != NULL
+		   && h->plt.offset != (bfd_vma) -1)
+		  || ((r_type == R_X86_64_GOT32 || r_type == R_X86_64_GOTPCREL)
 		      && elf_hash_table (info)->dynamic_sections_created
 		      && (!info->shared
 			  || (! info->symbolic && h->dynindx != -1)
@@ -1408,6 +1407,7 @@
 	      else
 		relocation = sgot->output_offset + off;
 	    }
+
 	  break;
 
 	case R_X86_64_PLT32:

-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj



More information about the Binutils mailing list