Hello community,

here is the log from the commit of package binutils for openSUSE:Factory 
checked in at 2013-04-02 11:39:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/binutils (Old)
 and      /work/SRC/openSUSE:Factory/.binutils.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "binutils", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:Factory/binutils/binutils.changes        2013-01-30 
22:18:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.binutils.new/binutils.changes   2013-04-02 
11:39:17.000000000 +0200
@@ -1,0 +2,13 @@
+Thu Mar 28 12:46:09 UTC 2013 - [email protected]
+
+- Update to binutils 2.23.2.
+  * various bugfixes
+- Refresh no longer applying patch.
+
+-------------------------------------------------------------------
+Tue Mar  5 20:05:50 UTC 2013 - [email protected]
+
+- Add aarch64 support for --gc-sections
+  (from http://sourceware.org/ml/binutils/2013-02/msg00285.html)
+
+-------------------------------------------------------------------
cross-aarch64-binutils.changes: same change
cross-alpha-binutils.changes: same change
cross-arm-binutils.changes: same change
cross-avr-binutils.changes: same change
cross-hppa-binutils.changes: same change
cross-hppa64-binutils.changes: same change
cross-i386-binutils.changes: same change
cross-ia64-binutils.changes: same change
cross-mips-binutils.changes: same change
cross-ppc-binutils.changes: same change
cross-ppc64-binutils.changes: same change
cross-s390-binutils.changes: same change
cross-s390x-binutils.changes: same change
cross-sparc-binutils.changes: same change
cross-sparc64-binutils.changes: same change
cross-spu-binutils.changes: same change
cross-x86_64-binutils.changes: same change

Old:
----
  binutils-2.23.1.tar.bz2

New:
----
  aarch64-gc-section-support.patch
  binutils-2.23.2.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ binutils.spec ++++++
--- /var/tmp/diff_new_pack.LjVifK/_old  2013-04-02 11:39:31.000000000 +0200
+++ /var/tmp/diff_new_pack.LjVifK/_new  2013-04-02 11:39:31.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package binutils
 #
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -35,7 +35,7 @@
 %else
 BuildRequires:  zlib-devel
 %endif
-Version:        2.23.1
+Version:        2.23.2
 Release:        0
 #
 # RUN_TESTS
@@ -98,6 +98,7 @@
 Patch90:        cross-avr-nesc-as.patch
 Patch92:        cross-avr-omit_section_dynsym.patch
 Patch101:       aarch64-biarch.patch
+Patch102:       aarch64-gc-section-support.patch
 Patch201:       s390-machinemode.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 PreReq:         update-alternatives
@@ -164,6 +165,7 @@
 %patch21
 %patch22
 %patch101 -p1
+%patch102 -p1
 %patch201 -p1
 %if "%{TARGET}" == "avr"
 cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h

cross-aarch64-binutils.spec: same change
cross-alpha-binutils.spec: same change
cross-arm-binutils.spec: same change
cross-avr-binutils.spec: same change
cross-hppa-binutils.spec: same change
cross-hppa64-binutils.spec: same change
cross-i386-binutils.spec: same change
cross-ia64-binutils.spec: same change
cross-mips-binutils.spec: same change
cross-ppc-binutils.spec: same change
cross-ppc64-binutils.spec: same change
cross-s390-binutils.spec: same change
cross-s390x-binutils.spec: same change
cross-sparc-binutils.spec: same change
cross-sparc64-binutils.spec: same change
cross-spu-binutils.spec: same change
cross-x86_64-binutils.spec: same change
++++++ aarch64-gc-section-support.patch ++++++
Index: binutils-2.23.1/bfd/elf64-aarch64.c
===================================================================
--- binutils-2.23.1.orig/bfd/elf64-aarch64.c
+++ binutils-2.23.1/bfd/elf64-aarch64.c
@@ -4823,6 +4823,138 @@ elf64_aarch64_gc_sweep_hook (bfd *abfd A
                             const Elf_Internal_Rela *
                             relocs ATTRIBUTE_UNUSED)
 {
+  struct elf64_aarch64_link_hash_table *htab;
+  Elf_Internal_Shdr *symtab_hdr;
+  struct elf_link_hash_entry **sym_hashes;
+  bfd_signed_vma *local_got_refcounts;
+  const Elf_Internal_Rela *rel, *relend;
+
+  if (info->relocatable)
+    return TRUE;
+
+  htab = elf64_aarch64_hash_table (info);
+
+  if (htab == NULL)
+    return FALSE;
+
+  elf_section_data (sec)->local_dynrel = NULL;
+
+  symtab_hdr = &elf_symtab_hdr (abfd);
+  sym_hashes = elf_sym_hashes (abfd);
+
+  local_got_refcounts = elf_local_got_refcounts (abfd);
+
+  relend = relocs + sec->reloc_count;
+  for (rel = relocs; rel < relend; rel++)
+    {
+      unsigned long r_symndx;
+      unsigned int r_type;
+      struct elf_link_hash_entry *h = NULL;
+
+      r_symndx = ELF64_R_SYM (rel->r_info);
+
+      if (r_symndx >= symtab_hdr->sh_info)
+       {
+         struct elf64_aarch64_link_hash_entry *eh;
+         struct elf_dyn_relocs **pp;
+         struct elf_dyn_relocs *p;
+
+         h = sym_hashes[r_symndx - symtab_hdr->sh_info];
+         while (h->root.type == bfd_link_hash_indirect
+                || h->root.type == bfd_link_hash_warning)
+           h = (struct elf_link_hash_entry *) h->root.u.i.link;
+         eh = (struct elf64_aarch64_link_hash_entry *) h;
+
+         for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next)
+           {
+             if (p->sec == sec)
+               {
+                 /* Everything must go for SEC.  */
+                 *pp = p->next;
+                 break;
+               }
+           }
+        }
+      else
+       {
+         Elf_Internal_Sym *isym;
+
+         /* A local symbol.  */
+         isym = bfd_sym_from_r_symndx (&htab->sym_cache,
+                                       abfd, r_symndx);
+         if (isym == NULL)
+           return FALSE;
+       }
+
+      r_type = ELF64_R_TYPE (rel->r_info);
+      r_type = aarch64_tls_transition (abfd,info, r_type, h ,r_symndx);
+      switch (r_type)
+       {
+       case R_AARCH64_LD64_GOT_LO12_NC:
+       case R_AARCH64_ADR_GOT_PAGE:
+       case R_AARCH64_TLSGD_ADR_PAGE21:
+       case R_AARCH64_TLSGD_ADD_LO12_NC:
+       case R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21:
+       case R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
+       case R_AARCH64_TLSLE_ADD_TPREL_LO12:
+       case R_AARCH64_TLSLE_ADD_TPREL_HI12:
+       case R_AARCH64_TLSLE_ADD_TPREL_LO12_NC:
+       case R_AARCH64_TLSLE_MOVW_TPREL_G2:
+       case R_AARCH64_TLSLE_MOVW_TPREL_G1:
+       case R_AARCH64_TLSLE_MOVW_TPREL_G1_NC:
+       case R_AARCH64_TLSLE_MOVW_TPREL_G0:
+       case R_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
+       case R_AARCH64_TLSDESC_ADR_PAGE:
+       case R_AARCH64_TLSDESC_ADD_LO12_NC:
+       case R_AARCH64_TLSDESC_LD64_LO12_NC:
+          if (h != NULL)
+           {
+             if (h->got.refcount > 0)
+               h->got.refcount -= 1;
+           }
+         else if (local_got_refcounts != NULL)
+           {
+             if (local_got_refcounts[r_symndx] > 0)
+               local_got_refcounts[r_symndx] -= 1;
+           }
+         break;
+
+       case R_AARCH64_ADR_PREL_PG_HI21_NC:
+       case R_AARCH64_ADR_PREL_PG_HI21:
+       case R_AARCH64_ADR_PREL_LO21:
+         if (h != NULL && info->executable)
+           {
+             if (h->plt.refcount > 0)
+               h->plt.refcount -= 1;
+           }
+         break;
+
+       case R_AARCH64_CALL26:
+       case R_AARCH64_JUMP26:
+          /* If this is a local symbol then we resolve it
+             directly without creating a PLT entry.  */
+         if (h == NULL)
+           continue;
+
+         if (h->plt.refcount > 0)
+           h->plt.refcount -= 1;
+         break;
+
+       case R_AARCH64_ABS64:
+         if (h != NULL && info->executable)
+           {
+             if (h->plt.refcount > 0)
+               h->plt.refcount -= 1;
+           }
+           break;
+
+       default:
+         break;
+
+       }
+
+    }
+
   return TRUE;
 }
 
@@ -6994,7 +7127,7 @@ const struct elf_size_info elf64_aarch64
   elf64_aarch64_size_info
 
 #define elf_backend_can_refcount       1
-#define elf_backend_can_gc_sections    0
+#define elf_backend_can_gc_sections    1
 #define elf_backend_plt_readonly       1
 #define elf_backend_want_got_plt       1
 #define elf_backend_want_plt_sym       0
Index: binutils-2.23.1/ld/testsuite/lib/ld-lib.exp
===================================================================
--- binutils-2.23.1.orig/ld/testsuite/lib/ld-lib.exp
+++ binutils-2.23.1/ld/testsuite/lib/ld-lib.exp
@@ -1500,8 +1500,7 @@ proc check_gc_sections_available { } {
     if {![info exists gc_sections_available_saved]} {
        # Some targets don't support gc-sections despite whatever's
        # advertised by ld's options.
-       if {[istarget aarch64*-*-*]
-            || [istarget arc-*-*]
+       if {[istarget arc-*-*]
             || [istarget d30v-*-*]
             || [istarget dlx-*-*]
             || [istarget i960-*-*]
++++++ binutils-2.23.1.tar.bz2 -> binutils-2.23.2.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/binutils/binutils-2.23.1.tar.bz2 
/work/SRC/openSUSE:Factory/.binutils.new/binutils-2.23.2.tar.bz2 differ: char 
11, line 1

++++++ binutils-skip-rpaths.patch ++++++
--- /var/tmp/diff_new_pack.LjVifK/_old  2013-04-02 11:39:32.000000000 +0200
+++ /var/tmp/diff_new_pack.LjVifK/_new  2013-04-02 11:39:32.000000000 +0200
@@ -1,8 +1,8 @@
 Index: ld/emultempl/elf32.em
 ===================================================================
---- ld/emultempl/elf32.em.orig 2012-07-13 15:20:27.000000000 +0200
-+++ ld/emultempl/elf32.em      2012-09-14 13:55:57.829177770 +0200
-@@ -1436,8 +1436,38 @@ if test x"$LDEMUL_BEFORE_ALLOCATION" !=
+--- ld/emultempl/elf32.em.orig 2013-03-25 09:06:23.000000000 +0100
++++ ld/emultempl/elf32.em      2013-03-28 13:48:32.031001794 +0100
+@@ -1440,8 +1440,38 @@ if test x"$LDEMUL_BEFORE_ALLOCATION" !=
    else
      ELF_INTERPRETER_SET_DEFAULT=
    fi
@@ -39,9 +39,9 @@
 +}
 +
  /* used by before_allocation and handle_option. */
- static void 
+ static void
  gld${EMULATION_NAME}_append_to_separated_string (char **to, char *op_arg)
-@@ -1484,7 +1514,7 @@ gld${EMULATION_NAME}_append_to_separated
+@@ -1488,7 +1518,7 @@ gld${EMULATION_NAME}_append_to_separated
  static void
  gld${EMULATION_NAME}_before_allocation (void)
  {
@@ -50,7 +50,7 @@
    asection *sinterp;
    bfd *abfd;
  
-@@ -1500,7 +1530,65 @@ gld${EMULATION_NAME}_before_allocation (
+@@ -1504,7 +1534,65 @@ gld${EMULATION_NAME}_before_allocation (
       by dynamic linking.  */
    rpath = command_line.rpath;
    if (rpath == NULL)
@@ -117,4 +117,3 @@
  
    for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next)
      if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
-

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to