|
@@ -277,6 +277,7 @@ typedef struct {
|
|
#define SHT_PREINIT_ARRAY 16 /* ptrs to funcs called before init */
|
|
#define SHT_PREINIT_ARRAY 16 /* ptrs to funcs called before init */
|
|
#define SHT_GROUP 17 /* defines a section group */
|
|
#define SHT_GROUP 17 /* defines a section group */
|
|
#define SHT_SYMTAB_SHNDX 18 /* Section indices (see SHN_XINDEX). */
|
|
#define SHT_SYMTAB_SHNDX 18 /* Section indices (see SHN_XINDEX). */
|
|
|
|
+#define SHT_RELR 19 /* relative-only relocation section */
|
|
#define SHT_LOOS 0x60000000 /* reserved range for OS specific */
|
|
#define SHT_LOOS 0x60000000 /* reserved range for OS specific */
|
|
#define SHT_SUNW_dof 0x6ffffff4 /* used by dtrace */
|
|
#define SHT_SUNW_dof 0x6ffffff4 /* used by dtrace */
|
|
#define SHT_GNU_LIBLIST 0x6ffffff7 /* libraries to be prelinked */
|
|
#define SHT_GNU_LIBLIST 0x6ffffff7 /* libraries to be prelinked */
|
|
@@ -440,6 +441,9 @@ typedef struct {
|
|
# define ELF64_R_INFO(s, t) (((uint64_t)swap32(t) << 32) + (uint32_t)(s))
|
|
# define ELF64_R_INFO(s, t) (((uint64_t)swap32(t) << 32) + (uint32_t)(s))
|
|
#endif /* __mips64__ && __MIPSEL__ */
|
|
#endif /* __mips64__ && __MIPSEL__ */
|
|
|
|
|
|
|
|
+typedef Elf32_Word Elf32_Relr;
|
|
|
|
+typedef Elf64_Xword Elf64_Relr;
|
|
|
|
+
|
|
/* Program Header */
|
|
/* Program Header */
|
|
typedef struct {
|
|
typedef struct {
|
|
Elf32_Word p_type; /* segment type */
|
|
Elf32_Word p_type; /* segment type */
|
|
@@ -545,6 +549,9 @@ typedef struct {
|
|
#define DT_ENCODING 31 /* further DT_* follow encoding rules */
|
|
#define DT_ENCODING 31 /* further DT_* follow encoding rules */
|
|
#define DT_PREINIT_ARRAY 32 /* address of array of preinit func */
|
|
#define DT_PREINIT_ARRAY 32 /* address of array of preinit func */
|
|
#define DT_PREINIT_ARRAYSZ 33 /* size of array of preinit func */
|
|
#define DT_PREINIT_ARRAYSZ 33 /* size of array of preinit func */
|
|
|
|
+#define DT_RELRSZ 35 /* size of DT_RELR relocation table */
|
|
|
|
+#define DT_RELR 36 /* addr of DT_RELR relocation table */
|
|
|
|
+#define DT_RELRENT 37 /* size of DT_RELR relocation entry */
|
|
#define DT_LOOS 0x6000000d /* reserved range for OS */
|
|
#define DT_LOOS 0x6000000d /* reserved range for OS */
|
|
#define DT_HIOS 0x6ffff000 /* specific dynamic array tags */
|
|
#define DT_HIOS 0x6ffff000 /* specific dynamic array tags */
|
|
#define DT_LOPROC 0x70000000 /* reserved range for processor */
|
|
#define DT_LOPROC 0x70000000 /* reserved range for processor */
|
|
@@ -740,6 +747,7 @@ struct elf_args {
|
|
# define Elf_Sym Elf32_Sym
|
|
# define Elf_Sym Elf32_Sym
|
|
# define Elf_Rel Elf32_Rel
|
|
# define Elf_Rel Elf32_Rel
|
|
# define Elf_RelA Elf32_Rela
|
|
# define Elf_RelA Elf32_Rela
|
|
|
|
+# define Elf_Relr Elf32_Relr
|
|
# define Elf_Dyn Elf32_Dyn
|
|
# define Elf_Dyn Elf32_Dyn
|
|
# define Elf_Half Elf32_Half
|
|
# define Elf_Half Elf32_Half
|
|
# define Elf_Word Elf32_Word
|
|
# define Elf_Word Elf32_Word
|
|
@@ -767,6 +775,7 @@ struct elf_args {
|
|
# define Elf_Sym Elf64_Sym
|
|
# define Elf_Sym Elf64_Sym
|
|
# define Elf_Rel Elf64_Rel
|
|
# define Elf_Rel Elf64_Rel
|
|
# define Elf_RelA Elf64_Rela
|
|
# define Elf_RelA Elf64_Rela
|
|
|
|
+# define Elf_Relr Elf64_Relr
|
|
# define Elf_Dyn Elf64_Dyn
|
|
# define Elf_Dyn Elf64_Dyn
|
|
# define Elf_Half Elf64_Half
|
|
# define Elf_Half Elf64_Half
|
|
# define Elf_Word Elf64_Word
|
|
# define Elf_Word Elf64_Word
|