bfd/
commitae7cc4a5c2aa6fa4c813d8696278ace1b1ef512a
authorDaniel Jacobowitz <dan@debian.org>
Wed, 17 Nov 2004 17:50:28 +0000 (17 17:50 +0000)
committerDaniel Jacobowitz <dan@debian.org>
Wed, 17 Nov 2004 17:50:28 +0000 (17 17:50 +0000)
tree03ecbffef64ccde9f6658ff1602e85da7e7ed53b
parentd8d9554cab2aab5810e6374fe584a2b2f1f4684e
bfd/
* elf32-arm.c (PLT_THUMB_STUB_SIZE): Define.
(elf32_arm_plt_thumb_stub): New.
(struct elf32_arm_link_hash_entry): Add plt_thumb_refcount
and plt_got_offset.
(elf32_arm_link_hash_traverse): Fix typo.
(elf32_arm_link_hash_table): Add obfd.
(elf32_arm_link_hash_newfunc): Initialize new fields.
(elf32_arm_copy_indirect_symbol): Copy plt_thumb_refcount.
(elf32_arm_link_hash_table_create): Initialize obfd.
(record_arm_to_thumb_glue): Mark the glue as a local ARM function.
(record_thumb_to_arm_glue): Mark the glue as a local Thumb function.
(bfd_elf32_arm_get_bfd_for_interworking): Verify that the
interworking BFD is not dynamic.
(bfd_elf32_arm_process_before_allocation): Handle R_ARM_PLT32.  Do
not emit glue for PLT references.
(elf32_arm_final_link_relocate): Handle Thumb functions.  Do not
emit glue for PLT references.  Support the Thumb PLT prefix.
(elf32_arm_gc_sweep_hook): Handle R_ARM_THM_PC22 and
plt_thumb_refcount.
(elf32_arm_check_relocs): Likewise.
(elf32_arm_adjust_dynamic_symbol): Handle Thumb functions and
plt_thumb_refcount.
(allocate_dynrelocs): Handle Thumb PLT references.
(elf32_arm_finish_dynamic_symbol): Likewise.
(elf32_arm_symbol_processing): New function.
(elf_backend_symbol_processing): Define.
opcodes/
* arm-dis.c (WORD_ADDRESS): Define.
(print_insn): Use it.  Correct big-endian end-of-section handling.
gas/testsuite/
* gas/arm/mapping.d: Expect F markers for Thumb code.
* gas/arm/unwind.d: Update big-endian pattern.
ld/
* emultempl/armelf.em (arm_elf_set_bfd_for_interworking): Don't use
a dynamic object for stubs.
ld/testsuite/
* ld-arm/mixed-app.d, ld-arm/mixed-app.r, ld-arm/mixed-app.s,
ld-arm/mixed-app.sym, ld-arm/mixed-lib.d, ld-arm/mixed-lib.r,
ld-arm/mixed-lib.s, ld-arm/mixed-lib.sym, ld-arm/arm-dyn.ld,
ld-arm/arm-lib.ld: New files.
* ld-arm/arm-app-abs32.d, ld-arm/arm-app-abs32.r, ld-arm/arm-app.d,
ld-arm/arm-app.r, ld-arm/arm-lib-plt32.d, ld-arm/arm-lib-plt32.r,
ld-arm/arm-lib.d, ld-arm/arm-lib.r, ld-arm/arm-static-app.d,
ld-arm/arm-static-app.r: Update for big-endian.
* ld-arm/arm-elf.exp: Run the new tests.
31 files changed:
bfd/ChangeLog
bfd/elf32-arm.c
gas/testsuite/ChangeLog
gas/testsuite/gas/arm/mapping.d
gas/testsuite/gas/arm/unwind.d
ld/ChangeLog
ld/emultempl/armelf.em
ld/testsuite/ChangeLog
ld/testsuite/ld-arm/arm-app-abs32.d
ld/testsuite/ld-arm/arm-app-abs32.r
ld/testsuite/ld-arm/arm-app.d
ld/testsuite/ld-arm/arm-app.r
ld/testsuite/ld-arm/arm-dyn.ld [new file with mode: 0644]
ld/testsuite/ld-arm/arm-elf.exp
ld/testsuite/ld-arm/arm-lib-plt32.d
ld/testsuite/ld-arm/arm-lib-plt32.r
ld/testsuite/ld-arm/arm-lib.d
ld/testsuite/ld-arm/arm-lib.ld [new file with mode: 0644]
ld/testsuite/ld-arm/arm-lib.r
ld/testsuite/ld-arm/arm-static-app.d
ld/testsuite/ld-arm/arm-static-app.r
ld/testsuite/ld-arm/mixed-app.d [new file with mode: 0644]
ld/testsuite/ld-arm/mixed-app.r [copied from ld/testsuite/ld-arm/arm-app.r with 59% similarity]
ld/testsuite/ld-arm/mixed-app.s [new file with mode: 0644]
ld/testsuite/ld-arm/mixed-app.sym [new file with mode: 0644]
ld/testsuite/ld-arm/mixed-lib.d [new file with mode: 0644]
ld/testsuite/ld-arm/mixed-lib.r [copied from ld/testsuite/ld-arm/arm-lib-plt32.r with 61% similarity]
ld/testsuite/ld-arm/mixed-lib.s [new file with mode: 0644]
ld/testsuite/ld-arm/mixed-lib.sym [new file with mode: 0644]
opcodes/ChangeLog
opcodes/arm-dis.c