Signed-off-by: Mark Wielaard <m...@klomp.org>
---
 libelf/ChangeLog |  4 +++
 libelf/elf.h     | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 98 insertions(+), 2 deletions(-)

diff --git a/libelf/ChangeLog b/libelf/ChangeLog
index 55ab25c..62e8911 100644
--- a/libelf/ChangeLog
+++ b/libelf/ChangeLog
@@ -1,3 +1,7 @@
+2018-02-16  Mark Wielaard  <m...@klomp.org>
+
+       * elf.h: Update from glibc.
+
 2018-02-09  Joshua Watt  <jpewhac...@gmail.com>
 
        * elf32_updatenull.c (updatenull_wrlock): Use FALLTHROUGH macro
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 */
-- 
1.8.3.1

Reply via email to