4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-02 20:40:24 +08:00

8 Commits

Author SHA1 Message Date
Zack Weinberg
c6615227ee Thumb32 assembler.
* include/elf/arm.h: Import full set of relocation names from
	latest AAELF.  Make the primary name of all relocations be the one
	AAELF specifies.  Provide aliases under the traditional names.
	Kill FIRST_INVALID_RELOC_* and LAST_INVALID_RELOC_*.
	* bfd/reloc.c: Reorganize ARM relocations.  Remove ARM relocations
	that are never generated.  Document more of the relocations.  Add
	relocations for Thumb32.
	* bfd/libbfd.h, bfd/bfd-in2.h: Regenerate.
	* bfd/elf32-arm.c: Reorganize howto tables.  Implement Thumb32
	relocations.
	* ld/testsuite/ld-arm/mixed-app.d: Adjust expectations for
	renamed relocations.

	* gas/hash.c (hash_find_n): New interface.
	* gas/hash.h: Prototype it.

	* gas/config/tc-arm.c: Rewrite and reorganize.  Implement 32-bit
	Thumb instructions.
	* gas/testsuite/gas/arm: Convert all "gas_test" style tests to
	"run_dump_test" style tests, for more thorough testing.  Make
	adjustments to expectations where necessary.
	* gas/testsuite/gas/arm/t16-bad.s, gas/testsuite/gas/arm/tcompat.s
	* gas/testsuite/gas/arm/tcompat2.s, gas/testsuite/gas/arm/thumb32.s:
	New test cases.

	* opcodes/arm-dis.c: Add support for Thumb32 instructions and
	16-bit V6T2 instructions.
2005-04-26 05:31:42 +00:00
Paul Brook
0fe0a99434 2005-04-13 Paul Brook <paul@codesourcery.com>
Backport from mainline.
	2005-04-11  Alan Modra  <amodra@bigpond.net.au>
	* emultempl/elf32.em (gld${EMULATION_NAME}_stat_needed): Ignore
	as_needed libs that were not needed.
	(gld${EMULATION_NAME}_check_needed): Likewise.
2005-04-13 14:58:16 +00:00
Mark Mitchell
0c026753aa * ld/configure.tgt (arm-wrs-linux-gnueabi*): Support both big- and
little-endian.
2005-04-08 16:59:53 +00:00
Paul Brook
9d5bfd1cd9 2005-04-08 Paul Brook <paul@codesourcery.com>
* elf32-arm.c (ARM2THUMB_GLUE_SIZE): Rename...
	(ARM2THUMB_STATIC_GLUE_SIZE): ... to this.
	(ARM2THUMB_PIC_GLUE_SIZE): Define.
	(a2t1p_ldr_insn, a2t2p_add_pc_insn, a2t3p_bx_r12_insn): Add.
	(elf32_arm_to_thumb_stub): Create PIC stubs.
	(record_arm_to_thumb_glue): Use different stub size for relocatable
	images.
2005-04-08 11:48:09 +00:00
Paul Brook
79d5f5d00b 2005-03-29 Julian Brown <julian@codesourcery.com>
* elf32-arm.c (elf32_arm_final_link_relocate): Use blx to get to
	symbian plt entries from thumb mode.
2005-03-29 15:00:25 +00:00
Daniel Jacobowitz
e7a1fb69e5 * bfd/bfd-in2.h, libbfd.h: Regenerated.
* bfd/reloc.c: Add ARM TLS relocations.
	* bfd/elf32-arm.c (elf32_arm_howto_table): Add dynamic TLS
	relocations.
	(elf32_arm_tls_gd32_howto, elf32_arm_tls_ldo32_howto)
	(elf32_arm_tls_ldm32_howto, elf32_arm_tls_le32_howto)
	(elf32_arm_tls_ie32_howto): New.
	(elf32_arm_howto_from_type): Support TLS relocations.
	(elf32_arm_reloc_map): Likewise.
	(elf32_arm_reloc_type_lookup): Likewise.
	(TCB_SIZE): Define.
	(struct elf32_arm_obj_tdata): New.
	(elf32_arm_tdata, elf32_arm_local_got_tls_type): Define.
	(elf32_arm_mkobject): New function.
	(struct elf32_arm_relocs_copied): Add pc_count.
	(elf32_arm_hash_entry, GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD)
	(GOT_TLS_IE): Define.
	(struct elf32_arm_link_hash_table): Add tls_ldm_got.
	(elf32_arm_link_hash_newfunc): Initialize tls_type.
	(elf32_arm_copy_indirect_symbol): Copy pc_count and tls_type.
	(elf32_arm_link_hash_table_create): Initialize tls_ldm_got.
	(dtpoff_base, tpoff): New functions.
	(elf32_arm_final_link_relocate): Handle TLS relocations.
	(IS_ARM_TLS_RELOC): Define.
	(elf32_arm_relocate_section): Warn about TLS mismatches.
	(elf32_arm_gc_sweep_hook): Handle TLS relocations and pc_count.
	(elf32_arm_check_relocs): Detect invalid symbol indexes.  Handle
	TLS relocations and pc_count.
	(elf32_arm_adjust_dynamic_symbol): Check non_got_ref.
	(allocate_dynrelocs): Handle TLS.  Bind REL32 relocs to local
	calls.
	(elf32_arm_size_dynamic_sections): Handle TLS.
	(elf32_arm_finish_dynamic_symbol): Likewise.
	(bfd_elf32_mkobject): Define.

	* gas/config/tc-arm.c (arm_parse_reloc): Add TLS relocations.
	(md_apply_fix3): Mark TLS symbols.
	(tc_gen_reloc): Handle TLS relocations.
	(arm_fix_adjustable): Ignore TLS relocations.
	(s_arm_elf_cons): Support expressions after decorated symbols.

	* gas/testsuite/gas/arm/tls.s, gas/testsuite/gas/arm/tls.d: New files.
	* gas/testsuite/gas/arm/arm.exp: Run TLS test.

	* include/elf/arm.h: Add TLS relocations.

	* ld/testsuite/ld-arm/tls-lib.s, ld/testsuite/ld-arm/tls-lib.d,
	ld/testsuite/ld-arm/tls-lib.r, ld/testsuite/ld-arm/tls-app.s,
	ld/testsuite/ld-arm/tls-app.d, ld/testsuite/ld-arm/tls-app.r: New files.
	* ld/testsuite/ld-arm/arm-lib.ld, ld/testsuite/ld-arm/arm-dyn.ld:
	Increase data segment alignment.
	* ld/testsuite/ld-arm/arm-elf.exp: Run TLS tests.
2005-03-28 15:39:06 +00:00
Daniel Jacobowitz
3afcacbbae * elf32-arm.c (elf32_arm_check_relocs): Increment count for all
relocation types.  Don't count relocations which will use a PLT.
2005-03-28 15:32:58 +00:00
Daniel Jacobowitz
42f9129238 Backport ARM patches from HEAD to binutils-csl-arm-2005q1-branch. 2005-03-28 15:30:08 +00:00