X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=include%2Felf%2Fcommon.h;h=e4bc53e35b413508a333a19b31b057ae23071509;hb=0772daccb3ebaf513badf4266e1948454b4455c1;hp=fc672de9f21e9212e34007e09d528088a54c73c2;hpb=b0ab06937385e0ae25cebf1991787d64f439bf12;p=binutils-gdb.git diff --git a/include/elf/common.h b/include/elf/common.h index fc672de9f21..e4bc53e35b4 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -1,5 +1,5 @@ /* ELF support for BFD. - Copyright (C) 1991-2020 Free Software Foundation, Inc. + Copyright (C) 1991-2022 Free Software Foundation, Inc. Written by Fred Fish @ Cygnus Support, from information published in "UNIX System V Release 4, Programmers Guide: ANSI C and @@ -77,8 +77,11 @@ #define ELFOSABI_OPENVOS 18 /* Stratus Technologies OpenVOS */ #define ELFOSABI_C6000_ELFABI 64 /* Bare-metal TMS320C6000 */ +#define ELFOSABI_AMDGPU_HSA 64 /* AMD HSA Runtime */ #define ELFOSABI_C6000_LINUX 65 /* Linux TMS320C6000 */ +#define ELFOSABI_AMDGPU_PAL 65 /* AMD PAL Runtime */ #define ELFOSABI_ARM_FDPIC 65 /* ARM FDPIC */ +#define ELFOSABI_AMDGPU_MESA3D 66 /* AMD Mesa3D Runtime */ #define ELFOSABI_ARM 97 /* ARM */ #define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */ @@ -317,7 +320,7 @@ #define EM_BA2 202 /* Beyond BA2 CPU architecture */ #define EM_XCORE 203 /* XMOS xCORE processor family */ #define EM_MCHP_PIC 204 /* Microchip 8-bit PIC(r) family */ -#define EM_INTEL205 205 /* Reserved by Intel */ +#define EM_INTELGT 205 /* Intel Graphics Technology */ #define EM_INTEL206 206 /* Reserved by Intel */ #define EM_INTEL207 207 /* Reserved by Intel */ #define EM_INTEL208 208 /* Reserved by Intel */ @@ -339,9 +342,24 @@ #define EM_AMDGPU 224 /* AMD GPU architecture */ #define EM_RISCV 243 /* RISC-V */ #define EM_LANAI 244 /* Lanai 32-bit processor. */ +#define EM_CEVA 245 /* CEVA Processor Architecture Family */ +#define EM_CEVA_X2 246 /* CEVA X2 Processor Family */ #define EM_BPF 247 /* Linux BPF – in-kernel virtual machine. */ +#define EM_GRAPHCORE_IPU 248 /* Graphcore Intelligent Processing Unit */ +#define EM_IMG1 249 /* Imagination Technologies */ #define EM_NFP 250 /* Netronome Flow Processor. */ +#define EM_VE 251 /* NEC Vector Engine */ #define EM_CSKY 252 /* C-SKY processor family. */ +#define EM_ARC_COMPACT3_64 253 /* Synopsys ARCv2.3 64-bit */ +#define EM_MCS6502 254 /* MOS Technology MCS 6502 processor */ +#define EM_ARC_COMPACT3 255 /* Synopsys ARCv2.3 32-bit */ +#define EM_KVX 256 /* Kalray VLIW core of the MPPA processor family */ +#define EM_65816 257 /* WDC 65816/65C816 */ +#define EM_LOONGARCH 258 /* LoongArch */ +#define EM_KF32 259 /* ChipON KungFu32 */ +#define EM_U16_U8CORE 260 /* LAPIS nX-U16/U8 */ +#define EM_TACHYUM 261 /* Tachyum */ +#define EM_56800EF 262 /* NXP 56800EF Digital Signal Controller (DSC) */ /* If it is necessary to assign new unofficial EM_* values, please pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision @@ -511,6 +529,7 @@ #define SHT_PREINIT_ARRAY 16 /* Array of ptrs to pre-init funcs */ #define SHT_GROUP 17 /* Section contains a section group */ #define SHT_SYMTAB_SHNDX 18 /* Indices for SHN_XINDEX entries */ +#define SHT_RELR 19 /* RELR relative relocations */ #define SHT_LOOS 0x60000000 /* First of OS specific semantics */ #define SHT_HIOS 0x6fffffff /* Last of OS specific semantics */ @@ -553,7 +572,7 @@ /* #define SHF_MASKOS 0x0F000000 *//* OS-specific semantics */ #define SHF_MASKOS 0x0FF00000 /* New value, Oct 4, 1999 Draft */ -#define SHF_GNU_BUILD_NOTE (1 << 20) /* Section contains GNU BUILD ATTRIBUTE notes. */ +#define SHF_GNU_RETAIN (1 << 21) /* Section should not be garbage collected by the linker. */ #define SHF_MASKPROC 0xF0000000 /* Processor-specific semantics */ /* This used to be implemented as a processor specific section flag. @@ -656,15 +675,45 @@ /* note name must be "LINUX". */ #define NT_ARM_HW_WATCH 0x403 /* AArch hardware watchpoint registers */ /* note name must be "LINUX". */ +#define NT_ARM_SYSTEM_CALL 0x404 /* AArch ARM system call number */ + /* note name must be "LINUX". */ #define NT_ARM_SVE 0x405 /* AArch SVE registers. */ /* note name must be "LINUX". */ #define NT_ARM_PAC_MASK 0x406 /* AArch pointer authentication code masks */ /* note name must be "LINUX". */ +#define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication address + keys */ + /* note name must be "LINUX". */ +#define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication generic + keys */ + /* note name must be "LINUX". */ +#define NT_ARM_TAGGED_ADDR_CTRL 0x409 /* AArch64 tagged address control + (prctl()) */ + /* note name must be "LINUX". */ +#define NT_ARM_PAC_ENABLED_KEYS 0x40a /* AArch64 pointer authentication + enabled keys (prctl()) */ + /* note name must be "LINUX". */ #define NT_ARC_V2 0x600 /* ARC HS accumulator/extra registers. */ /* note name must be "LINUX". */ +#define NT_LARCH_CPUCFG 0xa00 /* LoongArch CPU config registers */ + /* note name must be "LINUX". */ +#define NT_LARCH_CSR 0xa01 /* LoongArch Control State Registers */ + /* note name must be "LINUX". */ +#define NT_LARCH_LSX 0xa02 /* LoongArch SIMD eXtension registers */ + /* note name must be "LINUX". */ +#define NT_LARCH_LASX 0xa03 /* LoongArch Advanced SIMD eXtension registers */ + /* note name must be "LINUX". */ +#define NT_LARCH_LBT 0xa04 /* LoongArch Binary Translation registers */ + /* note name must be "CORE". */ +#define NT_RISCV_CSR 0x900 /* RISC-V Control and Status Registers */ + /* note name must be "LINUX". */ #define NT_SIGINFO 0x53494749 /* Fields of siginfo_t. */ #define NT_FILE 0x46494c45 /* Description of mapped files. */ +/* The range 0xff000000 to 0xffffffff is set aside for notes that don't + originate from any particular operating system. */ +#define NT_GDB_TDESC 0xff000000 /* Contains copy of GDB's target description XML. */ + /* Note segments for core files on dir-style procfs systems. */ #define NT_PSTATUS 10 /* Has a struct pstatus */ @@ -691,6 +740,7 @@ #define NT_FREEBSD_PROCSTAT_PSSTRINGS 15 /* Procstat ps_strings data. */ #define NT_FREEBSD_PROCSTAT_AUXV 16 /* Procstat auxv data. */ #define NT_FREEBSD_PTLWPINFO 17 /* Thread ptrace miscellaneous info. */ +#define NT_FREEBSD_X86_SEGBASES 0x200 /* x86 segment base registers */ /* Note segments for core files on NetBSD systems. Note name must start with "NetBSD-CORE". */ @@ -712,6 +762,29 @@ #define NT_OPENBSD_WCOOKIE 23 +/* Note segments for core files on Solaris systems. Note name + must start with "CORE". */ +#define SOLARIS_NT_PRSTATUS 1 +#define SOLARIS_NT_PRFPREG 2 +#define SOLARIS_NT_PRPSINFO 3 +#define SOLARIS_NT_PRXREG 4 +#define SOLARIS_NT_PLATFORM 5 +#define SOLARIS_NT_AUXV 6 +#define SOLARIS_NT_GWINDOWS 7 +#define SOLARIS_NT_ASRS 8 +#define SOLARIS_NT_LDT 9 +#define SOLARIS_NT_PSTATUS 10 +#define SOLARIS_NT_PSINFO 13 +#define SOLARIS_NT_PRCRED 14 +#define SOLARIS_NT_UTSNAME 15 +#define SOLARIS_NT_LWPSTATUS 16 +#define SOLARIS_NT_LWPSINFO 17 +#define SOLARIS_NT_PRPRIV 18 +#define SOLARIS_NT_PRPRIVINFO 19 +#define SOLARIS_NT_CONTENT 20 +#define SOLARIS_NT_ZONENAME 21 +#define SOLARIS_NT_PRCPUXREG 22 + /* Note segments for core files on SPU systems. Note name must start with "SPU/". */ @@ -721,6 +794,7 @@ #define NT_VERSION 1 /* Contains a version string. */ #define NT_ARCH 2 /* Contains an architecture string. */ +#define NT_GO_BUILDID 4 /* Contains GO buildid data. */ /* Values for notes in non-core files using name "GNU". */ @@ -754,6 +828,23 @@ #define GNU_PROPERTY_STACK_SIZE 1 #define GNU_PROPERTY_NO_COPY_ON_PROTECTED 2 +/* A 4-byte unsigned integer property: A bit is set if it is set in all + relocatable inputs. */ +#define GNU_PROPERTY_UINT32_AND_LO 0xb0000000 +#define GNU_PROPERTY_UINT32_AND_HI 0xb0007fff + +/* A 4-byte unsigned integer property: A bit is set if it is set in any + relocatable inputs. */ +#define GNU_PROPERTY_UINT32_OR_LO 0xb0008000 +#define GNU_PROPERTY_UINT32_OR_HI 0xb000ffff + +/* The needed properties by the object file. */ +#define GNU_PROPERTY_1_NEEDED GNU_PROPERTY_UINT32_OR_LO + +/* Set if the object file requires canonical function pointers and + cannot be used with copy relocation. */ +#define GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS (1U << 0) + /* Processor-specific semantics, lo */ #define GNU_PROPERTY_LOPROC 0xc0000000 /* Processor-specific semantics, hi */ @@ -830,6 +921,8 @@ #define GNU_PROPERTY_X86_FEATURE_1_IBT (1U << 0) #define GNU_PROPERTY_X86_FEATURE_1_SHSTK (1U << 1) +#define GNU_PROPERTY_X86_FEATURE_1_LAM_U48 (1U << 2) +#define GNU_PROPERTY_X86_FEATURE_1_LAM_U57 (1U << 3) #define GNU_PROPERTY_X86_FEATURE_2_X86 (1U << 0) #define GNU_PROPERTY_X86_FEATURE_2_X87 (1U << 1) @@ -896,6 +989,15 @@ #define NT_NETBSD_IDENT 1 #define NT_NETBSD_MARCH 5 +/* Values for NetBSD .note.netbsd.ident notes. Note name is "PaX". */ +#define NT_NETBSD_PAX 3 +#define NT_NETBSD_PAX_MPROTECT 0x01 /* Force enable Mprotect. */ +#define NT_NETBSD_PAX_NOMPROTECT 0x02 /* Force disable Mprotect. */ +#define NT_NETBSD_PAX_GUARD 0x04 /* Force enable Segvguard. */ +#define NT_NETBSD_PAX_NOGUARD 0x08 /* Force disable Segvguard. */ +#define NT_NETBSD_PAX_ASLR 0x10 /* Force enable ASLR. */ +#define NT_NETBSD_PAX_NOASLR 0x20 /* Force disable ASLR. */ + /* Values for OpenBSD .note.openbsd.ident notes. Note name is "OpenBSD". */ #define NT_OPENBSD_IDENT 1 @@ -904,6 +1006,9 @@ #define NT_FREEBSD_ABI_TAG 1 +/* Values for FDO .note.package notes as defined on https://systemd.io/COREDUMP_PACKAGE_METADATA/ */ +#define FDO_PACKAGING_METADATA 0xcafe1a7e + /* These three macros disassemble and assemble a symbol table st_info field, which contains the symbol binding and symbol type. The STB_ and STT_ defines identify the binding and type. */ @@ -1009,10 +1114,13 @@ #define DT_FINI_ARRAYSZ 28 #define DT_RUNPATH 29 #define DT_FLAGS 30 -#define DT_ENCODING 32 #define DT_PREINIT_ARRAY 32 #define DT_PREINIT_ARRAYSZ 33 #define DT_SYMTAB_SHNDX 34 +#define DT_RELRSZ 35 +#define DT_RELR 36 +#define DT_RELRENT 37 +#define DT_ENCODING 38 /* Note, the Oct 4, 1999 draft of the ELF ABI changed the values for DT_LOOS and DT_HIOS. Some implementations however, use @@ -1032,6 +1140,7 @@ deliberate special case and we maintain it for backwards compatability. */ #define DT_VALRNGLO 0x6ffffd00 +#define DT_GNU_FLAGS_1 0x6ffffdf4 #define DT_GNU_PRELINKED 0x6ffffdf5 #define DT_GNU_CONFLICTSZ 0x6ffffdf6 #define DT_GNU_LIBLISTSZ 0x6ffffdf7 @@ -1095,6 +1204,9 @@ #define DF_P1_LAZYLOAD 0x00000001 #define DF_P1_GROUPPERM 0x00000002 +/* Flag value in the DT_GNU_FLAGS_1 /dynamic entry. */ +#define DF_GNU_1_UNIQUE 0x00000001 + /* Flag value in in the DT_FLAGS_1 .dynamic entry. */ #define DF_1_NOW 0x00000001 #define DF_1_GLOBAL 0x00000002 @@ -1289,6 +1401,8 @@ #define AT_FREEBSD_ENVC 30 /* Environment count. */ #define AT_FREEBSD_ENVV 31 /* Environment vvector. */ #define AT_FREEBSD_PS_STRINGS 32 /* struct ps_strings. */ +#define AT_FREEBSD_FXRNG 33 /* Pointer to root RNG seed version. */ +#define AT_FREEBSD_KPRELOAD 34 /* Base of vdso. */ #define AT_SUN_UID 2000 /* Effective user ID. */ #define AT_SUN_RUID 2001 /* Real user ID. */ @@ -1301,7 +1415,9 @@ #define AT_SUN_PLATFORM 2008 /* Platform name string. */ #define AT_SUN_CAP_HW1 2009 /* Machine dependent hints about processor capabilities. */ +#ifndef AT_SUN_HWCAP #define AT_SUN_HWCAP AT_SUN_CAP_HW1 /* For backward compat only. */ +#endif #define AT_SUN_IFLUSH 2010 /* Should flush icache? */ #define AT_SUN_CPU 2011 /* CPU name string. */ #define AT_SUN_EMUL_ENTRY 2012 /* COFF entry point address. */