]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - elf/elf.h
Add NT_ARM_SVE to elf.h
[thirdparty/glibc.git] / elf / elf.h
index 1a7000b8c6333573bf98034c94b6d0378d176618..66af3dc0ea61cd7a488f788249e537f739e1d873 100644 (file)
--- a/elf/elf.h
+++ b/elf/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-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
@@ -172,89 +172,200 @@ typedef struct
 
 /* Legal values for e_machine (architecture).  */
 
-#define EM_NONE                 0              /* No machine */
-#define EM_M32          1              /* AT&T WE 32100 */
-#define EM_SPARC        2              /* SUN SPARC */
-#define EM_386          3              /* Intel 80386 */
-#define EM_68K          4              /* Motorola m68k family */
-#define EM_88K          5              /* Motorola m88k family */
-#define EM_860          7              /* Intel 80860 */
-#define EM_MIPS                 8              /* MIPS R3000 big-endian */
-#define EM_S370                 9              /* IBM System/370 */
-#define EM_MIPS_RS3_LE 10              /* MIPS R3000 little-endian */
-
-#define EM_PARISC      15              /* HPPA */
-#define EM_VPP500      17              /* Fujitsu VPP500 */
-#define EM_SPARC32PLUS 18              /* Sun's "v8plus" */
-#define EM_960         19              /* Intel 80960 */
-#define EM_PPC         20              /* PowerPC */
-#define EM_PPC64       21              /* PowerPC 64-bit */
-#define EM_S390                22              /* IBM S390 */
-
-#define EM_V800                36              /* NEC V800 series */
-#define EM_FR20                37              /* Fujitsu FR20 */
-#define EM_RH32                38              /* TRW RH-32 */
-#define EM_RCE         39              /* Motorola RCE */
-#define EM_ARM         40              /* ARM */
-#define EM_FAKE_ALPHA  41              /* Digital Alpha */
-#define EM_SH          42              /* Hitachi SH */
-#define EM_SPARCV9     43              /* SPARC v9 64-bit */
-#define EM_TRICORE     44              /* Siemens Tricore */
-#define EM_ARC         45              /* Argonaut RISC Core */
-#define EM_H8_300      46              /* Hitachi H8/300 */
-#define EM_H8_300H     47              /* Hitachi H8/300H */
-#define EM_H8S         48              /* Hitachi H8S */
-#define EM_H8_500      49              /* Hitachi H8/500 */
-#define EM_IA_64       50              /* Intel Merced */
-#define EM_MIPS_X      51              /* Stanford MIPS-X */
-#define EM_COLDFIRE    52              /* Motorola Coldfire */
-#define EM_68HC12      53              /* Motorola M68HC12 */
-#define EM_MMA         54              /* Fujitsu MMA Multimedia Accelerator*/
-#define EM_PCP         55              /* Siemens PCP */
-#define EM_NCPU                56              /* Sony nCPU embeeded RISC */
-#define EM_NDR1                57              /* Denso NDR1 microprocessor */
-#define EM_STARCORE    58              /* Motorola Start*Core processor */
-#define EM_ME16                59              /* Toyota ME16 processor */
-#define EM_ST100       60              /* STMicroelectronic ST100 processor */
-#define EM_TINYJ       61              /* Advanced Logic Corp. Tinyj emb.fam*/
-#define EM_X86_64      62              /* AMD x86-64 architecture */
-#define EM_PDSP                63              /* Sony DSP Processor */
-
-#define EM_FX66                66              /* Siemens FX66 microcontroller */
-#define EM_ST9PLUS     67              /* STMicroelectronics ST9+ 8/16 mc */
-#define EM_ST7         68              /* STmicroelectronics ST7 8 bit mc */
-#define EM_68HC16      69              /* Motorola MC68HC16 microcontroller */
-#define EM_68HC11      70              /* Motorola MC68HC11 microcontroller */
-#define EM_68HC08      71              /* Motorola MC68HC08 microcontroller */
-#define EM_68HC05      72              /* Motorola MC68HC05 microcontroller */
-#define EM_SVX         73              /* Silicon Graphics SVx */
-#define EM_ST19                74              /* STMicroelectronics ST19 8 bit mc */
-#define EM_VAX         75              /* Digital VAX */
-#define EM_CRIS                76              /* Axis Communications 32-bit embedded processor */
-#define EM_JAVELIN     77              /* Infineon Technologies 32-bit embedded processor */
-#define EM_FIREPATH    78              /* Element 14 64-bit DSP Processor */
-#define EM_ZSP         79              /* LSI Logic 16-bit DSP Processor */
-#define EM_MMIX                80              /* Donald Knuth's educational 64-bit processor */
-#define EM_HUANY       81              /* Harvard University machine-independent object files */
-#define EM_PRISM       82              /* SiTera Prism */
-#define EM_AVR         83              /* Atmel AVR 8-bit microcontroller */
-#define EM_FR30                84              /* Fujitsu FR30 */
-#define EM_D10V                85              /* Mitsubishi D10V */
-#define EM_D30V                86              /* Mitsubishi D30V */
-#define EM_V850                87              /* NEC v850 */
-#define EM_M32R                88              /* Mitsubishi M32R */
-#define EM_MN10300     89              /* Matsushita MN10300 */
-#define EM_MN10200     90              /* Matsushita MN10200 */
-#define EM_PJ          91              /* picoJava */
-#define EM_OPENRISC    92              /* OpenRISC 32-bit embedded processor */
-#define EM_ARC_A5      93              /* ARC Cores Tangent-A5 */
-#define EM_XTENSA      94              /* Tensilica Xtensa Architecture */
-#define EM_ALTERA_NIOS2 113            /* Altera Nios II */
-#define EM_AARCH64     183             /* ARM AARCH64 */
-#define EM_TILEPRO     188             /* Tilera TILEPro */
-#define EM_MICROBLAZE  189             /* Xilinx MicroBlaze */
-#define EM_TILEGX      191             /* Tilera TILE-Gx */
-#define EM_NUM         192
+#define EM_NONE                 0      /* No machine */
+#define EM_M32          1      /* AT&T WE 32100 */
+#define EM_SPARC        2      /* SUN SPARC */
+#define EM_386          3      /* Intel 80386 */
+#define EM_68K          4      /* Motorola m68k family */
+#define EM_88K          5      /* Motorola m88k family */
+#define EM_IAMCU        6      /* Intel MCU */
+#define EM_860          7      /* Intel 80860 */
+#define EM_MIPS                 8      /* MIPS R3000 big-endian */
+#define EM_S370                 9      /* IBM System/370 */
+#define EM_MIPS_RS3_LE 10      /* MIPS R3000 little-endian */
+                               /* reserved 11-14 */
+#define EM_PARISC      15      /* HPPA */
+                               /* reserved 16 */
+#define EM_VPP500      17      /* Fujitsu VPP500 */
+#define EM_SPARC32PLUS 18      /* Sun's "v8plus" */
+#define EM_960         19      /* Intel 80960 */
+#define EM_PPC         20      /* PowerPC */
+#define EM_PPC64       21      /* PowerPC 64-bit */
+#define EM_S390                22      /* IBM S390 */
+#define EM_SPU         23      /* IBM SPU/SPC */
+                               /* reserved 24-35 */
+#define EM_V800                36      /* NEC V800 series */
+#define EM_FR20                37      /* Fujitsu FR20 */
+#define EM_RH32                38      /* TRW RH-32 */
+#define EM_RCE         39      /* Motorola RCE */
+#define EM_ARM         40      /* ARM */
+#define EM_FAKE_ALPHA  41      /* Digital Alpha */
+#define EM_SH          42      /* Hitachi SH */
+#define EM_SPARCV9     43      /* SPARC v9 64-bit */
+#define EM_TRICORE     44      /* Siemens Tricore */
+#define EM_ARC         45      /* Argonaut RISC Core */
+#define EM_H8_300      46      /* Hitachi H8/300 */
+#define EM_H8_300H     47      /* Hitachi H8/300H */
+#define EM_H8S         48      /* Hitachi H8S */
+#define EM_H8_500      49      /* Hitachi H8/500 */
+#define EM_IA_64       50      /* Intel Merced */
+#define EM_MIPS_X      51      /* Stanford MIPS-X */
+#define EM_COLDFIRE    52      /* Motorola Coldfire */
+#define EM_68HC12      53      /* Motorola M68HC12 */
+#define EM_MMA         54      /* Fujitsu MMA Multimedia Accelerator */
+#define EM_PCP         55      /* Siemens PCP */
+#define EM_NCPU                56      /* Sony nCPU embeeded RISC */
+#define EM_NDR1                57      /* Denso NDR1 microprocessor */
+#define EM_STARCORE    58      /* Motorola Start*Core processor */
+#define EM_ME16                59      /* Toyota ME16 processor */
+#define EM_ST100       60      /* STMicroelectronic ST100 processor */
+#define EM_TINYJ       61      /* Advanced Logic Corp. Tinyj emb.fam */
+#define EM_X86_64      62      /* AMD x86-64 architecture */
+#define EM_PDSP                63      /* Sony DSP Processor */
+#define EM_PDP10       64      /* Digital PDP-10 */
+#define EM_PDP11       65      /* Digital PDP-11 */
+#define EM_FX66                66      /* Siemens FX66 microcontroller */
+#define EM_ST9PLUS     67      /* STMicroelectronics ST9+ 8/16 mc */
+#define EM_ST7         68      /* STmicroelectronics ST7 8 bit mc */
+#define EM_68HC16      69      /* Motorola MC68HC16 microcontroller */
+#define EM_68HC11      70      /* Motorola MC68HC11 microcontroller */
+#define EM_68HC08      71      /* Motorola MC68HC08 microcontroller */
+#define EM_68HC05      72      /* Motorola MC68HC05 microcontroller */
+#define EM_SVX         73      /* Silicon Graphics SVx */
+#define EM_ST19                74      /* STMicroelectronics ST19 8 bit mc */
+#define EM_VAX         75      /* Digital VAX */
+#define EM_CRIS                76      /* Axis Communications 32-bit emb.proc */
+#define EM_JAVELIN     77      /* Infineon Technologies 32-bit emb.proc */
+#define EM_FIREPATH    78      /* Element 14 64-bit DSP Processor */
+#define EM_ZSP         79      /* LSI Logic 16-bit DSP Processor */
+#define EM_MMIX                80      /* Donald Knuth's educational 64-bit proc */
+#define EM_HUANY       81      /* Harvard University machine-independent object files */
+#define EM_PRISM       82      /* SiTera Prism */
+#define EM_AVR         83      /* Atmel AVR 8-bit microcontroller */
+#define EM_FR30                84      /* Fujitsu FR30 */
+#define EM_D10V                85      /* Mitsubishi D10V */
+#define EM_D30V                86      /* Mitsubishi D30V */
+#define EM_V850                87      /* NEC v850 */
+#define EM_M32R                88      /* Mitsubishi M32R */
+#define EM_MN10300     89      /* Matsushita MN10300 */
+#define EM_MN10200     90      /* Matsushita MN10200 */
+#define EM_PJ          91      /* picoJava */
+#define EM_OPENRISC    92      /* OpenRISC 32-bit embedded processor */
+#define EM_ARC_COMPACT 93      /* ARC International ARCompact */
+#define EM_XTENSA      94      /* Tensilica Xtensa Architecture */
+#define EM_VIDEOCORE   95      /* Alphamosaic VideoCore */
+#define EM_TMM_GPP     96      /* Thompson Multimedia General Purpose Proc */
+#define EM_NS32K       97      /* National Semi. 32000 */
+#define EM_TPC         98      /* Tenor Network TPC */
+#define EM_SNP1K       99      /* Trebia SNP 1000 */
+#define EM_ST200       100     /* STMicroelectronics ST200 */
+#define EM_IP2K                101     /* Ubicom IP2xxx */
+#define EM_MAX         102     /* MAX processor */
+#define EM_CR          103     /* National Semi. CompactRISC */
+#define EM_F2MC16      104     /* Fujitsu F2MC16 */
+#define EM_MSP430      105     /* Texas Instruments msp430 */
+#define EM_BLACKFIN    106     /* Analog Devices Blackfin DSP */
+#define EM_SE_C33      107     /* Seiko Epson S1C33 family */
+#define EM_SEP         108     /* Sharp embedded microprocessor */
+#define EM_ARCA                109     /* Arca RISC */
+#define EM_UNICORE     110     /* PKU-Unity & MPRC Peking Uni. mc series */
+#define EM_EXCESS      111     /* eXcess configurable cpu */
+#define EM_DXP         112     /* Icera Semi. Deep Execution Processor */
+#define EM_ALTERA_NIOS2 113    /* Altera Nios II */
+#define EM_CRX         114     /* National Semi. CompactRISC CRX */
+#define EM_XGATE       115     /* Motorola XGATE */
+#define EM_C166                116     /* Infineon C16x/XC16x */
+#define EM_M16C                117     /* Renesas M16C */
+#define EM_DSPIC30F    118     /* Microchip Technology dsPIC30F */
+#define EM_CE          119     /* Freescale Communication Engine RISC */
+#define EM_M32C                120     /* Renesas M32C */
+                               /* reserved 121-130 */
+#define EM_TSK3000     131     /* Altium TSK3000 */
+#define EM_RS08                132     /* Freescale RS08 */
+#define EM_SHARC       133     /* Analog Devices SHARC family */
+#define EM_ECOG2       134     /* Cyan Technology eCOG2 */
+#define EM_SCORE7      135     /* Sunplus S+core7 RISC */
+#define EM_DSP24       136     /* New Japan Radio (NJR) 24-bit DSP */
+#define EM_VIDEOCORE3  137     /* Broadcom VideoCore III */
+#define EM_LATTICEMICO32 138   /* RISC for Lattice FPGA */
+#define EM_SE_C17      139     /* Seiko Epson C17 */
+#define EM_TI_C6000    140     /* Texas Instruments TMS320C6000 DSP */
+#define EM_TI_C2000    141     /* Texas Instruments TMS320C2000 DSP */
+#define EM_TI_C5500    142     /* Texas Instruments TMS320C55x DSP */
+#define EM_TI_ARP32    143     /* Texas Instruments App. Specific RISC */
+#define EM_TI_PRU      144     /* Texas Instruments Prog. Realtime Unit */
+                               /* reserved 145-159 */
+#define EM_MMDSP_PLUS  160     /* STMicroelectronics 64bit VLIW DSP */
+#define EM_CYPRESS_M8C 161     /* Cypress M8C */
+#define EM_R32C                162     /* Renesas R32C */
+#define EM_TRIMEDIA    163     /* NXP Semi. TriMedia */
+#define EM_QDSP6       164     /* QUALCOMM DSP6 */
+#define EM_8051                165     /* Intel 8051 and variants */
+#define EM_STXP7X      166     /* STMicroelectronics STxP7x */
+#define EM_NDS32       167     /* Andes Tech. compact code emb. RISC */
+#define EM_ECOG1X      168     /* Cyan Technology eCOG1X */
+#define EM_MAXQ30      169     /* Dallas Semi. MAXQ30 mc */
+#define EM_XIMO16      170     /* New Japan Radio (NJR) 16-bit DSP */
+#define EM_MANIK       171     /* M2000 Reconfigurable RISC */
+#define EM_CRAYNV2     172     /* Cray NV2 vector architecture */
+#define EM_RX          173     /* Renesas RX */
+#define EM_METAG       174     /* Imagination Tech. META */
+#define EM_MCST_ELBRUS 175     /* MCST Elbrus */
+#define EM_ECOG16      176     /* Cyan Technology eCOG16 */
+#define EM_CR16                177     /* National Semi. CompactRISC CR16 */
+#define EM_ETPU                178     /* Freescale Extended Time Processing Unit */
+#define EM_SLE9X       179     /* Infineon Tech. SLE9X */
+#define EM_L10M                180     /* Intel L10M */
+#define EM_K10M                181     /* Intel K10M */
+                               /* reserved 182 */
+#define EM_AARCH64     183     /* ARM AARCH64 */
+                               /* reserved 184 */
+#define EM_AVR32       185     /* Amtel 32-bit microprocessor */
+#define EM_STM8                186     /* STMicroelectronics STM8 */
+#define EM_TILE64      187     /* Tileta TILE64 */
+#define EM_TILEPRO     188     /* Tilera TILEPro */
+#define EM_MICROBLAZE  189     /* Xilinx MicroBlaze */
+#define EM_CUDA                190     /* NVIDIA CUDA */
+#define EM_TILEGX      191     /* Tilera TILE-Gx */
+#define EM_CLOUDSHIELD 192     /* CloudShield */
+#define EM_COREA_1ST   193     /* KIPO-KAIST Core-A 1st gen. */
+#define EM_COREA_2ND   194     /* KIPO-KAIST Core-A 2nd gen. */
+#define EM_ARC_COMPACT2        195     /* Synopsys ARCompact V2 */
+#define EM_OPEN8       196     /* Open8 RISC */
+#define EM_RL78                197     /* Renesas RL78 */
+#define EM_VIDEOCORE5  198     /* Broadcom VideoCore V */
+#define EM_78KOR       199     /* Renesas 78KOR */
+#define EM_56800EX     200     /* Freescale 56800EX DSC */
+#define EM_BA1         201     /* Beyond BA1 */
+#define EM_BA2         202     /* Beyond BA2 */
+#define EM_XCORE       203     /* XMOS xCORE */
+#define EM_MCHP_PIC    204     /* Microchip 8-bit PIC(r) */
+                               /* reserved 205-209 */
+#define EM_KM32                210     /* KM211 KM32 */
+#define EM_KMX32       211     /* KM211 KMX32 */
+#define EM_EMX16       212     /* KM211 KMX16 */
+#define EM_EMX8                213     /* KM211 KMX8 */
+#define EM_KVARC       214     /* KM211 KVARC */
+#define EM_CDP         215     /* Paneve CDP */
+#define EM_COGE                216     /* Cognitive Smart Memory Processor */
+#define EM_COOL                217     /* Bluechip CoolEngine */
+#define EM_NORC                218     /* Nanoradio Optimized RISC */
+#define EM_CSR_KALIMBA 219     /* CSR Kalimba */
+#define EM_Z80         220     /* Zilog Z80 */
+#define EM_VISIUM      221     /* Controls and Data Services VISIUMcore */
+#define EM_FT32                222     /* FTDI Chip FT32 */
+#define EM_MOXIE       223     /* Moxie processor */
+#define EM_AMDGPU      224     /* AMD GPU */
+                               /* reserved 225-242 */
+#define EM_RISCV       243     /* RISC-V */
+
+#define EM_BPF         247     /* Linux BPF -- in-kernel virtual machine */
+
+#define EM_NUM         248
+
+/* Old spellings/synonyms.  */
+
+#define EM_ARC_A5      EM_ARC_COMPACT
 
 /* If it is necessary to assign new unofficial EM_* values, please
    pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the
@@ -651,6 +762,22 @@ 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_386_IOPERM  0x201           /* x86 io permission bitmap (1=deny) */
 #define NT_X86_XSTATE  0x202           /* x86 extended state using xsave */
@@ -667,6 +794,9 @@ typedef struct
 #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.  */
 
@@ -839,6 +969,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
@@ -1058,6 +1190,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.  */
 
@@ -1123,6 +1267,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
@@ -2420,9 +2620,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
@@ -3565,6 +3766,86 @@ enum
 
 #define R_TILEGX_NUM           130
 
+/* 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 */
+#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