]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - include/elf/common.h
Automatic date update in version.in
[thirdparty/binutils-gdb.git] / include / elf / common.h
index 767ad3ef13c33ad41a1e25b7745dadd2f5e62175..f45c256fe9c30d39ddbab6b0ab7899429275b246 100644 (file)
@@ -1,5 +1,5 @@
 /* ELF support for BFD.
-   Copyright (C) 1991-2016 Free Software Foundation, Inc.
+   Copyright (C) 1991-2017 Free Software Foundation, Inc.
 
    Written by Fred Fish @ Cygnus Support, from information published
    in "UNIX System V Release 4, Programmers Guide: ANSI C and
@@ -74,6 +74,8 @@
 #define ELFOSABI_AROS       15 /* AROS */
 #define ELFOSABI_FENIXOS     16 /* FenixOS */
 #define ELFOSABI_CLOUDABI    17 /* Nuxi CloudABI */
+#define ELFOSABI_OPENVOS     18 /* Stratus Technologies OpenVOS */
+
 #define ELFOSABI_C6000_ELFABI 64 /* Bare-metal TMS320C6000 */
 #define ELFOSABI_C6000_LINUX 65 /* Linux TMS320C6000 */
 #define ELFOSABI_ARM        97 /* ARM */
 #define EM_TI_C2000    141     /* Texas Instruments TMS320C2000 DSP family */
 #define EM_TI_C5500    142     /* Texas Instruments TMS320C55x DSP family */
 #define EM_res143      143     /* Reserved */
-#define EM_res144      144     /* Reserved */
+#define EM_TI_PRU      144     /* Texas Instruments Programmable Realtime Unit */
 #define EM_res145      145     /* Reserved */
 #define EM_res146      146     /* Reserved */
 #define EM_res147      147     /* Reserved */
 #define EM_AARCH64     183     /* ARM 64-bit architecture */
 #define EM_ARM184      184     /* Reserved by ARM */
 #define EM_AVR32       185     /* Atmel Corporation 32-bit microprocessor family */
-#define EM_STM8        186     /* STMicroeletronics STM8 8-bit microcontroller */
+#define EM_STM8                186     /* STMicroeletronics STM8 8-bit microcontroller */
 #define EM_TILE64      187     /* Tilera TILE64 multicore architecture family */
 #define EM_TILEPRO     188     /* Tilera TILEPro multicore architecture family */
 #define EM_MICROBLAZE  189     /* Xilinx MicroBlaze 32-bit RISC soft processor core */
 #define EM_CUDA                190     /* NVIDIA CUDA architecture */
 #define EM_TILEGX      191     /* Tilera TILE-Gx multicore architecture family */
+#define EM_CLOUDSHIELD         192     /* CloudShield architecture family */
+#define EM_COREA_1ST   193     /* KIPO-KAIST Core-A 1st generation processor family */
+#define EM_COREA_2ND   194     /* KIPO-KAIST Core-A 2nd generation processor family */
 #define EM_ARC_COMPACT2 195    /* Synopsys ARCompact V2 */
+#define EM_OPEN8       196     /* Open8 8-bit RISC soft processor core */
 #define EM_RL78                197     /* Renesas RL78 family.  */
+#define EM_VIDEOCORE5  198     /* Broadcom VideoCore V processor */
 #define EM_78K0R       199     /* Renesas 78K0R.  */
+#define EM_56800EX     200     /* Freescale 56800EX Digital Signal Controller (DSC) */
+#define EM_BA1                 201     /* Beyond BA1 CPU architecture */
+#define EM_BA2                 202     /* Beyond BA2 CPU architecture */
+#define EM_XCORE       203     /* XMOS xCORE processor family */
+#define EM_MCHP_PIC    204     /* Microchip 8-bit PIC(r) family */
 #define EM_INTEL205    205     /* Reserved by Intel */
 #define EM_INTEL206    206     /* Reserved by Intel */
 #define EM_INTEL207    207     /* Reserved by Intel */
 #define EM_INTEL208    208     /* Reserved by Intel */
 #define EM_INTEL209    209     /* Reserved by Intel */
+#define EM_KM32        210     /* KM211 KM32 32-bit processor */
+#define EM_KMX32       211     /* KM211 KMX32 32-bit processor */
+#define EM_KMX16       212     /* KM211 KMX16 16-bit processor */
+#define EM_KMX8        213     /* KM211 KMX8 8-bit processor */
+#define EM_KVARC       214     /* KM211 KVARC processor */
+#define EM_CDP                 215     /* Paneve CDP architecture family */
+#define EM_COGE        216     /* Cognitive Smart Memory Processor */
+#define EM_COOL        217     /* Bluechip Systems CoolEngine */
+#define EM_NORC        218     /* Nanoradio Optimized RISC */
+#define EM_CSR_KALIMBA         219     /* CSR Kalimba architecture family */
+#define EM_Z80                 220     /* Zilog Z80 */
 #define EM_VISIUM      221     /* Controls and Data Services VISIUMcore processor */
 #define EM_FT32         222     /* FTDI Chip FT32 high performance 32-bit RISC architecture */
 #define EM_MOXIE        223     /* Moxie processor family */
+#define EM_AMDGPU      224     /* AMD GPU architecture */
+#define EM_RISCV       243     /* RISC-V */
 
 /* If it is necessary to assign new unofficial EM_* values, please pick large
    random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision
 
 /* #define SHF_MASKOS  0x0F000000    *//* OS-specific semantics */
 #define SHF_MASKOS     0x0FF00000      /* New value, Oct 4, 1999 Draft */
+#define SHF_GNU_BUILD_NOTE    (1 << 20)        /* Section contains GNU BUILD ATTRIBUTE notes.  */
 #define SHF_MASKPROC   0xF0000000      /* Processor-specific semantics */
 
 /* This used to be implemented as a processor specific section flag.
                                           are not to be further
                                           relocated.  */
 
-/* Compression types */
+/* Compression types */
 #define ELFCOMPRESS_ZLIB   1           /* Compressed with zlib.  */
 #define ELFCOMPRESS_LOOS   0x60000000  /* OS-specific semantics, lo */
 #define ELFCOMPRESS_HIOS   0x6FFFFFFF  /* OS-specific semantics, hi */
                                        /*   note name must be "LINUX".  */
 #define NT_ARM_HW_WATCH        0x403           /* AArch hardware watchpoint registers */
                                        /*   note name must be "LINUX".  */
+#define NT_ARM_SVE     0x405           /* AArch SVE registers.  */
+                                       /*   note name must be "LINUX".  */
 #define NT_SIGINFO     0x53494749      /* Fields of siginfo_t.  */
 #define NT_FILE                0x46494c45      /* Description of mapped files.  */
 
 #define NT_GNU_HWCAP           2       /* Used by ld.so and kernel vDSO.  */
 #define NT_GNU_BUILD_ID                3       /* Generated by ld --build-id.  */
 #define NT_GNU_GOLD_VERSION    4       /* Generated by gold.  */
+#define NT_GNU_PROPERTY_TYPE_0  5      /* Generated by gcc.  */
+
+#define NT_GNU_BUILD_ATTRIBUTE_OPEN    0x100
+#define NT_GNU_BUILD_ATTRIBUTE_FUNC    0x101
+
+#define GNU_BUILD_ATTRIBUTE_TYPE_NUMERIC       '*'
+#define GNU_BUILD_ATTRIBUTE_TYPE_STRING                '$'
+#define GNU_BUILD_ATTRIBUTE_TYPE_BOOL_TRUE     '+'
+#define GNU_BUILD_ATTRIBUTE_TYPE_BOOL_FALSE    '!'
+
+#define GNU_BUILD_ATTRIBUTE_VERSION    1
+#define GNU_BUILD_ATTRIBUTE_STACK_PROT 2
+#define GNU_BUILD_ATTRIBUTE_RELRO      3
+#define GNU_BUILD_ATTRIBUTE_STACK_SIZE 4
+#define GNU_BUILD_ATTRIBUTE_TOOL       5
+#define GNU_BUILD_ATTRIBUTE_ABI                6
+#define GNU_BUILD_ATTRIBUTE_PIC                7
+
+#define NOTE_GNU_PROPERTY_SECTION_NAME ".note.gnu.property"
+#define GNU_BUILD_ATTRS_SECTION_NAME   ".gnu.build.attributes"
+
+/* Values used in GNU .note.gnu.property notes (NT_GNU_PROPERTY_TYPE_0).  */
+#define GNU_PROPERTY_STACK_SIZE                        1
+#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
+
+#define GNU_PROPERTY_X86_ISA_1_USED            0xc0000000
+#define GNU_PROPERTY_X86_ISA_1_NEEDED          0xc0000001
+
+#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)
 
 /* Values used in GNU .note.ABI-tag notes (NT_GNU_ABI_TAG).  */
 #define GNU_ABI_TAG_LINUX      0
 #define DT_ENCODING    32
 #define DT_PREINIT_ARRAY   32
 #define DT_PREINIT_ARRAYSZ 33
+#define DT_SYMTAB_SHNDX    34
 
 /* Note, the Oct 4, 1999 draft of the ELF ABI changed the values
    for DT_LOOS and DT_HIOS.  Some implementations however, use
 /* Section Group Flags.         */
 
 #define GRP_COMDAT             0x1     /* A COMDAT group */
+#define GRP_MASKOS      0x0ff00000     /* Bits in this range reserved for OS specific use.  */
+#define GRP_MASKPROC    0xf0000000     /* Bits in this range reserved for processor use.  */
 
 /* Auxv a_type values.  */
 
 #define AT_L2_CACHESHAPE  36
 #define AT_L3_CACHESHAPE  37
 
+#define AT_FREEBSD_EXECPATH     15      /* Path to the executable. */
+#define AT_FREEBSD_CANARY       16      /* Canary for SSP. */
+#define AT_FREEBSD_CANARYLEN    17      /* Length of the canary. */
+#define AT_FREEBSD_OSRELDATE    18      /* OSRELDATE. */
+#define AT_FREEBSD_NCPUS        19      /* Number of CPUs. */
+#define AT_FREEBSD_PAGESIZES    20      /* Pagesizes. */
+#define AT_FREEBSD_PAGESIZESLEN 21      /* Number of pagesizes. */
+#define AT_FREEBSD_TIMEKEEP     22      /* Pointer to timehands. */
+#define AT_FREEBSD_STACKPROT    23      /* Initial stack protection. */
+
 #define AT_SUN_UID      2000    /* Effective user ID.  */
 #define AT_SUN_RUID     2001    /* Real user ID.  */
 #define AT_SUN_GID      2002    /* Effective group 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
                                   processor capabilities.  */
 #define AT_SUN_IFLUSH   2010    /* Should flush icache? */