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