]> 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 3900b4c9f0cad606a7beb2511c0bb6d603e885ee..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-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
@@ -762,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 */
@@ -779,6 +795,8 @@ typedef struct
 #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.  */
 
@@ -951,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
@@ -1247,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
@@ -3690,6 +3766,20 @@ 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 */