summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2016-01-29 09:49:01 +0100
committerMark Wielaard <mjw@redhat.com>2016-01-31 11:44:32 +0100
commit3da75f08818fa3d217e5d566477c7001cb774792 (patch)
tree5274dfb226b16ecf515dc7e5d4d4514afdbcfceb
parentbae7c7c764413b23e61cb099ce33be4c4ee259bb (diff)
elf/elf.h: Add new 386 and X86_64 relocations from binutils.
The following new 386 and X86_64 were added to binutils. They are non-dynamic relocations, so don't need direct handling in glibc. But other programs, like elfutils, use the glibc elf.h definitions for the names and numbers when inspecting ET_REL files. R_386_GOT32X was proposed in https://groups.google.com/forum/#!topic/ia32-abi/GbJJskkid4I X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX were proposed in https://groups.google.com/forum/#!topic/x86-64-abi/n9AWHogmVY0 There also used to be R_X86_64_PC32_BND and R_X86_64_PLT32_BND but those already got deprecated in https://groups.google.com/d/msg/x86-64-abi/-hdQyMixt8Y/XFDOvioG85cJ * elf/elf.h (R_386_GOT32X): New. (R_386_NUM): Update. (R_X86_64_GOTPCRELX: New. (R_X86_64_REX_GOTPCRELX): New. (R_X86_64_NUM): Update.
-rw-r--r--ChangeLog8
-rw-r--r--elf/elf.h15
2 files changed, 20 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index a0fd225cc6..fb853f32da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2016-01-29 Mark Wielaard <mjw@redhat.com>
+
+ * elf/elf.h (R_386_GOT32X): New.
+ (R_386_NUM): Update.
+ (R_X86_64_GOTPCRELX: New.
+ (R_X86_64_REX_GOTPCRELX): New.
+ (R_X86_64_NUM): Update.
+
2016-01-27 Paul Eggert <eggert@cs.ucla.edu>
[BZ #18240]
diff --git a/elf/elf.h b/elf/elf.h
index 15f5a75dec..1a7000b8c6 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -1269,8 +1269,10 @@ typedef struct
argument, returning the TLS
offset for the symbol. */
#define R_386_IRELATIVE 42 /* Adjust indirectly by program base */
+#define R_386_GOT32X 43 /* Load from 32 bit GOT entry,
+ relaxable. */
/* Keep this the last entry. */
-#define R_386_NUM 43
+#define R_386_NUM 44
/* SUN SPARC specific definitions. */
@@ -3144,8 +3146,15 @@ enum
#define R_X86_64_TLSDESC 36 /* TLS descriptor. */
#define R_X86_64_IRELATIVE 37 /* Adjust indirectly by program base */
#define R_X86_64_RELATIVE64 38 /* 64-bit adjust by program base */
-
-#define R_X86_64_NUM 39
+ /* 39 Reserved was R_X86_64_PC32_BND */
+ /* 40 Reserved was R_X86_64_PLT32_BND */
+#define R_X86_64_GOTPCRELX 41 /* Load from 32 bit signed pc relative
+ offset to GOT entry without REX
+ prefix, relaxable. */
+#define R_X86_64_REX_GOTPCRELX 42 /* Load from 32 bit signed pc relative
+ offset to GOT entry with REX prefix,
+ relaxable. */
+#define R_X86_64_NUM 43
/* AM33 relocations. */