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
339 case R_HPPA_ABS_CALL
:
347 final_type
= R_PARISC_DIR14R
;
350 final_type
= R_PARISC_DLTIND14R
;
353 final_type
= R_PARISC_LTOFF_FPTR14DR
;
356 final_type
= R_PARISC_DLTIND14F
;
359 final_type
= R_PARISC_PLABEL14R
;
370 final_type
= R_PARISC_DIR17F
;
374 final_type
= R_PARISC_DIR17R
;
386 final_type
= R_PARISC_DIR21L
;
389 final_type
= R_PARISC_DLTIND21L
;
392 final_type
= R_PARISC_LTOFF_FPTR21L
;
395 final_type
= R_PARISC_PLABEL21L
;
406 final_type
= R_PARISC_DIR32
;
407 /* When in 64bit mode, a 32bit relocation is supposed to
408 be a section relative relocation. Dwarf2 (for example)
409 uses 32bit section relative relocations. */
410 if (bfd_get_arch_info (abfd
)->bits_per_address
!= 32)
411 final_type
= R_PARISC_SECREL32
;
414 final_type
= R_PARISC_PLABEL32
;
425 final_type
= R_PARISC_DIR64
;
428 final_type
= R_PARISC_FPTR64
;
449 final_type
= base_type
+ OFFSET_14R_FROM_21L
;
452 final_type
= base_type
+ OFFSET_14F_FROM_21L
;
464 final_type
= base_type
;
477 case R_HPPA_PCREL_CALL
:
485 final_type
= R_PARISC_PCREL14R
;
488 final_type
= R_PARISC_PCREL14F
;
500 final_type
= R_PARISC_PCREL17R
;
503 final_type
= R_PARISC_PCREL17F
;
514 final_type
= R_PARISC_PCREL22F
;
526 final_type
= R_PARISC_PCREL21L
;
538 case R_PARISC_SEGREL32
:
539 case R_PARISC_SEGBASE
:
540 /* The defaults are fine for these cases. */
550 /* Translate from an elf into field into a howto relocation pointer. */
553 elf_hppa_info_to_howto (abfd
, bfd_reloc
, elf_reloc
)
554 bfd
*abfd ATTRIBUTE_UNUSED
;
556 Elf_Internal_Rela
*elf_reloc
;
558 BFD_ASSERT (ELF_R_TYPE(elf_reloc
->r_info
)
559 < (unsigned int) R_PARISC_UNIMPLEMENTED
);
560 bfd_reloc
->howto
= &elf_hppa_howto_table
[ELF_R_TYPE (elf_reloc
->r_info
)];
563 /* Translate from an elf into field into a howto relocation pointer. */
566 elf_hppa_info_to_howto_rel (abfd
, bfd_reloc
, elf_reloc
)
567 bfd
*abfd ATTRIBUTE_UNUSED
;
569 Elf_Internal_Rel
*elf_reloc
;
571 BFD_ASSERT (ELF_R_TYPE(elf_reloc
->r_info
)
572 < (unsigned int) R_PARISC_UNIMPLEMENTED
);
573 bfd_reloc
->howto
= &elf_hppa_howto_table
[ELF_R_TYPE (elf_reloc
->r_info
)];
576 /* Return the address of the howto table entry to perform the CODE
577 relocation for an ARCH machine. */
579 static reloc_howto_type
*
580 elf_hppa_reloc_type_lookup (abfd
, code
)
581 bfd
*abfd ATTRIBUTE_UNUSED
;
582 bfd_reloc_code_real_type code
;
584 if ((int) code
< (int) R_PARISC_UNIMPLEMENTED
)
586 BFD_ASSERT ((int) elf_hppa_howto_table
[(int) code
].type
== (int) code
);
587 return &elf_hppa_howto_table
[(int) code
];
593 elf_hppa_final_write_processing (abfd
, linker
)
595 boolean linker ATTRIBUTE_UNUSED
;
597 int mach
= bfd_get_mach (abfd
);
599 elf_elfheader (abfd
)->e_flags
&= ~(EF_PARISC_ARCH
| EF_PARISC_TRAPNIL
600 | EF_PARISC_EXT
| EF_PARISC_LSB
601 | EF_PARISC_WIDE
| EF_PARISC_NO_KABP
602 | EF_PARISC_LAZYSWAP
);
605 elf_elfheader (abfd
)->e_flags
|= EFA_PARISC_1_0
;
607 elf_elfheader (abfd
)->e_flags
|= EFA_PARISC_1_1
;
609 elf_elfheader (abfd
)->e_flags
|= EFA_PARISC_2_0
;
611 elf_elfheader (abfd
)->e_flags
|= EF_PARISC_WIDE
| EFA_PARISC_2_0
;
614 /* Return true if SYM represents a local label symbol. */
617 elf_hppa_is_local_label_name (abfd
, name
)
618 bfd
*abfd ATTRIBUTE_UNUSED
;
621 return (name
[0] == 'L' && name
[1] == '$');
624 /* Set the correct type for an ELF section. We do this by the
625 section name, which is a hack, but ought to work. */
628 elf_hppa_fake_sections (abfd
, hdr
, sec
)
630 Elf64_Internal_Shdr
*hdr
;
633 register const char *name
;
635 name
= bfd_get_section_name (abfd
, sec
);
637 if (strcmp (name
, ".PARISC.unwind") == 0)
640 hdr
->sh_type
= SHT_LOPROC
+ 1;
641 /* ?!? How are unwinds supposed to work for symbols in arbitrary
642 sections? Or what if we have multiple .text sections in a single
643 .o file? HP really messed up on this one. */
644 sec
= bfd_get_section_by_name (abfd
, ".text");
646 hdr
->sh_info
= elf_section_data (sec
)->this_idx
;
648 /* I have no idea if this is really necessary or what it means. */