diff options
author | Daniel Jacobowitz <drow@false.org> | 2009-12-09 21:42:00 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2009-12-09 21:42:00 +0000 |
commit | a747059210fbec5946a62431e8774190059d901d (patch) | |
tree | a29b7eed365990c34238b3e8bfbcd93979096453 | |
parent | 2f2de2488974549562ff0ebc3676daa78eb28d0f (diff) | |
download | gdb-a747059210fbec5946a62431e8774190059d901d.zip gdb-a747059210fbec5946a62431e8774190059d901d.tar.gz gdb-a747059210fbec5946a62431e8774190059d901d.tar.bz2 |
bfd/
* elf32-arm.c (elf32_arm_next_input_section): Skip sections without
SEC_CODE.
ld/testsuite/
* ld-arm/arm-elf.exp (armeabitests): Add farcall-data.
* ld-arm/farcall-data.d, ld-arm/farcall-data.s: New.
* lib/ld-lib.exp (run_ld_link_tests, run_cc_link_tests): Correct
regular expression for archives.
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-arm.c | 2 | ||||
-rw-r--r-- | ld/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/arm-elf.exp | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/farcall-data.d | 19 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/farcall-data.s | 14 | ||||
-rw-r--r-- | ld/testsuite/lib/ld-lib.exp | 4 |
7 files changed, 51 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6cbee4a..2591260 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2009-12-09 Daniel Jacobowitz <dan@codesourcery.com> + + * elf32-arm.c (elf32_arm_next_input_section): Skip sections without + SEC_CODE. + 2009-12-08 Alan Modra <amodra@bigpond.net.au> * elf.c (write_zeros): New function. diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 21f92a4..2168fc0 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -3785,7 +3785,7 @@ elf32_arm_next_input_section (struct bfd_link_info *info, { asection **list = htab->input_list + isec->output_section->index; - if (*list != bfd_abs_section_ptr) + if (*list != bfd_abs_section_ptr && (isec->flags & SEC_CODE) != 0) { /* Steal the link_sec pointer for our list. */ #define PREV_SEC(sec) (htab->stub_group[(sec)->id].link_sec) diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 537c2d6..1bd1eda 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2009-12-09 Daniel Jacobowitz <dan@codesourcery.com> + + * ld-arm/arm-elf.exp (armeabitests): Add farcall-data. + * ld-arm/farcall-data.d, ld-arm/farcall-data.s: New. + * lib/ld-lib.exp (run_ld_link_tests, run_cc_link_tests): Correct + regular expression for archives. + 2009-11-23 Paul Brook <paul@codesourcery.com> * ld-arm/script-type.sym: New test. diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp index 8fbf8df..2372844 100644 --- a/ld/testsuite/ld-arm/arm-elf.exp +++ b/ld/testsuite/ld-arm/arm-elf.exp @@ -422,6 +422,9 @@ set armeabitests { {{objdump -fdw farcall-mixed-lib.d}} "farcall-mixed-lib.so"} + {"Long branch with mixed text and data" "-T arm.ld" "" {farcall-data.s} + {{objdump -dr farcall-data.d}} + "farcall-data"} } run_ld_link_tests $armeabitests diff --git a/ld/testsuite/ld-arm/farcall-data.d b/ld/testsuite/ld-arm/farcall-data.d new file mode 100644 index 0000000..a8b231c --- /dev/null +++ b/ld/testsuite/ld-arm/farcall-data.d @@ -0,0 +1,19 @@ +.*: file format .* + +Disassembly of section .text: + +00008000 <_start>: + 8000: ea000000 b 8008 <__far_veneer> + 8004: 00000000 andeq r0, r0, r0 + +00008008 <__far_veneer>: + 8008: e51ff004 ldr pc, \[pc, #-4\] ; 800c <__far_veneer\+0x4> + 800c: 12340000 \.word 0x12340000 + +00008010 <after>: + 8010: 11111111 \.word 0x11111111 + +Disassembly of section \.far: + +12340000 <far>: +12340000: e12fff1e bx lr diff --git a/ld/testsuite/ld-arm/farcall-data.s b/ld/testsuite/ld-arm/farcall-data.s new file mode 100644 index 0000000..ed66199 --- /dev/null +++ b/ld/testsuite/ld-arm/farcall-data.s @@ -0,0 +1,14 @@ + .syntax unified + .text + .global _start + .type _start, %function +_start: + b far + +.section .after +after: + .word 0x11111111 + + .section .far, "ax" + .type far, %function +far: bx lr diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp index a738747..65a5ffb 100644 --- a/ld/testsuite/lib/ld-lib.exp +++ b/ld/testsuite/lib/ld-lib.exp @@ -1227,7 +1227,7 @@ proc run_ld_link_tests { ldtests } { continue } - if { [regexp ".*a$" $binfile] } { + if { [regexp ".*\\.a$" $binfile] } { if { ![ar_simple_create $ar $ld_options $binfile "$objfiles"] } { fail $testname set failed 1 @@ -1538,7 +1538,7 @@ proc run_cc_link_tests { ldtests } { set cc_cmd $CC } - if { [regexp ".*a$" $binfile] } { + if { [regexp ".*\\.a$" $binfile] } { if { ![ar_simple_create $ar $ldflags $binfile "$objfiles"] } { fail $testname set failed 1 |