ubsan: bpf: left shift cannot be represented in type 'DI' (aka 'long')
[deliverable/binutils-gdb.git] / include / elf / hppa.h
index 387944235bde6ebbedabf6331b76de6c12365e6b..e3395e26cbecbb3de2d49cf2044dac544f3fb3a6 100644 (file)
@@ -1,21 +1,22 @@
 /* HPPA ELF support for BFD.
-   Copyright (C) 1993, 94, 95, 99, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1993-2019 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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.  */
@@ -53,11 +54,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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.  */
 
@@ -73,13 +74,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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.  */
 
@@ -92,6 +96,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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
@@ -102,217 +108,494 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "elf/reloc-macros.h"
 
 START_RELOC_NUMBERS (elf_hppa_reloc_type)
-     RELOC_NUMBER (R_PARISC_NONE,      0)      /* No reloc */
-
-     /* These relocation types do simple base + offset relocations.  */
-
-     RELOC_NUMBER (R_PARISC_DIR32,  1)
-     RELOC_NUMBER (R_PARISC_DIR21L, 2)
-     RELOC_NUMBER (R_PARISC_DIR17R, 3)
-     RELOC_NUMBER (R_PARISC_DIR17F, 4)
-     RELOC_NUMBER (R_PARISC_DIR14R, 6)
-
-    /* PC-relative relocation types
-       Typically used for calls.
-       Note PCREL17C and PCREL17F differ only in overflow handling.
-       PCREL17C never reports a relocation error.
-
-       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.
-
-       Note the code to build argument relocations depends on the
-       addend being zero.  A consequence of this limitation is GAS
-       can not perform relocation reductions for function symbols.  */
-
-    RELOC_NUMBER (R_PARISC_PCREL32, 9)
-    RELOC_NUMBER (R_PARISC_PCREL21L, 10)
-    RELOC_NUMBER (R_PARISC_PCREL17R, 11)
-    RELOC_NUMBER (R_PARISC_PCREL17F, 12)
-    RELOC_NUMBER (R_PARISC_PCREL17C, 13)
-    RELOC_NUMBER (R_PARISC_PCREL14R, 14)
-    RELOC_NUMBER (R_PARISC_PCREL14F, 15)
-
-    /* DP-relative relocation types.  */
-    RELOC_NUMBER (R_PARISC_DPREL21L, 18)
-    RELOC_NUMBER (R_PARISC_DPREL14WR, 19)
-    RELOC_NUMBER (R_PARISC_DPREL14DR, 20)
-    RELOC_NUMBER (R_PARISC_DPREL14R, 22)
-    RELOC_NUMBER (R_PARISC_DPREL14F, 23)
-
-    /* Data linkage table (DLT) relocation types
-
-       SOM DLT_REL fixup requests are used to for static data references
-       from position-independent code within shared libraries.  They are
-       similar to the GOT relocation types in some SVR4 implementations.  */
-
-    RELOC_NUMBER (R_PARISC_DLTREL21L, 26)
-    RELOC_NUMBER (R_PARISC_DLTREL14R, 30)
-    RELOC_NUMBER (R_PARISC_DLTREL14F, 31)
-
-    /* DLT indirect relocation types  */
-    RELOC_NUMBER (R_PARISC_DLTIND21L, 34)
-    RELOC_NUMBER (R_PARISC_DLTIND14R, 38)
-    RELOC_NUMBER (R_PARISC_DLTIND14F, 39)
-
-    /* Base relative relocation types.  Ugh.  These imply lots of state */
-    RELOC_NUMBER (R_PARISC_SETBASE, 40)
-    RELOC_NUMBER (R_PARISC_SECREL32, 41)
-    RELOC_NUMBER (R_PARISC_BASEREL21L, 42)
-    RELOC_NUMBER (R_PARISC_BASEREL17R, 43)
-    RELOC_NUMBER (R_PARISC_BASEREL17F, 44)
-    RELOC_NUMBER (R_PARISC_BASEREL14R, 46)
-    RELOC_NUMBER (R_PARISC_BASEREL14F, 47)
-
-    /* Segment relative relocation types.  */
-    RELOC_NUMBER (R_PARISC_SEGBASE, 48)
-    RELOC_NUMBER (R_PARISC_SEGREL32, 49)
-
-    /* Offsets from the PLT.  */
-    RELOC_NUMBER (R_PARISC_PLTOFF21L, 50)
-    RELOC_NUMBER (R_PARISC_PLTOFF14R, 54)
-    RELOC_NUMBER (R_PARISC_PLTOFF14F, 55)
-
-    RELOC_NUMBER (R_PARISC_LTOFF_FPTR32, 57)
-    RELOC_NUMBER (R_PARISC_LTOFF_FPTR21L, 58)
-    RELOC_NUMBER (R_PARISC_LTOFF_FPTR14R, 62)
-
-    RELOC_NUMBER (R_PARISC_FPTR64, 64)
-
-    /* Plabel relocation types.  */
-    RELOC_NUMBER (R_PARISC_PLABEL32, 65)
-    RELOC_NUMBER (R_PARISC_PLABEL21L, 66)
-    RELOC_NUMBER (R_PARISC_PLABEL14R, 70)
-
-    /* PCREL relocations.  */
-    RELOC_NUMBER (R_PARISC_PCREL64, 72)
-    RELOC_NUMBER (R_PARISC_PCREL22C, 73)
-    RELOC_NUMBER (R_PARISC_PCREL22F, 74)
-    RELOC_NUMBER (R_PARISC_PCREL14WR, 75)
-    RELOC_NUMBER (R_PARISC_PCREL14DR, 76)
-    RELOC_NUMBER (R_PARISC_PCREL16F, 77)
-    RELOC_NUMBER (R_PARISC_PCREL16WF, 78)
-    RELOC_NUMBER (R_PARISC_PCREL16DF, 79)
-
-
-    RELOC_NUMBER (R_PARISC_DIR64, 80)
-    RELOC_NUMBER (R_PARISC_DIR64WR, 81)
-    RELOC_NUMBER (R_PARISC_DIR64DR, 82)
-    RELOC_NUMBER (R_PARISC_DIR14WR, 83)
-    RELOC_NUMBER (R_PARISC_DIR14DR, 84)
-    RELOC_NUMBER (R_PARISC_DIR16F, 85)
-    RELOC_NUMBER (R_PARISC_DIR16WF, 86)
-    RELOC_NUMBER (R_PARISC_DIR16DF, 87)
-
-    RELOC_NUMBER (R_PARISC_GPREL64, 88)
-
-    RELOC_NUMBER (R_PARISC_DLTREL14WR, 91)
-    RELOC_NUMBER (R_PARISC_DLTREL14DR, 92)
-    RELOC_NUMBER (R_PARISC_GPREL16F, 93)
-    RELOC_NUMBER (R_PARISC_GPREL16WF, 94)
-    RELOC_NUMBER (R_PARISC_GPREL16DF, 95)
-
-
-    RELOC_NUMBER (R_PARISC_LTOFF64, 96)
-    RELOC_NUMBER (R_PARISC_DLTIND14WR, 99)
-    RELOC_NUMBER (R_PARISC_DLTIND14DR, 100)
-    RELOC_NUMBER (R_PARISC_LTOFF16F, 101)
-    RELOC_NUMBER (R_PARISC_LTOFF16WF, 102)
-    RELOC_NUMBER (R_PARISC_LTOFF16DF, 103)
-
-    RELOC_NUMBER (R_PARISC_SECREL64, 104)
-
-    RELOC_NUMBER (R_PARISC_BASEREL14WR, 107)
-    RELOC_NUMBER (R_PARISC_BASEREL14DR, 108)
-
-    RELOC_NUMBER (R_PARISC_SEGREL64, 112)
-
-    RELOC_NUMBER (R_PARISC_PLTOFF14WR, 115)
-    RELOC_NUMBER (R_PARISC_PLTOFF14DR, 116)
-    RELOC_NUMBER (R_PARISC_PLTOFF16F, 117)
-    RELOC_NUMBER (R_PARISC_PLTOFF16WF, 118)
-    RELOC_NUMBER (R_PARISC_PLTOFF16DF, 119)
-
-    RELOC_NUMBER (R_PARISC_LTOFF_FPTR64, 120)
-    RELOC_NUMBER (R_PARISC_LTOFF_FPTR14WR, 123)
-    RELOC_NUMBER (R_PARISC_LTOFF_FPTR14DR, 124)
-    RELOC_NUMBER (R_PARISC_LTOFF_FPTR16F, 125)
-    RELOC_NUMBER (R_PARISC_LTOFF_FPTR16WF, 126)
-    RELOC_NUMBER (R_PARISC_LTOFF_FPTR16DF, 127)
-
-
-    RELOC_NUMBER (R_PARISC_COPY, 128)
-    RELOC_NUMBER (R_PARISC_IPLT, 129)
-    RELOC_NUMBER (R_PARISC_EPLT, 130)
-
-    RELOC_NUMBER (R_PARISC_TPREL32, 153)
-    RELOC_NUMBER (R_PARISC_TPREL21L, 154)
-    RELOC_NUMBER (R_PARISC_TPREL14R, 158)
-
-    RELOC_NUMBER (R_PARISC_LTOFF_TP21L, 162)
-    RELOC_NUMBER (R_PARISC_LTOFF_TP14R, 166)
-    RELOC_NUMBER (R_PARISC_LTOFF_TP14F, 167)
-
-    RELOC_NUMBER (R_PARISC_TPREL64, 216)
-    RELOC_NUMBER (R_PARISC_TPREL14WR, 219)
-    RELOC_NUMBER (R_PARISC_TPREL14DR, 220)
-    RELOC_NUMBER (R_PARISC_TPREL16F, 221)
-    RELOC_NUMBER (R_PARISC_TPREL16WF, 222)
-    RELOC_NUMBER (R_PARISC_TPREL16DF, 223)
-
-    RELOC_NUMBER (R_PARISC_LTOFF_TP64, 224)
-    RELOC_NUMBER (R_PARISC_LTOFF_TP14WR, 227)
-    RELOC_NUMBER (R_PARISC_LTOFF_TP14DR, 228)
-    RELOC_NUMBER (R_PARISC_LTOFF_TP16F, 229)
-    RELOC_NUMBER (R_PARISC_LTOFF_TP16WF, 230)
-    RELOC_NUMBER (R_PARISC_LTOFF_TP16DF, 231)
+RELOC_NUMBER (R_PARISC_NONE,            0) /* No reloc */
+
+/*             Data / Inst. Format        Relocation Expression          */
+
+RELOC_NUMBER (R_PARISC_DIR32,           1)
+/*             32-bit word                symbol + addend                */
+
+RELOC_NUMBER (R_PARISC_DIR21L,          2)
+/*             long immediate (7)         LR(symbol, addend)             */
+
+RELOC_NUMBER (R_PARISC_DIR17R,          3)
+/*             branch external (19)       RR(symbol, addend)             */
+
+RELOC_NUMBER (R_PARISC_DIR17F,          4)
+/*             branch external (19)       symbol + addend                */
+
+RELOC_NUMBER (R_PARISC_DIR14R,          6)
+/*             load/store (1)             RR(symbol, addend)             */
+
+RELOC_NUMBER (R_PARISC_DIR14F,          7)
+/*             load/store (1)             symbol, addend                 */
+
+/* PC-relative relocation types
+   Typically used for calls.
+   Note PCREL17C and PCREL17F differ only in overflow handling.
+   PCREL17C never reports a relocation error.
+
+   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 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
+   can not perform relocation reductions for function symbols.  */
+
+RELOC_NUMBER (R_PARISC_PCREL12F,        8)
+/*             op & branch (17)           symbol - PC - 8 + addend       */
+
+RELOC_NUMBER (R_PARISC_PCREL32,         9)
+/*             32-bit word                symbol - PC - 8 + addend       */
+
+RELOC_NUMBER (R_PARISC_PCREL21L,       10)
+/*             long immediate (7)         L(symbol - PC - 8 + addend)    */
+
+RELOC_NUMBER (R_PARISC_PCREL17R,       11)
+/*             branch external (19)       R(symbol - PC - 8 + addend)    */
+
+RELOC_NUMBER (R_PARISC_PCREL17F,       12)
+/*             branch (20)                symbol - PC - 8 + addend       */
+
+RELOC_NUMBER (R_PARISC_PCREL17C,       13)
+/*             branch (20)                symbol - PC - 8 + addend       */
+
+RELOC_NUMBER (R_PARISC_PCREL14R,       14)
+/*             load/store (1)             R(symbol - PC - 8 + addend)    */
+
+RELOC_NUMBER (R_PARISC_PCREL14F,       15)
+/*             load/store (1)             symbol - PC - 8 + addend       */
+
+
+/* DP-relative relocation types.  */
+RELOC_NUMBER (R_PARISC_DPREL21L,       18)
+/*             long immediate (7)         LR(symbol - GP, addend)        */
+
+RELOC_NUMBER (R_PARISC_DPREL14WR,      19)
+/*             load/store mod. comp. (2)  RR(symbol - GP, addend)        */
+
+RELOC_NUMBER (R_PARISC_DPREL14DR,      20)
+/*             load/store doubleword (3)  RR(symbol - GP, addend)        */
+
+RELOC_NUMBER (R_PARISC_DPREL14R,       22)
+/*             load/store (1)             RR(symbol - GP, addend)        */
+
+RELOC_NUMBER (R_PARISC_DPREL14F,       23)
+/*             load/store (1)             symbol - GP + addend           */
+
+
+/* Data linkage table (DLT) relocation types
+
+   SOM DLT_REL fixup requests are used to for static data references
+   from position-independent code within shared libraries.  They are
+   similar to the GOT relocation types in some SVR4 implementations.  */
+
+RELOC_NUMBER (R_PARISC_DLTREL21L,      26)
+/*             long immediate (7)         LR(symbol - GP, addend)        */
+
+RELOC_NUMBER (R_PARISC_DLTREL14R,      30)
+/*             load/store (1)             RR(symbol - GP, addend)        */
+
+RELOC_NUMBER (R_PARISC_DLTREL14F,      31)
+/*             load/store (1)             symbol - GP + addend           */
+
+
+/* DLT indirect relocation types  */
+RELOC_NUMBER (R_PARISC_DLTIND21L,      34)
+/*             long immediate (7)         L(ltoff(symbol + addend))      */
+
+RELOC_NUMBER (R_PARISC_DLTIND14R,      38)
+/*             load/store (1)             R(ltoff(symbol + addend))      */
+
+RELOC_NUMBER (R_PARISC_DLTIND14F,      39)
+/*             load/store (1)             ltoff(symbol + addend)         */
+
+
+/* Base relative relocation types.  Ugh.  These imply lots of state */
+RELOC_NUMBER (R_PARISC_SETBASE,        40)
+/*             none                       no reloc; base := sym          */
+
+RELOC_NUMBER (R_PARISC_SECREL32,       41)
+/*             32-bit word                symbol - SECT + addend         */
+
+RELOC_NUMBER (R_PARISC_BASEREL21L,     42)
+/*             long immediate (7)         LR(symbol - base, addend)      */
+
+RELOC_NUMBER (R_PARISC_BASEREL17R,     43)
+/*             branch external (19)       RR(symbol - base, addend)      */
+
+RELOC_NUMBER (R_PARISC_BASEREL17F,     44)
+/*             branch external (19)       symbol - base + addend         */
+
+RELOC_NUMBER (R_PARISC_BASEREL14R,     46)
+/*             load/store (1)             RR(symbol - base, addend)      */
+
+RELOC_NUMBER (R_PARISC_BASEREL14F,     47)
+/*             load/store (1)             symbol - base, addend          */
+
+
+/* Segment relative relocation types.  */
+RELOC_NUMBER (R_PARISC_SEGBASE,        48)
+/*             none                       no relocation; SB := sym       */
+
+RELOC_NUMBER (R_PARISC_SEGREL32,       49)
+/*             32-bit word                symbol - SB + addend           */
+  
+
+/* Offsets from the PLT.  */  
+RELOC_NUMBER (R_PARISC_PLTOFF21L,      50)
+/*             long immediate (7)         LR(pltoff(symbol), addend)     */
+
+RELOC_NUMBER (R_PARISC_PLTOFF14R,      54)
+/*             load/store (1)             RR(pltoff(symbol), addend)     */
+
+RELOC_NUMBER (R_PARISC_PLTOFF14F,      55)
+/*             load/store (1)             pltoff(symbol) + addend        */
+
+
+RELOC_NUMBER (R_PARISC_LTOFF_FPTR32,   57)
+/*             32-bit word                ltoff(fptr(symbol+addend))     */
+
+RELOC_NUMBER (R_PARISC_LTOFF_FPTR21L,  58)
+/*             long immediate (7)         L(ltoff(fptr(symbol+addend)))  */
+
+RELOC_NUMBER (R_PARISC_LTOFF_FPTR14R,  62)
+/*             load/store (1)             R(ltoff(fptr(symbol+addend)))  */
+
+
+RELOC_NUMBER (R_PARISC_FPTR64,         64)
+/*             64-bit doubleword          fptr(symbol+addend)            */
+
+
+/* Plabel relocation types.  */         
+RELOC_NUMBER (R_PARISC_PLABEL32,       65)
+/*             32-bit word                fptr(symbol)                   */
+
+RELOC_NUMBER (R_PARISC_PLABEL21L,      66)
+/*             long immediate (7)         L(fptr(symbol))                */
+
+RELOC_NUMBER (R_PARISC_PLABEL14R,      70)
+/*             load/store (1)             R(fptr(symbol))                */
+
+  
+/* PCREL relocations.  */  
+RELOC_NUMBER (R_PARISC_PCREL64,        72)
+/*             64-bit doubleword          symbol - PC - 8 + addend       */
+
+RELOC_NUMBER (R_PARISC_PCREL22C,       73)
+/*             branch & link (21)         symbol - PC - 8 + addend       */
+
+RELOC_NUMBER (R_PARISC_PCREL22F,       74)
+/*             branch & link (21)         symbol - PC - 8 + addend       */
+
+RELOC_NUMBER (R_PARISC_PCREL14WR,      75)
+/*             load/store mod. comp. (2)  R(symbol - PC - 8 + addend)    */
+
+RELOC_NUMBER (R_PARISC_PCREL14DR,      76)
+/*             load/store doubleword (3)  R(symbol - PC - 8 + addend)    */
+
+RELOC_NUMBER (R_PARISC_PCREL16F,       77)
+/*             load/store (1)             symbol - PC - 8 + addend       */
+
+RELOC_NUMBER (R_PARISC_PCREL16WF,      78)
+/*             load/store mod. comp. (2)  symbol - PC - 8 + addend       */
+
+RELOC_NUMBER (R_PARISC_PCREL16DF,      79)
+/*             load/store doubleword (3)  symbol - PC - 8 + addend       */
+
+
+RELOC_NUMBER (R_PARISC_DIR64,          80)
+/*             64-bit doubleword          symbol + addend                */
+
+RELOC_NUMBER (R_PARISC_DIR14WR,        83)
+/*             load/store mod. comp. (2)  RR(symbol, addend)             */
+
+RELOC_NUMBER (R_PARISC_DIR14DR,        84)
+/*             load/store doubleword (3)  RR(symbol, addend)             */
+
+RELOC_NUMBER (R_PARISC_DIR16F,         85)
+/*             load/store (1)             symbol + addend                */
+
+RELOC_NUMBER (R_PARISC_DIR16WF,        86)
+/*             load/store mod. comp. (2)  symbol + addend                */
+
+RELOC_NUMBER (R_PARISC_DIR16DF,        87)
+/*             load/store doubleword (3)  symbol + addend                */
+  
+RELOC_NUMBER (R_PARISC_GPREL64,        88)
+/*             64-bit doubleword          symbol - GP + addend           */
+  
+RELOC_NUMBER (R_PARISC_DLTREL14WR,     91)
+/*             load/store mod. comp. (2)  RR(symbol - GP, addend)        */
+
+RELOC_NUMBER (R_PARISC_DLTREL14DR,     92)
+/*             load/store doubleword (3)  RR(symbol - GP, addend)        */
+
+RELOC_NUMBER (R_PARISC_GPREL16F,       93)
+/*             load/store (1)             symbol - GP + addend           */
+
+RELOC_NUMBER (R_PARISC_GPREL16WF,      94)
+/*             load/store mod. comp. (2)  symbol - GP + addend           */
+
+RELOC_NUMBER (R_PARISC_GPREL16DF,      95)
+/*             load/store doubleword (3)  symbol - GP + addend           */
+
+
+RELOC_NUMBER (R_PARISC_LTOFF64,        96)
+/*             64-bit doubleword          ltoff(symbol + addend)         */
+
+RELOC_NUMBER (R_PARISC_DLTIND14WR,     99)
+/*             load/store mod. comp. (2)  R(ltoff(symbol + addend))      */
+
+RELOC_NUMBER (R_PARISC_DLTIND14DR,     100)
+/*             load/store doubleword (3)  R(ltoff(symbol + addend))      */
+
+RELOC_NUMBER (R_PARISC_LTOFF16F,       101)
+/*             load/store (1)             ltoff(symbol + addend)         */
+
+RELOC_NUMBER (R_PARISC_LTOFF16WF,      102)
+/*             load/store mod. comp. (2)  ltoff(symbol + addend)         */
+
+RELOC_NUMBER (R_PARISC_LTOFF16DF,      103)
+/*             load/store doubleword (3)  ltoff(symbol + addend)         */
+
+
+RELOC_NUMBER (R_PARISC_SECREL64,       104)
+/*             64-bit doubleword          symbol - SECT + addend         */
+
+RELOC_NUMBER (R_PARISC_BASEREL14WR,    107)
+/*             load/store mod. comp. (2)  RR(symbol - base, addend)      */
+
+RELOC_NUMBER (R_PARISC_BASEREL14DR,    108)
+/*             load/store doubleword (3)  RR(symbol - base, addend)      */
+
+
+RELOC_NUMBER (R_PARISC_SEGREL64,       112)
+/*             64-bit doubleword          symbol - SB + addend           */
+  
+RELOC_NUMBER (R_PARISC_PLTOFF14WR,     115)
+/*             load/store mod. comp. (2)  RR(pltoff(symbol), addend)     */
+
+RELOC_NUMBER (R_PARISC_PLTOFF14DR,     116)    
+/*             load/store doubleword (3)  RR(pltoff(symbol), addend)     */
+
+RELOC_NUMBER (R_PARISC_PLTOFF16F,      117)    
+/*             load/store (1)             pltoff(symbol) + addend        */
+
+RELOC_NUMBER (R_PARISC_PLTOFF16WF,     118)    
+/*             load/store mod. comp. (2)  pltoff(symbol) + addend        */
+
+RELOC_NUMBER (R_PARISC_PLTOFF16DF,     119)    
+/*             load/store doubleword (3)  pltoff(symbol) + addend        */
+
+
+RELOC_NUMBER (R_PARISC_LTOFF_FPTR64,   120)
+/*             64-bit doubleword          ltoff(fptr(symbol+addend))     */
+
+RELOC_NUMBER (R_PARISC_LTOFF_FPTR14WR, 123)
+/*             load/store mod. comp. (2)  R(ltoff(fptr(symbol+addend)))  */
+
+RELOC_NUMBER (R_PARISC_LTOFF_FPTR14DR, 124)
+/*             load/store doubleword (3)  R(ltoff(fptr(symbol+addend)))  */
+
+RELOC_NUMBER (R_PARISC_LTOFF_FPTR16F,  125)
+/*             load/store (1)             ltoff(fptr(symbol+addend))     */
+
+RELOC_NUMBER (R_PARISC_LTOFF_FPTR16WF, 126)
+/*             load/store mod. comp. (2)  ltoff(fptr(symbol+addend))     */
+
+RELOC_NUMBER (R_PARISC_LTOFF_FPTR16DF, 127)
+/*             load/store doubleword (3)  ltoff(fptr(symbol+addend))     */
+
+
+RELOC_NUMBER (R_PARISC_COPY,          128)
+/*             data                       Dynamic relocations only       */
+
+RELOC_NUMBER (R_PARISC_IPLT,          129)
+/*             plt                                                       */
+
+RELOC_NUMBER (R_PARISC_EPLT,          130)
+/*             plt                                                       */
+
+
+RELOC_NUMBER (R_PARISC_TPREL32,        153)
+/*             32-bit word                symbol - TP + addend           */
+
+RELOC_NUMBER (R_PARISC_TPREL21L,       154)
+/*             long immediate (7)         LR(symbol - TP, addend)        */
+
+RELOC_NUMBER (R_PARISC_TPREL14R,       158)
+/*             load/store (1)             RR(symbol - TP, addend)        */
+
+
+RELOC_NUMBER (R_PARISC_LTOFF_TP21L,    162)
+/*             long immediate (7)         L(ltoff(symbol - TP + addend)) */
+
+RELOC_NUMBER (R_PARISC_LTOFF_TP14R,    166)
+/*             load/store (1)             R(ltoff(symbol - TP + addend)) */
+
+RELOC_NUMBER (R_PARISC_LTOFF_TP14F,    167)
+/*             load/store (1)             ltoff(symbol - TP + addend)    */
+
+
+RELOC_NUMBER (R_PARISC_TPREL64,        216)
+/*             64-bit word                symbol - TP + addend           */
+
+RELOC_NUMBER (R_PARISC_TPREL14WR,      219)              
+/*             load/store mod. comp. (2)  RR(symbol - TP, addend)        */
+
+RELOC_NUMBER (R_PARISC_TPREL14DR,      220)              
+/*             load/store doubleword (3)  RR(symbol - TP, addend)        */
+
+RELOC_NUMBER (R_PARISC_TPREL16F,       221)              
+/*             load/store (1)             symbol - TP + addend           */
+
+RELOC_NUMBER (R_PARISC_TPREL16WF,      222)              
+/*             load/store mod. comp. (2)  symbol - TP + addend           */
+
+RELOC_NUMBER (R_PARISC_TPREL16DF,      223)              
+/*             load/store doubleword (3)  symbol - TP + addend           */
+
+
+RELOC_NUMBER (R_PARISC_LTOFF_TP64,     224)
+/*             64-bit doubleword          ltoff(symbol - TP + addend)    */
+
+RELOC_NUMBER (R_PARISC_LTOFF_TP14WR,   227)
+/*             load/store mod. comp. (2)  R(ltoff(symbol - TP + addend)) */
+
+RELOC_NUMBER (R_PARISC_LTOFF_TP14DR,   228)
+/*             load/store doubleword (3)  R(ltoff(symbol - TP + addend)) */
+
+RELOC_NUMBER (R_PARISC_LTOFF_TP16F,    229)
+/*             load/store (1)             ltoff(symbol - TP + addend)    */
+
+RELOC_NUMBER (R_PARISC_LTOFF_TP16WF,   230)
+/*             load/store mod. comp. (2)  ltoff(symbol - TP + addend)    */
+
+RELOC_NUMBER (R_PARISC_LTOFF_TP16DF,   231)
+/*             load/store doubleword (3)  ltoff(symbol - TP + addend)    */
+
+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 PF_PARISC_SBP          0x08000000
+#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
+#define PF_HP_MODIFY           0x00080000
 #define PF_HP_PAGE_SIZE                0x00100000
 #define PF_HP_FAR_SHARED       0x00200000
 #define PF_HP_NEAR_SHARED      0x00400000
-#define PF_HP_CODE             0x01000000
-#define PF_HP_MODIFY           0x02000000
-#define PF_HP_LAZYSWAP         0x04000000
+#define PF_HP_LAZYSWAP         0x00800000
+#define PF_HP_CODE_DEPR                0x01000000
+#define PF_HP_MODIFY_DEPR      0x02000000
+#define PF_HP_LAZYSWAP_DEPR    0x04000000
+#define PF_PARISC_SBP          0x08000000
 #define PF_HP_SBP              0x08000000
 
 \f
 /* Processor specific dynamic array tags.  */
 
-#define DT_HP_LOAD_MAP         (DT_LOOS + 0x0)
-#define DT_HP_DLD_FLAGS                (DT_LOOS + 0x1)
-#define DT_HP_DLD_HOOK         (DT_LOOS + 0x2)
-#define DT_HP_UX10_INIT                (DT_LOOS + 0x3)
-#define DT_HP_UX10_INITSZ      (DT_LOOS + 0x4)
-#define DT_HP_PREINIT          (DT_LOOS + 0x5)
-#define DT_HP_PREINITSZ                (DT_LOOS + 0x6)
-#define DT_HP_NEEDED           (DT_LOOS + 0x7)
-#define DT_HP_TIME_STAMP       (DT_LOOS + 0x8)
-#define DT_HP_CHECKSUM         (DT_LOOS + 0x9)
-#define DT_HP_GST_SIZE         (DT_LOOS + 0xa)
-#define DT_HP_GST_VERSION      (DT_LOOS + 0xb)
-#define DT_HP_GST_HASHVAL      (DT_LOOS + 0xc)
+/* Arggh.  HP's tools define these symbols based on the
+   old value of DT_LOOS.  So we must do the same to be
+   compatible.  */
+#define DT_HP_LOAD_MAP         (OLD_DT_LOOS + 0x0)
+#define DT_HP_DLD_FLAGS                (OLD_DT_LOOS + 0x1)
+#define DT_HP_DLD_HOOK         (OLD_DT_LOOS + 0x2)
+#define DT_HP_UX10_INIT                (OLD_DT_LOOS + 0x3)
+#define DT_HP_UX10_INITSZ      (OLD_DT_LOOS + 0x4)
+#define DT_HP_PREINIT          (OLD_DT_LOOS + 0x5)
+#define DT_HP_PREINITSZ                (OLD_DT_LOOS + 0x6)
+#define DT_HP_NEEDED           (OLD_DT_LOOS + 0x7)
+#define DT_HP_TIME_STAMP       (OLD_DT_LOOS + 0x8)
+#define DT_HP_CHECKSUM         (OLD_DT_LOOS + 0x9)
+#define DT_HP_GST_SIZE         (OLD_DT_LOOS + 0xa)
+#define DT_HP_GST_VERSION      (OLD_DT_LOOS + 0xb)
+#define DT_HP_GST_HASHVAL      (OLD_DT_LOOS + 0xc)
+#define DT_HP_EPLTREL          (OLD_DT_LOOS + 0xd)
+#define DT_HP_EPLTRELSZ                (OLD_DT_LOOS + 0xe)
+#define DT_HP_FILTERED         (OLD_DT_LOOS + 0xf)
+#define DT_HP_FILTER_TLS       (OLD_DT_LOOS + 0x10)
+#define DT_HP_COMPAT_FILTERED  (OLD_DT_LOOS + 0x11)
+#define DT_HP_LAZYLOAD         (OLD_DT_LOOS + 0x12)
+#define DT_HP_BIND_NOW_COUNT   (OLD_DT_LOOS + 0x13)
+#define DT_PLT                 (OLD_DT_LOOS + 0x14)
+#define DT_PLT_SIZE            (OLD_DT_LOOS + 0x15)
+#define DT_DLT                 (OLD_DT_LOOS + 0x16)
+#define DT_DLT_SIZE            (OLD_DT_LOOS + 0x17)
 
 /* Values for DT_HP_DLD_FLAGS.  */
-#define DT_HP_DEBUG_PRIVATE            0x0001 /* Map text private */
-#define DT_HP_DEBUG_CALLBACK           0x0002 /* Callback */
-#define DT_HP_DEBUG_CALLBACK_BOR       0x0004 /* BOR callback */
-#define DT_HP_NO_ENVVAR                        0x0008 /* No env var */
-#define DT_HP_BIND_NOW                 0x0010 /* Bind now */
-#define DT_HP_BIND_NONFATAL            0x0020 /* Bind non-fatal */
-#define DT_HP_BIND_VERBOSE             0x0040 /* Bind verbose */
-#define DT_HP_BIND_RESTRICTED          0x0080 /* Bind restricted */
-#define DT_HP_BIND_SYMBOLIC            0x0100 /* Bind symbolic */
-#define DT_HP_RPATH_FIRST              0x0200 /* RPATH first */
-#define DT_HP_BIND_DEPTH_FIRST         0x0400 /* Bind depth-first */
+#define DT_HP_DEBUG_PRIVATE            0x00001 /* Map text private */
+#define DT_HP_DEBUG_CALLBACK           0x00002 /* Callback */
+#define DT_HP_DEBUG_CALLBACK_BOR       0x00004 /* BOR callback */
+#define DT_HP_NO_ENVVAR                        0x00008 /* No env var */
+#define DT_HP_BIND_NOW                 0x00010 /* Bind now */
+#define DT_HP_BIND_NONFATAL            0x00020 /* Bind non-fatal */
+#define DT_HP_BIND_VERBOSE             0x00040 /* Bind verbose */
+#define DT_HP_BIND_RESTRICTED          0x00080 /* Bind restricted */
+#define DT_HP_BIND_SYMBOLIC            0x00100 /* Bind symbolic */
+#define DT_HP_RPATH_FIRST              0x00200 /* RPATH first */
+#define DT_HP_BIND_DEPTH_FIRST         0x00400 /* Bind depth-first */
+#define DT_HP_GST                      0x00800 /* Dld global sym table */
+#define DT_HP_SHLIB_FIXED              0x01000 /* shared vtable support */
+#define DT_HP_MERGE_SHLIB_SEG          0x02000 /* merge shlib data segs */
+#define DT_HP_NODELETE                 0x04000 /* never unload */
+#define DT_HP_GROUP                    0x08000 /* bind only within group */
+#define DT_HP_PROTECT_LINKAGE_TABLE    0x10000 /* protected linkage table */
 
 /* Program header extensions.  */
 #define PT_HP_TLS              (PT_LOOS + 0x0)
@@ -327,9 +610,25 @@ typedef enum elf_hppa_reloc_type elf_hppa_reloc_type;
 #define PT_HP_CORE_MMF         (PT_LOOS + 0x9)
 #define PT_HP_PARALLEL         (PT_LOOS + 0x10)
 #define PT_HP_FASTBIND         (PT_LOOS + 0x11)
+#define PT_HP_OPT_ANNOT                (PT_LOOS + 0x12)
+#define PT_HP_HSL_ANNOT                (PT_LOOS + 0x13)
+#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)
 
+/* Note types.  */
+#define NT_HP_COMPILER         1
+#define NT_HP_COPYRIGHT                2
+#define NT_HP_VERSION          3
+#define NT_HP_SRCFILE_INFO     4
+#define NT_HP_LINKER           5
+#define NT_HP_INSTRUMENTED     6
+#define NT_HP_UX_OPTIONS       7
+
 #endif /* _ELF_HPPA_H */
This page took 0.038093 seconds and 4 git commands to generate.