From 62753d2c09108550650ab83a69e99ca28d8bde3b Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 18 Aug 2017 08:49:07 -0700 Subject: Add NT_GNU_PROPERTY_TYPE_0 macros Add macros used in GNU .note.gnu.property notes (NT_GNU_PROPERTY_TYPE_0). * elf/elf.h (NT_GNU_PROPERTY_TYPE_0): New. (NOTE_GNU_PROPERTY_SECTION_NAME): Likewise. (GNU_PROPERTY_STACK_SIZE): Likewie. (GNU_PROPERTY_NO_COPY_ON_PROTECTED): Likewie. (GNU_PROPERTY_LOPROC): Likewise. (GNU_PROPERTY_HIPROC): Likewise. (GNU_PROPERTY_LOUSER): Likewise. (GNU_PROPERTY_HIUSER): Likewise. (GNU_PROPERTY_X86_ISA_1_USED): Likwise. (GNU_PROPERTY_X86_ISA_1_NEEDED): Likwise. (GNU_PROPERTY_X86_FEATURE_1_AND): Likwise. (GNU_PROPERTY_X86_ISA_1_486): Likwise. (GNU_PROPERTY_X86_ISA_1_586): Likwise. (GNU_PROPERTY_X86_ISA_1_686): Likwise. (GNU_PROPERTY_X86_ISA_1_SSE): Likwise. (GNU_PROPERTY_X86_ISA_1_SSE2): Likwise. (GNU_PROPERTY_X86_ISA_1_SSE3): Likwise. (GNU_PROPERTY_X86_ISA_1_SSSE3): Likwise. (GNU_PROPERTY_X86_ISA_1_SSE4_1): Likwise. (GNU_PROPERTY_X86_ISA_1_SSE4_2): Likwise. (GNU_PROPERTY_X86_ISA_1_AVX): Likwise. (GNU_PROPERTY_X86_ISA_1_AVX2): Likwise. (GNU_PROPERTY_X86_ISA_1_AVX512F): Likwise. (GNU_PROPERTY_X86_ISA_1_AVX512CD): Likwise. (GNU_PROPERTY_X86_ISA_1_AVX512ER): Likwise. (GNU_PROPERTY_X86_ISA_1_AVX512PF): Likwise. (GNU_PROPERTY_X86_ISA_1_AVX512VL): Likwise. (GNU_PROPERTY_X86_ISA_1_AVX512DQ): Likwise. (GNU_PROPERTY_X86_ISA_1_AVX512BW): Likwise. (GNU_PROPERTY_X86_FEATURE_1_IBT): Likwise. (GNU_PROPERTY_X86_FEATURE_1_SHSTK): Likwise. --- elf/elf.h | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'elf/elf.h') diff --git a/elf/elf.h b/elf/elf.h index 84a7126068..01a43ce9ac 100644 --- a/elf/elf.h +++ b/elf/elf.h @@ -1263,6 +1263,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 -- cgit v1.2.3