Enable to link ARM object file that hasn't attribute section.
bfd/ChangeLog 2014-11-20 Terry Guo <terry.guo@arm.com> * elf32-arm.c (elf32_arm_merge_eabi_attributes): Skip if input bfd hasn't attribute section. ld/testsuite/ChangeLog: 2014-11-20 Terry Guo <terry.guo@arm.com> * ld-arm/attr-merge-nosection-1.d: New file. * ld-arm/attr-merge-nosection-1a.s: Likewise. * ld-arm/attr-merge-nosection-1b.s: Likewise. * ld-arm/arm-elf.exp: Include the new test.
This commit is contained in:
parent
430ce64f28
commit
9274e9de16
7 changed files with 58 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2014-11-20 Terry Guo <terry.guo@arm.com>
|
||||
|
||||
* elf32-arm.c (elf32_arm_merge_eabi_attributes): Skip if input bfd
|
||||
hasn't attribute section.
|
||||
|
||||
2014-11-20 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* elf64-ppc.c (ppc64_elf_size_stubs): Add __go_go to thread_starters.
|
||||
|
|
|
@ -11700,6 +11700,7 @@ elf32_arm_merge_eabi_attributes (bfd *ibfd, bfd *obfd)
|
|||
static const int order_021[3] = {0, 2, 1};
|
||||
int i;
|
||||
bfd_boolean result = TRUE;
|
||||
const char *sec_name = get_elf_backend_data (ibfd)->obj_attrs_section;
|
||||
|
||||
/* Skip the linker stubs file. This preserves previous behavior
|
||||
of accepting unknown attributes in the first input file - but
|
||||
|
@ -11707,6 +11708,12 @@ elf32_arm_merge_eabi_attributes (bfd *ibfd, bfd *obfd)
|
|||
if (ibfd->flags & BFD_LINKER_CREATED)
|
||||
return TRUE;
|
||||
|
||||
/* Skip any input that hasn't attribute section.
|
||||
This enables to link object files without attribute section with
|
||||
any others. */
|
||||
if (bfd_get_section_by_name (ibfd, sec_name) == NULL)
|
||||
return TRUE;
|
||||
|
||||
if (!elf_known_obj_attributes_proc (obfd)[0].i)
|
||||
{
|
||||
/* This is the first object. Copy the attributes. */
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
2014-11-20 Terry Guo <terry.guo@arm.com>
|
||||
|
||||
* ld-arm/attr-merge-nosection-1.d: New file.
|
||||
* ld-arm/attr-merge-nosection-1a.s: Likewise.
|
||||
* ld-arm/attr-merge-nosection-1b.s: Likewise.
|
||||
* ld-arm/arm-elf.exp: Include the new test.
|
||||
|
||||
2014-11-18 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/17618
|
||||
|
|
|
@ -879,6 +879,7 @@ run_dump_test "attr-merge-vfp-7"
|
|||
run_dump_test "attr-merge-vfp-7r"
|
||||
run_dump_test "attr-merge-incompatible"
|
||||
run_dump_test "attr-merge-arch-2"
|
||||
run_dump_test "attr-merge-nosection-1"
|
||||
run_dump_test "unresolved-1"
|
||||
if { ![istarget "arm*-*-nacl*"] } {
|
||||
run_dump_test "unresolved-1-dyn"
|
||||
|
|
18
ld/testsuite/ld-arm/attr-merge-nosection-1.d
Normal file
18
ld/testsuite/ld-arm/attr-merge-nosection-1.d
Normal file
|
@ -0,0 +1,18 @@
|
|||
#source: attr-merge-nosection-1a.s RUN_OBJCOPY
|
||||
#source: attr-merge-nosection-1b.s
|
||||
#as:
|
||||
#objcopy_objects: -R '.ARM.attributes'
|
||||
#ld:
|
||||
#readelf: -A
|
||||
# This test is only valid on ELF based ports.
|
||||
# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
|
||||
|
||||
Attribute Section: aeabi
|
||||
File Attributes
|
||||
Tag_CPU_name: "Cortex-M4"
|
||||
Tag_CPU_arch: v7E-M
|
||||
Tag_CPU_arch_profile: Microcontroller
|
||||
Tag_THUMB_ISA_use: Thumb-2
|
||||
Tag_FP_arch: VFPv4-D16
|
||||
Tag_ABI_HardFP_use: SP only
|
||||
|
10
ld/testsuite/ld-arm/attr-merge-nosection-1a.s
Normal file
10
ld/testsuite/ld-arm/attr-merge-nosection-1a.s
Normal file
|
@ -0,0 +1,10 @@
|
|||
.cpu cortex-m0
|
||||
.fpu softvfp
|
||||
.syntax unified
|
||||
.thumb
|
||||
.text
|
||||
.global foo
|
||||
.thumb_func
|
||||
.type foo, %function
|
||||
foo:
|
||||
bx lr
|
10
ld/testsuite/ld-arm/attr-merge-nosection-1b.s
Normal file
10
ld/testsuite/ld-arm/attr-merge-nosection-1b.s
Normal file
|
@ -0,0 +1,10 @@
|
|||
.syntax unified
|
||||
.cpu cortex-m4
|
||||
.fpu fpv4-sp-d16
|
||||
.thumb
|
||||
.text
|
||||
.global _start
|
||||
.thumb_func
|
||||
.type _start, %function
|
||||
_start:
|
||||
bl foo
|
Loading…
Add table
Reference in a new issue