1 /* Common code for PA ELF implementations.
2 Copyright (C) 1999 Free Software Foundation, Inc.
4 This file is part of BFD, the Binary File Descriptor library.
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
20 #define ELF_HOWTO_TABLE_SIZE R_PARISC_UNIMPLEMENTED + 1
23 #define ELF_R_TYPE(X) ELF64_R_TYPE(X)
24 #define _bfd_elf_hppa_gen_reloc_type _bfd_elf64_hppa_gen_reloc_type
27 #define ELF_R_TYPE(X) ELF32_R_TYPE(X)
28 #define _bfd_elf_hppa_gen_reloc_type _bfd_elf32_hppa_gen_reloc_type
31 /* ELF/PA relocation howto entries. */
33 static reloc_howto_type elf_hppa_howto_table
[ELF_HOWTO_TABLE_SIZE
] =
35 {R_PARISC_NONE
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_NONE", false, 0, 0, false},
37 /* The values in DIR32 are to placate the check in
38 _bfd_stab_section_find_nearest_line. */
39 {R_PARISC_DIR32
, 0, 2, 32, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DIR32", false, 0, 0xffffffff, false},
40 {R_PARISC_DIR21L
, 0, 0, 21, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DIR21L", false, 0, 0, false},
41 {R_PARISC_DIR17R
, 0, 0, 17, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DIR17R", false, 0, 0, false},
42 {R_PARISC_DIR17F
, 0, 0, 17, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DIR17F", false, 0, 0, false},
43 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
44 {R_PARISC_DIR14R
, 0, 0, 14, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DIR14R", false, 0, 0, false},
45 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
46 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
47 {R_PARISC_PCREL32
, 0, 0, 32, true, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PCREL32", false, 0, 0, false},
49 {R_PARISC_PCREL21L
, 0, 0, 21, true, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PCREL21L", false, 0, 0, false},
50 {R_PARISC_PCREL17R
, 0, 0, 17, true, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PCREL17R", false, 0, 0, false},
51 {R_PARISC_PCREL17F
, 0, 0, 17, true, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PCREL17F", false, 0, 0, false},
52 {R_PARISC_PCREL17C
, 0, 0, 17, true, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PCREL17C", false, 0, 0, false},
53 {R_PARISC_PCREL14R
, 0, 0, 14, true, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PCREL14R", false, 0, 0, false},
54 {R_PARISC_PCREL14F
, 0, 0, 14, true, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PCREL14F", false, 0, 0, false},
55 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
56 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
57 {R_PARISC_DPREL21L
, 0, 0, 21, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DPREL21L", false, 0, 0, false},
58 {R_PARISC_DPREL14WR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DPREL14WR", false, 0, 0, false},
60 {R_PARISC_DPREL14DR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DPREL14DR", false, 0, 0, false},
61 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
62 {R_PARISC_DPREL14R
, 0, 0, 14, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DPREL14R", false, 0, 0, false},
63 {R_PARISC_DPREL14F
, 0, 0, 14, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DPREL14F", false, 0, 0, false},
64 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
65 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
66 {R_PARISC_DLTREL21L
, 0, 0, 21, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DLTREL21L", false, 0, 0, false},
67 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
68 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
69 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
71 {R_PARISC_DLTREL14R
, 0, 0, 14, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DLTREL14R", false, 0, 0, false},
72 {R_PARISC_DLTREL14F
, 0, 0, 14, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DLTREL14F", false, 0, 0, false},
73 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
74 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
75 {R_PARISC_DLTIND21L
, 0, 0, 21, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DLTIND21L", false, 0, 0, false},
76 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
77 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
78 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
79 {R_PARISC_DLTIND14R
, 0, 0, 14, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DLTIND14R", false, 0, 0, false},
80 {R_PARISC_DLTIND14F
, 0, 0, 14, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DLTIND14F", false, 0, 0, false},
82 {R_PARISC_SETBASE
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_SETBASE", false, 0, 0, false},
83 {R_PARISC_SECREL32
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_SECREL32", false, 0, 0, false},
84 {R_PARISC_BASEREL21L
, 0, 0, 21, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_BASEREL21L", false, 0, 0, false},
85 {R_PARISC_BASEREL17R
, 0, 0, 17, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_BASEREL17R", false, 0, 0, false},
86 {R_PARISC_BASEREL17F
, 0, 0, 17, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_BASEREL17F", false, 0, 0, false},
87 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
88 {R_PARISC_BASEREL14R
, 0, 0, 14, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_BASEREL14R", false, 0, 0, false},
89 {R_PARISC_BASEREL14F
, 0, 0, 14, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_BASEREL14F", false, 0, 0, false},
90 {R_PARISC_SEGBASE
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_SEGBASE", false, 0, 0, false},
91 {R_PARISC_SEGREL32
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_SEGREL32", false, 0, 0, false},
93 {R_PARISC_PLTOFF21L
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PLTOFF21L", false, 0, 0, false},
94 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
95 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
96 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
97 {R_PARISC_PLTOFF14R
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PLTOFF14R", false, 0, 0, false},
98 {R_PARISC_PLTOFF14F
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PLTOFF14F", false, 0, 0, false},
99 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
100 {R_PARISC_LTOFF_FPTR32
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF_FPTR32", false, 0, 0, false},
101 {R_PARISC_LTOFF_FPTR21L
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF_FPTR21L", false, 0, 0, false},
102 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
104 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
105 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
106 {R_PARISC_LTOFF_FPTR14R
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF_FPTR14R", false, 0, 0, false},
107 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
108 {R_PARISC_FPTR64
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_FPTR64", false, 0, 0, false},
109 {R_PARISC_PLABEL32
, 0, 0, 32, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PLABEL32", false, 0, 0, false},
110 {R_PARISC_PLABEL21L
, 0, 0, 21, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PLABEL21L", false, 0, 0, false},
111 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
112 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
113 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
115 {R_PARISC_PLABEL14R
, 0, 0, 14, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PLABEL14R", false, 0, 0, false},
116 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
117 {R_PARISC_PCREL64
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PCREL64", false, 0, 0, false},
118 {R_PARISC_PCREL22C
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PCREL22C", false, 0, 0, false},
119 {R_PARISC_PCREL22F
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PCREL22F", false, 0, 0, false},
120 {R_PARISC_PCREL14WR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PCREL14WR", false, 0, 0, false},
121 {R_PARISC_PCREL14DR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PCREL14DR", false, 0, 0, false},
122 {R_PARISC_PCREL16F
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PCREL16F", false, 0, 0, false},
123 {R_PARISC_PCREL16WF
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PCREL16WF", false, 0, 0, false},
124 {R_PARISC_PCREL16DF
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PCREL16DF", false, 0, 0, false},
126 {R_PARISC_DIR64
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DIR64", false, 0, 0, false},
127 {R_PARISC_DIR64WR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DIR64WR", false, 0, 0, false},
128 {R_PARISC_DIR64DR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DIR64DR", false, 0, 0, false},
129 {R_PARISC_DIR14WR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DIR14WR", false, 0, 0, false},
130 {R_PARISC_DIR14DR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DIR14DR", false, 0, 0, false},
131 {R_PARISC_DIR16F
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DIR16F", false, 0, 0, false},
132 {R_PARISC_DIR16WF
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DIR16WF", false, 0, 0, false},
133 {R_PARISC_DIR16DF
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DIR16DF", false, 0, 0, false},
134 {R_PARISC_GPREL64
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_GPREL64", false, 0, 0, false},
135 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
137 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
138 {R_PARISC_DLTREL14WR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DLTREL14WR", false, 0, 0, false},
139 {R_PARISC_DLTREL14DR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DLTREL14DR", false, 0, 0, false},
140 {R_PARISC_GPREL16F
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_GPREL16F", false, 0, 0, false},
141 {R_PARISC_GPREL16WF
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_GPREL16WF", false, 0, 0, false},
142 {R_PARISC_GPREL16DF
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_GPREL16DF", false, 0, 0, false},
143 {R_PARISC_LTOFF64
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF64", false, 0, 0, false},
144 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
145 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
146 {R_PARISC_DLTIND14WR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DLTIND14WR", false, 0, 0, false},
148 {R_PARISC_DLTIND14DR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_DLTIND14DR", false, 0, 0, false},
149 {R_PARISC_LTOFF16F
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF16F", false, 0, 0, false},
150 {R_PARISC_LTOFF16DF
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF16DF", false, 0, 0, false},
151 {R_PARISC_SECREL64
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_SECREL64", false, 0, 0, false},
152 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
153 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
154 {R_PARISC_BASEREL14WR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_BSEREL14WR", false, 0, 0, false},
155 {R_PARISC_BASEREL14DR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_BASEREL14DR", false, 0, 0, false},
156 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
157 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
159 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
160 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
161 {R_PARISC_SEGREL64
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_SEGREL64", false, 0, 0, false},
162 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
163 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
164 {R_PARISC_PLTOFF14WR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PLTOFF14WR", false, 0, 0, false},
165 {R_PARISC_PLTOFF14DR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PLTOFF14DR", false, 0, 0, false},
166 {R_PARISC_PLTOFF16F
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PLTOFF16F", false, 0, 0, false},
167 {R_PARISC_PLTOFF16WF
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PLTOFF16WF", false, 0, 0, false},
168 {R_PARISC_PLTOFF16DF
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_PLTOFF16DF", false, 0, 0, false},
170 {R_PARISC_LTOFF_FPTR64
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
171 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
172 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
173 {R_PARISC_LTOFF_FPTR14WR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF_FPTR14WR", false, 0, 0, false},
174 {R_PARISC_LTOFF_FPTR14DR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF_FPTR14DR", false, 0, 0, false},
175 {R_PARISC_LTOFF_FPTR16F
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF_FPTR16F", false, 0, 0, false},
176 {R_PARISC_LTOFF_FPTR16WF
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF_FPTR16WF", false, 0, 0, false},
177 {R_PARISC_LTOFF_FPTR16DF
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
178 {R_PARISC_COPY
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_COPY", false, 0, 0, false},
179 {R_PARISC_IPLT
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_IPLT", false, 0, 0, false},
181 {R_PARISC_EPLT
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_EPLT", false, 0, 0, false},
182 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
183 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
184 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
185 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
186 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
187 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
188 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
189 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
190 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
192 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
193 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
194 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
195 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
196 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
197 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
198 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
199 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
200 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
201 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
203 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
204 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
205 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
206 {R_PARISC_TPREL32
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_TPREL32", false, 0, 0, false},
207 {R_PARISC_TPREL21L
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_TPREL21L", false, 0, 0, false},
208 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
209 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
210 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
211 {R_PARISC_TPREL14R
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_TPREL14R", false, 0, 0, false},
212 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
214 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
215 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
216 {R_PARISC_LTOFF_TP21L
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF_TP21L", false, 0, 0, false},
217 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
218 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
219 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
220 {R_PARISC_LTOFF_TP14R
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
221 {R_PARISC_LTOFF_TP14F
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF_TP14F", false, 0, 0, false},
222 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
223 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
225 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
226 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
227 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
228 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
229 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
230 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
231 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
232 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
233 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
234 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
236 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
237 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
238 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
239 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
240 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
241 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
242 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
243 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
244 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
245 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
247 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
248 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
249 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
250 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
251 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
252 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
253 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
254 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
255 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
256 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
258 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
259 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
260 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
261 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
262 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
263 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
264 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
265 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
266 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
267 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
269 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
270 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
271 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
272 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
273 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
274 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
275 {R_PARISC_TPREL64
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_TPREL64", false, 0, 0, false},
276 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
277 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
278 {R_PARISC_TPREL14WR
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_TPREL14WR", false, 0, 0, false},
280 {R_PARISC_TPREL14DR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_TPREL14DR", false, 0, 0, false},
281 {R_PARISC_TPREL16F
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_TPREL16F", false, 0, 0, false},
282 {R_PARISC_TPREL16WF
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_TPREL16WF", false, 0, 0, false},
283 {R_PARISC_TPREL16DF
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_TPREL16DF", false, 0, 0, false},
284 {R_PARISC_LTOFF_TP64
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF_TP64", false, 0, 0, false},
285 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
286 {R_PARISC_UNIMPLEMENTED
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false},
287 {R_PARISC_LTOFF_TP14WR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF_TP14WR", false, 0, 0, false},
288 {R_PARISC_LTOFF_TP14DR
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF_TP14DR", false, 0, 0, false},
289 {R_PARISC_LTOFF_TP16F
, 0, 0, 0, false, 0, complain_overflow_dont
, NULL
, "R_PARISC_LTOFF_TP16F", false, 0, 0, false},
291 {R_PARISC_LTOFF_TP16WF
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF_TP16WF", false, 0, 0, false},
292 {R_PARISC_LTOFF_TP16DF
, 0, 0, 0, false, 0, complain_overflow_bitfield
, bfd_elf_generic_reloc
, "R_PARISC_LTOFF_TP16DF", false, 0, 0, false},
295 #define OFFSET_14R_FROM_21L 4
296 #define OFFSET_14F_FROM_21L 5
298 /* Return one (or more) BFD relocations which implement the base
299 relocation with modifications based on format and field. */
301 elf_hppa_reloc_type
**
302 _bfd_elf_hppa_gen_reloc_type (abfd
, base_type
, format
, field
, ignore
, sym
)
304 elf_hppa_reloc_type base_type
;
307 int ignore ATTRIBUTE_UNUSED
;
308 asymbol
*sym ATTRIBUTE_UNUSED
;
310 elf_hppa_reloc_type
*finaltype
;
311 elf_hppa_reloc_type
**final_types
;
313 /* Allocate slots for the BFD relocation. */
314 final_types
= ((elf_hppa_reloc_type
**)
315 bfd_alloc (abfd
, sizeof (elf_hppa_reloc_type
*) * 2));
316 if (final_types
== NULL
)
319 /* Allocate space for the relocation itself. */
320 finaltype
= ((elf_hppa_reloc_type
*)
321 bfd_alloc (abfd
, sizeof (elf_hppa_reloc_type
)));
322 if (finaltype
== NULL
)
325 /* Some reasonable defaults. */
326 final_types
[0] = finaltype
;
327 final_types
[1] = NULL
;
329 #define final_type finaltype[0]
331 final_type
= base_type
;
333 /* Just a tangle of nested switch statements to deal with the braindamage
334 that a different field selector means a completely different relocation
338 /* We have been using generic relocation types. However, that may not
339 really make sense. Anyway, we need to support both R_PARISC_DIR64
340 and R_PARISC_DIR32 here. */
343 case R_HPPA_ABS_CALL
:
351 final_type
= R_PARISC_DIR14R
;
354 final_type
= R_PARISC_DLTIND14R
;
357 final_type
= R_PARISC_LTOFF_FPTR14DR
;
360 final_type
= R_PARISC_DLTIND14F
;
363 final_type
= R_PARISC_PLABEL14R
;
374 final_type
= R_PARISC_DIR17F
;
378 final_type
= R_PARISC_DIR17R
;
390 final_type
= R_PARISC_DIR21L
;
393 final_type
= R_PARISC_DLTIND21L
;
396 final_type
= R_PARISC_LTOFF_FPTR21L
;
399 final_type
= R_PARISC_PLABEL21L
;
410 final_type
= R_PARISC_DIR32
;
411 /* When in 64bit mode, a 32bit relocation is supposed to
412 be a section relative relocation. Dwarf2 (for example)
413 uses 32bit section relative relocations. */
414 if (bfd_get_arch_info (abfd
)->bits_per_address
!= 32)
415 final_type
= R_PARISC_SECREL32
;
418 final_type
= R_PARISC_PLABEL32
;
429 final_type
= R_PARISC_DIR64
;
432 final_type
= R_PARISC_FPTR64
;
453 final_type
= base_type
+ OFFSET_14R_FROM_21L
;
456 final_type
= base_type
+ OFFSET_14F_FROM_21L
;
468 final_type
= base_type
;
481 case R_HPPA_PCREL_CALL
:
489 final_type
= R_PARISC_PCREL14R
;
492 final_type
= R_PARISC_PCREL14F
;
504 final_type
= R_PARISC_PCREL17R
;
507 final_type
= R_PARISC_PCREL17F
;
518 final_type
= R_PARISC_PCREL22F
;
530 final_type
= R_PARISC_PCREL21L
;
542 case R_PARISC_SEGREL32
:
543 case R_PARISC_SEGBASE
:
544 /* The defaults are fine for these cases. */
554 /* Translate from an elf into field into a howto relocation pointer. */
557 elf_hppa_info_to_howto (abfd
, bfd_reloc
, elf_reloc
)
558 bfd
*abfd ATTRIBUTE_UNUSED
;
560 Elf_Internal_Rela
*elf_reloc
;
562 BFD_ASSERT (ELF_R_TYPE(elf_reloc
->r_info
)
563 < (unsigned int) R_PARISC_UNIMPLEMENTED
);
564 bfd_reloc
->howto
= &elf_hppa_howto_table
[ELF_R_TYPE (elf_reloc
->r_info
)];
567 /* Translate from an elf into field into a howto relocation pointer. */
570 elf_hppa_info_to_howto_rel (abfd
, bfd_reloc
, elf_reloc
)
571 bfd
*abfd ATTRIBUTE_UNUSED
;
573 Elf_Internal_Rel
*elf_reloc
;
575 BFD_ASSERT (ELF_R_TYPE(elf_reloc
->r_info
)
576 < (unsigned int) R_PARISC_UNIMPLEMENTED
);
577 bfd_reloc
->howto
= &elf_hppa_howto_table
[ELF_R_TYPE (elf_reloc
->r_info
)];
580 /* Return the address of the howto table entry to perform the CODE
581 relocation for an ARCH machine. */
583 static reloc_howto_type
*
584 elf_hppa_reloc_type_lookup (abfd
, code
)
585 bfd
*abfd ATTRIBUTE_UNUSED
;
586 bfd_reloc_code_real_type code
;
588 if ((int) code
< (int) R_PARISC_UNIMPLEMENTED
)
590 BFD_ASSERT ((int) elf_hppa_howto_table
[(int) code
].type
== (int) code
);
591 return &elf_hppa_howto_table
[(int) code
];
597 elf_hppa_final_write_processing (abfd
, linker
)
599 boolean linker ATTRIBUTE_UNUSED
;
601 int mach
= bfd_get_mach (abfd
);
603 elf_elfheader (abfd
)->e_flags
&= ~(EF_PARISC_ARCH
| EF_PARISC_TRAPNIL
604 | EF_PARISC_EXT
| EF_PARISC_LSB
605 | EF_PARISC_WIDE
| EF_PARISC_NO_KABP
606 | EF_PARISC_LAZYSWAP
);
609 elf_elfheader (abfd
)->e_flags
|= EFA_PARISC_1_0
;
611 elf_elfheader (abfd
)->e_flags
|= EFA_PARISC_1_1
;
613 elf_elfheader (abfd
)->e_flags
|= EFA_PARISC_2_0
;
615 elf_elfheader (abfd
)->e_flags
|= EF_PARISC_WIDE
| EFA_PARISC_2_0
;
618 /* Return true if SYM represents a local label symbol. */
621 elf_hppa_is_local_label_name (abfd
, name
)
622 bfd
*abfd ATTRIBUTE_UNUSED
;
625 return (name
[0] == 'L' && name
[1] == '$');
628 /* Set the correct type for an ELF section. We do this by the
629 section name, which is a hack, but ought to work. */
632 elf_hppa_fake_sections (abfd
, hdr
, sec
)
634 Elf64_Internal_Shdr
*hdr
;
637 register const char *name
;
639 name
= bfd_get_section_name (abfd
, sec
);
641 if (strcmp (name
, ".PARISC.unwind") == 0)
645 hdr
->sh_type
= SHT_LOPROC
+ 1;
646 /* ?!? How are unwinds supposed to work for symbols in arbitrary
647 sections? Or what if we have multiple .text sections in a single
648 .o file? HP really messed up on this one.
650 Ugh. We can not use elf_section_data (sec)->this_idx at this
651 point because it is not initialized yet.
653 So we (gasp) recompute it here. Hopefully nobody ever changes the
654 way sections are numbered in elf.c! */
655 for (sec
= abfd
->sections
, indx
= 1; sec
; sec
= sec
->next
, indx
++)
657 if (sec
->name
&& strcmp (sec
->name
, ".text") == 0)
664 /* I have no idea if this is really necessary or what it means. */