Merge branch 'master' into merge-job
[deliverable/binutils-gdb.git] / include / elf / common.h
index 773f378fde1c25081b9176bd5aeeeb995b5958ec..7ea62ee124fd2eec57e29218a0c7e1587e8f9964 100644 (file)
@@ -1,5 +1,6 @@
 /* ELF support for BFD.
-   Copyright (C) 1991-2018 Free Software Foundation, Inc.
+   Copyright (C) 1991-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    Written by Fred Fish @ Cygnus Support, from information published
    in "UNIX System V Release 4, Programmers Guide: ANSI C and
@@ -77,6 +78,7 @@
 #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_ARM_FDPIC   65 /* ARM FDPIC */
 #define ELFOSABI_ARM        97 /* ARM */
 #define EM_LANAI       244     /* Lanai 32-bit processor.  */
 #define EM_BPF         247     /* Linux BPF – in-kernel virtual machine.  */
 #define EM_NFP         250     /* Netronome Flow Processor.  */
+#define EM_CSKY                252     /* C-SKY processor family.  */
 
 /* If it is necessary to assign new unofficial EM_* values, please pick large
    random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision
 /* Old constant that might be in use by some software. */
 #define EM_OPENRISC            EM_OR1K
 
+/* C-SKY historically used 39, the same value as MCORE, from which the
+   architecture was derived.  */
+#define EM_CSKY_OLD            EM_MCORE
+
 /* See the above comment before you add a new EM_* value here.  */
 
 /* Values for e_version.  */
 #define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME      /* Solaris uses the same value */
 #define PT_GNU_STACK   (PT_LOOS + 0x474e551) /* Stack flags */
 #define PT_GNU_RELRO   (PT_LOOS + 0x474e552) /* Read-only after relocation */
+#define PT_GNU_PROPERTY        (PT_LOOS + 0x474e553) /* GNU property */
 
 /* Mbind segments */
 #define PT_GNU_MBIND_NUM 4096
 #define SHT_FINI_ARRAY   15            /* Array of ptrs to finish functions */
 #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           /* Indicies for SHN_XINDEX entries */
+#define SHT_SYMTAB_SHNDX  18           /* Indices for SHN_XINDEX entries */
 
 #define SHT_LOOS       0x60000000      /* First of OS specific semantics */
 #define SHT_HIOS       0x6fffffff      /* Last of OS specific semantics */
                                        /*   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_SIGINFO     0x53494749      /* Fields of siginfo_t.  */
 #define NT_FILE                0x46494c45      /* Description of mapped files.  */
 
 /* Application-specific semantics, hi */
 #define GNU_PROPERTY_HIUSER  0xffffffff
 
-#define GNU_PROPERTY_X86_ISA_1_USED            0xc0000000
-#define GNU_PROPERTY_X86_ISA_1_NEEDED          0xc0000001
-#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)
-
-#define GNU_PROPERTY_X86_FEATURE_1_IBT       (1U << 0)
-#define GNU_PROPERTY_X86_FEATURE_1_SHSTK     (1U << 1)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_USED     0xc0000000
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED   0xc0000001
+
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_486      (1U << 0)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_586      (1U << 1)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_686      (1U << 2)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSE      (1U << 3)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSE2     (1U << 4)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSE3     (1U << 5)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSSE3    (1U << 6)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_1   (1U << 7)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_2   (1U << 8)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX      (1U << 9)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX2     (1U << 10)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512F  (1U << 11)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512CD (1U << 12)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512ER (1U << 13)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512PF (1U << 14)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512VL (1U << 15)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512DQ (1U << 16)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512BW (1U << 17)
+
+/* A 4-byte unsigned integer property: A bit is set if it is set in all
+   relocatable inputs.  */
+#define GNU_PROPERTY_X86_UINT32_AND_LO         0xc0000002
+#define GNU_PROPERTY_X86_UINT32_AND_HI         0xc0007fff
+
+/* A 4-byte unsigned integer property: A bit is set if it is set in any
+   relocatable inputs.  */
+#define GNU_PROPERTY_X86_UINT32_OR_LO          0xc0008000
+#define GNU_PROPERTY_X86_UINT32_OR_HI          0xc000ffff
+
+/* A 4-byte unsigned integer property: A bit is set if it is set in any
+   relocatable inputs and the property is present in all relocatable
+   inputs.  */
+#define GNU_PROPERTY_X86_UINT32_OR_AND_LO      0xc0010000
+#define GNU_PROPERTY_X86_UINT32_OR_AND_HI      0xc0017fff
+
+#define GNU_PROPERTY_X86_FEATURE_1_AND \
+  (GNU_PROPERTY_X86_UINT32_AND_LO + 0)
+
+#define GNU_PROPERTY_X86_ISA_1_NEEDED \
+  (GNU_PROPERTY_X86_UINT32_OR_LO + 0)
+#define GNU_PROPERTY_X86_FEATURE_2_NEEDED \
+  (GNU_PROPERTY_X86_UINT32_OR_LO + 1)
+
+#define GNU_PROPERTY_X86_ISA_1_USED \
+  (GNU_PROPERTY_X86_UINT32_OR_AND_LO + 0)
+#define GNU_PROPERTY_X86_FEATURE_2_USED \
+  (GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1)
+
+#define GNU_PROPERTY_X86_FEATURE_1_IBT         (1U << 0)
+#define GNU_PROPERTY_X86_FEATURE_1_SHSTK       (1U << 1)
+
+#define GNU_PROPERTY_X86_ISA_1_CMOV            (1U << 0)
+#define GNU_PROPERTY_X86_ISA_1_SSE             (1U << 1)
+#define GNU_PROPERTY_X86_ISA_1_SSE2            (1U << 2)
+#define GNU_PROPERTY_X86_ISA_1_SSE3            (1U << 3)
+#define GNU_PROPERTY_X86_ISA_1_SSSE3           (1U << 4)
+#define GNU_PROPERTY_X86_ISA_1_SSE4_1          (1U << 5)
+#define GNU_PROPERTY_X86_ISA_1_SSE4_2          (1U << 6)
+#define GNU_PROPERTY_X86_ISA_1_AVX             (1U << 7)
+#define GNU_PROPERTY_X86_ISA_1_AVX2            (1U << 8)
+#define GNU_PROPERTY_X86_ISA_1_FMA             (1U << 9)
+#define GNU_PROPERTY_X86_ISA_1_AVX512F         (1U << 10)
+#define GNU_PROPERTY_X86_ISA_1_AVX512CD                (1U << 11)
+#define GNU_PROPERTY_X86_ISA_1_AVX512ER                (1U << 12)
+#define GNU_PROPERTY_X86_ISA_1_AVX512PF                (1U << 13)
+#define GNU_PROPERTY_X86_ISA_1_AVX512VL                (1U << 14)
+#define GNU_PROPERTY_X86_ISA_1_AVX512DQ                (1U << 15)
+#define GNU_PROPERTY_X86_ISA_1_AVX512BW                (1U << 16)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_4FMAPS   (1U << 17)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_4VNNIW   (1U << 18)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_BITALG   (1U << 19)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_IFMA     (1U << 20)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_VBMI     (1U << 21)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_VBMI2    (1U << 22)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_VNNI     (1U << 23)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_BF16     (1U << 24)
+
+#define GNU_PROPERTY_X86_FEATURE_2_X86         (1U << 0)
+#define GNU_PROPERTY_X86_FEATURE_2_X87         (1U << 1)
+#define GNU_PROPERTY_X86_FEATURE_2_MMX         (1U << 2)
+#define GNU_PROPERTY_X86_FEATURE_2_XMM         (1U << 3)
+#define GNU_PROPERTY_X86_FEATURE_2_YMM         (1U << 4)
+#define GNU_PROPERTY_X86_FEATURE_2_ZMM         (1U << 5)
+#define GNU_PROPERTY_X86_FEATURE_2_FXSR                (1U << 6)
+#define GNU_PROPERTY_X86_FEATURE_2_XSAVE       (1U << 7)
+#define GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT    (1U << 8)
+#define GNU_PROPERTY_X86_FEATURE_2_XSAVEC      (1U << 9)
+
+/* AArch64 specific GNU PROPERTY.  */
+#define GNU_PROPERTY_AARCH64_FEATURE_1_AND     0xc0000000
+
+#define GNU_PROPERTY_AARCH64_FEATURE_1_BTI     (1U << 0)
+#define GNU_PROPERTY_AARCH64_FEATURE_1_PAC     (1U << 1)
 
 /* Values used in GNU .note.ABI-tag notes (NT_GNU_ABI_TAG).  */
 #define GNU_ABI_TAG_LINUX      0
 #define AT_FREEBSD_STACKPROT    23      /* Initial stack protection. */
 #define AT_FREEBSD_EHDRFLAGS    24      /* e_flags field from ELF header. */
 #define AT_FREEBSD_HWCAP        25      /* CPU feature flags. */
+#define AT_FREEBSD_HWCAP2       26      /* CPU feature flags 2. */
 
 #define AT_SUN_UID      2000    /* Effective user ID.  */
 #define AT_SUN_RUID     2001    /* Real user ID.  */
 #define AT_SUN_LDNAME   2006    /* String giving name of dynamic linker.  */
 #define AT_SUN_LPAGESZ  2007    /* Large pagesize.   */
 #define AT_SUN_PLATFORM 2008    /* Platform name string.  */
-#undef AT_SUN_HWCAP
-#define AT_SUN_HWCAP    2009   /* Machine dependent hints about
+#define AT_SUN_CAP_HW1 2009    /* Machine dependent hints about
                                   processor capabilities.  */
+#define AT_SUN_HWCAP   AT_SUN_CAP_HW1 /* For backward compat only.  */
 #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.  */
 #define AT_SUN_MMU      2015    /* String for name of MMU module.   */
 #define AT_SUN_LDDATA   2016    /* Dynamic linker's data segment address.  */
 #define AT_SUN_AUXFLAGS        2017    /* AF_SUN_ flags passed from the kernel.  */
-
+#define        AT_SUN_EMULATOR 2018    /* Name of emulation binary for runtime
+                                  linker.  */
+#define        AT_SUN_BRANDNAME 2019   /* Name of brand library.  */
+#define        AT_SUN_BRAND_AUX1 2020  /* Aux vectors for brand modules.  */
+#define        AT_SUN_BRAND_AUX2 2021
+#define        AT_SUN_BRAND_AUX3 2022
+#define        AT_SUN_CAP_HW2  2023    /* Extension of AT_SUN_CAP_HW1.  */
 
 #endif /* _ELF_COMMON_H */
This page took 0.027095 seconds and 4 git commands to generate.