Message ID | 1453985706-30030-1-git-send-email-mjw@redhat.com |
---|---|
State | New |
Headers | show |
On Thu, Jan 28, 2016 at 4:55 AM, Mark Wielaard <mjw@redhat.com> wrote: > 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 (39) and R_X86_64_PLT32_BND (40) > but those already got deprecated and now the numbers are simply reserved. We can't use them for anything else and linker still supports them, But assembler won't generate them. > See https://groups.google.com/d/msg/x86-64-abi/-hdQyMixt8Y/XFDOvioG85cJ > They are still in current binutils master, but given that they should > not be used I didn't add them to elf.h. > > * 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. > > OK to commit? > > --- > > diff --git a/elf/elf.h b/elf/elf.h > index 15f5a75..1a7000b 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. */ > -- > 1.8.3.1 > Looks good to me. Thanks.
diff --git a/elf/elf.h b/elf/elf.h index 15f5a75..1a7000b 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. */