|
@@ -137,8 +137,18 @@ typedef struct
|
|
/* Value must be EV_CURRENT */
|
|
/* Value must be EV_CURRENT */
|
|
|
|
|
|
#define EI_OSABI 7 /* OS ABI identification */
|
|
#define EI_OSABI 7 /* OS ABI identification */
|
|
-#define ELFOSABI_SYSV 0 /* UNIX System V ABI */
|
|
+#define ELFOSABI_NONE 0 /* UNIX System V ABI */
|
|
|
|
+#define ELFOSABI_SYSV 0 /* Alias. */
|
|
#define ELFOSABI_HPUX 1 /* HP-UX */
|
|
#define ELFOSABI_HPUX 1 /* HP-UX */
|
|
|
|
+#define ELFOSABI_NETBSD 2 /* NetBSD. */
|
|
|
|
+#define ELFOSABI_LINUX 3 /* Linux. */
|
|
|
|
+#define ELFOSABI_SOLARIS 6 /* Sun Solaris. */
|
|
|
|
+#define ELFOSABI_AIX 7 /* IBM AIX. */
|
|
|
|
+#define ELFOSABI_IRIX 8 /* SGI Irix. */
|
|
|
|
+#define ELFOSABI_FREEBSD 9 /* FreeBSD. */
|
|
|
|
+#define ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX. */
|
|
|
|
+#define ELFOSABI_MODESTO 11 /* Novell Modesto. */
|
|
|
|
+#define ELFOSABI_OPENBSD 12 /* OpenBSD. */
|
|
#define ELFOSABI_ARM 97 /* ARM */
|
|
#define ELFOSABI_ARM 97 /* ARM */
|
|
#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
|
|
#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
|
|
|
|
|
|
@@ -247,7 +257,7 @@ typedef struct
|
|
#define EM_ALPHA 0x9026
|
|
#define EM_ALPHA 0x9026
|
|
|
|
|
|
/* V850 backend magic number. Written in the absense of an ABI. */
|
|
/* V850 backend magic number. Written in the absense of an ABI. */
|
|
-#define EM_CYGNUS_V850 0x9080
|
|
+#define EM_CYGNUS_V850 0x9080
|
|
|
|
|
|
|
|
|
|
/* Legal values for e_version (version). */
|
|
/* Legal values for e_version (version). */
|
|
@@ -320,6 +330,7 @@ typedef struct
|
|
#define SHT_SYMTAB_SHNDX 18 /* Extended section indeces */
|
|
#define SHT_SYMTAB_SHNDX 18 /* Extended section indeces */
|
|
#define SHT_NUM 19 /* Number of defined types. */
|
|
#define SHT_NUM 19 /* Number of defined types. */
|
|
#define SHT_LOOS 0x60000000 /* Start OS-specific */
|
|
#define SHT_LOOS 0x60000000 /* Start OS-specific */
|
|
|
|
+#define SHT_GNU_LIBLIST 0x6ffffff7 /* Prelink library list */
|
|
#define SHT_CHECKSUM 0x6ffffff8 /* Checksum for DSO content. */
|
|
#define SHT_CHECKSUM 0x6ffffff8 /* Checksum for DSO content. */
|
|
#define SHT_LOSUNW 0x6ffffffa /* Sun-specific low bound. */
|
|
#define SHT_LOSUNW 0x6ffffffa /* Sun-specific low bound. */
|
|
#define SHT_SUNW_move 0x6ffffffa
|
|
#define SHT_SUNW_move 0x6ffffffa
|
|
@@ -346,6 +357,8 @@ typedef struct
|
|
#define SHF_LINK_ORDER (1 << 7) /* Preserve order after combining */
|
|
#define SHF_LINK_ORDER (1 << 7) /* Preserve order after combining */
|
|
#define SHF_OS_NONCONFORMING (1 << 8) /* Non-standard OS specific handling
|
|
#define SHF_OS_NONCONFORMING (1 << 8) /* Non-standard OS specific handling
|
|
required */
|
|
required */
|
|
|
|
+#define SHF_GROUP (1 << 9) /* Section is member of a group. */
|
|
|
|
+#define SHF_TLS (1 << 10) /* Section hold thread-local data. */
|
|
#define SHF_MASKOS 0x0ff00000 /* OS-specific. */
|
|
#define SHF_MASKOS 0x0ff00000 /* OS-specific. */
|
|
#define SHF_MASKPROC 0xf0000000 /* Processor-specific */
|
|
#define SHF_MASKPROC 0xf0000000 /* Processor-specific */
|
|
|
|
|
|
@@ -406,10 +419,6 @@ typedef struct
|
|
#define SYMINFO_NUM 2
|
|
#define SYMINFO_NUM 2
|
|
|
|
|
|
|
|
|
|
-/* Special section index. */
|
|
|
|
-
|
|
|
|
-#define SHN_UNDEF 0 /* No section, undefined symbol. */
|
|
|
|
-
|
|
|
|
/* How to extract and insert information held in the st_info field. */
|
|
/* How to extract and insert information held in the st_info field. */
|
|
|
|
|
|
#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
|
|
#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
|
|
@@ -440,7 +449,8 @@ typedef struct
|
|
#define STT_SECTION 3 /* Symbol associated with a section */
|
|
#define STT_SECTION 3 /* Symbol associated with a section */
|
|
#define STT_FILE 4 /* Symbol's name is file name */
|
|
#define STT_FILE 4 /* Symbol's name is file name */
|
|
#define STT_COMMON 5 /* Symbol is a common data object */
|
|
#define STT_COMMON 5 /* Symbol is a common data object */
|
|
-#define STT_NUM 6 /* Number of defined types. */
|
|
+#define STT_TLS 6 /* Symbol is thread-local data object*/
|
|
|
|
+#define STT_NUM 7 /* Number of defined types. */
|
|
#define STT_LOOS 10 /* Start of OS-specific */
|
|
#define STT_LOOS 10 /* Start of OS-specific */
|
|
#define STT_HIOS 12 /* End of OS-specific */
|
|
#define STT_HIOS 12 /* End of OS-specific */
|
|
#define STT_LOPROC 13 /* Start of processor-specific */
|
|
#define STT_LOPROC 13 /* Start of processor-specific */
|
|
@@ -548,8 +558,14 @@ typedef struct
|
|
#define PT_NOTE 4 /* Auxiliary information */
|
|
#define PT_NOTE 4 /* Auxiliary information */
|
|
#define PT_SHLIB 5 /* Reserved */
|
|
#define PT_SHLIB 5 /* Reserved */
|
|
#define PT_PHDR 6 /* Entry for header table itself */
|
|
#define PT_PHDR 6 /* Entry for header table itself */
|
|
-#define PT_NUM 7 /* Number of defined types */
|
|
+#define PT_TLS 7 /* Thread-local storage segment */
|
|
|
|
+#define PT_NUM 8 /* Number of defined types */
|
|
#define PT_LOOS 0x60000000 /* Start of OS-specific */
|
|
#define PT_LOOS 0x60000000 /* Start of OS-specific */
|
|
|
|
+#define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */
|
|
|
|
+#define PT_LOSUNW 0x6ffffffa
|
|
|
|
+#define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */
|
|
|
|
+#define PT_SUNWSTACK 0x6ffffffb /* Stack segment */
|
|
|
|
+#define PT_HISUNW 0x6fffffff
|
|
#define PT_HIOS 0x6fffffff /* End of OS-specific */
|
|
#define PT_HIOS 0x6fffffff /* End of OS-specific */
|
|
#define PT_LOPROC 0x70000000 /* Start of processor-specific */
|
|
#define PT_LOPROC 0x70000000 /* Start of processor-specific */
|
|
#define PT_HIPROC 0x7fffffff /* End of processor-specific */
|
|
#define PT_HIPROC 0x7fffffff /* End of processor-specific */
|
|
@@ -571,6 +587,7 @@ typedef struct
|
|
#define NT_PLATFORM 5 /* String from sysinfo(SI_PLATFORM) */
|
|
#define NT_PLATFORM 5 /* String from sysinfo(SI_PLATFORM) */
|
|
#define NT_AUXV 6 /* Contains copy of auxv array */
|
|
#define NT_AUXV 6 /* Contains copy of auxv array */
|
|
#define NT_GWINDOWS 7 /* Contains copy of gwindows struct */
|
|
#define NT_GWINDOWS 7 /* Contains copy of gwindows struct */
|
|
|
|
+#define NT_ASRS 8 /* Contains copy of asrset struct */
|
|
#define NT_PSTATUS 10 /* Contains copy of pstatus struct */
|
|
#define NT_PSTATUS 10 /* Contains copy of pstatus struct */
|
|
#define NT_PSINFO 13 /* Contains copy of psinfo struct */
|
|
#define NT_PSINFO 13 /* Contains copy of psinfo struct */
|
|
#define NT_PRCRED 14 /* Contains copy of prcred struct */
|
|
#define NT_PRCRED 14 /* Contains copy of prcred struct */
|
|
@@ -643,8 +660,8 @@ typedef struct
|
|
#define DT_PREINIT_ARRAY 32 /* Array with addresses of preinit fct*/
|
|
#define DT_PREINIT_ARRAY 32 /* Array with addresses of preinit fct*/
|
|
#define DT_PREINIT_ARRAYSZ 33 /* size in bytes of DT_PREINIT_ARRAY */
|
|
#define DT_PREINIT_ARRAYSZ 33 /* size in bytes of DT_PREINIT_ARRAY */
|
|
#define DT_NUM 34 /* Number used */
|
|
#define DT_NUM 34 /* Number used */
|
|
-#define DT_LOOS 0x60000000 /* Start of OS-specific */
|
|
+#define DT_LOOS 0x6000000d /* Start of OS-specific */
|
|
-#define DT_HIOS 0x6fffffff /* End of OS-specific */
|
|
+#define DT_HIOS 0x6ffff000 /* End of OS-specific */
|
|
#define DT_LOPROC 0x70000000 /* Start of processor-specific */
|
|
#define DT_LOPROC 0x70000000 /* Start of processor-specific */
|
|
#define DT_HIPROC 0x7fffffff /* End of processor-specific */
|
|
#define DT_HIPROC 0x7fffffff /* End of processor-specific */
|
|
#define DT_PROCNUM DT_MIPS_NUM /* Most used by any processor */
|
|
#define DT_PROCNUM DT_MIPS_NUM /* Most used by any processor */
|
|
@@ -653,6 +670,9 @@ typedef struct
|
|
Dyn.d_un.d_val field of the Elf*_Dyn structure. This follows Sun's
|
|
Dyn.d_un.d_val field of the Elf*_Dyn structure. This follows Sun's
|
|
approach. */
|
|
approach. */
|
|
#define DT_VALRNGLO 0x6ffffd00
|
|
#define DT_VALRNGLO 0x6ffffd00
|
|
|
|
+#define DT_GNU_PRELINKED 0x6ffffdf5 /* Prelinking timestamp */
|
|
|
|
+#define DT_GNU_CONFLICTSZ 0x6ffffdf6 /* Size of conflict section */
|
|
|
|
+#define DT_GNU_LIBLISTSZ 0x6ffffdf7 /* Size of library list */
|
|
#define DT_CHECKSUM 0x6ffffdf8
|
|
#define DT_CHECKSUM 0x6ffffdf8
|
|
#define DT_PLTPADSZ 0x6ffffdf9
|
|
#define DT_PLTPADSZ 0x6ffffdf9
|
|
#define DT_MOVEENT 0x6ffffdfa
|
|
#define DT_MOVEENT 0x6ffffdfa
|
|
@@ -663,6 +683,8 @@ typedef struct
|
|
#define DT_SYMINSZ 0x6ffffdfe /* Size of syminfo table (in bytes) */
|
|
#define DT_SYMINSZ 0x6ffffdfe /* Size of syminfo table (in bytes) */
|
|
#define DT_SYMINENT 0x6ffffdff /* Entry size of syminfo */
|
|
#define DT_SYMINENT 0x6ffffdff /* Entry size of syminfo */
|
|
#define DT_VALRNGHI 0x6ffffdff
|
|
#define DT_VALRNGHI 0x6ffffdff
|
|
|
|
+#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) /* Reverse order! */
|
|
|
|
+#define DT_VALNUM 12
|
|
|
|
|
|
/* DT_* entries which fall between DT_ADDRRNGHI & DT_ADDRRNGLO use the
|
|
/* DT_* entries which fall between DT_ADDRRNGHI & DT_ADDRRNGLO use the
|
|
Dyn.d_un.d_ptr field of the Elf*_Dyn structure.
|
|
Dyn.d_un.d_ptr field of the Elf*_Dyn structure.
|
|
@@ -670,6 +692,8 @@ typedef struct
|
|
If any adjustment is made to the ELF object after it has been
|
|
If any adjustment is made to the ELF object after it has been
|
|
built these entries will need to be adjusted. */
|
|
built these entries will need to be adjusted. */
|
|
#define DT_ADDRRNGLO 0x6ffffe00
|
|
#define DT_ADDRRNGLO 0x6ffffe00
|
|
|
|
+#define DT_GNU_CONFLICT 0x6ffffef8 /* Start of conflict section */
|
|
|
|
+#define DT_GNU_LIBLIST 0x6ffffef9 /* Library list */
|
|
#define DT_CONFIG 0x6ffffefa /* Configuration information. */
|
|
#define DT_CONFIG 0x6ffffefa /* Configuration information. */
|
|
#define DT_DEPAUDIT 0x6ffffefb /* Dependency auditing. */
|
|
#define DT_DEPAUDIT 0x6ffffefb /* Dependency auditing. */
|
|
#define DT_AUDIT 0x6ffffefc /* Object auditing. */
|
|
#define DT_AUDIT 0x6ffffefc /* Object auditing. */
|
|
@@ -677,6 +701,8 @@ typedef struct
|
|
#define DT_MOVETAB 0x6ffffefe /* Move table. */
|
|
#define DT_MOVETAB 0x6ffffefe /* Move table. */
|
|
#define DT_SYMINFO 0x6ffffeff /* Syminfo table. */
|
|
#define DT_SYMINFO 0x6ffffeff /* Syminfo table. */
|
|
#define DT_ADDRRNGHI 0x6ffffeff
|
|
#define DT_ADDRRNGHI 0x6ffffeff
|
|
|
|
+#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) /* Reverse order! */
|
|
|
|
+#define DT_ADDRNUM 10
|
|
|
|
|
|
/* The versioning entry types. The next are defined as part of the
|
|
/* The versioning entry types. The next are defined as part of the
|
|
GNU extension. */
|
|
GNU extension. */
|
|
@@ -708,6 +734,7 @@ typedef struct
|
|
#define DF_SYMBOLIC 0x00000002 /* Symbol resolutions starts here */
|
|
#define DF_SYMBOLIC 0x00000002 /* Symbol resolutions starts here */
|
|
#define DF_TEXTREL 0x00000004 /* Object contains text relocations */
|
|
#define DF_TEXTREL 0x00000004 /* Object contains text relocations */
|
|
#define DF_BIND_NOW 0x00000008 /* No lazy binding for this object */
|
|
#define DF_BIND_NOW 0x00000008 /* No lazy binding for this object */
|
|
|
|
+#define DF_STATIC_TLS 0x00000010 /* Module uses the static TLS model */
|
|
|
|
|
|
/* State flags selectable in the `d_un.d_val' element of the DT_FLAGS_1
|
|
/* State flags selectable in the `d_un.d_val' element of the DT_FLAGS_1
|
|
entry in the dynamic section. */
|
|
entry in the dynamic section. */
|
|
@@ -1038,19 +1065,56 @@ typedef struct
|
|
|
|
|
|
/* i386 relocs. */
|
|
/* i386 relocs. */
|
|
|
|
|
|
-#define R_386_NONE 0 /* No reloc */
|
|
+#define R_386_NONE 0 /* No reloc */
|
|
-#define R_386_32 1 /* Direct 32 bit */
|
|
+#define R_386_32 1 /* Direct 32 bit */
|
|
-#define R_386_PC32 2 /* PC relative 32 bit */
|
|
+#define R_386_PC32 2 /* PC relative 32 bit */
|
|
-#define R_386_GOT32 3 /* 32 bit GOT entry */
|
|
+#define R_386_GOT32 3 /* 32 bit GOT entry */
|
|
-#define R_386_PLT32 4 /* 32 bit PLT address */
|
|
+#define R_386_PLT32 4 /* 32 bit PLT address */
|
|
-#define R_386_COPY 5 /* Copy symbol at runtime */
|
|
+#define R_386_COPY 5 /* Copy symbol at runtime */
|
|
-#define R_386_GLOB_DAT 6 /* Create GOT entry */
|
|
+#define R_386_GLOB_DAT 6 /* Create GOT entry */
|
|
-#define R_386_JMP_SLOT 7 /* Create PLT entry */
|
|
+#define R_386_JMP_SLOT 7 /* Create PLT entry */
|
|
-#define R_386_RELATIVE 8 /* Adjust by program base */
|
|
+#define R_386_RELATIVE 8 /* Adjust by program base */
|
|
-#define R_386_GOTOFF 9 /* 32 bit offset to GOT */
|
|
+#define R_386_GOTOFF 9 /* 32 bit offset to GOT */
|
|
-#define R_386_GOTPC 10 /* 32 bit PC relative offset to GOT */
|
|
+#define R_386_GOTPC 10 /* 32 bit PC relative offset to GOT */
|
|
|
|
+#define R_386_32PLT 11
|
|
|
|
+#define R_386_TLS_TPOFF 14 /* Offset in static TLS block */
|
|
|
|
+#define R_386_TLS_IE 15 /* Address of GOT entry for static TLS
|
|
|
|
+ block offset */
|
|
|
|
+#define R_386_TLS_GOTIE 16 /* GOT entry for static TLS block
|
|
|
|
+ offset */
|
|
|
|
+#define R_386_TLS_LE 17 /* Offset relative to static TLS
|
|
|
|
+ block */
|
|
|
|
+#define R_386_TLS_GD 18 /* Direct 32 bit for GNU version of
|
|
|
|
+ general dynamic thread local data */
|
|
|
|
+#define R_386_TLS_LDM 19 /* Direct 32 bit for GNU version of
|
|
|
|
+ local dynamic thread local data
|
|
|
|
+ in LE code */
|
|
|
|
+#define R_386_16 20
|
|
|
|
+#define R_386_PC16 21
|
|
|
|
+#define R_386_8 22
|
|
|
|
+#define R_386_PC8 23
|
|
|
|
+#define R_386_TLS_GD_32 24 /* Direct 32 bit for general dynamic
|
|
|
|
+ thread local data */
|
|
|
|
+#define R_386_TLS_GD_PUSH 25 /* Tag for pushl in GD TLS code */
|
|
|
|
+#define R_386_TLS_GD_CALL 26 /* Relocation for call to
|
|
|
|
+ __tls_get_addr() */
|
|
|
|
+#define R_386_TLS_GD_POP 27 /* Tag for popl in GD TLS code */
|
|
|
|
+#define R_386_TLS_LDM_32 28 /* Direct 32 bit for local dynamic
|
|
|
|
+ thread local data in LE code */
|
|
|
|
+#define R_386_TLS_LDM_PUSH 29 /* Tag for pushl in LDM TLS code */
|
|
|
|
+#define R_386_TLS_LDM_CALL 30 /* Relocation for call to
|
|
|
|
+ __tls_get_addr() in LDM code */
|
|
|
|
+#define R_386_TLS_LDM_POP 31 /* Tag for popl in LDM TLS code */
|
|
|
|
+#define R_386_TLS_LDO_32 32 /* Offset relative to TLS block */
|
|
|
|
+#define R_386_TLS_IE_32 33 /* GOT entry for negated static TLS
|
|
|
|
+ block offset */
|
|
|
|
+#define R_386_TLS_LE_32 34 /* Negated offset relative to static
|
|
|
|
+ TLS block */
|
|
|
|
+#define R_386_TLS_DTPMOD32 35 /* ID of module containing symbol */
|
|
|
|
+#define R_386_TLS_DTPOFF32 36 /* Offset in TLS block */
|
|
|
|
+#define R_386_TLS_TPOFF32 37 /* Negated offset in static TLS block */
|
|
/* Keep this the last entry. */
|
|
/* Keep this the last entry. */
|
|
-#define R_386_NUM 11
|
|
+#define R_386_NUM 38
|
|
|
|
|
|
/* SUN SPARC specific definitions. */
|
|
/* SUN SPARC specific definitions. */
|
|
|
|
|
|
@@ -1073,66 +1137,90 @@ typedef struct
|
|
|
|
|
|
/* SPARC relocs. */
|
|
/* SPARC relocs. */
|
|
|
|
|
|
-#define R_SPARC_NONE 0 /* No reloc */
|
|
+#define R_SPARC_NONE 0 /* No reloc */
|
|
-#define R_SPARC_8 1 /* Direct 8 bit */
|
|
+#define R_SPARC_8 1 /* Direct 8 bit */
|
|
-#define R_SPARC_16 2 /* Direct 16 bit */
|
|
+#define R_SPARC_16 2 /* Direct 16 bit */
|
|
-#define R_SPARC_32 3 /* Direct 32 bit */
|
|
+#define R_SPARC_32 3 /* Direct 32 bit */
|
|
-#define R_SPARC_DISP8 4 /* PC relative 8 bit */
|
|
+#define R_SPARC_DISP8 4 /* PC relative 8 bit */
|
|
-#define R_SPARC_DISP16 5 /* PC relative 16 bit */
|
|
+#define R_SPARC_DISP16 5 /* PC relative 16 bit */
|
|
-#define R_SPARC_DISP32 6 /* PC relative 32 bit */
|
|
+#define R_SPARC_DISP32 6 /* PC relative 32 bit */
|
|
-#define R_SPARC_WDISP30 7 /* PC relative 30 bit shifted */
|
|
+#define R_SPARC_WDISP30 7 /* PC relative 30 bit shifted */
|
|
-#define R_SPARC_WDISP22 8 /* PC relative 22 bit shifted */
|
|
+#define R_SPARC_WDISP22 8 /* PC relative 22 bit shifted */
|
|
-#define R_SPARC_HI22 9 /* High 22 bit */
|
|
+#define R_SPARC_HI22 9 /* High 22 bit */
|
|
-#define R_SPARC_22 10 /* Direct 22 bit */
|
|
+#define R_SPARC_22 10 /* Direct 22 bit */
|
|
-#define R_SPARC_13 11 /* Direct 13 bit */
|
|
+#define R_SPARC_13 11 /* Direct 13 bit */
|
|
-#define R_SPARC_LO10 12 /* Truncated 10 bit */
|
|
+#define R_SPARC_LO10 12 /* Truncated 10 bit */
|
|
-#define R_SPARC_GOT10 13 /* Truncated 10 bit GOT entry */
|
|
+#define R_SPARC_GOT10 13 /* Truncated 10 bit GOT entry */
|
|
-#define R_SPARC_GOT13 14 /* 13 bit GOT entry */
|
|
+#define R_SPARC_GOT13 14 /* 13 bit GOT entry */
|
|
-#define R_SPARC_GOT22 15 /* 22 bit GOT entry shifted */
|
|
+#define R_SPARC_GOT22 15 /* 22 bit GOT entry shifted */
|
|
-#define R_SPARC_PC10 16 /* PC relative 10 bit truncated */
|
|
+#define R_SPARC_PC10 16 /* PC relative 10 bit truncated */
|
|
-#define R_SPARC_PC22 17 /* PC relative 22 bit shifted */
|
|
+#define R_SPARC_PC22 17 /* PC relative 22 bit shifted */
|
|
-#define R_SPARC_WPLT30 18 /* 30 bit PC relative PLT address */
|
|
+#define R_SPARC_WPLT30 18 /* 30 bit PC relative PLT address */
|
|
-#define R_SPARC_COPY 19 /* Copy symbol at runtime */
|
|
+#define R_SPARC_COPY 19 /* Copy symbol at runtime */
|
|
-#define R_SPARC_GLOB_DAT 20 /* Create GOT entry */
|
|
+#define R_SPARC_GLOB_DAT 20 /* Create GOT entry */
|
|
-#define R_SPARC_JMP_SLOT 21 /* Create PLT entry */
|
|
+#define R_SPARC_JMP_SLOT 21 /* Create PLT entry */
|
|
-#define R_SPARC_RELATIVE 22 /* Adjust by program base */
|
|
+#define R_SPARC_RELATIVE 22 /* Adjust by program base */
|
|
-#define R_SPARC_UA32 23 /* Direct 32 bit unaligned */
|
|
+#define R_SPARC_UA32 23 /* Direct 32 bit unaligned */
|
|
|
|
|
|
/* Additional Sparc64 relocs. */
|
|
/* Additional Sparc64 relocs. */
|
|
|
|
|
|
-#define R_SPARC_PLT32 24 /* Direct 32 bit ref to PLT entry */
|
|
+#define R_SPARC_PLT32 24 /* Direct 32 bit ref to PLT entry */
|
|
-#define R_SPARC_HIPLT22 25 /* High 22 bit PLT entry */
|
|
+#define R_SPARC_HIPLT22 25 /* High 22 bit PLT entry */
|
|
-#define R_SPARC_LOPLT10 26 /* Truncated 10 bit PLT entry */
|
|
+#define R_SPARC_LOPLT10 26 /* Truncated 10 bit PLT entry */
|
|
-#define R_SPARC_PCPLT32 27 /* PC rel 32 bit ref to PLT entry */
|
|
+#define R_SPARC_PCPLT32 27 /* PC rel 32 bit ref to PLT entry */
|
|
-#define R_SPARC_PCPLT22 28 /* PC rel high 22 bit PLT entry */
|
|
+#define R_SPARC_PCPLT22 28 /* PC rel high 22 bit PLT entry */
|
|
-#define R_SPARC_PCPLT10 29 /* PC rel trunc 10 bit PLT entry */
|
|
+#define R_SPARC_PCPLT10 29 /* PC rel trunc 10 bit PLT entry */
|
|
-#define R_SPARC_10 30 /* Direct 10 bit */
|
|
+#define R_SPARC_10 30 /* Direct 10 bit */
|
|
-#define R_SPARC_11 31 /* Direct 11 bit */
|
|
+#define R_SPARC_11 31 /* Direct 11 bit */
|
|
-#define R_SPARC_64 32 /* Direct 64 bit */
|
|
+#define R_SPARC_64 32 /* Direct 64 bit */
|
|
-#define R_SPARC_OLO10 33 /* 10bit with secondary 13bit addend */
|
|
+#define R_SPARC_OLO10 33 /* 10bit with secondary 13bit addend */
|
|
-#define R_SPARC_HH22 34 /* Top 22 bits of direct 64 bit */
|
|
+#define R_SPARC_HH22 34 /* Top 22 bits of direct 64 bit */
|
|
-#define R_SPARC_HM10 35 /* High middle 10 bits of ... */
|
|
+#define R_SPARC_HM10 35 /* High middle 10 bits of ... */
|
|
-#define R_SPARC_LM22 36 /* Low middle 22 bits of ... */
|
|
+#define R_SPARC_LM22 36 /* Low middle 22 bits of ... */
|
|
-#define R_SPARC_PC_HH22 37 /* Top 22 bits of pc rel 64 bit */
|
|
+#define R_SPARC_PC_HH22 37 /* Top 22 bits of pc rel 64 bit */
|
|
-#define R_SPARC_PC_HM10 38 /* High middle 10 bit of ... */
|
|
+#define R_SPARC_PC_HM10 38 /* High middle 10 bit of ... */
|
|
-#define R_SPARC_PC_LM22 39 /* Low miggle 22 bits of ... */
|
|
+#define R_SPARC_PC_LM22 39 /* Low miggle 22 bits of ... */
|
|
-#define R_SPARC_WDISP16 40 /* PC relative 16 bit shifted */
|
|
+#define R_SPARC_WDISP16 40 /* PC relative 16 bit shifted */
|
|
-#define R_SPARC_WDISP19 41 /* PC relative 19 bit shifted */
|
|
+#define R_SPARC_WDISP19 41 /* PC relative 19 bit shifted */
|
|
-#define R_SPARC_7 43 /* Direct 7 bit */
|
|
+#define R_SPARC_7 43 /* Direct 7 bit */
|
|
-#define R_SPARC_5 44 /* Direct 5 bit */
|
|
+#define R_SPARC_5 44 /* Direct 5 bit */
|
|
-#define R_SPARC_6 45 /* Direct 6 bit */
|
|
+#define R_SPARC_6 45 /* Direct 6 bit */
|
|
-#define R_SPARC_DISP64 46 /* PC relative 64 bit */
|
|
+#define R_SPARC_DISP64 46 /* PC relative 64 bit */
|
|
-#define R_SPARC_PLT64 47 /* Direct 64 bit ref to PLT entry */
|
|
+#define R_SPARC_PLT64 47 /* Direct 64 bit ref to PLT entry */
|
|
-#define R_SPARC_HIX22 48 /* High 22 bit complemented */
|
|
+#define R_SPARC_HIX22 48 /* High 22 bit complemented */
|
|
-#define R_SPARC_LOX10 49 /* Truncated 11 bit complemented */
|
|
+#define R_SPARC_LOX10 49 /* Truncated 11 bit complemented */
|
|
-#define R_SPARC_H44 50 /* Direct high 12 of 44 bit */
|
|
+#define R_SPARC_H44 50 /* Direct high 12 of 44 bit */
|
|
-#define R_SPARC_M44 51 /* Direct mid 22 of 44 bit */
|
|
+#define R_SPARC_M44 51 /* Direct mid 22 of 44 bit */
|
|
-#define R_SPARC_L44 52 /* Direct low 10 of 44 bit */
|
|
+#define R_SPARC_L44 52 /* Direct low 10 of 44 bit */
|
|
-#define R_SPARC_REGISTER 53 /* Global register usage */
|
|
+#define R_SPARC_REGISTER 53 /* Global register usage */
|
|
-#define R_SPARC_UA64 54 /* Direct 64 bit unaligned */
|
|
+#define R_SPARC_UA64 54 /* Direct 64 bit unaligned */
|
|
-#define R_SPARC_UA16 55 /* Direct 16 bit unaligned */
|
|
+#define R_SPARC_UA16 55 /* Direct 16 bit unaligned */
|
|
|
|
+#define R_SPARC_TLS_GD_HI22 56
|
|
|
|
+#define R_SPARC_TLS_GD_LO10 57
|
|
|
|
+#define R_SPARC_TLS_GD_ADD 58
|
|
|
|
+#define R_SPARC_TLS_GD_CALL 59
|
|
|
|
+#define R_SPARC_TLS_LDM_HI22 60
|
|
|
|
+#define R_SPARC_TLS_LDM_LO10 61
|
|
|
|
+#define R_SPARC_TLS_LDM_ADD 62
|
|
|
|
+#define R_SPARC_TLS_LDM_CALL 63
|
|
|
|
+#define R_SPARC_TLS_LDO_HIX22 64
|
|
|
|
+#define R_SPARC_TLS_LDO_LOX10 65
|
|
|
|
+#define R_SPARC_TLS_LDO_ADD 66
|
|
|
|
+#define R_SPARC_TLS_IE_HI22 67
|
|
|
|
+#define R_SPARC_TLS_IE_LO10 68
|
|
|
|
+#define R_SPARC_TLS_IE_LD 69
|
|
|
|
+#define R_SPARC_TLS_IE_LDX 70
|
|
|
|
+#define R_SPARC_TLS_IE_ADD 71
|
|
|
|
+#define R_SPARC_TLS_LE_HIX22 72
|
|
|
|
+#define R_SPARC_TLS_LE_LOX10 73
|
|
|
|
+#define R_SPARC_TLS_DTPMOD32 74
|
|
|
|
+#define R_SPARC_TLS_DTPMOD64 75
|
|
|
|
+#define R_SPARC_TLS_DTPOFF32 76
|
|
|
|
+#define R_SPARC_TLS_DTPOFF64 77
|
|
|
|
+#define R_SPARC_TLS_TPOFF32 78
|
|
|
|
+#define R_SPARC_TLS_TPOFF64 79
|
|
/* Keep this the last entry. */
|
|
/* Keep this the last entry. */
|
|
-#define R_SPARC_NUM 56
|
|
+#define R_SPARC_NUM 80
|
|
|
|
|
|
/* For Sparc64, legal values for d_tag of Elf64_Dyn. */
|
|
/* For Sparc64, legal values for d_tag of Elf64_Dyn. */
|
|
|
|
|
|
@@ -1710,24 +1798,37 @@ typedef Elf32_Addr Elf32_Conflict;
|
|
#define R_ALPHA_SREL16 9 /* PC relative 16 bit */
|
|
#define R_ALPHA_SREL16 9 /* PC relative 16 bit */
|
|
#define R_ALPHA_SREL32 10 /* PC relative 32 bit */
|
|
#define R_ALPHA_SREL32 10 /* PC relative 32 bit */
|
|
#define R_ALPHA_SREL64 11 /* PC relative 64 bit */
|
|
#define R_ALPHA_SREL64 11 /* PC relative 64 bit */
|
|
-#define R_ALPHA_OP_PUSH 12 /* OP stack push */
|
|
+#define R_ALPHA_GPRELHIGH 17 /* GP relative 32 bit, high 16 bits */
|
|
-#define R_ALPHA_OP_STORE 13 /* OP stack pop and store */
|
|
+#define R_ALPHA_GPRELLOW 18 /* GP relative 32 bit, low 16 bits */
|
|
-#define R_ALPHA_OP_PSUB 14 /* OP stack subtract */
|
|
+#define R_ALPHA_GPREL16 19 /* GP relative 16 bit */
|
|
-#define R_ALPHA_OP_PRSHIFT 15 /* OP stack right shift */
|
|
|
|
-#define R_ALPHA_GPVALUE 16
|
|
|
|
-#define R_ALPHA_GPRELHIGH 17
|
|
|
|
-#define R_ALPHA_GPRELLOW 18
|
|
|
|
-#define R_ALPHA_IMMED_GP_16 19
|
|
|
|
-#define R_ALPHA_IMMED_GP_HI32 20
|
|
|
|
-#define R_ALPHA_IMMED_SCN_HI32 21
|
|
|
|
-#define R_ALPHA_IMMED_BR_HI32 22
|
|
|
|
-#define R_ALPHA_IMMED_LO32 23
|
|
|
|
#define R_ALPHA_COPY 24 /* Copy symbol at runtime */
|
|
#define R_ALPHA_COPY 24 /* Copy symbol at runtime */
|
|
#define R_ALPHA_GLOB_DAT 25 /* Create GOT entry */
|
|
#define R_ALPHA_GLOB_DAT 25 /* Create GOT entry */
|
|
#define R_ALPHA_JMP_SLOT 26 /* Create PLT entry */
|
|
#define R_ALPHA_JMP_SLOT 26 /* Create PLT entry */
|
|
#define R_ALPHA_RELATIVE 27 /* Adjust by program base */
|
|
#define R_ALPHA_RELATIVE 27 /* Adjust by program base */
|
|
|
|
+#define R_ALPHA_TLS_GD_HI 28
|
|
|
|
+#define R_ALPHA_TLSGD 29
|
|
|
|
+#define R_ALPHA_TLS_LDM 30
|
|
|
|
+#define R_ALPHA_DTPMOD64 31
|
|
|
|
+#define R_ALPHA_GOTDTPREL 32
|
|
|
|
+#define R_ALPHA_DTPREL64 33
|
|
|
|
+#define R_ALPHA_DTPRELHI 34
|
|
|
|
+#define R_ALPHA_DTPRELLO 35
|
|
|
|
+#define R_ALPHA_DTPREL16 36
|
|
|
|
+#define R_ALPHA_GOTTPREL 37
|
|
|
|
+#define R_ALPHA_TPREL64 38
|
|
|
|
+#define R_ALPHA_TPRELHI 39
|
|
|
|
+#define R_ALPHA_TPRELLO 40
|
|
|
|
+#define R_ALPHA_TPREL16 41
|
|
/* Keep this the last entry. */
|
|
/* Keep this the last entry. */
|
|
-#define R_ALPHA_NUM 28
|
|
+#define R_ALPHA_NUM 46
|
|
|
|
+
|
|
|
|
+/* Magic values of the LITUSE relocation addend. */
|
|
|
|
+#define LITUSE_ALPHA_ADDR 0
|
|
|
|
+#define LITUSE_ALPHA_BASE 1
|
|
|
|
+#define LITUSE_ALPHA_BYTOFF 2
|
|
|
|
+#define LITUSE_ALPHA_JSR 3
|
|
|
|
+#define LITUSE_ALPHA_TLS_GD 4
|
|
|
|
+#define LITUSE_ALPHA_TLS_LDM 5
|
|
|
|
|
|
|
|
|
|
/* PowerPC specific declarations */
|
|
/* PowerPC specific declarations */
|
|
@@ -1781,6 +1882,78 @@ typedef Elf32_Addr Elf32_Conflict;
|
|
/* Keep this the last entry. */
|
|
/* Keep this the last entry. */
|
|
#define R_PPC_NUM 37
|
|
#define R_PPC_NUM 37
|
|
|
|
|
|
|
|
+/* PowerPC64 relocations defined by the ABIs */
|
|
|
|
+#define R_PPC64_NONE R_PPC_NONE
|
|
|
|
+#define R_PPC64_ADDR32 R_PPC_ADDR32 /* 32bit absolute address. */
|
|
|
|
+#define R_PPC64_ADDR24 R_PPC_ADDR24 /* 26bit address, word aligned. */
|
|
|
|
+#define R_PPC64_ADDR16 R_PPC_ADDR16 /* 16bit absolute address. */
|
|
|
|
+#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO /* lower 16bits of abs. address. */
|
|
|
|
+#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI /* high 16bits of abs. address. */
|
|
|
|
+#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA /* adjusted high 16bits. */
|
|
|
|
+#define R_PPC64_ADDR14 R_PPC_ADDR14 /* 16bit address, word aligned. */
|
|
|
|
+#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN
|
|
|
|
+#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN
|
|
|
|
+#define R_PPC64_REL24 R_PPC_REL24 /* PC relative 26 bit, word aligned. */
|
|
|
|
+#define R_PPC64_REL14 R_PPC_REL14 /* PC relative 16 bit. */
|
|
|
|
+#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN
|
|
|
|
+#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN
|
|
|
|
+#define R_PPC64_GOT16 R_PPC_GOT16
|
|
|
|
+#define R_PPC64_GOT16_LO R_PPC_GOT16_LO
|
|
|
|
+#define R_PPC64_GOT16_HI R_PPC_GOT16_HI
|
|
|
|
+#define R_PPC64_GOT16_HA R_PPC_GOT16_HA
|
|
|
|
+
|
|
|
|
+#define R_PPC64_COPY R_PPC_COPY
|
|
|
|
+#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT
|
|
|
|
+#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT
|
|
|
|
+#define R_PPC64_RELATIVE R_PPC_RELATIVE
|
|
|
|
+
|
|
|
|
+#define R_PPC64_UADDR32 R_PPC_UADDR32
|
|
|
|
+#define R_PPC64_UADDR16 R_PPC_UADDR16
|
|
|
|
+#define R_PPC64_REL32 R_PPC_REL32
|
|
|
|
+#define R_PPC64_PLT32 R_PPC_PLT32
|
|
|
|
+#define R_PPC64_PLTREL32 R_PPC_PLTREL32
|
|
|
|
+#define R_PPC64_PLT16_LO R_PPC_PLT16_LO
|
|
|
|
+#define R_PPC64_PLT16_HI R_PPC_PLT16_HI
|
|
|
|
+#define R_PPC64_PLT16_HA R_PPC_PLT16_HA
|
|
|
|
+
|
|
|
|
+#define R_PPC64_SECTOFF R_PPC_SECTOFF
|
|
|
|
+#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO
|
|
|
|
+#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI
|
|
|
|
+#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA
|
|
|
|
+#define R_PPC64_ADDR30 37 /* word30 (S + A - P) >> 2. */
|
|
|
|
+#define R_PPC64_ADDR64 38 /* doubleword64 S + A. */
|
|
|
|
+#define R_PPC64_ADDR16_HIGHER 39 /* half16 #higher(S + A). */
|
|
|
|
+#define R_PPC64_ADDR16_HIGHERA 40 /* half16 #highera(S + A). */
|
|
|
|
+#define R_PPC64_ADDR16_HIGHEST 41 /* half16 #highest(S + A). */
|
|
|
|
+#define R_PPC64_ADDR16_HIGHESTA 42 /* half16 #highesta(S + A). */
|
|
|
|
+#define R_PPC64_UADDR64 43 /* doubleword64 S + A. */
|
|
|
|
+#define R_PPC64_REL64 44 /* doubleword64 S + A - P. */
|
|
|
|
+#define R_PPC64_PLT64 45 /* doubleword64 L + A. */
|
|
|
|
+#define R_PPC64_PLTREL64 46 /* doubleword64 L + A - P. */
|
|
|
|
+#define R_PPC64_TOC16 47 /* half16* S + A - .TOC. */
|
|
|
|
+#define R_PPC64_TOC16_LO 48 /* half16 #lo(S + A - .TOC.). */
|
|
|
|
+#define R_PPC64_TOC16_HI 49 /* half16 #hi(S + A - .TOC.). */
|
|
|
|
+#define R_PPC64_TOC16_HA 50 /* half16 #ha(S + A - .TOC.). */
|
|
|
|
+#define R_PPC64_TOC 51 /* doubleword64 .TOC. */
|
|
|
|
+#define R_PPC64_PLTGOT16 52 /* half16* M + A. */
|
|
|
|
+#define R_PPC64_PLTGOT16_LO 53 /* half16 #lo(M + A). */
|
|
|
|
+#define R_PPC64_PLTGOT16_HI 54 /* half16 #hi(M + A). */
|
|
|
|
+#define R_PPC64_PLTGOT16_HA 55 /* half16 #ha(M + A). */
|
|
|
|
+
|
|
|
|
+#define R_PPC64_ADDR16_DS 56 /* half16ds* (S + A) >> 2. */
|
|
|
|
+#define R_PPC64_ADDR16_LO_DS 57 /* half16ds #lo(S + A) >> 2. */
|
|
|
|
+#define R_PPC64_GOT16_DS 58 /* half16ds* (G + A) >> 2. */
|
|
|
|
+#define R_PPC64_GOT16_LO_DS 59 /* half16ds #lo(G + A) >> 2. */
|
|
|
|
+#define R_PPC64_PLT16_LO_DS 60 /* half16ds #lo(L + A) >> 2. */
|
|
|
|
+#define R_PPC64_SECTOFF_DS 61 /* half16ds* (R + A) >> 2. */
|
|
|
|
+#define R_PPC64_SECTOFF_LO_DS 62 /* half16ds #lo(R + A) >> 2. */
|
|
|
|
+#define R_PPC64_TOC16_DS 63 /* half16ds* (S + A - .TOC.) >> 2. */
|
|
|
|
+#define R_PPC64_TOC16_LO_DS 64 /* half16ds #lo(S + A - .TOC.) >> 2. */
|
|
|
|
+#define R_PPC64_PLTGOT16_DS 65 /* half16ds* (M + A) >> 2. */
|
|
|
|
+#define R_PPC64_PLTGOT16_LO_DS 66 /* half16ds #lo(M + A) >> 2. */
|
|
|
|
+/* Keep this the last entry. */
|
|
|
|
+#define R_PPC64_NUM 67
|
|
|
|
+
|
|
/* The remaining relocs are from the Embedded ELF ABI, and are not
|
|
/* The remaining relocs are from the Embedded ELF ABI, and are not
|
|
in the SVR4 ELF ABI. */
|
|
in the SVR4 ELF ABI. */
|
|
#define R_PPC_EMB_NADDR32 101
|
|
#define R_PPC_EMB_NADDR32 101
|
|
@@ -1812,6 +1985,9 @@ typedef Elf32_Addr Elf32_Conflict;
|
|
that may still be in object files. */
|
|
that may still be in object files. */
|
|
#define R_PPC_TOC16 255
|
|
#define R_PPC_TOC16 255
|
|
|
|
|
|
|
|
+/* PowerPC64 specific values for the Dyn d_tag field. */
|
|
|
|
+#define DT_PPC64_GLINK (DT_LOPROC + 0)
|
|
|
|
+#define DT_PPC64_NUM 1
|
|
|
|
|
|
/* ARM specific declarations */
|
|
/* ARM specific declarations */
|
|
|
|
|
|
@@ -2029,6 +2205,19 @@ typedef Elf32_Addr Elf32_Conflict;
|
|
#define R_SH_SWITCH8 33
|
|
#define R_SH_SWITCH8 33
|
|
#define R_SH_GNU_VTINHERIT 34
|
|
#define R_SH_GNU_VTINHERIT 34
|
|
#define R_SH_GNU_VTENTRY 35
|
|
#define R_SH_GNU_VTENTRY 35
|
|
|
|
+#define R_SH_TLS_GD_32 144
|
|
|
|
+#define R_SH_TLS_LD_32 145
|
|
|
|
+#define R_SH_TLS_LDO_32 146
|
|
|
|
+#define R_SH_TLS_IE_32 147
|
|
|
|
+#define R_SH_TLS_LE_32 148
|
|
|
|
+#define R_SH_TLS_DTPMOD32 149
|
|
|
|
+#define R_SH_TLS_DTPOFF32 150
|
|
|
|
+#define R_SH_TLS_TPOFF32 151
|
|
|
|
+#define R_SH_TLS_GD_MOV 152
|
|
|
|
+#define R_SH_TLS_LDM_MOV 153
|
|
|
|
+#define R_SH_TLS_LDO_MOV 154
|
|
|
|
+#define R_SH_TLS_IE_MOV 155
|
|
|
|
+#define R_SH_TLS_LE_MOV 156
|
|
#define R_SH_GOT32 160
|
|
#define R_SH_GOT32 160
|
|
#define R_SH_PLT32 161
|
|
#define R_SH_PLT32 161
|
|
#define R_SH_COPY 162
|
|
#define R_SH_COPY 162
|
|
@@ -2042,36 +2231,36 @@ typedef Elf32_Addr Elf32_Conflict;
|
|
|
|
|
|
/* Additional s390 relocs */
|
|
/* Additional s390 relocs */
|
|
|
|
|
|
-#define R_390_NONE 0 /* No reloc. */
|
|
+#define R_390_NONE 0 /* No reloc. */
|
|
-#define R_390_8 1 /* Direct 8 bit. */
|
|
+#define R_390_8 1 /* Direct 8 bit. */
|
|
-#define R_390_12 2 /* Direct 12 bit. */
|
|
+#define R_390_12 2 /* Direct 12 bit. */
|
|
-#define R_390_16 3 /* Direct 16 bit. */
|
|
+#define R_390_16 3 /* Direct 16 bit. */
|
|
-#define R_390_32 4 /* Direct 32 bit. */
|
|
+#define R_390_32 4 /* Direct 32 bit. */
|
|
-#define R_390_PC32 5 /* PC relative 32 bit. */
|
|
+#define R_390_PC32 5 /* PC relative 32 bit. */
|
|
-#define R_390_GOT12 6 /* 12 bit GOT offset. */
|
|
+#define R_390_GOT12 6 /* 12 bit GOT offset. */
|
|
-#define R_390_GOT32 7 /* 32 bit GOT offset. */
|
|
+#define R_390_GOT32 7 /* 32 bit GOT offset. */
|
|
-#define R_390_PLT32 8 /* 32 bit PC relative PLT address. */
|
|
+#define R_390_PLT32 8 /* 32 bit PC relative PLT address. */
|
|
-#define R_390_COPY 9 /* Copy symbol at runtime. */
|
|
+#define R_390_COPY 9 /* Copy symbol at runtime. */
|
|
-#define R_390_GLOB_DAT 10 /* Create GOT entry. */
|
|
+#define R_390_GLOB_DAT 10 /* Create GOT entry. */
|
|
-#define R_390_JMP_SLOT 11 /* Create PLT entry. */
|
|
+#define R_390_JMP_SLOT 11 /* Create PLT entry. */
|
|
-#define R_390_RELATIVE 12 /* Adjust by program base. */
|
|
+#define R_390_RELATIVE 12 /* Adjust by program base. */
|
|
-#define R_390_GOTOFF 13 /* 32 bit offset to GOT. */
|
|
+#define R_390_GOTOFF 13 /* 32 bit offset to GOT. */
|
|
-#define R_390_GOTPC 14 /* 32 bit PC relative offset to GOT. */
|
|
+#define R_390_GOTPC 14 /* 32 bit PC relative offset to GOT. */
|
|
-#define R_390_GOT16 15 /* 16 bit GOT offset. */
|
|
+#define R_390_GOT16 15 /* 16 bit GOT offset. */
|
|
-#define R_390_PC16 16 /* PC relative 16 bit. */
|
|
+#define R_390_PC16 16 /* PC relative 16 bit. */
|
|
-#define R_390_PC16DBL 17 /* PC relative 16 bit shifted by 1. */
|
|
+#define R_390_PC16DBL 17 /* PC relative 16 bit shifted by 1. */
|
|
-#define R_390_PLT16DBL 18 /* 16 bit PC rel. PLT shifted by 1. */
|
|
+#define R_390_PLT16DBL 18 /* 16 bit PC rel. PLT shifted by 1. */
|
|
-#define R_390_PC32DBL 19 /* PC relative 32 bit shifted by 1. */
|
|
+#define R_390_PC32DBL 19 /* PC relative 32 bit shifted by 1. */
|
|
-#define R_390_PLT32DBL 20 /* 32 bit PC rel. PLT shifted by 1. */
|
|
+#define R_390_PLT32DBL 20 /* 32 bit PC rel. PLT shifted by 1. */
|
|
-#define R_390_GOTPCDBL 21 /* 32 bit PC rel. GOT shifted by 1. */
|
|
+#define R_390_GOTPCDBL 21 /* 32 bit PC rel. GOT shifted by 1. */
|
|
-#define R_390_64 22 /* Direct 64 bit. */
|
|
+#define R_390_64 22 /* Direct 64 bit. */
|
|
-#define R_390_PC64 23 /* PC relative 64 bit. */
|
|
+#define R_390_PC64 23 /* PC relative 64 bit. */
|
|
-#define R_390_GOT64 24 /* 64 bit GOT offset. */
|
|
+#define R_390_GOT64 24 /* 64 bit GOT offset. */
|
|
-#define R_390_PLT64 25 /* 64 bit PC relative PLT address. */
|
|
+#define R_390_PLT64 25 /* 64 bit PC relative PLT address. */
|
|
-#define R_390_GOTENT 26 /* 32 bit PC rel. to GOT entry >> 1. */
|
|
+#define R_390_GOTENT 26 /* 32 bit PC rel. to GOT entry >> 1. */
|
|
|
|
|
|
/* Keep this the last entry. */
|
|
/* Keep this the last entry. */
|
|
-#define R_390_NUM 19
|
|
+#define R_390_NUM 27
|
|
|
|
|
|
/* CRIS relocations. */
|
|
/* CRIS relocations. */
|
|
#define R_CRIS_NONE 0
|
|
#define R_CRIS_NONE 0
|
|
@@ -2095,8 +2284,56 @@ typedef Elf32_Addr Elf32_Conflict;
|
|
#define R_CRIS_32_PLT_GOTREL 18
|
|
#define R_CRIS_32_PLT_GOTREL 18
|
|
#define R_CRIS_32_PLT_PCREL 19
|
|
#define R_CRIS_32_PLT_PCREL 19
|
|
|
|
|
|
|
|
+/* Keep this the last entry. */
|
|
#define R_CRIS_NUM 20
|
|
#define R_CRIS_NUM 20
|
|
|
|
|
|
|
|
+/* AMD x86-64 relocations. */
|
|
|
|
+#define R_X86_64_NONE 0 /* No reloc */
|
|
|
|
+#define R_X86_64_64 1 /* Direct 64 bit */
|
|
|
|
+#define R_X86_64_PC32 2 /* PC relative 32 bit signed */
|
|
|
|
+#define R_X86_64_GOT32 3 /* 32 bit GOT entry */
|
|
|
|
+#define R_X86_64_PLT32 4 /* 32 bit PLT address */
|
|
|
|
+#define R_X86_64_COPY 5 /* Copy symbol at runtime */
|
|
|
|
+#define R_X86_64_GLOB_DAT 6 /* Create GOT entry */
|
|
|
|
+#define R_X86_64_JUMP_SLOT 7 /* Create PLT entry */
|
|
|
|
+#define R_X86_64_RELATIVE 8 /* Adjust by program base */
|
|
|
|
+#define R_X86_64_GOTPCREL 9 /* 32 bit signed PC relative
|
|
|
|
+ offset to GOT */
|
|
|
|
+#define R_X86_64_32 10 /* Direct 32 bit zero extended */
|
|
|
|
+#define R_X86_64_32S 11 /* Direct 32 bit sign extended */
|
|
|
|
+#define R_X86_64_16 12 /* Direct 16 bit zero extended */
|
|
|
|
+#define R_X86_64_PC16 13 /* 16 bit sign extended pc relative */
|
|
|
|
+#define R_X86_64_8 14 /* Direct 8 bit sign extended */
|
|
|
|
+#define R_X86_64_PC8 15 /* 8 bit sign extended pc relative */
|
|
|
|
+#define R_X86_64_DTPMOD64 16 /* ID of module containing symbol */
|
|
|
|
+#define R_X86_64_DTPOFF64 17 /* Offset in module's TLS block */
|
|
|
|
+#define R_X86_64_TPOFF64 18 /* Offset in initial TLS block */
|
|
|
|
+#define R_X86_64_TLSGD 19 /* 32 bit signed PC relative offset
|
|
|
|
+ to two GOT entries for GD symbol */
|
|
|
|
+#define R_X86_64_TLSLD 20 /* 32 bit signed PC relative offset
|
|
|
|
+ to two GOT entries for LD symbol */
|
|
|
|
+#define R_X86_64_DTPOFF32 21 /* Offset in TLS block */
|
|
|
|
+#define r_x86_64_GOTTPOFF 22 /* 32 bit signed PC relative offset
|
|
|
|
+ to GOT entry for IE symbol */
|
|
|
|
+#define R_X86_64_TPOFF32 23 /* Offset in initial TLS block */
|
|
|
|
+
|
|
|
|
+/* Keep this the last entry. */
|
|
|
|
+#define R_X86_64_NUM 24
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+/* i960 Relocations */
|
|
|
|
+#define R_960_NONE 0
|
|
|
|
+#define R_960_12 1
|
|
|
|
+#define R_960_32 2
|
|
|
|
+#define R_960_IP24 3
|
|
|
|
+#define R_960_SUB 4
|
|
|
|
+#define R_960_OPTCALL 5
|
|
|
|
+#define R_960_OPTCALLX 6
|
|
|
|
+#define R_960_OPTCALLXA 7
|
|
|
|
+/* Keep this the last entry. */
|
|
|
|
+#define R_960_NUM 8
|
|
|
|
+
|
|
|
|
+
|
|
/* v850 relocations. */
|
|
/* v850 relocations. */
|
|
#define R_V850_NONE 0
|
|
#define R_V850_NONE 0
|
|
#define R_V850_9_PCREL 1
|
|
#define R_V850_9_PCREL 1
|
|
@@ -2128,18 +2365,9 @@ typedef Elf32_Addr Elf32_Conflict;
|
|
/* END CYGNUS LOCAL */
|
|
/* END CYGNUS LOCAL */
|
|
#define R_V850_GNU_VTINHERIT 23
|
|
#define R_V850_GNU_VTINHERIT 23
|
|
#define R_V850_GNU_VTENTRY 24
|
|
#define R_V850_GNU_VTENTRY 24
|
|
-
|
|
+/* Keep this the last entry. */
|
|
#define R_V850_NUM 25
|
|
#define R_V850_NUM 25
|
|
|
|
|
|
-/* i960 Relocations */
|
|
|
|
-#define R_960_NONE 0
|
|
|
|
-#define R_960_12 1
|
|
|
|
-#define R_960_32 2
|
|
|
|
-#define R_960_IP24 3
|
|
|
|
-#define R_960_SUB 4
|
|
|
|
-#define R_960_OPTCALL 5
|
|
|
|
-#define R_960_OPTCALLX 6
|
|
|
|
-#define R_960_OPTCALLXA 7
|
|
|
|
|
|
|
|
__END_DECLS
|
|
__END_DECLS
|
|
|
|
|