summaryrefslogtreecommitdiff
path: root/elfcpp
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-10-22 04:54:42 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-10-22 04:56:49 -0700
commit493d4b48decc2b3c5fe9d2df68bcee67fdd8b7cb (patch)
treeeee71acf168acd099a56d4e57a353d64734683e1 /elfcpp
parentAdd "-z call-nop=PADDING" option to ld (diff)
downloadbinutils-gdb-493d4b48decc2b3c5fe9d2df68bcee67fdd8b7cb.tar.gz
binutils-gdb-493d4b48decc2b3c5fe9d2df68bcee67fdd8b7cb.tar.bz2
binutils-gdb-493d4b48decc2b3c5fe9d2df68bcee67fdd8b7cb.zip
Gold: Don't fail on R_386_GOT32X relocation
This patch updates gold to treat the R_386_GOT32X relocation proposed in https://groups.google.com/forum/#!topic/ia32-abi/GbJJskkid4I the same as R_386_GOT32. FIXME: Gold should perform the transformations as suggested. elfcpp/ * i386.h (R_386_GOT32X): New. gold/ * i386.cc (Target_i386::Scan::get_reference_flags(): Treat R_386_GOT32X the same as R_386_GOT32. (Target_i386::Scan::local): Likewise. (Target_i386::Scan::possible_function_pointer_reloc): Likewise. (Target_i386::Scan::global): Likewise. (Target_i386::Relocate::relocate): Likewise. (Target_i386::Relocatable_size_for_reloc::get_size_for_reloc): Likewise.
Diffstat (limited to 'elfcpp')
-rw-r--r--elfcpp/ChangeLog4
-rw-r--r--elfcpp/i386.h1
2 files changed, 5 insertions, 0 deletions
diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog
index 18c1d5a1f28..c0f1698d0b4 100644
--- a/elfcpp/ChangeLog
+++ b/elfcpp/ChangeLog
@@ -1,3 +1,7 @@
+2015-10-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * i386.h (R_386_GOT32X): New.
+
2015-10-13 H.J. Lu <hongjiu.lu@intel.com>
PR gold/19118
diff --git a/elfcpp/i386.h b/elfcpp/i386.h
index 16fdef8266c..9d57a0f10c4 100644
--- a/elfcpp/i386.h
+++ b/elfcpp/i386.h
@@ -86,6 +86,7 @@ enum
R_386_TLS_DESC = 41, // TLS descriptor containing pointer to code and
// to argument, returning TLS offset for symbol
R_386_IRELATIVE = 42, // Adjust indirectly by program base
+ R_386_GOT32X = 43, // 32 bit GOT entry, relaxable
// Used by Intel.
R_386_USED_BY_INTEL_200 = 200,
// GNU vtable garbage collection extensions.