[arch-commits] Commit in arm-none-eabi-binutils/trunk (2 files)
Anatol Pomozov
anatolik at archlinux.org
Thu Feb 12 19:16:13 UTC 2015
Date: Thursday, February 12, 2015 @ 20:16:13
Author: anatolik
Revision: 127625
upgpkg: arm-none-eabi-binutils 2.25-2
FS#43794
Added:
arm-none-eabi-binutils/trunk/enable_link_arm_no_attributes.patch
Modified:
arm-none-eabi-binutils/trunk/PKGBUILD
-------------------------------------+
PKGBUILD | 13 ++-
enable_link_arm_no_attributes.patch | 115 ++++++++++++++++++++++++++++++++++
2 files changed, 123 insertions(+), 5 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2015-02-12 18:39:04 UTC (rev 127624)
+++ PKGBUILD 2015-02-12 19:16:13 UTC (rev 127625)
@@ -5,18 +5,23 @@
_target=arm-none-eabi
pkgname=$_target-binutils
pkgver=2.25
-pkgrel=1
+pkgrel=2
pkgdesc='A set of programs to assemble and manipulate binary and object files for the ARM EABI (bare-metal) target'
arch=(i686 x86_64)
url='http://www.gnu.org/software/binutils/'
license=(GPL)
depends=(zlib)
-source=(ftp://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2{,.sig})
-validpgpkeys=('EAF1C276A747E9ED86210CBAC3126D3B4AE55E93') # Tristan Gingold
+source=(ftp://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2{,.sig}
+ enable_link_arm_no_attributes.patch)
+sha1sums=('b46cc90ebaba7ffcf6c6d996d60738881b14e50d'
+ 'SKIP'
+ 'c88cc0ed5f884332fa76b733fb47a26f307bde0f')
+validpgpkeys=('EAF1C276A747E9ED86210CBAC3126D3B4AE55E93') # Tristan Gingold <gingold at adacore.com>
prepare() {
cd binutils-$pkgver
sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure
+ patch -p1 < ../enable_link_arm_no_attributes.patch # FS#43794
}
build() {
@@ -54,5 +59,3 @@
# Remove info documents that conflict with host version
rm -rf "$pkgdir"/usr/share/info
}
-md5sums=('d9f3303f802a5b6b0bb73a335ab89d66'
- 'SKIP')
Added: enable_link_arm_no_attributes.patch
===================================================================
--- enable_link_arm_no_attributes.patch (rev 0)
+++ enable_link_arm_no_attributes.patch 2015-02-12 19:16:13 UTC (rev 127625)
@@ -0,0 +1,115 @@
+commit 9274e9de160a98d737bb2bd068c22d37ec66d98d
+Author: Terry Guo <terry.guo at arm.com>
+Date: Thu Nov 20 13:54:27 2014 +0800
+
+ Enable to link ARM object file that hasn't attribute section.
+
+ bfd/ChangeLog
+
+ 2014-11-20 Terry Guo <terry.guo at 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 at 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.
+
+diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
+index 49d0f65..95f59d5 100644
+--- a/bfd/elf32-arm.c
++++ b/bfd/elf32-arm.c
+@@ -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. */
+diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp
+index 3c8cc68..d00b74d 100644
+--- a/ld/testsuite/ld-arm/arm-elf.exp
++++ b/ld/testsuite/ld-arm/arm-elf.exp
+@@ -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"
+diff --git a/ld/testsuite/ld-arm/attr-merge-nosection-1.d b/ld/testsuite/ld-arm/attr-merge-nosection-1.d
+new file mode 100644
+index 0000000..a2b8d73
+--- /dev/null
++++ b/ld/testsuite/ld-arm/attr-merge-nosection-1.d
+@@ -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
++
+diff --git a/ld/testsuite/ld-arm/attr-merge-nosection-1a.s b/ld/testsuite/ld-arm/attr-merge-nosection-1a.s
+new file mode 100644
+index 0000000..ab358e3
+--- /dev/null
++++ b/ld/testsuite/ld-arm/attr-merge-nosection-1a.s
+@@ -0,0 +1,10 @@
++ .cpu cortex-m0
++ .fpu softvfp
++ .syntax unified
++ .thumb
++ .text
++ .global foo
++ .thumb_func
++ .type foo, %function
++foo:
++ bx lr
+diff --git a/ld/testsuite/ld-arm/attr-merge-nosection-1b.s b/ld/testsuite/ld-arm/attr-merge-nosection-1b.s
+new file mode 100644
+index 0000000..cd656bd
+--- /dev/null
++++ b/ld/testsuite/ld-arm/attr-merge-nosection-1b.s
+@@ -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
More information about the arch-commits
mailing list