[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