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 "matz@suse.com" 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 - rguenther@suse.com + +- Update to binutils 2.23.2. + * various bugfixes +- Refresh no longer applying patch. + +------------------------------------------------------------------- +Tue Mar 5 20:05:50 UTC 2013 - schwab@suse.de + +- 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: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org