307 lines
11 KiB
Diff
307 lines
11 KiB
Diff
|
commit 6d2e7e7100429df3d548251e9685a1eb7bb434cb
|
||
|
Author: Mark Wielaard <mark@klomp.org>
|
||
|
Date: Tue Aug 15 22:43:01 2017 +0200
|
||
|
|
||
|
libelf: Sync elf.h from glibc.
|
||
|
|
||
|
Add new powerpc note descriptors.
|
||
|
|
||
|
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||
|
|
||
|
diff --git a/libelf/elf.h b/libelf/elf.h
|
||
|
index fa35203..84a7126 100644
|
||
|
--- a/libelf/elf.h
|
||
|
+++ b/libelf/elf.h
|
||
|
@@ -1,5 +1,5 @@
|
||
|
/* This file defines standard ELF types, structures, and macros.
|
||
|
- Copyright (C) 1995-2016 Free Software Foundation, Inc.
|
||
|
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
|
||
|
This file is part of the GNU C Library.
|
||
|
|
||
|
The GNU C Library is free software; you can redistribute it and/or
|
||
|
@@ -762,8 +762,23 @@ typedef struct
|
||
|
#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */
|
||
|
#define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */
|
||
|
#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */
|
||
|
+#define NT_PPC_TAR 0x103 /* Target Address Register */
|
||
|
+#define NT_PPC_PPR 0x104 /* Program Priority Register */
|
||
|
+#define NT_PPC_DSCR 0x105 /* Data Stream Control Register */
|
||
|
+#define NT_PPC_EBB 0x106 /* Event Based Branch Registers */
|
||
|
+#define NT_PPC_PMU 0x107 /* Performance Monitor Registers */
|
||
|
+#define NT_PPC_TM_CGPR 0x108 /* TM checkpointed GPR Registers */
|
||
|
+#define NT_PPC_TM_CFPR 0x109 /* TM checkpointed FPR Registers */
|
||
|
+#define NT_PPC_TM_CVMX 0x10a /* TM checkpointed VMX Registers */
|
||
|
+#define NT_PPC_TM_CVSX 0x10b /* TM checkpointed VSX Registers */
|
||
|
+#define NT_PPC_TM_SPR 0x10c /* TM Special Purpose Registers */
|
||
|
+#define NT_PPC_TM_CTAR 0x10d /* TM checkpointed Target Address
|
||
|
+ Register */
|
||
|
+#define NT_PPC_TM_CPPR 0x10e /* TM checkpointed Program Priority
|
||
|
+ Register */
|
||
|
+#define NT_PPC_TM_CDSCR 0x10f /* TM checkpointed Data Stream Control
|
||
|
+ Register */
|
||
|
#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */
|
||
|
-#define NT_PPC_TM_SPR 0x10c /* PowerPC HW Transactional Memory SPRs */
|
||
|
#define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */
|
||
|
#define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */
|
||
|
#define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */
|
||
|
@@ -1171,6 +1186,18 @@ typedef struct
|
||
|
#define AT_L2_CACHESHAPE 36
|
||
|
#define AT_L3_CACHESHAPE 37
|
||
|
|
||
|
+/* Shapes of the caches, with more room to describe them.
|
||
|
+ *GEOMETRY are comprised of cache line size in bytes in the bottom 16 bits
|
||
|
+ and the cache associativity in the next 16 bits. */
|
||
|
+#define AT_L1I_CACHESIZE 40
|
||
|
+#define AT_L1I_CACHEGEOMETRY 41
|
||
|
+#define AT_L1D_CACHESIZE 42
|
||
|
+#define AT_L1D_CACHEGEOMETRY 43
|
||
|
+#define AT_L2_CACHESIZE 44
|
||
|
+#define AT_L2_CACHEGEOMETRY 45
|
||
|
+#define AT_L3_CACHESIZE 46
|
||
|
+#define AT_L3_CACHEGEOMETRY 47
|
||
|
+
|
||
|
/* Note section contents. Each entry in the note section begins with
|
||
|
a header of a fixed form. */
|
||
|
|
||
|
@@ -2533,9 +2560,10 @@ enum
|
||
|
#define DT_PPC64_OPT (DT_LOPROC + 3)
|
||
|
#define DT_PPC64_NUM 4
|
||
|
|
||
|
-/* PowerPC64 specific values for the DT_PPC64_OPT Dyn entry. */
|
||
|
+/* PowerPC64 specific bits in the DT_PPC64_OPT Dyn entry. */
|
||
|
#define PPC64_OPT_TLS 1
|
||
|
#define PPC64_OPT_MULTI_TOC 2
|
||
|
+#define PPC64_OPT_LOCALENTRY 4
|
||
|
|
||
|
/* PowerPC64 specific values for the Elf64_Sym st_other field. */
|
||
|
#define STO_PPC64_LOCAL_BIT 5
|
||
|
@@ -3683,6 +3711,68 @@ enum
|
||
|
#define R_BPF_NONE 0 /* No reloc */
|
||
|
#define R_BPF_MAP_FD 1 /* Map fd to pointer */
|
||
|
|
||
|
+/* Imagination Meta specific relocations. */
|
||
|
+
|
||
|
+#define R_METAG_HIADDR16 0
|
||
|
+#define R_METAG_LOADDR16 1
|
||
|
+#define R_METAG_ADDR32 2 /* 32bit absolute address */
|
||
|
+#define R_METAG_NONE 3 /* No reloc */
|
||
|
+#define R_METAG_RELBRANCH 4
|
||
|
+#define R_METAG_GETSETOFF 5
|
||
|
+
|
||
|
+/* Backward compatability */
|
||
|
+#define R_METAG_REG32OP1 6
|
||
|
+#define R_METAG_REG32OP2 7
|
||
|
+#define R_METAG_REG32OP3 8
|
||
|
+#define R_METAG_REG16OP1 9
|
||
|
+#define R_METAG_REG16OP2 10
|
||
|
+#define R_METAG_REG16OP3 11
|
||
|
+#define R_METAG_REG32OP4 12
|
||
|
+
|
||
|
+#define R_METAG_HIOG 13
|
||
|
+#define R_METAG_LOOG 14
|
||
|
+
|
||
|
+#define R_METAG_REL8 15
|
||
|
+#define R_METAG_REL16 16
|
||
|
+
|
||
|
+/* GNU */
|
||
|
+#define R_METAG_GNU_VTINHERIT 30
|
||
|
+#define R_METAG_GNU_VTENTRY 31
|
||
|
+
|
||
|
+/* PIC relocations */
|
||
|
+#define R_METAG_HI16_GOTOFF 32
|
||
|
+#define R_METAG_LO16_GOTOFF 33
|
||
|
+#define R_METAG_GETSET_GOTOFF 34
|
||
|
+#define R_METAG_GETSET_GOT 35
|
||
|
+#define R_METAG_HI16_GOTPC 36
|
||
|
+#define R_METAG_LO16_GOTPC 37
|
||
|
+#define R_METAG_HI16_PLT 38
|
||
|
+#define R_METAG_LO16_PLT 39
|
||
|
+#define R_METAG_RELBRANCH_PLT 40
|
||
|
+#define R_METAG_GOTOFF 41
|
||
|
+#define R_METAG_PLT 42
|
||
|
+#define R_METAG_COPY 43
|
||
|
+#define R_METAG_JMP_SLOT 44
|
||
|
+#define R_METAG_RELATIVE 45
|
||
|
+#define R_METAG_GLOB_DAT 46
|
||
|
+
|
||
|
+/* TLS relocations */
|
||
|
+#define R_METAG_TLS_GD 47
|
||
|
+#define R_METAG_TLS_LDM 48
|
||
|
+#define R_METAG_TLS_LDO_HI16 49
|
||
|
+#define R_METAG_TLS_LDO_LO16 50
|
||
|
+#define R_METAG_TLS_LDO 51
|
||
|
+#define R_METAG_TLS_IE 52
|
||
|
+#define R_METAG_TLS_IENONPIC 53
|
||
|
+#define R_METAG_TLS_IENONPIC_HI16 54
|
||
|
+#define R_METAG_TLS_IENONPIC_LO16 55
|
||
|
+#define R_METAG_TLS_TPOFF 56
|
||
|
+#define R_METAG_TLS_DTPMOD 57
|
||
|
+#define R_METAG_TLS_DTPOFF 58
|
||
|
+#define R_METAG_TLS_LE 59
|
||
|
+#define R_METAG_TLS_LE_HI16 60
|
||
|
+#define R_METAG_TLS_LE_LO16 61
|
||
|
+
|
||
|
__END_DECLS
|
||
|
|
||
|
#endif /* elf.h */
|
||
|
commit 88f3d2daa107b09fdba376a82bce7ed534c93645
|
||
|
Author: Mark Wielaard <mark@klomp.org>
|
||
|
Date: Sat Feb 17 00:23:19 2018 +0100
|
||
|
|
||
|
libelf: Sync elf.h from glibc.
|
||
|
|
||
|
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||
|
|
||
|
diff --git a/libelf/elf.h b/libelf/elf.h
|
||
|
index 84a7126..4f43577 100644
|
||
|
--- a/libelf/elf.h
|
||
|
+++ b/libelf/elf.h
|
||
|
@@ -1,5 +1,5 @@
|
||
|
/* This file defines standard ELF types, structures, and macros.
|
||
|
- Copyright (C) 1995-2017 Free Software Foundation, Inc.
|
||
|
+ Copyright (C) 1995-2018 Free Software Foundation, Inc.
|
||
|
This file is part of the GNU C Library.
|
||
|
|
||
|
The GNU C Library is free software; you can redistribute it and/or
|
||
|
@@ -739,6 +739,8 @@ typedef struct
|
||
|
/* Legal values for note segment descriptor types for core files. */
|
||
|
|
||
|
#define NT_PRSTATUS 1 /* Contains copy of prstatus struct */
|
||
|
+#define NT_PRFPREG 2 /* Contains copy of fpregset
|
||
|
+ struct. */
|
||
|
#define NT_FPREGSET 2 /* Contains copy of fpregset struct */
|
||
|
#define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */
|
||
|
#define NT_PRXREG 4 /* Contains copy of prxregset struct */
|
||
|
@@ -790,11 +792,20 @@ typedef struct
|
||
|
#define NT_S390_LAST_BREAK 0x306 /* s390 breaking event address */
|
||
|
#define NT_S390_SYSTEM_CALL 0x307 /* s390 system call restart data */
|
||
|
#define NT_S390_TDB 0x308 /* s390 transaction diagnostic block */
|
||
|
+#define NT_S390_VXRS_LOW 0x309 /* s390 vector registers 0-15
|
||
|
+ upper half. */
|
||
|
+#define NT_S390_VXRS_HIGH 0x30a /* s390 vector registers 16-31. */
|
||
|
+#define NT_S390_GS_CB 0x30b /* s390 guarded storage registers. */
|
||
|
+#define NT_S390_GS_BC 0x30c /* s390 guarded storage
|
||
|
+ broadcast control block. */
|
||
|
+#define NT_S390_RI_CB 0x30d /* s390 runtime instrumentation. */
|
||
|
#define NT_ARM_VFP 0x400 /* ARM VFP/NEON registers */
|
||
|
#define NT_ARM_TLS 0x401 /* ARM TLS register */
|
||
|
#define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */
|
||
|
#define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */
|
||
|
#define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */
|
||
|
+#define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension
|
||
|
+ registers */
|
||
|
|
||
|
/* Legal values for the note segment descriptor types for object files. */
|
||
|
|
||
|
@@ -859,7 +870,8 @@ typedef struct
|
||
|
#define DT_ENCODING 32 /* Start of encoded range */
|
||
|
#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_NUM 34 /* Number used */
|
||
|
+#define DT_SYMTAB_SHNDX 34 /* Address of SYMTAB_SHNDX section */
|
||
|
+#define DT_NUM 35 /* Number used */
|
||
|
#define DT_LOOS 0x6000000d /* Start of OS-specific */
|
||
|
#define DT_HIOS 0x6ffff000 /* End of OS-specific */
|
||
|
#define DT_LOPROC 0x70000000 /* Start of processor-specific */
|
||
|
@@ -967,6 +979,8 @@ typedef struct
|
||
|
#define DF_1_SYMINTPOSE 0x00800000 /* Object has individual interposers. */
|
||
|
#define DF_1_GLOBAUDIT 0x01000000 /* Global auditing required. */
|
||
|
#define DF_1_SINGLETON 0x02000000 /* Singleton symbols are used. */
|
||
|
+#define DF_1_STUB 0x04000000
|
||
|
+#define DF_1_PIE 0x08000000
|
||
|
|
||
|
/* Flags for the feature selection in DT_FEATURE_1. */
|
||
|
#define DTF_1_PARINIT 0x00000001
|
||
|
@@ -1263,6 +1277,62 @@ typedef struct
|
||
|
/* Version note generated by GNU gold containing a version string. */
|
||
|
#define NT_GNU_GOLD_VERSION 4
|
||
|
|
||
|
+/* Program property. */
|
||
|
+#define NT_GNU_PROPERTY_TYPE_0 5
|
||
|
+
|
||
|
+/* Note section name of program property. */
|
||
|
+#define NOTE_GNU_PROPERTY_SECTION_NAME ".note.gnu.property"
|
||
|
+
|
||
|
+/* Values used in GNU .note.gnu.property notes (NT_GNU_PROPERTY_TYPE_0). */
|
||
|
+
|
||
|
+/* Stack size. */
|
||
|
+#define GNU_PROPERTY_STACK_SIZE 1
|
||
|
+/* No copy relocation on protected data symbol. */
|
||
|
+#define GNU_PROPERTY_NO_COPY_ON_PROTECTED 2
|
||
|
+
|
||
|
+/* Processor-specific semantics, lo */
|
||
|
+#define GNU_PROPERTY_LOPROC 0xc0000000
|
||
|
+/* Processor-specific semantics, hi */
|
||
|
+#define GNU_PROPERTY_HIPROC 0xdfffffff
|
||
|
+/* Application-specific semantics, lo */
|
||
|
+#define GNU_PROPERTY_LOUSER 0xe0000000
|
||
|
+/* Application-specific semantics, hi */
|
||
|
+#define GNU_PROPERTY_HIUSER 0xffffffff
|
||
|
+
|
||
|
+/* The x86 instruction sets indicated by the corresponding bits are
|
||
|
+ used in program. Their support in the hardware is optional. */
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_USED 0xc0000000
|
||
|
+/* The x86 instruction sets indicated by the corresponding bits are
|
||
|
+ used in program and they must be supported by the hardware. */
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0000001
|
||
|
+/* X86 processor-specific features used in program. */
|
||
|
+#define GNU_PROPERTY_X86_FEATURE_1_AND 0xc0000002
|
||
|
+
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_486 (1U << 0)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_586 (1U << 1)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_686 (1U << 2)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_SSE (1U << 3)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_SSE2 (1U << 4)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_SSE3 (1U << 5)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_SSSE3 (1U << 6)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_SSE4_1 (1U << 7)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_SSE4_2 (1U << 8)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_AVX (1U << 9)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_AVX2 (1U << 10)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_AVX512F (1U << 11)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_AVX512CD (1U << 12)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_AVX512ER (1U << 13)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_AVX512PF (1U << 14)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_AVX512VL (1U << 15)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_AVX512DQ (1U << 16)
|
||
|
+#define GNU_PROPERTY_X86_ISA_1_AVX512BW (1U << 17)
|
||
|
+
|
||
|
+/* This indicates that all executable sections are compatible with
|
||
|
+ IBT. */
|
||
|
+#define GNU_PROPERTY_X86_FEATURE_1_IBT (1U << 0)
|
||
|
+/* This indicates that all executable sections are compatible with
|
||
|
+ SHSTK. */
|
||
|
+#define GNU_PROPERTY_X86_FEATURE_1_SHSTK (1U << 1)
|
||
|
|
||
|
/* Move records. */
|
||
|
typedef struct
|
||
|
@@ -3706,6 +3776,28 @@ enum
|
||
|
|
||
|
#define R_TILEGX_NUM 130
|
||
|
|
||
|
+/* RISC-V ELF Flags */
|
||
|
+#define EF_RISCV_RVC 0x0001
|
||
|
+#define EF_RISCV_FLOAT_ABI 0x0006
|
||
|
+#define EF_RISCV_FLOAT_ABI_SOFT 0x0000
|
||
|
+#define EF_RISCV_FLOAT_ABI_SINGLE 0x0002
|
||
|
+#define EF_RISCV_FLOAT_ABI_DOUBLE 0x0004
|
||
|
+#define EF_RISCV_FLOAT_ABI_QUAD 0x0006
|
||
|
+
|
||
|
+/* RISC-V relocations. */
|
||
|
+#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
|
||
|
+
|
||
|
/* BPF specific declarations. */
|
||
|
|
||
|
#define R_BPF_NONE 0 /* No reloc */
|