* 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:
Daniel Jacobowitz 2009-12-09 21:42:00 +00:00
parent 2f2de24889
commit a747059210
7 changed files with 51 additions and 3 deletions

View File

@ -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.

View File

@ -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)

View File

@ -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.

View File

@ -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

View 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

View 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

View File

@ -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