ldso: support DT_RELR relative relocation format
[musl] / include / elf.h
index 78906f1..9e980a2 100644 (file)
@@ -314,7 +314,8 @@ typedef struct {
 #define EM_AMDGPU      224
 #define EM_RISCV       243
 #define EM_BPF         247
-#define EM_NUM         248
+#define EM_CSKY                252
+#define EM_NUM         253
 
 #define EM_ALPHA       0x9026
 
@@ -384,7 +385,8 @@ typedef struct {
 #define SHT_PREINIT_ARRAY 16
 #define SHT_GROUP        17
 #define SHT_SYMTAB_SHNDX  18
-#define        SHT_NUM           19
+#define SHT_RELR         19
+#define        SHT_NUM           20
 #define SHT_LOOS         0x60000000
 #define SHT_GNU_ATTRIBUTES 0x6ffffff5
 #define SHT_GNU_HASH     0x6ffffff6
@@ -602,6 +604,7 @@ typedef struct {
 #define PT_GNU_EH_FRAME        0x6474e550
 #define PT_GNU_STACK   0x6474e551
 #define PT_GNU_RELRO   0x6474e552
+#define PT_GNU_PROPERTY        0x6474e553
 #define PT_LOSUNW      0x6ffffffa
 #define PT_SUNWBSS     0x6ffffffa
 #define PT_SUNWSTACK   0x6ffffffb
@@ -681,10 +684,19 @@ typedef struct {
 #define NT_ARM_HW_WATCH        0x403
 #define NT_ARM_SYSTEM_CALL     0x404
 #define NT_ARM_SVE     0x405
+#define NT_ARM_PAC_MASK        0x406
+#define NT_ARM_PACA_KEYS       0x407
+#define NT_ARM_PACG_KEYS       0x408
+#define NT_ARM_TAGGED_ADDR_CTRL        0x409
+#define NT_ARM_PAC_ENABLED_KEYS        0x40a
 #define NT_METAG_CBUF  0x500
 #define NT_METAG_RPIPE 0x501
 #define NT_METAG_TLS   0x502
 #define NT_ARC_V2      0x600
+#define NT_VMCOREDD    0x700
+#define NT_MIPS_DSP    0x800
+#define NT_MIPS_FP_MODE        0x801
+#define NT_MIPS_MSA    0x802
 #define NT_VERSION     1
 
 
@@ -743,7 +755,10 @@ typedef struct {
 #define DT_PREINIT_ARRAY 32
 #define DT_PREINIT_ARRAYSZ 33
 #define DT_SYMTAB_SHNDX        34
-#define        DT_NUM          35
+#define DT_RELRSZ      35
+#define DT_RELR                36
+#define DT_RELRENT     37
+#define        DT_NUM          38
 #define DT_LOOS                0x6000000d
 #define DT_HIOS                0x6ffff000
 #define DT_LOPROC      0x70000000
@@ -1035,6 +1050,7 @@ typedef struct {
 #define AT_L3_CACHESIZE                46
 #define AT_L3_CACHEGEOMETRY    47
 
+#define AT_MINSIGSTKSZ         51
 
 
 typedef struct {
@@ -1076,6 +1092,7 @@ typedef struct {
 
 #define NT_GNU_BUILD_ID        3
 #define NT_GNU_GOLD_VERSION    4
+#define NT_GNU_PROPERTY_TYPE_0 5
 
 
 
@@ -1129,7 +1146,25 @@ typedef struct {
 #define R_68K_GLOB_DAT 20
 #define R_68K_JMP_SLOT 21
 #define R_68K_RELATIVE 22
-#define R_68K_NUM      23
+#define R_68K_TLS_GD32 25
+#define R_68K_TLS_GD16 26
+#define R_68K_TLS_GD8  27
+#define R_68K_TLS_LDM32        28
+#define R_68K_TLS_LDM16        29
+#define R_68K_TLS_LDM8 30
+#define R_68K_TLS_LDO32        31
+#define R_68K_TLS_LDO16        32
+#define R_68K_TLS_LDO8 33
+#define R_68K_TLS_IE32 34
+#define R_68K_TLS_IE16 35
+#define R_68K_TLS_IE8  36
+#define R_68K_TLS_LE32 37
+#define R_68K_TLS_LE16 38
+#define R_68K_TLS_LE8  39
+#define R_68K_TLS_DTPMOD32     40
+#define R_68K_TLS_DTPREL32     41
+#define R_68K_TLS_TPREL32      42
+#define R_68K_NUM      43
 
 #define R_386_NONE        0
 #define R_386_32          1
@@ -2599,6 +2634,61 @@ enum
 #define R_ARM_NUM              256
 
 
+#define R_CKCORE_NONE               0
+#define R_CKCORE_ADDR32             1
+#define R_CKCORE_PCRELIMM8BY4       2
+#define R_CKCORE_PCRELIMM11BY2      3
+#define R_CKCORE_PCREL32            5
+#define R_CKCORE_PCRELJSR_IMM11BY2  6
+#define R_CKCORE_RELATIVE           9
+#define R_CKCORE_COPY               10
+#define R_CKCORE_GLOB_DAT           11
+#define R_CKCORE_JUMP_SLOT          12
+#define R_CKCORE_GOTOFF             13
+#define R_CKCORE_GOTPC              14
+#define R_CKCORE_GOT32              15
+#define R_CKCORE_PLT32              16
+#define R_CKCORE_ADDRGOT            17
+#define R_CKCORE_ADDRPLT            18
+#define R_CKCORE_PCREL_IMM26BY2     19
+#define R_CKCORE_PCREL_IMM16BY2     20
+#define R_CKCORE_PCREL_IMM16BY4     21
+#define R_CKCORE_PCREL_IMM10BY2     22
+#define R_CKCORE_PCREL_IMM10BY4     23
+#define R_CKCORE_ADDR_HI16          24
+#define R_CKCORE_ADDR_LO16          25
+#define R_CKCORE_GOTPC_HI16         26
+#define R_CKCORE_GOTPC_LO16         27
+#define R_CKCORE_GOTOFF_HI16        28
+#define R_CKCORE_GOTOFF_LO16        29
+#define R_CKCORE_GOT12              30
+#define R_CKCORE_GOT_HI16           31
+#define R_CKCORE_GOT_LO16           32
+#define R_CKCORE_PLT12              33
+#define R_CKCORE_PLT_HI16           34
+#define R_CKCORE_PLT_LO16           35
+#define R_CKCORE_ADDRGOT_HI16       36
+#define R_CKCORE_ADDRGOT_LO16       37
+#define R_CKCORE_ADDRPLT_HI16       38
+#define R_CKCORE_ADDRPLT_LO16       39
+#define R_CKCORE_PCREL_JSR_IMM26BY2 40
+#define R_CKCORE_TOFFSET_LO16       41
+#define R_CKCORE_DOFFSET_LO16       42
+#define R_CKCORE_PCREL_IMM18BY2     43
+#define R_CKCORE_DOFFSET_IMM18      44
+#define R_CKCORE_DOFFSET_IMM18BY2   45
+#define R_CKCORE_DOFFSET_IMM18BY4   46
+#define R_CKCORE_GOT_IMM18BY4       48
+#define R_CKCORE_PLT_IMM18BY4       49
+#define R_CKCORE_PCREL_IMM7BY4      50
+#define R_CKCORE_TLS_LE32           51
+#define R_CKCORE_TLS_IE32           52
+#define R_CKCORE_TLS_GD32           53
+#define R_CKCORE_TLS_LDM32          54
+#define R_CKCORE_TLS_LDO32          55
+#define R_CKCORE_TLS_DTPMOD32       56
+#define R_CKCORE_TLS_DTPOFF32       57
+#define R_CKCORE_TLS_TPOFF32        58
 
 
 #define EF_IA_64_MASKOS                0x0000000f
@@ -3146,6 +3236,62 @@ enum
 #define R_BPF_NONE             0
 #define R_BPF_MAP_FD           1
 
+#define R_RISCV_NONE            0
+#define R_RISCV_32              1
+#define R_RISCV_64              2
+#define R_RISCV_RELATIVE        3
+#define R_RISCV_COPY            4
+#define R_RISCV_JUMP_SLOT       5
+#define R_RISCV_TLS_DTPMOD32    6
+#define R_RISCV_TLS_DTPMOD64    7
+#define R_RISCV_TLS_DTPREL32    8
+#define R_RISCV_TLS_DTPREL64    9
+#define R_RISCV_TLS_TPREL32     10
+#define R_RISCV_TLS_TPREL64     11
+
+#define R_RISCV_BRANCH          16
+#define R_RISCV_JAL             17
+#define R_RISCV_CALL            18
+#define R_RISCV_CALL_PLT        19
+#define R_RISCV_GOT_HI20        20
+#define R_RISCV_TLS_GOT_HI20    21
+#define R_RISCV_TLS_GD_HI20     22
+#define R_RISCV_PCREL_HI20      23
+#define R_RISCV_PCREL_LO12_I    24
+#define R_RISCV_PCREL_LO12_S    25
+#define R_RISCV_HI20            26
+#define R_RISCV_LO12_I          27
+#define R_RISCV_LO12_S          28
+#define R_RISCV_TPREL_HI20      29
+#define R_RISCV_TPREL_LO12_I    30
+#define R_RISCV_TPREL_LO12_S    31
+#define R_RISCV_TPREL_ADD       32
+#define R_RISCV_ADD8            33
+#define R_RISCV_ADD16           34
+#define R_RISCV_ADD32           35
+#define R_RISCV_ADD64           36
+#define R_RISCV_SUB8            37
+#define R_RISCV_SUB16           38
+#define R_RISCV_SUB32           39
+#define R_RISCV_SUB64           40
+#define R_RISCV_GNU_VTINHERIT   41
+#define R_RISCV_GNU_VTENTRY     42
+#define R_RISCV_ALIGN           43
+#define R_RISCV_RVC_BRANCH      44
+#define R_RISCV_RVC_JUMP        45
+#define R_RISCV_RVC_LUI         46
+#define R_RISCV_GPREL_I         47
+#define R_RISCV_GPREL_S         48
+#define R_RISCV_TPREL_I         49
+#define R_RISCV_TPREL_S         50
+#define R_RISCV_RELAX           51
+#define R_RISCV_SUB6            52
+#define R_RISCV_SET6            53
+#define R_RISCV_SET8            54
+#define R_RISCV_SET16           55
+#define R_RISCV_SET32           56
+#define R_RISCV_32_PCREL        57
+
 #ifdef __cplusplus
 }
 #endif