ARM stub sizing fix

Nick Clifton nickc@redhat.com
Mon Mar 1 17:45:00 GMT 2010


Hi Christophe,

> 2010-02-24  Christophe Lyon  <christophe.lyon@st.com>
> 	Alan Modra  <amodra@gmail.com>
>
> 	bfd/
> 	* elf32-arm.c (a8_erratum_fix): Add st_type field to record the
> 	destination mode of the a8 stub.
> 	(elf32_arm_link_hash_table): Add top_id field.
> 	(elf32_arm_link_hash_table_create): Initialize top_id.
> 	(arm_type_of_stub): Update prototype, st_type can now be updated
> 	by this function. Actual destination address in case of PLT is
> 	computed here, to help factorizing code.
> 	(elf32_arm_stub_name): Update prototype, use stub_type additional
> 	parameter to build stub name.
> 	(elf32_arm_get_stub_entry): Update prototype, use stub_type
> 	additional parameter to build stub entry.
> 	(arm_build_one_stub): Use bfd_put_16/bfd_put_32 instead of
> 	put_thumb_insn/put_arm_insn as BE8 encoding is now handled later.
> 	Call elf32_arm_final_link_relocate to process all in-stub
> 	relocations.
> 	(elf32_arm_setup_section_lists): Update top_id.
> 	(cortex_a8_erratum_scan): Record stub destination mode.
> 	(elf32_arm_size_stubs): Update call to arm_type_of_stub according
> 	to new prototype.
> 	(elf32_arm_final_link_relocate): Enable processing of in-stub
> 	REL32 relocations. Rely on arm_type_of_stub to detect if a stub is
> 	needed, enabling code factorization.
> 	(elf32_arm_final_link): Process stub sections.
> 	(elf32_arm_output_map_sym): Add entry to code/data map.
>
> 	ld/testsuite/
> 	* ld-arm/arm-elf.exp: Change .text start address for
> 	farcall-thumb-arm tests. Add v4t variant for farcall-mixed-lib
> 	test.
> 	* ld-arm/farcall-mixed-lib-v4t.d: New test.
> 	* ld-arm/farcall-mixed-lib1.s: Don't force armv5t.
> 	* ld-arm/farcall-mixed-lib2.s: Likewise.
> 	* ld-arm/arm-call.d: Update expected results.
> 	* ld-arm/cortex-a8-far.d: Likewise.
> 	* ld-arm/farcall-group-size2.d: Likewise.
> 	* ld-arm/farcall-group.d: Likewise.
> 	* ld-arm/farcall-mix.d: Likewise.
> 	* ld-arm/farcall-mix2.d: Likewise.
> 	* ld-arm/farcall-mixed-app-v5.d: Likewise.
> 	* ld-arm/farcall-mixed-app.d: Likewise.
> 	* ld-arm/farcall-mixed-lib.d: Likewise.
> 	* ld-arm/farcall-thumb-arm.d: Likewise.
> 	* ld-arm/farcall-thumb-arm-blx.d: Likewise.
> 	* ld-arm/farcall-thumb-arm-pic-veneer.d: Likewise.
> 	* ld-arm/farcall-thumb-arm-blx-pic-veneer.d: Likewise.
> 	* ld-arm/farcall-thumb-arm.s: Update test. Add a new call to
> 	potentially generate different types of stubs.


Approved - please apply.

Cheers
   Nick



More information about the Binutils mailing list