Fix several mix up between octets and bytes in ELF program headers
[deliverable/binutils-gdb.git] / include / elf / hppa.h
index 700f3010d2c47c17ee9bc997e8864b6ff8764f4f..80cce087c99bbc28ce08d42cba777b16a5e03595 100644 (file)
@@ -1,22 +1,22 @@
 /* HPPA ELF support for BFD.
-   Copyright 1993, 1994, 1995, 1998, 1999, 2000, 2005
-   Free Software Foundation, Inc.
+   Copyright (C) 1993-2020 Free Software Foundation, Inc.
 
-This file is part of BFD, the Binary File Descriptor library.
+   This file is part of BFD, the Binary File Descriptor library.
 
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
 /* This file holds definitions specific to the HPPA ELF ABI.  Note
    that most of this is not actually implemented by BFD.  */
@@ -54,11 +54,11 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
 /* Special section indices.  */
 /* A symbol that has been declared as a tentative definition in an ANSI C
    compilation.  */
-#define SHN_PARISC_ANSI_COMMON         0xff00
+#define SHN_PARISC_ANSI_COMMON         SHN_LORESERVE
 
 /* A symbol that has been declared as a common block using the
    huge memory model.  */
-#define SHN_PARISC_HUGE_COMMON 0xff01
+#define SHN_PARISC_HUGE_COMMON (SHN_LORESERVE + 1)
 
 /* Processor specific section types.  */
 
@@ -74,13 +74,16 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
 /* Section contains code annotations.  */
 #define SHT_PARISC_ANNOT       0x70000003
 
+/* DLKM special section.  */
+#define SHT_PARISC_DLKM                0x70000004
+
 /* These are strictly for compatibility with the older elf32-hppa
    implementation.  Hopefully we can eliminate them in the future.  */
 /* Optional section holding argument location/relocation info.  */
-#define SHT_PARISC_SYMEXTN    SHT_LOPROC+8
+#define SHT_PARISC_SYMEXTN    SHT_LOPROC + 8
 
 /* Option section for linker stubs.  */
-#define SHT_PARISC_STUBS      SHT_LOPROC+9
+#define SHT_PARISC_STUBS      SHT_LOPROC + 9
 
 /* Processor specific section flags.  */
 
@@ -93,6 +96,8 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
 /* Section should go near GP.  */
 #define SHF_PARISC_SHORT       0x20000000
 
+/* Section is weak ordered.  */
+#define SHF_PARISC_WEAKORDER   0x10000000
 
 /* Identifies the entry point of a millicode routine.  */
 #define STT_PARISC_MILLI       13
@@ -133,7 +138,7 @@ RELOC_NUMBER (R_PARISC_DIR14F,               7)
    When supporting argument relocations, function calls must be
    accompanied by parameter relocation information.  This information is
    carried in the ten high-order bits of the addend field.  The remaining
-   22 bits of of the addend field are sign-extended to form the Addend.
+   22 bits of the addend field are sign-extended to form the Addend.
 
    Note the code to build argument relocations depends on the
    addend being zero.  A consequence of this limitation is GAS
@@ -304,12 +309,6 @@ RELOC_NUMBER (R_PARISC_PCREL16DF,          79)
 RELOC_NUMBER (R_PARISC_DIR64,          80)
 /*             64-bit doubleword          symbol + addend                */
 
-RELOC_NUMBER (R_PARISC_DIR64WR,        81)
-/*             64-bit doubleword          RR(symbol, addend)             */
-
-RELOC_NUMBER (R_PARISC_DIR64DR,        82)
-/*             64-bit doubleword          RR(symbol, addend)             */
-
 RELOC_NUMBER (R_PARISC_DIR14WR,        83)
 /*             load/store mod. comp. (2)  RR(symbol, addend)             */
 
@@ -481,14 +480,59 @@ RELOC_NUMBER (R_PARISC_LTOFF_TP16DF,   231)
 RELOC_NUMBER (R_PARISC_GNU_VTENTRY,    232)
 RELOC_NUMBER (R_PARISC_GNU_VTINHERIT,  233)
 
+RELOC_NUMBER (R_PARISC_TLS_GD21L,      234)
+RELOC_NUMBER (R_PARISC_TLS_GD14R,      235)
+RELOC_NUMBER (R_PARISC_TLS_GDCALL,     236)
+RELOC_NUMBER (R_PARISC_TLS_LDM21L,     237)
+RELOC_NUMBER (R_PARISC_TLS_LDM14R,     238)
+RELOC_NUMBER (R_PARISC_TLS_LDMCALL,    239)
+RELOC_NUMBER (R_PARISC_TLS_LDO21L,     240)
+RELOC_NUMBER (R_PARISC_TLS_LDO14R,     241)
+RELOC_NUMBER (R_PARISC_TLS_DTPMOD32,   242)
+RELOC_NUMBER (R_PARISC_TLS_DTPMOD64,   243)
+RELOC_NUMBER (R_PARISC_TLS_DTPOFF32,   244)
+RELOC_NUMBER (R_PARISC_TLS_DTPOFF64,   245)
+
 END_RELOC_NUMBERS (R_PARISC_UNIMPLEMENTED)
 
+#define R_PARISC_TLS_LE21L     R_PARISC_TPREL21L
+#define R_PARISC_TLS_LE14R     R_PARISC_TPREL14R
+#define R_PARISC_TLS_IE21L     R_PARISC_LTOFF_TP21L
+#define R_PARISC_TLS_IE14R     R_PARISC_LTOFF_TP14R
+#define R_PARISC_TLS_TPREL32   R_PARISC_TPREL32
+#define R_PARISC_TLS_TPREL64   R_PARISC_TPREL64
+
 #ifndef RELOC_MACROS_GEN_FUNC
 typedef enum elf_hppa_reloc_type elf_hppa_reloc_type;
 #endif
 
 #define PT_PARISC_ARCHEXT      0x70000000
 #define PT_PARISC_UNWIND       0x70000001
+#define PT_PARISC_WEAKORDER    0x70000002
+
+/* Flag bits in sh_flags of ElfXX_Shdr.  */
+#define SHF_HP_TLS              0x01000000
+#define SHF_HP_NEAR_SHARED      0x02000000
+#define SHF_HP_FAR_SHARED       0x04000000
+#define SHF_HP_COMDAT           0x08000000
+#define SHF_HP_CONST            0x00800000
+
+/* Reserved section header indices.  */
+#define SHN_TLS_COMMON          (SHN_LOOS + 0x0)
+#define SHN_NS_COMMON           (SHN_LOOS + 0x1)
+#define SHN_FS_COMMON           (SHN_LOOS + 0x2)
+#define SHN_NS_UNDEF            (SHN_LOOS + 0x3)
+#define SHN_FS_UNDEF            (SHN_LOOS + 0x4)
+#define SHN_HP_EXTERN           (SHN_LOOS + 0x5)
+#define SHN_HP_EXTHINT          (SHN_LOOS + 0x6)
+#define SHN_HP_UNDEF_BIND_IMM   (SHN_LOOS + 0x7)
+
+/* Values of sh_type in ElfXX_Shdr.  */
+#define SHT_HP_OVLBITS  (SHT_LOOS + 0x0)
+#define SHT_HP_DLKM     (SHT_LOOS + 0x1)
+#define SHT_HP_COMDAT   (SHT_LOOS + 0x2)
+#define SHT_HP_OBJDICT  (SHT_LOOS + 0x3)
+#define SHT_HP_ANNOT    (SHT_LOOS + 0x4)
 
 /* Flag bits in p_flags of ElfXX_Phdr.  */
 #define PF_HP_CODE             0x00040000
@@ -571,6 +615,9 @@ typedef enum elf_hppa_reloc_type elf_hppa_reloc_type;
 #define PT_HP_STACK            (PT_LOOS + 0x14)
 #define PT_HP_CORE_UTSNAME     (PT_LOOS + 0x15)
 
+/* Binding information.  */
+#define STB_HP_ALIAS           (STB_LOOS + 0x0)
+
 /* Additional symbol types.  */
 #define STT_HP_OPAQUE          (STT_LOOS + 0x1)
 #define STT_HP_STUB            (STT_LOOS + 0x2)
This page took 0.025999 seconds and 4 git commands to generate.