aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-arm
AgeCommit message (Collapse)AuthorFilesLines
2009-09-23Tolerate some whitespace differences in readelf output.Alan Modra6-75/+75
2009-09-09 bfd/Daniel Jacobowitz1-11/+12
* elf32-arm.c (elf32_arm_final_link_relocate): Set sym_flags for the mode of target PLT entries. (allocate_dynrelocs): Only adjust symbol type if setting its value. ld/testsuite/ * ld-arm/farcall-mixed-lib.d: Update.
2009-09-02update copyright datesAlan Modra1-1/+2
2009-08-212S09-08-21 Daniel Gutson <dgutson@codesourcery.com>Daniel Gutson4-2/+35
ld/ * ld-arm/callweak.d: Opcodes updated. * ld-arm/callweak.s: Architecture specified. * ld-arm/callweak-2.d: New test case. * ld-arm/callweak-2.s: New file. bfd/ * elf32-arm.c (arch_has_thumb2_nop): New function. (arch_has_arm_nop): New function. (elf32_arm_final_link_relocate): NOP opcodes changed. SVS: ----------------------------------------------------------------------
2009-08-06 bfd/Nathan Sidwell4-0/+52
* elf32-arm.c (elf32_arm_size_stubs): Call layout_sections_again at least once when fixing cortex-a8. ld/testsuite/ * ld-arm/arm-elf.exp: Add new test. * ld-arm/cortex-a8-fix-hdr.d: New. * ld-arm/cortex-a8-fix-hdr.s: New. * ld-arm/cortex-a8-fix-hdr.t: New.
2009-08-05 bfd/Nathan Sidwell4-0/+72
* elf32-arm.c (elf32_arm_stub_type): Add arm_stub_a8_veneer_lwm. (arm_build_one_stub): Build a8 veneers as a separate pass. (cortex_a8_erratum_scan): Add prev_num_a8_fixes and stub_changed_p parameters. Use them to check if we create a different a8 fixup than the previous pass. (elf32_arm_size_stubs): Move scope of stub_changed and prev_num_a8_fixes into main loop. (elf32_arm_build_stubs): Build a8 veneers in a second pass. ld/testsuite/ * ld-arm/cortex-a8-far-1.s: New. * ld-arm/cortex-a8-far-2.s: New. * ld-arm/cortex-a8-far.d: New. * ld-arm/arm-elf.exp: Add new test.
2009-07-16 gas/Nathan Sidwell4-4/+7
* config/tc-arm.c (md_apply_fix <BFD_RELOC_ARM_TARGET2>): Write the offset for REL targets here. gas/testsuite/ * gas/arm/target-reloc-1.s: New. * gas/arm/target-reloc-1.d: New. ld/testsuite/ * ld-arm/arm-target2.s: Add addend cases. * ld-arm/arm-target2-rel.d: Adjust. * ld-arm/arm-target2-abs.d: Adjust. * ld-arm/arm-target2-got-rel.d: Adjust.
2009-06-30 PR 10288Nick Clifton29-130/+130
* arm-dis.c (coprocessor): Print the LDC and STC versions of the LFM and SFM instructions as comments,. Improve consistency of formatting for instructions displayed as comments and decimal values displayed with their hexadecimal equivalents. Formatting tidy ups. Updated expected disassembler regexps.
2009-06-29 PR 10288Nick Clifton14-34/+34
* arm-dis.c (enum opcode_sentinels): New: Used to mark the boundary between variaant and generic coprocessor instuctions. (coprocessor): Use it. Fix architecture version of MCRR and MRRC instructions. (arm_opcdes): Fix patterns for STRB and STRH instructions. (print_insn_coprocessor): Check architecture and extension masks. Print a hexadecimal version of any decimal constant that is outside of the range of -16 to +32. (print_arm_address): Add a return value of the offset used in the adress, if it is worth printing a hexadecimal version of it. (print_insn_neon): Print a hexadecimal version of any decimal constant that is outside of the range of -16 to +32. (print_insn_arm): Likewise. (print_insn_thumb16): Likewise. (print_insn_thumb32): Likewise. PR 10297 * arm-dis.c (UNDEFINED_INSTRUCTION): New macro for a description of an undefined instruction. (arm_opcodes): Use it. (thumb_opcod): Use it. (thumb32_opc): Use it. Update expected disassembly regrexps in GAS and LD testsuites.
2009-06-222009-06-22 Christophe Lyon <christophe.lyon@st.com>Christophe Lyon5-24/+60
bfd/ * elf32-arm.c (elf32_arm_size_stubs): Use PLT address as destination for defined dynamic symbols when deciding whether to insert a stub or not. (allocate_dynrelocs): Make sure functions are not marked as Thumb when actually accessed through a PLT, even when generating a shared lib. ld/testsuite: * ld-arm/farcall-mixed-app.s: Add new references to check more modes switching. * ld-arm/farcall-mixed-lib1.s: Likewise. * ld-arm/farcall-mixed-app-v5.d: Update expected result. * farcall-mixed-app.d: Likewise. * ld-arm/farcall-mixed-lib.d: Likewise.
2009-05-22 ld/Julian Brown22-0/+1250
* emultempl/armelf.em (fix_cortex_a8): New. (arm_elf_before_allocation): Call bfd_elf32_arm_set_cortex_a8_fix. (arm_elf_create_output_section_statements): Add fix_cortex_a8 to bfd_elf32_arm_set_target_relocs. (OPTION_FIX_CORTEX_A8, OPTION_NO_FIX_CORTEX_A8): New. (PARSE_AND_LIST_LONGOPTS): Add [no-]fix-cortex-a8 options. (PARSE_AND_LIST_OPTIONS): Add [no-]fix-cortex-a8 options. (PARSE_AND_LIST_ARGS_CASES): Handle OPTION_[NO_]FIX_CORTEX_A8. * ld.texinfo (--[no-]fix-cortex-a8): Briefly document new options. bfd/ * elf32-arm.c (THUMB16_BCOND_INSN, THUMB32_INSN, THUMB32_B_INSN): New macros. (elf32_arm_stub_a8_veneer_b_cond, elf32_arm_stub_a8_veneer_b) (elf32_arm_stub_a8_veneer_blx): New stub sequences. (elf32_arm_stub_type): Add arm_stub_a8_veneer_b_cond, arm_stub_a8_veneer_b and arm_stub_a8_veneer_blx. (elf32_arm_stub_hash_entry): Add target_addend, orig_insn fields. (a8_erratum_fix, a8_erratum_reloc): New structs. (elf32_arm_link_hash_table): Add a8_erratum_fixes, num_a8_erratum_fixes, fix_cortex_a8 fields. (elf32_arm_link_hash_table_create): Zero fix_cortex_a8. (elf32_arm_add_stub): Split into two parts, creating... (elf32_arm_create_or_find_stub_sec): New function. (elf32_arm_final_link_relocate): Add forward declaration. (arm_build_one_stub): Add support for THUMB32_TYPE, Thumb-2 relocations, multiple relocations per stub. (find_stub_size_and_template): New (using parts of arm_size_one_stub). (arm_size_one_stub): Use find_stub_size_and_template. (a8_reloc_compare): New. (find_thumb_glue): Add forward declaration. (cortex_a8_erratum_scan): New. (elf32_arm_size_stubs): Add Cortex-A8 erratum workaround support. (bfd_elf32_arm_set_cortex_a8_fix): New. (bfd_elf32_arm_set_target_relocs): Add fix_cortex_a8 argument. (arm_map_one_stub): Add THUMB32_TYPE support. (a8_branch_to_stub_data): New. (make_branch_to_a8_stub): New. (elf32_arm_write_section): Add Cortex-A8 erratum workaround support. * bfd-in.h (bfd_elf32_arm_set_cortex_a8_fix): New. (bfd_elf32_arm_set_target_relocs): Add argument for controlling Cortex-A8 erratum workaround. * bfd-in2.h: Regenerate. ld/testsuite/ * ld-arm/cortex-a8-arm-target.s: New. * ld-arm/cortex-a8-thumb-target.s: New. * ld-arm/cortex-a8-fix-b-rel.s: New. * ld-arm/cortex-a8-fix-b-rel-arm.d: New. * ld-arm/cortex-a8-fix-b-rel-thumb.d: New. * ld-arm/cortex-a8-fix-b.s: New. * ld-arm/cortex-a8-fix-b.d: New. * ld-arm/cortex-a8-fix-bl-rel.s: New. * ld-arm/cortex-a8-fix-bl-rel-arm.d: New. * ld-arm/cortex-a8-fix-bl-rel-thumb.d: New. * ld-arm/cortex-a8-fix-bl.s: New. * ld-arm/cortex-a8-fix-bl.d: New. * ld-arm/cortex-a8-fix-bcc-rel.s: New. * ld-arm/cortex-a8-fix-bcc-rel-thumb.d: New. * ld-arm/cortex-a8-fix-bcc.s: New. * ld-arm/cortex-a8-fix-bcc.d: New. * ld-arm/cortex-a8-fix-blx-rel.s: New. * ld-arm/cortex-a8-fix-blx-rel-arm.d: New. * ld-arm/cortex-a8-fix-blx-rel-thumb.d: New. * ld-arm/cortex-a8-fix-blx.s: New. * ld-arm/cortex-a8-fix-blx.d: New. * ld-arm/arm-elf.exp: Add new tests.
2009-05-152009-05-15 Andrew Stubbs <ams@codesourcery.com>Paul Brook4-0/+39
Paul Brook <paul@codesourcery.com> bfd/ * elf32-arm.c (elf32_arm_fix_exidx_coverage): Don't attempt to fix discarded sections. ld/testsuite/ * ld-arm/arm-elf.exp: Add unwind-5. * ld-arm/discard-unwind.ld: New file. * ld-arm/unwind-5.d: New test. * ld-arm/unwind-5.s: New test.
2009-05-052009-05-05 Paul Brook <paul@codesourcery.com>Paul Brook10-0/+164
bfd/ * bfd-in.h (elf32_arm_fix_exidx_coverage): Add prototype. * bfd-in2.h: Regenerate. * elf32-arm.c (arm_unwind_edit_type, arm_unwind_table_edit): Define. (_arm_elf_section_data): Add text and exidx fields. (add_unwind_table_edit, get_arm_elf_section_data, adjust_exidx_size, insert_cantunwind_after, elf32_arm_fix_exidx_coverage, offset_prel31, copy_exidx_entry): New functions. (elf32_arm_write_section): Fixup .ARM.exidx contents. ld/ * emultempl/armelf.em (compare_output_sec_vma): New function. (gld${EMULATION_NAME}_finish): Add exidx munging code. ld/testsuite/ * ld-arm/arm.ld: Add .ARM.exidx and .ARM.extab. * ld-arm/arm-elf.exp: Add unwind-[1-4]. * ld-arm/unwind-1.d: New test. * ld-arm/unwind-1.s: New test. * ld-arm/unwind-2.d: New test. * ld-arm/unwind-2.s: New test. * ld-arm/unwind-3.d: New test. * ld-arm/unwind-3.s: New test. * ld-arm/unwind-4.d: New test. * ld-arm/unwind-4.s: New test.
2009-05-01 ld/testsuite/Julian Brown3-0/+161
* ld-arm/arm-elf.exp (armeabitests): Add thumb2-bl-blx-interwork test. * ld-arm/thumb2-bl-blx-interwork.s: New. * ld-arm/thumb2-bl-blx-interwork.d: New.
2009-04-30bfd:Joseph Myers9-0/+42
* elf32-arm.c (elf32_arm_check_relocs): Give errors for absolute MOVW and MOVT relocations in a shared library link. ld/testsuite: * ld-arm/movw-shared-1.d, ld-arm/movw-shared-1.s, ld-arm/movw-shared-2.d, ld-arm/movw-shared-2.s, ld-arm/movw-shared-3.d, ld-arm/movw-shared-3.s, ld-arm/movw-shared-4.d, ld-arm/movw-shared-4.s: New tests. * ld-arm/arm-elf.exp: Run these new tests.
2009-04-222009-04-22 Christophe Lyon <christophe.lyon@st.com>Christophe Lyon3-14/+13
PR9743 bfd/ * elf32-arm.c (arm_type_of_stub): Handle R_ARM_THM_JUMP24, R_ARM_JUMP24 and R_ARM_PLT32 relocations. (elf32_arm_size_stubs): Likewise. (record_thumb_to_arm_glue): Deleted unused function. (bfd_elf32_arm_process_before_allocation): No longer handle R_ARM_THM_JUMP24, R_ARM_JUMP24 and R_ARM_PLT32 relocations here. (elf32_arm_final_link_relocate): Handle R_ARM_THM_JUMP24, R_ARM_JUMP24 and R_ARM_PLT32 relocations. testsuite/ * ld-arm/arm-call.d: Update expected result. * ld-arm/arm-pic-veneer.d: Likewise. * ld-arm/thumb2-b-interwork.d: Likewise.
2009-04-21 bfd/Daniel Jacobowitz5-73/+73
* elf32-arm.c (INTERWORK_FLAG): Check BFD_LINKER_CREATED. (elf32_arm_write_section): Declare early. (elf32_arm_size_stubs): Skip non-stub sections in the stub BFD. (arm_allocate_glue_section_space): Exclude empty sections. (ARM_GLUE_SECTION_FLAGS): Add SEC_LINKER_CREATED. (bfd_elf32_arm_add_glue_sections_to_bfd): Do not skip the stub BFD. (elf32_arm_output_glue_section, elf32_arm_final_link): New. (elf32_arm_merge_eabi_attributes): Skip the stub BFD. (elf32_arm_size_dynamic_sections): Allocate interworking sections here. (bfd_elf32_bfd_final_link): Define. ld/ * emultempl/armelf.em (bfd_for_interwork, arm_elf_after_open) (arm_elf_set_bfd_for_interworking): Delete. (arm_elf_before_allocation): Do not set the interworking BFD. Move allocation inside not-dynamic block. (arm_elf_create_output_section_statements): Create glue sections and set the interworking BFD here. (LDEMUL_AFTER_OPEN): Delete. ld/testsuite/ * ld-arm/farcall-mix.d, ld-arm/farcall-mix2.d, ld-arm/farcall-group-size2.d, ld-arm/farcall-group.d, ld-arm/farcall-mixed-lib.d: Update for linker changes.
2009-04-172009-04-17 Christophe Lyon <christophe.lyon@st.com>Christophe Lyon4-4/+92
bfd/ * elf32-arm.c (elf32_arm_size_stubs): Handle long branches through PLT entries to an undefined symbol when generating a shared library. testsuite/ * ld-arm/arm-elf.exp: Add new test farcall-mixed-lib. * ld-arm/farcall-mixed-lib.d: Update expected output. * ld-arm/farcall-mixed-lib1.s: New file. * ld-arm/farcall-mixed-lib2.s: New file.
2009-04-152009-04-15 Christophe Lyon <christophe.lyon@st.com>Christophe Lyon3-0/+19
bfd/ * elf32-arm.c (elf32_arm_final_link_relocate): Don't convert ARM branch to an undef weak symbol into a jump to next instruction if a PLT entry will be created. testsuite/ * ld-arm/arm-elf.exp: Add 1 more test to check undef weak reference with PLT in ARM mode. * ld-arm/thumb2-bl-undefweak1.d, ld-arm/thumb2-bl-undefweak1.s: New files.
2009-04-022009-04-02 Christophe Lyon <christophe.lyon@st.com>Christophe Lyon2-13/+11
bfd/ * elf32-arm.c (elf32_arm_stub_long_branch_v4t_thumb_thumb, elf32_arm_stub_long_branch_v4t_thumb_thumb_pic): Two new long branch stubs. (elf32_arm_stub_type): New enum values for the two new stubs. (arm_type_of_stub): Make use of the two new stubs. (arm_size_one_stub): Handle the two new stubs. testsuite/ * ld-arm/farcall-thumb-thumb-pic-veneer.d: Update expected results. * ld-arm/farcall-thumb-thumb.d: Likewise.
2009-04-012009-04-01 Christophe Lyon <christophe.lyon@st.com>Christophe Lyon4-41/+7
opcodes/ * arm-dis.c (print_insn): Print BE8 opcodes in little endianness. ld/testsuite/ * ld-arm/arm-elf.exp: BE8 tests expect the same output as the default ones. * ld-arm/arm-be8.d: Print opcodes in little endian. * ld-arm/farcall-thumb-arm-be8.d: Removed useless expected result. * ld-arm/farcall-arm-arm-be8.d: Likewise.
2009-03-0609-03-05 Christophe Lyon <christophe.lyon@st.com>Christophe Lyon4-0/+46
bfd/ * elf32-arm.c (group_sections): Take next section size into account before accepting to group it. testsuite/ * ld-arm/arm-elf.exp: Add new farcall-group-limit test. * ld-arm/farcall-group-limit.d: New file. * ld-arm/farcall-group3.s: New file. * ld-arm/farcall-group4.s: New file.
2009-03-052009-03-05 Christophe Lyon <christophe.lyon@st.com>Christophe Lyon8-0/+310
bfd/ * elf32-arm.c (arm_type_of_stub): Handle long branches targetting PLT entries. (elf32_arm_final_link_relocate): Likewise. testsuite/ * ld-arm/arm-elf.exp: Add 2 more tests to check long branch stubs in PLT context. * ld-arm/farcall-mixed-app-v5.d: New file. * ld-arm/farcall-mixed-app.d: Likewise. * ld-arm/farcall-mixed-app.r: Likewise. * ld-arm/farcall-mixed-app.s: Likewise. * ld-arm/farcall-mixed-app.sym: Likewise. * ld-arm/farcall-mixed-lib.d: Likewise. * ld-arm/farcall-mixed-lib.r: Likewise.
2009-02-262009-02-26 Christophe Lyon <christophe.lyon@st.com>Christophe Lyon4-18/+73
bfd/ * elf32-arm.c (stub_reloc_type): Removed. (insn_sequence): Renamed reloc_type field to r_type. (elf32_arm_stub_long_branch_v4t_arm_thumb_pic): New stub. (elf32_arm_stub_long_branch_v4t_thumb_arm_pic): Likewise. (elf32_arm_stub_long_branch_thumb_only_pic): Likewise. (elf32_arm_stub_type): Add new enum entries for the new stubs. (arm_stub_is_thumb): Catch new stubs. (arm_type_of_stub): Handle new stubs. (arm_size_one_stub): Use ARRAY_SIZE. Handle new stubs. (bfd_elf32_arm_process_before_allocation): Remove useless condition. testsuite/ * ld-arm/arm-elf.exp: Add 3 tests for the 3 new stubs. * ld-arm/farcall-thumb-arm-pic-veneer.d: New expected result, the test is now expected to pass. * ld-arm/farcall-thumb-thumb-m-pic-veneer.d: Likewise. * ld-arm/farcall-thumb-thumb-pic-veneer.d: Likewise.
2009-02-252009-02-25 Christophe Lyon <christophe.lyon@st.com>Christophe Lyon2-20/+26
testsuite/ * ld-arm/thumb2-bl-as-thumb1-bad-noeabi.d: Update expected result, as stubs are now generated and the end of the .text section. * ld-arm/thumb2-bl-bad-noeabi.d: Likewise.
2009-02-24 bfd/Daniel Jacobowitz3-12/+12
* elf32-arm.c (elf32_arm_stub_long_branch_any_any_pic): Rename to elf32_arm_stub_long_branch_any_arm_pic. (elf32_arm_stub_long_branch_any_thumb_pic): New. (enum elf32_arm_stub_type, arm_type_of_stub) (arm_size_one_stub): Handle any to ARM PIC and any to Thumb PIC separately. ld/testsuite/ * ld-arm/farcall-arm-thumb-blx-pic-veneer.d, ld-arm/farcall-arm-thumb-pic-veneer.d, ld-arm/farcall-thumb-thumb-blx-pic-veneer.d: Update for fixed Thumb PIC stub.
2009-02-242009-02-24 Joseph Myers <joseph@codesourcery.com>Daniel Jacobowitz25-254/+258
bfd/ * elf32-arm.c (PREV_SEC): Update comment. (group_sections): Rename argument to stubs_always_after_branch. Reverse the list and place stubs at the end of input sections. Undefine NEXT_SEC. (elf32_arm_size_stubs): Update to use stubs_always_after_branch. ld/ * ld.texinfo (ARM): Document changed meaning of --stub-group-size. * emultempl/armelf.em (hook_in_stub): Insert after the input section. (elf32_arm_add_stub_section): Update comment. (PARSE_AND_LIST_OPTIONS): Update help for --stub-group-size. 2009-02-24 Daniel Jacobowitz <dan@codesourcery.com> ld/testsuite/ * ld-arm/arm-elf.exp (armeabitests): Update duplicate test names. Use normal output files for big-endian. * ld-arm/farcall-arm-arm-be.d, ld-arm/farcall-thumb-arm-be.d: Delete. * ld-arm/farcall-arm-arm-be8.d, ld-arm/farcall-arm-arm-pic-veneer.d, ld-arm/farcall-arm-arm.d, ld-arm/farcall-arm-thumb-blx-pic-veneer.d, ld-arm/farcall-arm-thumb-blx.d, ld-arm/farcall-arm-thumb-pic-veneer.d, ld-arm/farcall-arm-thumb.d, ld-arm/farcall-group-size2.d, ld-arm/farcall-group.d, ld-arm/farcall-mix.d, ld-arm/farcall-mix2.d, ld-arm/farcall-thumb-arm-be8.d, ld-arm/farcall-thumb-arm-blx-pic-veneer.d, ld-arm/farcall-thumb-arm-blx.d, ld-arm/farcall-thumb-arm-short.d, ld-arm/farcall-thumb-arm.d, ld-arm/farcall-thumb-thumb-blx-pic-veneer.d, ld-arm/farcall-thumb-thumb-blx.d, ld-arm/farcall-thumb-thumb-m.d, ld-arm/farcall-thumb-thumb.d, ld-arm/thumb2-bl-as-thumb1-bad.d, ld-arm/thumb2-bl-bad.d: Update for moved stubs.
2009-02-23 ld/testsuite/Daniel Jacobowitz3-1/+38
* ld-arm/arm-elf.exp (armeabitests): Run new tests. Correct BE8 output filename. * ld-arm/farcall-arm-arm-be.d, ld-arm/farcall-thumb-arm-be.d: New.
2009-02-232009-02-23 Christophe Lyon <christophe.lyon@st.com>Daniel Jacobowitz3-3/+23
bfd/ * elf32-arm.c (stub_insn_type): New type. (stub_reloc_type): Likewise. (insn_sequence): Likewise. (elf32_arm_stub_long_branch_any_any): Encode using insn_sequence. (elf32_arm_stub_long_branch_v4t_arm_thumb): Likewise. (elf32_arm_stub_long_branch_thumb_only): Likewise. (elf32_arm_stub_long_branch_v4t_thumb_arm): Likewise. (elf32_arm_stub_short_branch_v4t_thumb_arm): Likewise. (elf32_arm_stub_long_branch_any_any_pic): Likewise. (elf32_arm_stub_hash_entry): Add new helper fields. (stub_hash_newfunc): Initialize these new fields. (arm_build_one_stub): Encode Arm and Thumb instructions separately to take endianness into account. (arm_size_one_stub): Compute size of stubs using insn_sequence. (arm_map_one_stub): Code is now more generic, thanks to insn_sequence. ld/testsuite/ * ld-arm/arm-elf.exp: Add new farcall-thumb-arm-be8 test. * ld-arm/farcall-thumb-arm-be8.d: New expected result. * ld-arm/farcall-arm-arm-be8.d: Replace wildcards by instructions.
2009-02-232009-02-23 Christophe Lyon <christophe.lyon@st.com>Christophe Lyon11-46/+99
bfd/ * elf32-arm.c (elf32_arm_stub_long_branch_thumb_only): Fix stub code. (elf32_arm_stub_long_branch_v4t_thumb_arm): Likewise. (arm_type_of_stub): Use Thumb-only long branch stub (non-PIC) when BLX is not available. Fix typo in warning message. Add comments and improve formatting. (arm_build_one_stub): Adjust to new elf32_arm_stub_long_branch_v4t_thumb_arm stub. (arm_map_one_stub): Likewise. testsuite/ * ld-arm/arm-elf.exp: Rewrite non-EABI variants of thumb2-bl-as-thumb1-bad and thumb2-bl-bad tests, which now pass. farcall-thumb-thumb now passes in EABI mode. * ld-arm/farcall-thumb-arm-pic-veneer.d: Fixed name, source, as and ld flags to match intended test. * ld-arm/farcall-thumb-arm.d: New expected result. * ld-arm/farcall-thumb-thumb-m.d: Likewise. * ld-arm/farcall-thumb-thumb-m-pic-veneer.d: Fixed name and ld flags. * ld-arm/farcall-thumb-thumb-pic-veneer.d: Likewise. * ld-arm/farcall-thumb-thumb.d: New expected result, this test is now expected to pass. * ld-arm/thumb2-bl-as-thumb1-bad-noeabi.d: Likewise. * ld-arm/thumb2-bl-bad-noeabi.d: Likewise. * ld-arm/thumb2-bl-as-thumb1-bad.d: Update addresses according to new use. * ld-arm/thumb2-bl-as-thumb1-bad.s: Update comment.
2009-02-182009-02-18 Christophe Lyon <christophe.lyon@st.com>Christophe Lyon5-5/+5
bfd/ * elf32-arm.c (arm_build_one_stub): Fix relocation target for pic stub. Catch default case error. (arm_map_one_stub): Add missing Thumb mapping symbol. testsuite/ * ld-arm/farcall-arm-arm-pic-veneer.d, ld-arm/farcall-arm-thumb-blx-pic-veneer.d, ld-arm/farcall-arm-thumb-pic-veneer.d, ld-arm/farcall-thumb-arm-blx-pic-veneer.d, ld-arm/farcall-thumb-thumb-blx-pic-veneer.d: Fix expected stub target.
2009-02-05 * ld-arm/arm-elf.exp (armeabitests): Restore thumb2-b-interwork.Joseph Myers1-1/+3
2009-01-262009-01-26 Andrew Stubbs <ams@codesourcery.com>Andrew Stubbs26-1/+89
gas/ * config/tc-arm.c (attributes_set_explicitly): New array. (s_arm_eabi_attribute): Check return value from s_vendor_attribute. (cpu_arch): Add ARM_ARCH_V5T. (aeabi_set_attribute_int): New function. (aeabi_set_attribute_string): New function. (aeabi_set_public_attributes): Set attributes according to the user's intentions, rather than the actual state of the binary. Use aeabi_set_attribute_int and aeabi_set_attribute_string instead of bfd_elf_add_proc_attr_int and bfd_elf_add_proc_attr_string. Support WMMXv2. Use attribute names instead of numbers. * read.c (s_vendor_attribute): Change return type to int. Return the tag number that was set. * read.h (s_vendor_attribute): Change return type to int. gas/testsuite/ * gas/arm/attr-cpu-directive.d: New file. * gas/arm/attr-cpu-directive.s: New file. * gas/arm/attr-default.d: New file. * gas/arm/attr-march-all.d: New file. * gas/arm/attr-march-armv1.d: New file. * gas/arm/attr-march-armv2.d: New file. * gas/arm/attr-march-armv2a.d: New file. * gas/arm/attr-march-armv2s.d: New file. * gas/arm/attr-march-armv3.d: New file. * gas/arm/attr-march-armv3m.d: New file. * gas/arm/attr-march-armv4.d: New file. * gas/arm/attr-march-armv4t.d: New file. * gas/arm/attr-march-armv4txm.d: New file. * gas/arm/attr-march-armv4xm.d: New file. * gas/arm/attr-march-armv5.d: New file. * gas/arm/attr-march-armv5t.d: New file. * gas/arm/attr-march-armv5te.d: New file. * gas/arm/attr-march-armv5tej.d: New file. * gas/arm/attr-march-armv5texp.d: New file. * gas/arm/attr-march-armv5txm.d: New file. * gas/arm/attr-march-armv6-m.d: New file. * gas/arm/attr-march-armv6.d: New file. * gas/arm/attr-march-armv6j.d: New file. * gas/arm/attr-march-armv6k.d: New file. * gas/arm/attr-march-armv6kt2.d: New file. * gas/arm/attr-march-armv6t2.d: New file. * gas/arm/attr-march-armv6z.d: New file. * gas/arm/attr-march-armv6zk.d: New file. * gas/arm/attr-march-armv6zkt2.d: New file. * gas/arm/attr-march-armv6zt2.d: New file. * gas/arm/attr-march-armv7-a.d: New file. * gas/arm/attr-march-armv7-m.d: New file. * gas/arm/attr-march-armv7-r.d: New file. * gas/arm/attr-march-armv7.d: New file. * gas/arm/attr-march-armv7a.d: New file. * gas/arm/attr-march-armv7m.d: New file. * gas/arm/attr-march-armv7r.d: New file. * gas/arm/attr-march-iwmmxt.d: New file. * gas/arm/attr-march-iwmmxt2.d: New file. * gas/arm/attr-march-xscale.d: New file. * gas/arm/attr-mcpu.d: New file. * gas/arm/attr-mfpu-arm1020e.d: New file. * gas/arm/attr-mfpu-arm1020t.d: New file. * gas/arm/attr-mfpu-arm1136jf-s.d: New file. * gas/arm/attr-mfpu-arm1136jfs.d: New file. * gas/arm/attr-mfpu-arm7500fe.d: New file. * gas/arm/attr-mfpu-fpa.d: New file. * gas/arm/attr-mfpu-fpa10.d: New file. * gas/arm/attr-mfpu-fpa11.d: New file. * gas/arm/attr-mfpu-fpe.d: New file. * gas/arm/attr-mfpu-fpe2.d: New file. * gas/arm/attr-mfpu-fpe3.d: New file. * gas/arm/attr-mfpu-maverick.d: New file. * gas/arm/attr-mfpu-neon-fp16.d: New file. * gas/arm/attr-mfpu-neon.d: New file. * gas/arm/attr-mfpu-softfpa.d: New file. * gas/arm/attr-mfpu-softvfp+vfp.d: New file. * gas/arm/attr-mfpu-softvfp.d: New file. * gas/arm/attr-mfpu-vfp.d: New file. * gas/arm/attr-mfpu-vfp10-r0.d: New file. * gas/arm/attr-mfpu-vfp10.d: New file. * gas/arm/attr-mfpu-vfp3.d: New file. * gas/arm/attr-mfpu-vfp9.d: New file. * gas/arm/attr-mfpu-vfpv2.d: New file. * gas/arm/attr-mfpu-vfpv3-d16.d: New file. * gas/arm/attr-mfpu-vfpv3.d: New file. * gas/arm/attr-mfpu-vfpxd.d: New file. * gas/arm/attr-order.d: Update Tag_ARM_ISA_use and Tag_THUMB_ISA_use. * gas/arm/attr-override-cpu-directive.d: New file. * gas/arm/attr-override-cpu-directive.s: New file. * gas/arm/attr-override-mcpu.d: New file. * gas/arm/attr-override-mcpu.s: New file. * gas/arm/blank.s: New file. * gas/arm/eabi_attr_1.d: Update Tag_ARM_ISA_use and Tag_THUMB_ISA_use. ld/testsuite/ * ld-arm/attr-merge-3.attr: Update following gas change. * ld-arm/attr-merge-2.attr: Update Tag_ARM_ISA_use and Tag_THUMB_ISA_use following gas changes. * ld-arm/attr-merge-4.attr: Likewise. * ld-arm/attr-merge-5.attr: Likewise. * ld-arm/attr-merge-arch-1.attr: Likewise. * ld-arm/attr-merge-arch-2.attr: Likewise. * ld-arm/attr-merge-unknown-2.d: Likewise. * ld-arm/attr-merge-unknown-2r.d: Likewise. * ld-arm/attr-merge-unknown-3.d: Likewise. * ld-arm/attr-merge-wchar-00-nowarn.d: Likewise. * ld-arm/attr-merge-wchar-00.d: Likewise. * ld-arm/attr-merge-wchar-02-nowarn.d: Likewise. * ld-arm/attr-merge-wchar-02.d: Likewise. * ld-arm/attr-merge-wchar-04-nowarn.d: Likewise. * ld-arm/attr-merge-wchar-04.d: Likewise. * ld-arm/attr-merge-wchar-20-nowarn.d: Likewise. * ld-arm/attr-merge-wchar-20.d: Likewise. * ld-arm/attr-merge-wchar-22-nowarn.d: Likewise. * ld-arm/attr-merge-wchar-22.d: Likewise. * ld-arm/attr-merge-wchar-24-nowarn.d: Likewise. * ld-arm/attr-merge-wchar-40-nowarn.d: Likewise. * ld-arm/attr-merge-wchar-40.d: Likewise. * ld-arm/attr-merge-wchar-42-nowarn.d: Likewise. * ld-arm/attr-merge-wchar-44-nowarn.d: Likewise. * ld-arm/attr-merge-wchar-44.d: Likewise. * ld-arm/attr-merge.attr: Likewise.
2009-01-192009-01-19 Andrew Stubbs <ams@codesourcery.com>Andrew Stubbs21-0/+220
ld/testsuite/ * ld-arm/arm-elf.exp (armeabitests): Add EABI attribute merging 3, EABI attribute merging 4, and EABI attribute merging 5, EABI attribute arch merging 1, EABI attribute arch merging 1 reversed, EABI attribute arch merging 2, EABI attribute arch merging 2 reversed. Add attr-merge-unknown-1, attr-merge-unknown-2, attr-merge-unknown-2r, and attr-merge-unknown-3 dump tests. * ld-arm/arch-v6.s: New file. * ld-arm/arch-v6k.s: New file. * ld-arm/arch-v6t2.s: New file. * ld-arm/attr-merge-3.attr: New file. * ld-arm/attr-merge-3a.s: New file. * ld-arm/attr-merge-3b.s: New file. * ld-arm/attr-merge-4.attr: New file. * ld-arm/attr-merge-4a.s: New file. * ld-arm/attr-merge-4b.s: New file. * ld-arm/attr-merge-5.attr: New file. * ld-arm/attr-merge-5.s: New file. * ld-arm/attr-merge-arch-1.attr: New file. * ld-arm/attr-merge-arch-2.attr: New file. * ld-arm/attr-merge-unknown-1.d: New file. * ld-arm/attr-merge-unknown-1.s: New file. * ld-arm/attr-merge-unknown-2.d: New file. * ld-arm/attr-merge-unknown-2.s: New file. * ld-arm/attr-merge-unknown-2r.d: New file. * ld-arm/attr-merge-unknown-3.d: New file. * ld-arm/blank.s: New file.
2008-12-15opcodes:Richard Earnshaw2-4/+4
* arm-dis.c (coprocessor_opcodes): Disassemble VFP instructions using unified syntax. gas/testsuite: * gas/arm/group-reloc-ldc.d: Disassembly of VFP instructions now uses unified syntax. * gas/arm/vfp-non-overlap.d: Likewise. * gas/arm/vfp-neon-syntax.d: Likewise. * gas/arm/vfp-neon-syntax_t2.d: Likewise. * gas/arm/vfp1.d: Likewise. * gas/arm/vfp1_t2.d: Likewise. * gas/arm/vfp1xD.d: Likewise. * gas/arm/vfp1xD_t2.d: Likewise. * gas/arm/vfp2.d: Likewise. * gas/arm/vfp2_t2.d: Likewise. * gas/arm/vfpv3-32drs.d: Likewise. * gas/arm/vfpv3-const-conv.d: Likewise. ld/testsuite: * ld-arm/vfp11-fix-scalar.d: Disassembly of VFP instructions now uses unified syntax. * ld-arm/vfp11-fix-vector.d: Likewise.
2008-11-25bfd:Joseph Myers3-0/+20
* elf32-arm.c (elf32_arm_final_link_relocate): Do not turn branches to undefine weak symbols into branches to the next instruction if creating PLT entries for those symbols. ld/testsuite: * ld-arm/thumb2-bl-undefweak.d, ld-arm/thumb2-bl-undefweak.s: New. * ld-arm/arm-elf.exp: Run thumb2-bl-undefweak test.
2008-08-26bfd/Nick Clifton4-5/+40
* elf32-arm.c (arm_thumb_arm_v4t_short_branch_stub): Define. (elf32_arm_stub_type): Add arm_thumb_arm_v4t_stub_short_branch. (arm_type_of_stub): Handle armv4t short branches. Update prototype. (arm_stub_is_thumb): Handle arm_thumb_arm_v4t_stub_short_branch. (arm_build_one_stub): Likewise. (arm_size_one_stub): Likewise. (elf32_arm_size_stubs): Use new arm_type_of_stub prototype. (arm_map_one_stub): Handle arm_thumb_arm_v4t_stub_short_branch. ld/testsuite/ * ld-arm/arm-elf.exp: Add farcall-thumb-arm-short test. * ld-arm/farcall-group2.s: Fix comment. * ld-arm/farcall-thumb-arm-short.d: New test. * ld-arm/farcall-thumb-arm-short.s: New test.
2008-07-22Update for elf_link_output_extsym changeAlan Modra2-3/+3
2008-07-18bfd:Joseph Myers22-0/+347
* bfd-in.h (bfd_elf32_arm_set_target_relocs): Add new parameter. * bfd-in2.h: Regenerate. * elf32-arm.c (struct elf_arm_obj_tdata): Add field no_wchar_size_warning. (bfd_elf32_arm_set_target_relocs): Add new parameter no_wchar_warn. (elf32_arm_merge_eabi_attributes): Give a warning, not an error, for conflicting wchar_t attributes. Do not warn if --no-wchar-size-warning. Make diagnostic text more specific. ld: * ld.texinfo (--no-wchar-size-warning): Document new ARM option. * emultempl/armelf.em (no_wchar_size_warning): New. (arm_elf_create_output_section_statements): Pass no_wchar_size_warning to arm_elf_create_output_section_statements. (OPTION_NO_WCHAR_SIZE_WARNING): New. (PARSE_AND_LIST_LONGOPTS): Add no-wchar-size-warning. (PARSE_AND_LIST_OPTIONS): List --no-wchar-size-warning. (PARSE_AND_LIST_ARGS_CASES): Handle --no-wchar-size-warning. ld/testsuite: * ld-arm/attr-merge-wchar-0.s,ld-arm/attr-merge-wchar-2.s, ld-arm/attr-merge-wchar-4.s, ld-arm/attr-merge-wchar-00-nowarn.d, ld-arm/attr-merge-wchar-00.d, ld-arm/attr-merge-wchar-02-nowarn.d, ld-arm/attr-merge-wchar-02.d, ld-arm/attr-merge-wchar-04-nowarn.d, ld-arm/attr-merge-wchar-04.d, ld-arm/attr-merge-wchar-20-nowarn.d, ld-arm/attr-merge-wchar-20.d, ld-arm/attr-merge-wchar-22-nowarn.d, ld-arm/attr-merge-wchar-22.d, ld-arm/attr-merge-wchar-24-nowarn.d, ld-arm/attr-merge-wchar-24.d, ld-arm/attr-merge-wchar-40-nowarn.d, ld-arm/attr-merge-wchar-40.d, ld-arm/attr-merge-wchar-42-nowarn.d, ld-arm/attr-merge-wchar-42.d, ld-arm/attr-merge-wchar-44-nowarn.d, ld-arm/attr-merge-wchar-44.d: New. * ld-arm/arm-elf.exp: Run new tests.
2008-07-07 * ld-arm/arm-elf.exp: Use objdump -d for arm-be8 test.Stan Shebs2-6/+14
* ld-arm/arm-be8.d: Change to test disassembly.
2008-06-25 * elf32-arm.c (STUB_ENTRY_NAME): Define.Daniel Jacobowitz19-90/+106
(arm_thumb_thumb_long_branch_stub): Use bx instead of b.n. (arm_pic_long_branch_stub): Mention R_ARM_REL32 instead of R_ARM_ABS32. (struct elf32_arm_stub_hash_entry): Add output_name. (arm_build_one_stub): Move offsets into the offset argument of _bfd_final_link_relocate. Correct offset for arm_thumb_arm_v4t_stub_long_branch. (elf32_arm_size_stubs): Set stub_entry->output_name. (elf32_arm_ouput_plt_map_sym): Rename to elf32_arm_output_map_sym. Update all callers. (elf32_arm_output_stub_sym): New. (arm_map_one_stub): Correct formatting. Use elf32_arm_output_stub_sym. * ld-arm/farcall-arm-arm-be8.d, ld-arm/farcall-arm-arm-pic-veneer.d, ld-arm/farcall-arm-arm.d, ld-arm/farcall-arm-thumb-blx-pic-veneer.d, ld-arm/farcall-arm-thumb-blx.d, ld-arm/farcall-arm-thumb-pic-veneer.d, ld-arm/farcall-arm-thumb.d, ld-arm/farcall-group-size2.d, ld-arm/farcall-group.d, ld-arm/farcall-mix.d, ld-arm/farcall-mix2.d, ld-arm/farcall-thumb-arm-blx-pic-veneer.d, ld-arm/farcall-thumb-arm-blx.d, ld-arm/farcall-thumb-arm.d, ld-arm/farcall-thumb-thumb-blx-pic-veneer.d, ld-arm/farcall-thumb-thumb-blx.d, ld-arm/farcall-thumb-thumb-m.d, ld-arm/thumb2-bl-as-thumb1-bad.d, ld-arm/thumb2-bl-bad.d: Update for stub symbols and stub corrections.
2008-06-09 * ld-arm/mixed-lib.d: Loosen pattern.Daniel Jacobowitz1-1/+1
2008-06-092008-06-03 Christophe Lyon <christophe.lyon@st.com>Daniel Jacobowitz2-2/+2
bfd/ * elf32-arm.c (arm_stub_is_thumb): Define. (elf32_arm_final_link_relocate): Handle near mode switching stubs. ld/testsuite/ * ld-arm/farcall-thumb-thumb-m.d: Fix branch type. * ld-arm/farcall-thumb-arm.d: Likewise.
2008-05-31Ooops, omitted from previous deltaNick Clifton2-0/+8
2008-05-28 ld/testsuite/Nick Clifton1-29/+31
* ld-arm/arm-elf.exp: Skip farcalls tests for non-ARM-EABI targets. * ld-arm/thumb2-bl-as-thumb1-bad-noeabi.d: New file. * ld-arm/thumb2-bl-bad-noeabi.d: Likewise. ld/ * ld.texinfo: State that farcalls stubs are supported for ARM-EABI only.
2008-05-23Add more farcall testsNick Clifton10-0/+361
2008-05-23 bfd/Nick Clifton7-64/+82
* elf32-arm.c (arm_type_of_stub): Ignore STT_SECTION symbols. (elf32_arm_stub_add_mapping_symbol): Remove. (elf32_arm_add_stub): Don't generate mapping symbols. Change prototype. (elf32_arm_size_stubs): Use new elf32_arm_add_stub prototype. Don't generate thumb to arm glue for calls. (arm_map_one_stub): Define. (elf32_arm_output_arch_local_syms): Generate mapping symbols for long calls stubs. ld/testsuite/ * ld-arm/farcall-arm-arm.s: Force function type on 'bar'. * ld-arm/farcall-thumb-arm.s: Likewise. * ld-arm/farcall-thumb-arm-blx.d: Fix encoding. * ld-arm/farcall-thumb-arm.d: Likewise. * ld-arm/farcall-thumb-arm-blx-pic-veneer.d: Likewise. * ld-arm/arm-elf.exp (armelftests): Add farcall-mix, farcall-mix2, farcall-group-default, farcall-group-size2, farcall-section Ignore gas warnings in farcall-thumb-arm, farcall-thumb-arm-blx, farcall-thumb-arm-blx-pic-veneer.
2008-05-15 bfd/Nick Clifton26-24/+397
* elf32-arm.c (THM2_MAX_FWD_BRANCH_OFFSET): Define. (THM2_MAX_BWD_BRANCH_OFFSET): Define. (ARM_MAX_FWD_BRANCH_OFFSET): Define. (ARM_MAX_BWD_BRANCH_OFFSET): Define. (THM_MAX_FWD_BRANCH_OFFSET): Define. (THM_MAX_BWD_BRANCH_OFFSET): Define. (arm_long_branch_stub): Define. (arm_pic_long_branch_stub): Define. (arm_thumb_v4t_long_branch_stub): Define. (arm_thumb_thumb_long_branch_stub): Define. (arm_thumb_arm_v4t_long_branch_stub): Define. (STUB_SUFFIX): Define. (elf32_arm_stub_type): Define. (elf32_arm_stub_hash_entry): Define. (elf32_arm_link_hash_entry): Add stub_cache field. (arm_stub_hash_lookup): Define. (elf32_arm_link_hash_table): Add stub_hash_table, stub_bfd, add_stub_section, layout_sections_again, stub_group, bfd_count, top_index, input_list fields. (elf32_arm_link_hash_newfunc): Init new field. (stub_hash_newfunc): New function. (elf32_arm_link_hash_table_create): Init stub_hash_table. (elf32_arm_hash_table_free): New function. (arm_type_of_stub): New function. (elf32_arm_stub_name): New function. (elf32_arm_get_stub_entry): New function. (elf32_arm_stub_add_mapping_symbol): New function. (elf32_arm_add_stub): New function. (arm_build_one_stub): New function. (arm_size_one_stub): New function. (elf32_arm_setup_section_lists): New function. (elf32_arm_next_input_section): New function. (group_sections): New function. (elf32_arm_size_stubs): New function. (elf32_arm_build_stubs): New function. (bfd_elf32_arm_add_glue_sections_to_bfd): Skip stub sections. (bfd_elf32_arm_process_before_allocation): No longer handle R_ARM_CALL and R_ARM_THM_CALL. (using_thumb_only): New function. (elf32_arm_final_link_relocate): Redirect calls to stub if range exceeds encoding capabilities. (bfd_elf32_bfd_link_hash_table_free): Define. * bfd-in.h (R_ARM_max): Fix value to 130. (elf32_arm_setup_section_lists): Protype. (elf32_arm_next_input_section): Protype. (elf32_arm_size_stubs): Protype. (elf32_arm_build_stubs): Protype. ld/ * emultempl/armelf.em (build_section_lists): New function. (stub_file): Define. (need_laying_out): Define. (group_size): Define. (hook_stub_info): Define. (hook_in_stub): New function. (elf32_arm_add_stub_section): New function. (gldarm_layout_sections_again): New function. (gld${EMULATION_NAME}_finish): Replace arm_elf_finish(). Generate stubs for long calls if needed. (arm_elf_create_output_section_statements): create stub_file bfd. (arm_for_each_input_file_wrapper): New function. (arm_lang_for_each_input_file): New function. (lang_for_each_input_file): Define. (PARSE_AND_LIST_PROLOGUE): Add option token OPTION_STUBGROUP_SIZE. (PARSE_AND_LIST_LONGOPTS): Add option stub-group-size. (PARSE_AND_LIST_OPTIONS): Add option stub-group-size. (PARSE_AND_LIST_ARGS_CASES): Add OPTION_STUBGROUP_SIZE case. (LDEMUL_FINISH): Update to gld${EMULATION_NAME}_finish. * ld/lang.c (print_input_statement): Skip if bfd has BFD_LINKER_CREATED. ld/testsuite * ld-arm/arm-elf.exp (armelftests): Add farcall-arm-arm, farcall-arm-arm-pic-veneer, farcall-arm-arm-be8 farcall-arm-thumb, farcall-arm-thumb-blx, farcall-arm-thumb-pic-veneer, farcall-arm-thumb-blx-pic-veneer, farcall-thumb-thumb, farcall-thumb-thumb-pic-veneer, farcall-thumb-thumb-blx, farcall-thumb-thumb-m, farcall-thumb-thumb-m-pic-veneer, farcall-thumb-thumb-blx-pic-veneer, farcall-thumb-arm, farcall-thumb-arm-pic-veneer, farcall-thumb-arm-blx, farcall-thumb-arm-blx-pic-veneer. Change thumb2-bl-as-thumb1-bad, thumb2-bl-bad. * ld-arm/thumb2-bl-as-thumb1-bad.d: Reflects farcall stub generation. * ld-arm/thumb2-bl-bad.d: Likewise. * ld-arm/thumb2-bl-as-thumb1-bad.s: Update comments. * ld-arm/thumb2-bl-bad.s: Likewise.
2008-04-29 * elf.c (_bfd_elf_get_dynamic_reloc_upper_bound)Daniel Jacobowitz3-0/+25
(_bfd_elf_canonicalize_dynamic_reloc): Find dynamic relocations even if they are not loaded. * elflink.c (_bfd_elf_init_2_index_sections): Set data_index_section first. * ld-arm/symbian-seg1.s, ld-arm/symbian-seg1.d: New files. * ld-arm/arm-elf.exp: Run symbian-seg1.
2008-03-082008-03-08 Paul Brook <paul@codesourcery.com>Paul Brook3-0/+42
bfd/ * elf32-arm.c (insert_thumb_branch): Rewrite. (elf32_thumb_to_arm_stub): Use new insert_thumb_branch. ld/testsuite/ * ld-arm/arm-elf.exp (armeabitests): Add thumb2-b-interwork. * ld-arm/thumb2-b-interwork.d: New test. * ld-arm/thumb2-b-interwork.s: New test.