Changeset 609 for branches/GNU/src/binutils/bfd/elfarm-oabi.c
- Timestamp:
- Aug 16, 2003, 6:59:22 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GNU/src/binutils/bfd/elfarm-oabi.c
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* 32-bit ELF support for ARM old abi option. 2 Copyright 1999, 2000, 2001 Free Software Foundation, Inc.2 Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. 3 3 4 4 This file is part of BFD, the Binary File Descriptor library. … … 19 19 20 20 #define OLD_ARM_ABI 21 #define bfd_elf32_arm_allocate_interworking_sections \ 22 bfd_elf32_arm_oabi_allocate_interworking_sections 23 #define bfd_elf32_arm_get_bfd_for_interworking \ 24 bfd_elf32_arm_oabi_get_bfd_for_interworking 25 #define bfd_elf32_arm_process_before_allocation \ 26 bfd_elf32_arm_oabi_process_before_allocation 27 #define bfd_elf32_arm_add_glue_sections_to_bfd \ 28 bfd_elf32_arm_oabi_add_glue_sections_to_bfd 21 29 22 30 #include "elf/arm.h" … … 30 38 #endif 31 39 32 #define USE_RELA33 34 40 #define TARGET_LITTLE_SYM bfd_elf32_littlearm_oabi_vec 35 41 #define TARGET_LITTLE_NAME "elf32-littlearm-oabi" … … 43 49 #define ARM_ELF_OS_ABI_VERSION 0 44 50 51 static reloc_howto_type * find_howto PARAMS ((unsigned int)); 52 static void elf32_arm_info_to_howto PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); 53 static reloc_howto_type * elf32_arm_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); 54 45 55 static reloc_howto_type elf32_arm_howto_table[] = 46 {47 /* No relocation*/48 HOWTO (R_ARM_NONE, /* type */49 0, /* rightshift */50 0, /* size (0 = byte, 1 = short, 2 = long) */51 0, /* bitsize */52 false,/* pc_relative */53 0, /* bitpos */54 complain_overflow_dont, /* complain_on_overflow */55 bfd_elf_generic_reloc, /* special_function */56 "R_ARM_NONE",/* name */57 false,/* partial_inplace */58 0, /* src_mask */59 0, /* dst_mask */60 false), /* pcrel_offset */61 62 HOWTO (R_ARM_PC24, /* type */63 2, /* rightshift */64 2, /* size (0 = byte, 1 = short, 2 = long) */65 24, /* bitsize */66 true,/* pc_relative */67 0, /* bitpos */68 complain_overflow_signed, /* complain_on_overflow */69 bfd_elf_generic_reloc, /* special_function */70 "R_ARM_PC24",/* name */71 false,/* partial_inplace */72 0x00ffffff, /* src_mask */73 0x00ffffff, /* dst_mask */74 true), /* pcrel_offset */75 76 /* 32 bit absolute*/77 HOWTO (R_ARM_ABS32, /* type */78 0, /* rightshift */79 2, /* size (0 = byte, 1 = short, 2 = long) */80 32, /* bitsize */81 false,/* pc_relative */82 0, /* bitpos */83 complain_overflow_bitfield, /* complain_on_overflow */84 bfd_elf_generic_reloc, /* special_function */85 "R_ARM_ABS32",/* name */86 false,/* partial_inplace */87 0xffffffff, /* src_mask */88 0xffffffff, /* dst_mask */89 false), /* pcrel_offset */90 91 /* standard 32bit pc-relative reloc*/92 HOWTO (R_ARM_REL32, /* type */93 0, /* rightshift */94 2, /* size (0 = byte, 1 = short, 2 = long) */95 32, /* bitsize */96 true,/* pc_relative */97 0, /* bitpos */98 complain_overflow_bitfield, /* complain_on_overflow */99 bfd_elf_generic_reloc, /* special_function */100 "R_ARM_REL32",/* name */101 false,/* partial_inplace */102 0xffffffff, /* src_mask */103 0xffffffff, /* dst_mask */104 true),/* pcrel_offset */105 106 /* 8 bit absolute*/107 HOWTO (R_ARM_ABS8, /* type */108 0, /* rightshift */109 0, /* size (0 = byte, 1 = short, 2 = long) */110 8, /* bitsize */111 false,/* pc_relative */112 0, /* bitpos */113 complain_overflow_bitfield, /* complain_on_overflow */114 bfd_elf_generic_reloc, /* special_function */115 "R_ARM_ABS8",/* name */116 false,/* partial_inplace */117 0x000000ff, /* src_mask */118 0x000000ff, /* dst_mask */119 false), /* pcrel_offset */120 121 /* 16 bit absolute*/122 HOWTO (R_ARM_ABS16, /* type */123 0, /* rightshift */124 1, /* size (0 = byte, 1 = short, 2 = long) */125 16, /* bitsize */126 false,/* pc_relative */127 0, /* bitpos */128 complain_overflow_bitfield, /* complain_on_overflow */129 bfd_elf_generic_reloc, /* special_function */130 "R_ARM_ABS16",/* name */131 false,/* partial_inplace */132 0, /* src_mask */133 0, /* dst_mask */134 false), /* pcrel_offset */135 136 /* 12 bit absolute*/137 HOWTO (R_ARM_ABS12, /* type */138 0, /* rightshift */139 2, /* size (0 = byte, 1 = short, 2 = long) */140 12, /* bitsize */141 false,/* pc_relative */142 0, /* bitpos */143 complain_overflow_bitfield, /* complain_on_overflow */144 bfd_elf_generic_reloc, /* special_function */145 "R_ARM_ABS12",/* name */146 false,/* partial_inplace */147 0x000008ff, /* src_mask */148 0x000008ff, /* dst_mask */149 false), /* pcrel_offset */150 151 HOWTO (R_ARM_THM_ABS5, /* type */152 6, /* rightshift */153 1, /* size (0 = byte, 1 = short, 2 = long) */154 5, /* bitsize */155 false,/* pc_relative */156 0, /* bitpos */157 complain_overflow_bitfield, /* complain_on_overflow */158 bfd_elf_generic_reloc, /* special_function */159 "R_ARM_THM_ABS5", /* name */160 false,/* partial_inplace */161 0x000007e0, /* src_mask */162 0x000007e0, /* dst_mask */163 false), /* pcrel_offset */164 165 HOWTO (R_ARM_THM_PC22, /* type */166 1, /* rightshift */167 2, /* size (0 = byte, 1 = short, 2 = long) */168 23, /* bitsize */169 true,/* pc_relative */170 0, /* bitpos */171 complain_overflow_signed, /* complain_on_overflow */172 bfd_elf_generic_reloc, /* special_function */173 "R_ARM_THM_PC22", /* name */174 false,/* partial_inplace */175 0x07ff07ff, /* src_mask */176 0x07ff07ff, /* dst_mask */177 true), /* pcrel_offset */178 179 HOWTO (R_ARM_SBREL32, /* type */180 0, /* rightshift */181 0, /* size (0 = byte, 1 = short, 2 = long) */182 0, /* bitsize */183 false,/* pc_relative */184 0, /* bitpos */185 complain_overflow_dont,/* complain_on_overflow */186 bfd_elf_generic_reloc, /* special_function */187 "R_ARM_SBREL32", /* name */188 false,/* partial_inplace */189 0, /* src_mask */190 0, /* dst_mask */191 false), /* pcrel_offset */192 193 HOWTO (R_ARM_AMP_VCALL9, /* type */194 1, /* rightshift */195 1, /* size (0 = byte, 1 = short, 2 = long) */196 8, /* bitsize */197 true,/* pc_relative */198 0, /* bitpos */199 complain_overflow_signed, /* complain_on_overflow */200 bfd_elf_generic_reloc, /* special_function */201 "R_ARM_AMP_VCALL9", /* name */202 false,/* partial_inplace */203 0x000000ff, /* src_mask */204 0x000000ff, /* dst_mask */205 true),/* pcrel_offset */206 207 /* 12 bit pc relative*/208 HOWTO (R_ARM_THM_PC11, /* type */209 1, /* rightshift */210 1, /* size (0 = byte, 1 = short, 2 = long) */211 11, /* bitsize */212 true,/* pc_relative */213 0, /* bitpos */214 complain_overflow_signed, /* complain_on_overflow */215 bfd_elf_generic_reloc, /* special_function */216 "R_ARM_THM_PC11", /* name */217 false,/* partial_inplace */218 0x000007ff, /* src_mask */219 0x000007ff, /* dst_mask */220 true),/* pcrel_offset */221 222 /* 12 bit pc relative*/223 HOWTO (R_ARM_THM_PC9,/* type */224 1, /* rightshift */225 1, /* size (0 = byte, 1 = short, 2 = long) */226 8, /* bitsize */227 true,/* pc_relative */228 0, /* bitpos */229 complain_overflow_signed, /* complain_on_overflow */230 bfd_elf_generic_reloc, /* special_function */231 "R_ARM_THM_PC9", /* name */232 false,/* partial_inplace */233 0x000000ff, /* src_mask */234 0x000000ff, /* dst_mask */235 true),/* pcrel_offset */236 237 /* GNU extension to record C++ vtable hierarchy*/238 HOWTO (R_ARM_GNU_VTINHERIT, /* type */239 240 241 242 false, /* pc_relative */243 244 245 246 247 false, /* partial_inplace */248 249 250 false), /* pcrel_offset */251 252 /* GNU extension to record C++ vtable member usage*/253 HOWTO (R_ARM_GNU_VTENTRY, /* type */254 255 256 257 false, /* pc_relative */258 259 260 261 262 false, /* partial_inplace */263 264 265 false), /* pcrel_offset */266 267 /* XXX - gap in index numbering here. */268 269 HOWTO (R_ARM_PLT32, /* type */270 2,/* rightshift */271 2,/* size (0 = byte, 1 = short, 2 = long) */272 26,/* bitsize */273 true,/* pc_relative */274 0,/* bitpos */275 276 277 "R_ARM_PLT32",/* name */278 true,/* partial_inplace */279 280 281 true), /* pcrel_offset */282 283 /* XXX - gap in index numbering here. */284 285 HOWTO (R_ARM_RREL32,/* type */286 0, /* rightshift */287 0, /* size (0 = byte, 1 = short, 2 = long) */288 0, /* bitsize */289 false,/* pc_relative */290 0, /* bitpos */291 complain_overflow_dont, /* complain_on_overflow */292 bfd_elf_generic_reloc, /* special_function */293 "R_ARM_RREL32", /* name */294 false,/* partial_inplace */295 0, /* src_mask */296 0, /* dst_mask */297 false), /* pcrel_offset */298 299 HOWTO (R_ARM_RABS32,/* type */300 0, /* rightshift */301 0, /* size (0 = byte, 1 = short, 2 = long) */302 0, /* bitsize */303 false,/* pc_relative */304 0, /* bitpos */305 complain_overflow_dont, /* complain_on_overflow */306 bfd_elf_generic_reloc, /* special_function */307 "R_ARM_RABS32", /* name */308 false,/* partial_inplace */309 0, /* src_mask */310 0, /* dst_mask */311 false), /* pcrel_offset */312 313 HOWTO (R_ARM_RPC24, /* type */314 0, /* rightshift */315 0, /* size (0 = byte, 1 = short, 2 = long) */316 0, /* bitsize */317 false,/* pc_relative */318 0, /* bitpos */319 complain_overflow_dont, /* complain_on_overflow */320 bfd_elf_generic_reloc, /* special_function */321 "R_ARM_RPC24",/* name */322 false,/* partial_inplace */323 0, /* src_mask */324 0, /* dst_mask */325 false), /* pcrel_offset */326 327 HOWTO (R_ARM_RBASE, /* type */328 0, /* rightshift */329 0, /* size (0 = byte, 1 = short, 2 = long) */330 0, /* bitsize */331 false,/* pc_relative */332 0, /* bitpos */333 complain_overflow_dont, /* complain_on_overflow */334 bfd_elf_generic_reloc, /* special_function */335 "R_ARM_RBASE",/* name */336 false,/* partial_inplace */337 0, /* src_mask */338 0, /* dst_mask */339 false)/* pcrel_offset */340 };56 { 57 /* No relocation. */ 58 HOWTO (R_ARM_NONE, /* type */ 59 0, /* rightshift */ 60 0, /* size (0 = byte, 1 = short, 2 = long) */ 61 0, /* bitsize */ 62 FALSE, /* pc_relative */ 63 0, /* bitpos */ 64 complain_overflow_dont, /* complain_on_overflow */ 65 bfd_elf_generic_reloc, /* special_function */ 66 "R_ARM_NONE", /* name */ 67 FALSE, /* partial_inplace */ 68 0, /* src_mask */ 69 0, /* dst_mask */ 70 FALSE), /* pcrel_offset */ 71 72 HOWTO (R_ARM_PC24, /* type */ 73 2, /* rightshift */ 74 2, /* size (0 = byte, 1 = short, 2 = long) */ 75 24, /* bitsize */ 76 TRUE, /* pc_relative */ 77 0, /* bitpos */ 78 complain_overflow_signed, /* complain_on_overflow */ 79 bfd_elf_generic_reloc, /* special_function */ 80 "R_ARM_PC24", /* name */ 81 FALSE, /* partial_inplace */ 82 0x00ffffff, /* src_mask */ 83 0x00ffffff, /* dst_mask */ 84 TRUE), /* pcrel_offset */ 85 86 /* 32 bit absolute. */ 87 HOWTO (R_ARM_ABS32, /* type */ 88 0, /* rightshift */ 89 2, /* size (0 = byte, 1 = short, 2 = long) */ 90 32, /* bitsize */ 91 FALSE, /* pc_relative */ 92 0, /* bitpos */ 93 complain_overflow_bitfield, /* complain_on_overflow */ 94 bfd_elf_generic_reloc, /* special_function */ 95 "R_ARM_ABS32", /* name */ 96 FALSE, /* partial_inplace */ 97 0xffffffff, /* src_mask */ 98 0xffffffff, /* dst_mask */ 99 FALSE), /* pcrel_offset */ 100 101 /* Standard 32bit pc-relative reloc. */ 102 HOWTO (R_ARM_REL32, /* type */ 103 0, /* rightshift */ 104 2, /* size (0 = byte, 1 = short, 2 = long) */ 105 32, /* bitsize */ 106 TRUE, /* pc_relative */ 107 0, /* bitpos */ 108 complain_overflow_bitfield, /* complain_on_overflow */ 109 bfd_elf_generic_reloc, /* special_function */ 110 "R_ARM_REL32", /* name */ 111 FALSE, /* partial_inplace */ 112 0xffffffff, /* src_mask */ 113 0xffffffff, /* dst_mask */ 114 TRUE), /* pcrel_offset */ 115 116 /* 8 bit absolute. */ 117 HOWTO (R_ARM_ABS8, /* type */ 118 0, /* rightshift */ 119 0, /* size (0 = byte, 1 = short, 2 = long) */ 120 8, /* bitsize */ 121 FALSE, /* pc_relative */ 122 0, /* bitpos */ 123 complain_overflow_bitfield, /* complain_on_overflow */ 124 bfd_elf_generic_reloc, /* special_function */ 125 "R_ARM_ABS8", /* name */ 126 FALSE, /* partial_inplace */ 127 0x000000ff, /* src_mask */ 128 0x000000ff, /* dst_mask */ 129 FALSE), /* pcrel_offset */ 130 131 /* 16 bit absolute. */ 132 HOWTO (R_ARM_ABS16, /* type */ 133 0, /* rightshift */ 134 1, /* size (0 = byte, 1 = short, 2 = long) */ 135 16, /* bitsize */ 136 FALSE, /* pc_relative */ 137 0, /* bitpos */ 138 complain_overflow_bitfield, /* complain_on_overflow */ 139 bfd_elf_generic_reloc, /* special_function */ 140 "R_ARM_ABS16", /* name */ 141 FALSE, /* partial_inplace */ 142 0, /* src_mask */ 143 0, /* dst_mask */ 144 FALSE), /* pcrel_offset */ 145 146 /* 12 bit absolute. */ 147 HOWTO (R_ARM_ABS12, /* type */ 148 0, /* rightshift */ 149 2, /* size (0 = byte, 1 = short, 2 = long) */ 150 12, /* bitsize */ 151 FALSE, /* pc_relative */ 152 0, /* bitpos */ 153 complain_overflow_bitfield, /* complain_on_overflow */ 154 bfd_elf_generic_reloc, /* special_function */ 155 "R_ARM_ABS12", /* name */ 156 FALSE, /* partial_inplace */ 157 0x000008ff, /* src_mask */ 158 0x000008ff, /* dst_mask */ 159 FALSE), /* pcrel_offset */ 160 161 HOWTO (R_ARM_THM_ABS5, /* type */ 162 6, /* rightshift */ 163 1, /* size (0 = byte, 1 = short, 2 = long) */ 164 5, /* bitsize */ 165 FALSE, /* pc_relative */ 166 0, /* bitpos */ 167 complain_overflow_bitfield, /* complain_on_overflow */ 168 bfd_elf_generic_reloc, /* special_function */ 169 "R_ARM_THM_ABS5", /* name */ 170 FALSE, /* partial_inplace */ 171 0x000007e0, /* src_mask */ 172 0x000007e0, /* dst_mask */ 173 FALSE), /* pcrel_offset */ 174 175 HOWTO (R_ARM_THM_PC22, /* type */ 176 1, /* rightshift */ 177 2, /* size (0 = byte, 1 = short, 2 = long) */ 178 23, /* bitsize */ 179 TRUE, /* pc_relative */ 180 0, /* bitpos */ 181 complain_overflow_signed, /* complain_on_overflow */ 182 bfd_elf_generic_reloc, /* special_function */ 183 "R_ARM_THM_PC22", /* name */ 184 FALSE, /* partial_inplace */ 185 0x07ff07ff, /* src_mask */ 186 0x07ff07ff, /* dst_mask */ 187 TRUE), /* pcrel_offset */ 188 189 HOWTO (R_ARM_SBREL32, /* type */ 190 0, /* rightshift */ 191 0, /* size (0 = byte, 1 = short, 2 = long) */ 192 0, /* bitsize */ 193 FALSE, /* pc_relative */ 194 0, /* bitpos */ 195 complain_overflow_dont,/* complain_on_overflow */ 196 bfd_elf_generic_reloc, /* special_function */ 197 "R_ARM_SBREL32", /* name */ 198 FALSE, /* partial_inplace */ 199 0, /* src_mask */ 200 0, /* dst_mask */ 201 FALSE), /* pcrel_offset */ 202 203 HOWTO (R_ARM_AMP_VCALL9, /* type */ 204 1, /* rightshift */ 205 1, /* size (0 = byte, 1 = short, 2 = long) */ 206 8, /* bitsize */ 207 TRUE, /* pc_relative */ 208 0, /* bitpos */ 209 complain_overflow_signed, /* complain_on_overflow */ 210 bfd_elf_generic_reloc, /* special_function */ 211 "R_ARM_AMP_VCALL9", /* name */ 212 FALSE, /* partial_inplace */ 213 0x000000ff, /* src_mask */ 214 0x000000ff, /* dst_mask */ 215 TRUE), /* pcrel_offset */ 216 217 /* 12 bit pc relative. */ 218 HOWTO (R_ARM_THM_PC11, /* type */ 219 1, /* rightshift */ 220 1, /* size (0 = byte, 1 = short, 2 = long) */ 221 11, /* bitsize */ 222 TRUE, /* pc_relative */ 223 0, /* bitpos */ 224 complain_overflow_signed, /* complain_on_overflow */ 225 bfd_elf_generic_reloc, /* special_function */ 226 "R_ARM_THM_PC11", /* name */ 227 FALSE, /* partial_inplace */ 228 0x000007ff, /* src_mask */ 229 0x000007ff, /* dst_mask */ 230 TRUE), /* pcrel_offset */ 231 232 /* 12 bit pc relative. */ 233 HOWTO (R_ARM_THM_PC9, /* type */ 234 1, /* rightshift */ 235 1, /* size (0 = byte, 1 = short, 2 = long) */ 236 8, /* bitsize */ 237 TRUE, /* pc_relative */ 238 0, /* bitpos */ 239 complain_overflow_signed, /* complain_on_overflow */ 240 bfd_elf_generic_reloc, /* special_function */ 241 "R_ARM_THM_PC9", /* name */ 242 FALSE, /* partial_inplace */ 243 0x000000ff, /* src_mask */ 244 0x000000ff, /* dst_mask */ 245 TRUE), /* pcrel_offset */ 246 247 /* GNU extension to record C++ vtable hierarchy. */ 248 HOWTO (R_ARM_GNU_VTINHERIT, /* type */ 249 0, /* rightshift */ 250 2, /* size (0 = byte, 1 = short, 2 = long) */ 251 0, /* bitsize */ 252 FALSE, /* pc_relative */ 253 0, /* bitpos */ 254 complain_overflow_dont, /* complain_on_overflow */ 255 NULL, /* special_function */ 256 "R_ARM_GNU_VTINHERIT", /* name */ 257 FALSE, /* partial_inplace */ 258 0, /* src_mask */ 259 0, /* dst_mask */ 260 FALSE), /* pcrel_offset */ 261 262 /* GNU extension to record C++ vtable member usage. */ 263 HOWTO (R_ARM_GNU_VTENTRY, /* type */ 264 0, /* rightshift */ 265 2, /* size (0 = byte, 1 = short, 2 = long) */ 266 0, /* bitsize */ 267 FALSE, /* pc_relative */ 268 0, /* bitpos */ 269 complain_overflow_dont, /* complain_on_overflow */ 270 _bfd_elf_rel_vtable_reloc_fn, /* special_function */ 271 "R_ARM_GNU_VTENTRY", /* name */ 272 FALSE, /* partial_inplace */ 273 0, /* src_mask */ 274 0, /* dst_mask */ 275 FALSE), /* pcrel_offset */ 276 277 /* XXX - gap in index numbering here. */ 278 279 HOWTO (R_ARM_PLT32, /* type */ 280 2, /* rightshift */ 281 2, /* size (0 = byte, 1 = short, 2 = long) */ 282 26, /* bitsize */ 283 TRUE, /* pc_relative */ 284 0, /* bitpos */ 285 complain_overflow_bitfield,/* complain_on_overflow */ 286 bfd_elf_generic_reloc, /* special_function */ 287 "R_ARM_PLT32", /* name */ 288 TRUE, /* partial_inplace */ 289 0x00ffffff, /* src_mask */ 290 0x00ffffff, /* dst_mask */ 291 TRUE), /* pcrel_offset */ 292 293 /* XXX - gap in index numbering here. */ 294 295 HOWTO (R_ARM_RREL32, /* type */ 296 0, /* rightshift */ 297 0, /* size (0 = byte, 1 = short, 2 = long) */ 298 0, /* bitsize */ 299 FALSE, /* pc_relative */ 300 0, /* bitpos */ 301 complain_overflow_dont, /* complain_on_overflow */ 302 bfd_elf_generic_reloc, /* special_function */ 303 "R_ARM_RREL32", /* name */ 304 FALSE, /* partial_inplace */ 305 0, /* src_mask */ 306 0, /* dst_mask */ 307 FALSE), /* pcrel_offset */ 308 309 HOWTO (R_ARM_RABS32, /* type */ 310 0, /* rightshift */ 311 0, /* size (0 = byte, 1 = short, 2 = long) */ 312 0, /* bitsize */ 313 FALSE, /* pc_relative */ 314 0, /* bitpos */ 315 complain_overflow_dont, /* complain_on_overflow */ 316 bfd_elf_generic_reloc, /* special_function */ 317 "R_ARM_RABS32", /* name */ 318 FALSE, /* partial_inplace */ 319 0, /* src_mask */ 320 0, /* dst_mask */ 321 FALSE), /* pcrel_offset */ 322 323 HOWTO (R_ARM_RPC24, /* type */ 324 0, /* rightshift */ 325 0, /* size (0 = byte, 1 = short, 2 = long) */ 326 0, /* bitsize */ 327 FALSE, /* pc_relative */ 328 0, /* bitpos */ 329 complain_overflow_dont, /* complain_on_overflow */ 330 bfd_elf_generic_reloc, /* special_function */ 331 "R_ARM_RPC24", /* name */ 332 FALSE, /* partial_inplace */ 333 0, /* src_mask */ 334 0, /* dst_mask */ 335 FALSE), /* pcrel_offset */ 336 337 HOWTO (R_ARM_RBASE, /* type */ 338 0, /* rightshift */ 339 0, /* size (0 = byte, 1 = short, 2 = long) */ 340 0, /* bitsize */ 341 FALSE, /* pc_relative */ 342 0, /* bitpos */ 343 complain_overflow_dont, /* complain_on_overflow */ 344 bfd_elf_generic_reloc, /* special_function */ 345 "R_ARM_RBASE", /* name */ 346 FALSE, /* partial_inplace */ 347 0, /* src_mask */ 348 0, /* dst_mask */ 349 FALSE) /* pcrel_offset */ 350 }; 341 351 342 352 /* Locate a reloc in the howto table. This function must be used 343 353 when the entry number is is > R_ARM_GNU_VTINHERIT. */ 354 344 355 static reloc_howto_type * 345 356 find_howto (r_type) … … 359 370 bfd *abfd ATTRIBUTE_UNUSED; 360 371 arelent *bfd_reloc; 361 Elf 32_Internal_Rela *elf_reloc;372 Elf_Internal_Rela *elf_reloc; 362 373 { 363 374 unsigned int r_type; … … 378 389 379 390 static const struct elf32_arm_reloc_map elf32_arm_reloc_map[] = 380 {381 {BFD_RELOC_NONE, R_ARM_NONE },382 {BFD_RELOC_ARM_PCREL_BRANCH, R_ARM_PC24 },383 {BFD_RELOC_32, R_ARM_ABS32 },384 {BFD_RELOC_32_PCREL, R_ARM_REL32 },385 {BFD_RELOC_8, R_ARM_ABS8 },386 {BFD_RELOC_16, R_ARM_ABS16 },387 {BFD_RELOC_ARM_OFFSET_IMM, R_ARM_ABS12 },388 {BFD_RELOC_ARM_THUMB_OFFSET, R_ARM_THM_ABS5 },389 {BFD_RELOC_THUMB_PCREL_BRANCH23, R_ARM_THM_PC22 },390 {BFD_RELOC_NONE, R_ARM_SBREL32 },391 {BFD_RELOC_NONE, R_ARM_AMP_VCALL9 },392 {BFD_RELOC_THUMB_PCREL_BRANCH12, R_ARM_THM_PC11 },393 {BFD_RELOC_THUMB_PCREL_BRANCH9, R_ARM_THM_PC9 },394 {BFD_RELOC_VTABLE_INHERIT, R_ARM_GNU_VTINHERIT },395 {BFD_RELOC_VTABLE_ENTRY, R_ARM_GNU_VTENTRY }396 };391 { 392 {BFD_RELOC_NONE, R_ARM_NONE }, 393 {BFD_RELOC_ARM_PCREL_BRANCH, R_ARM_PC24 }, 394 {BFD_RELOC_32, R_ARM_ABS32 }, 395 {BFD_RELOC_32_PCREL, R_ARM_REL32 }, 396 {BFD_RELOC_8, R_ARM_ABS8 }, 397 {BFD_RELOC_16, R_ARM_ABS16 }, 398 {BFD_RELOC_ARM_OFFSET_IMM, R_ARM_ABS12 }, 399 {BFD_RELOC_ARM_THUMB_OFFSET, R_ARM_THM_ABS5 }, 400 {BFD_RELOC_THUMB_PCREL_BRANCH23, R_ARM_THM_PC22 }, 401 {BFD_RELOC_NONE, R_ARM_SBREL32 }, 402 {BFD_RELOC_NONE, R_ARM_AMP_VCALL9 }, 403 {BFD_RELOC_THUMB_PCREL_BRANCH12, R_ARM_THM_PC11 }, 404 {BFD_RELOC_THUMB_PCREL_BRANCH9, R_ARM_THM_PC9 }, 405 {BFD_RELOC_VTABLE_INHERIT, R_ARM_GNU_VTINHERIT }, 406 {BFD_RELOC_VTABLE_ENTRY, R_ARM_GNU_VTENTRY } 407 }; 397 408 398 409 static reloc_howto_type * … … 413 424 } 414 425 415 #define bfd_elf32_arm_allocate_interworking_sections \416 bfd_elf32_arm_oabi_allocate_interworking_sections417 #define bfd_elf32_arm_get_bfd_for_interworking \418 bfd_elf32_arm_oabi_get_bfd_for_interworking419 #define bfd_elf32_arm_process_before_allocation \420 bfd_elf32_arm_oabi_process_before_allocation421 422 426 #include "elf32-arm.h" -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.