mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-29 08:24:05 +08:00
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.
This commit is contained in:
@ -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>
|
2009-12-08 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* elf.c (write_zeros): New function.
|
* elf.c (write_zeros): New function.
|
||||||
|
@ -3785,7 +3785,7 @@ elf32_arm_next_input_section (struct bfd_link_info *info,
|
|||||||
{
|
{
|
||||||
asection **list = htab->input_list + isec->output_section->index;
|
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. */
|
/* Steal the link_sec pointer for our list. */
|
||||||
#define PREV_SEC(sec) (htab->stub_group[(sec)->id].link_sec)
|
#define PREV_SEC(sec) (htab->stub_group[(sec)->id].link_sec)
|
||||||
|
@ -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>
|
2009-11-23 Paul Brook <paul@codesourcery.com>
|
||||||
|
|
||||||
* ld-arm/script-type.sym: New test.
|
* ld-arm/script-type.sym: New test.
|
||||||
|
@ -422,6 +422,9 @@ set armeabitests {
|
|||||||
{{objdump -fdw farcall-mixed-lib.d}}
|
{{objdump -fdw farcall-mixed-lib.d}}
|
||||||
"farcall-mixed-lib.so"}
|
"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
|
run_ld_link_tests $armeabitests
|
||||||
|
19
ld/testsuite/ld-arm/farcall-data.d
Normal file
19
ld/testsuite/ld-arm/farcall-data.d
Normal file
@ -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
|
14
ld/testsuite/ld-arm/farcall-data.s
Normal file
14
ld/testsuite/ld-arm/farcall-data.s
Normal file
@ -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
|
@ -1227,7 +1227,7 @@ proc run_ld_link_tests { ldtests } {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if { [regexp ".*a$" $binfile] } {
|
if { [regexp ".*\\.a$" $binfile] } {
|
||||||
if { ![ar_simple_create $ar $ld_options $binfile "$objfiles"] } {
|
if { ![ar_simple_create $ar $ld_options $binfile "$objfiles"] } {
|
||||||
fail $testname
|
fail $testname
|
||||||
set failed 1
|
set failed 1
|
||||||
@ -1538,7 +1538,7 @@ proc run_cc_link_tests { ldtests } {
|
|||||||
set cc_cmd $CC
|
set cc_cmd $CC
|
||||||
}
|
}
|
||||||
|
|
||||||
if { [regexp ".*a$" $binfile] } {
|
if { [regexp ".*\\.a$" $binfile] } {
|
||||||
if { ![ar_simple_create $ar $ldflags $binfile "$objfiles"] } {
|
if { ![ar_simple_create $ar $ldflags $binfile "$objfiles"] } {
|
||||||
fail $testname
|
fail $testname
|
||||||
set failed 1
|
set failed 1
|
||||||
|
Reference in New Issue
Block a user