diff options
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/emultempl/armelf.em | 4 | ||||
-rw-r--r-- | ld/ld.texinfo | 4 | ||||
-rw-r--r-- | ld/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/arm-elf.exp | 60 |
5 files changed, 49 insertions, 31 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 0d892c1..d896b6f 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2008-05-28 Christophe Lyon <christophe.lyon@st.com> + + * ld.texinfo: State that farcalls stubs are supported for ARM-EABI + only. + 2008-05-27 Kai Tietz <kai.tietz@onevision.com> * pe-dll.c (fill_edata): Make sure we calculate vma's in diff --git a/ld/emultempl/armelf.em b/ld/emultempl/armelf.em index 57842f4..6ebb30e 100644 --- a/ld/emultempl/armelf.em +++ b/ld/emultempl/armelf.em @@ -355,7 +355,7 @@ gld${EMULATION_NAME}_finish (void) { if (ret < 0) { - einfo ("%X%P: can not size stub section: %E\n"); + einfo ("%X%P: could not compute sections lists for stub generation: %E\n"); return; } @@ -369,7 +369,7 @@ gld${EMULATION_NAME}_finish (void) & elf32_arm_add_stub_section, & gldarm_layout_sections_again)) { - einfo ("%X%P: can not size stub section: %E\n"); + einfo ("%X%P: cannot size stub section: %E\n"); return; } } diff --git a/ld/ld.texinfo b/ld/ld.texinfo index e7dbd7b..f4a3473 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -5713,6 +5713,10 @@ from the input sections. The default, if @option{--stub-group-size=} is not specified, is @samp{N = +1}. +Farcalls stubs insertion is fully supported for the ARM-EABI target +only, because it relies on object files properties not present +otherwise. + @ifclear GENERIC @lowersections @end ifclear diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index be242b6..8a04642 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2008-05-28 Christophe Lyon <christophe.lyon@st.com> + + * 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. + 2008-05-22 Christophe Lyon <christophe.lyon@st.com> * ld-arm/farcall-arm-arm.s: Force function type on 'bar'. diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp index 62a7ef0..5f2af9d 100644 --- a/ld/testsuite/ld-arm/arm-elf.exp +++ b/ld/testsuite/ld-arm/arm-elf.exp @@ -177,6 +177,36 @@ set armelftests { {"callweak" "-static -T arm.ld" "" {callweak.s} {{objdump -dr callweak.d}} "callweak"} +} + +run_ld_link_tests $armelftests +run_dump_test "group-relocs-alu-bad" +run_dump_test "group-relocs-ldr-bad" +run_dump_test "group-relocs-ldrs-bad" +run_dump_test "group-relocs-ldc-bad" +run_dump_test "emit-relocs1" + +# Exclude non-ARM-EABI targets. + +if { ![istarget "arm*-*-*eabi"] } { + # Special variants of these tests, as no farcall stub is generated + # for a non-ARM-EABI target + run_dump_test "thumb2-bl-as-thumb1-bad-noeabi" + run_dump_test "thumb2-bl-bad-noeabi" + return +} + +# Farcalls stubs are fully supported for ARM-EABI only +set armeabitests { + {"EABI attribute merging" "-r" "" {attr-merge.s attr-merge.s} + {{readelf -A attr-merge.attr}} + "attr-merge"} + {"EABI attribute merging 2" "-r" "" {attr-merge-2a.s attr-merge-2b.s} + {{readelf -A attr-merge-2.attr}} + "attr-merge-2"} + {"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x1001000" "" {thumb2-bl.s} + {{objdump -dr thumb2-bl.d}} + "thumb2-bl"} {"ARMv4 interworking" "-static -T arm.ld --fix-v4bx-interworking" "--fix-v4bx -meabi=4" {armv4-bx.s} {{objdump -d armv4-bx.d}} @@ -252,37 +282,9 @@ set armelftests { "farcall-group-size2"} } -run_ld_link_tests $armelftests -run_dump_test "group-relocs-alu-bad" -run_dump_test "group-relocs-ldr-bad" -run_dump_test "group-relocs-ldrs-bad" -run_dump_test "group-relocs-ldc-bad" -run_dump_test "emit-relocs1" +run_ld_link_tests $armeabitests run_dump_test "farcall-thumb-thumb" run_dump_test "farcall-thumb-thumb-pic-veneer" run_dump_test "farcall-thumb-thumb-m-pic-veneer" run_dump_test "farcall-thumb-arm-pic-veneer" run_dump_test "farcall-section" - -# Exclude non-ARM-EABI targets. - -if { ![istarget "arm*-*-*eabi"] } { - return -} - -set armeabitests { - {"EABI attribute merging" "-r" "" {attr-merge.s attr-merge.s} - {{readelf -A attr-merge.attr}} - "attr-merge"} - {"EABI attribute merging 2" "-r" "" {attr-merge-2a.s attr-merge-2b.s} - {{readelf -A attr-merge-2.attr}} - "attr-merge-2"} - {"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x1001000" "" {thumb2-bl.s} - {{objdump -dr thumb2-bl.d}} - "thumb2-bl"} - {"Thumb-2 Interworked branch" "-T arm.ld" "" {thumb2-b-interwork.s} - {{objdump -dr thumb2-b-interwork.d}} - "thumb2-b-interwork"} -} - -run_ld_link_tests $armeabitests |