]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
elf/elf.h: Add new 386 and X86_64 relocations from binutils.
authorMark Wielaard <mjw@redhat.com>
Fri, 29 Jan 2016 08:49:01 +0000 (09:49 +0100)
committerMark Wielaard <mjw@redhat.com>
Sun, 31 Jan 2016 10:44:32 +0000 (11:44 +0100)
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.

ChangeLog
elf/elf.h

index a0fd225cc6b86c7a28b43370d669164e9c5eee0d..fb853f32da9182bb586ab3560ea0ed9851743f5e 100644 (file)
--- 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]
index 15f5a75dec918dd18636a9faef7bd5bfd065a5f8..1a7000b8c6333573bf98034c94b6d0378d176618 100644 (file)
--- 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.  */