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.
This commit is contained in:
Mark Wielaard 2016-01-29 09:49:01 +01:00
parent bae7c7c764
commit 3da75f0881
2 changed files with 20 additions and 3 deletions

View File

@ -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> 2016-01-27 Paul Eggert <eggert@cs.ucla.edu>
[BZ #18240] [BZ #18240]

View File

@ -1269,8 +1269,10 @@ typedef struct
argument, returning the TLS argument, returning the TLS
offset for the symbol. */ offset for the symbol. */
#define R_386_IRELATIVE 42 /* Adjust indirectly by program base */ #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. */ /* Keep this the last entry. */
#define R_386_NUM 43 #define R_386_NUM 44
/* SUN SPARC specific definitions. */ /* SUN SPARC specific definitions. */
@ -3144,8 +3146,15 @@ enum
#define R_X86_64_TLSDESC 36 /* TLS descriptor. */ #define R_X86_64_TLSDESC 36 /* TLS descriptor. */
#define R_X86_64_IRELATIVE 37 /* Adjust indirectly by program base */ #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_RELATIVE64 38 /* 64-bit adjust by program base */
/* 39 Reserved was R_X86_64_PC32_BND */
#define R_X86_64_NUM 39 /* 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. */ /* AM33 relocations. */