Hello community, here is the log from the commit of package binutils for openSUSE:Factory checked in at 2016-01-21 23:40:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/binutils (Old) and /work/SRC/openSUSE:Factory/.binutils.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "binutils" Changes: -------- --- /work/SRC/openSUSE:Factory/binutils/binutils.changes 2015-10-19 22:14:00.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.binutils.new/binutils.changes 2016-01-21 23:40:24.000000000 +0100 @@ -1,0 +2,6 @@ +Wed Jan 13 08:31:17 UTC 2016 - sch...@suse.de + +- gold-relocate-tls.patch: Fix internal error when applying TLSDESC + relocations with no TLS segment + +------------------------------------------------------------------- cross-aarch64-binutils.changes: same change cross-arm-binutils.changes: same change cross-avr-binutils.changes: same change cross-epiphany-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-m68k-binutils.changes: same change cross-mips-binutils.changes: same change cross-ppc-binutils.changes: same change cross-ppc64-binutils.changes: same change cross-ppc64le-binutils.changes: same change cross-rx-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 New: ---- gold-relocate-tls.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ binutils.spec ++++++ --- /var/tmp/diff_new_pack.ITklsP/_old 2016-01-21 23:40:29.000000000 +0100 +++ /var/tmp/diff_new_pack.ITklsP/_new 2016-01-21 23:40:29.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package binutils # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -106,6 +106,7 @@ Patch32: gold-arm64-abi-pagesize.patch Patch33: s390-troo-insn-type.patch Patch34: aarch64-common-pagesize.patch +Patch35: gold-relocate-tls.patch Patch90: cross-avr-nesc-as.patch Patch92: cross-avr-omit_section_dynsym.patch Patch93: cross-avr-size.patch @@ -190,6 +191,7 @@ %patch32 -p1 %patch33 -p1 %patch34 -p1 +%patch35 -p1 %if "%{TARGET}" == "avr" cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h %patch90 cross-aarch64-binutils.spec: same change cross-arm-binutils.spec: same change cross-avr-binutils.spec: same change cross-epiphany-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-m68k-binutils.spec: same change cross-mips-binutils.spec: same change cross-ppc-binutils.spec: same change cross-ppc64-binutils.spec: same change cross-ppc64le-binutils.spec: same change cross-rx-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 ++++++ gold-relocate-tls.patch ++++++ >From d21f123b0ead1806416cf0dafae12bec4cca8920 Mon Sep 17 00:00:00 2001 From: Cary Coutant <ccout...@gmail.com> Date: Mon, 11 Jan 2016 23:57:44 -0800 Subject: [PATCH] Fix internal error when applying TLSDESC relocations with no TLS segment. gold/ PR gold/19353 * aarch64.cc (Target_aarch64::relocate_tls): Don't insist that we have a TLS segment for GD-to-IE optimization. * i386.cc (Target_i386::tls_gd_to_ie): Remove tls_segment parameter. Adjust all calls. (Target_i386::tls_desc_gd_to_ie): Likewise. (Target_i386::relocate_tls): Don't insist that we have a TLS segment for TLSDESC GD-to-IE optimizations. * x86_64.cc (Target_x86_64::tls_gd_to_ie): Remove tls_segment parameter. Adjust all calls. (Target_x86_64::tls_desc_gd_to_ie): Likewise. (Target_x86_64::relocate_tls): Don't insist that we have a TLS segment for TLSDESC GD-to-IE optimizations. --- gold/ChangeLog | 16 ++++++++++++++++ gold/aarch64.cc | 6 ------ gold/i386.cc | 14 ++------------ gold/x86_64.cc | 14 ++------------ 4 files changed, 20 insertions(+), 30 deletions(-) Index: binutils-2.25.0/gold/aarch64.cc =================================================================== --- binutils-2.25.0.orig/gold/aarch64.cc +++ binutils-2.25.0/gold/aarch64.cc @@ -3689,12 +3689,6 @@ Target_aarch64<size, big_endian>::Reloca } if (tlsopt == tls::TLSOPT_TO_IE) { - if (tls_segment == NULL) - { - gold_assert(parameters->errors()->error_count() > 0 - || issue_undefined_symbol_error(gsym)); - return aarch64_reloc_funcs::STATUS_BAD_RELOC; - } return tls_desc_gd_to_ie(relinfo, target, rela, r_type, view, psymval, got_entry_address, address); Index: binutils-2.25.0/gold/i386.cc =================================================================== --- binutils-2.25.0.orig/gold/i386.cc +++ binutils-2.25.0/gold/i386.cc @@ -654,7 +654,6 @@ class Target_i386 : public Sized_target< // Do a TLS General-Dynamic to Initial-Exec transition. inline void tls_gd_to_ie(const Relocate_info<32, false>*, size_t relnum, - Output_segment* tls_segment, const elfcpp::Rel<32, false>&, unsigned int r_type, elfcpp::Elf_types<32>::Elf_Addr value, unsigned char* view, @@ -673,7 +672,6 @@ class Target_i386 : public Sized_target< // transition. inline void tls_desc_gd_to_ie(const Relocate_info<32, false>*, size_t relnum, - Output_segment* tls_segment, const elfcpp::Rel<32, false>&, unsigned int r_type, elfcpp::Elf_types<32>::Elf_Addr value, unsigned char* view, @@ -2944,7 +2942,7 @@ Target_i386::Relocate::relocate_tls(cons } if (optimized_type == tls::TLSOPT_TO_IE) { - this->tls_gd_to_ie(relinfo, relnum, tls_segment, rel, r_type, + this->tls_gd_to_ie(relinfo, relnum, rel, r_type, got_offset, view, view_size); break; } @@ -3006,13 +3004,7 @@ Target_i386::Relocate::relocate_tls(cons } if (optimized_type == tls::TLSOPT_TO_IE) { - if (tls_segment == NULL) - { - gold_assert(parameters->errors()->error_count() > 0 - || issue_undefined_symbol_error(gsym)); - return; - } - this->tls_desc_gd_to_ie(relinfo, relnum, tls_segment, rel, r_type, + this->tls_desc_gd_to_ie(relinfo, relnum, rel, r_type, got_offset, view, view_size); break; } @@ -3244,7 +3236,6 @@ Target_i386::Relocate::tls_gd_to_le(cons inline void Target_i386::Relocate::tls_gd_to_ie(const Relocate_info<32, false>* relinfo, size_t relnum, - Output_segment*, const elfcpp::Rel<32, false>& rel, unsigned int, elfcpp::Elf_types<32>::Elf_Addr value, @@ -3350,7 +3341,6 @@ inline void Target_i386::Relocate::tls_desc_gd_to_ie( const Relocate_info<32, false>* relinfo, size_t relnum, - Output_segment*, const elfcpp::Rel<32, false>& rel, unsigned int r_type, elfcpp::Elf_types<32>::Elf_Addr value, Index: binutils-2.25.0/gold/x86_64.cc =================================================================== --- binutils-2.25.0.orig/gold/x86_64.cc +++ binutils-2.25.0/gold/x86_64.cc @@ -798,7 +798,6 @@ class Target_x86_64 : public Sized_targe // Do a TLS General-Dynamic to Initial-Exec transition. inline void tls_gd_to_ie(const Relocate_info<size, false>*, size_t relnum, - Output_segment* tls_segment, const elfcpp::Rela<size, false>&, unsigned int r_type, typename elfcpp::Elf_types<size>::Elf_Addr value, unsigned char* view, @@ -817,7 +816,6 @@ class Target_x86_64 : public Sized_targe // Do a TLSDESC-style General-Dynamic to Initial-Exec transition. inline void tls_desc_gd_to_ie(const Relocate_info<size, false>*, size_t relnum, - Output_segment* tls_segment, const elfcpp::Rela<size, false>&, unsigned int r_type, typename elfcpp::Elf_types<size>::Elf_Addr value, unsigned char* view, @@ -3613,7 +3611,7 @@ Target_x86_64<size>::Relocate::relocate_ if (optimized_type == tls::TLSOPT_TO_IE) { value = target->got_plt_section()->address() + got_offset; - this->tls_gd_to_ie(relinfo, relnum, tls_segment, rela, r_type, + this->tls_gd_to_ie(relinfo, relnum, rela, r_type, value, view, address, view_size); break; } @@ -3680,14 +3678,8 @@ Target_x86_64<size>::Relocate::relocate_ } if (optimized_type == tls::TLSOPT_TO_IE) { - if (tls_segment == NULL) - { - gold_assert(parameters->errors()->error_count() > 0 - || issue_undefined_symbol_error(gsym)); - return; - } value = target->got_plt_section()->address() + got_offset; - this->tls_desc_gd_to_ie(relinfo, relnum, tls_segment, + this->tls_desc_gd_to_ie(relinfo, relnum, rela, r_type, value, view, address, view_size); break; @@ -3843,7 +3835,6 @@ inline void Target_x86_64<size>::Relocate::tls_gd_to_ie( const Relocate_info<size, false>* relinfo, size_t relnum, - Output_segment*, const elfcpp::Rela<size, false>& rela, unsigned int, typename elfcpp::Elf_types<size>::Elf_Addr value, @@ -3955,7 +3946,6 @@ inline void Target_x86_64<size>::Relocate::tls_desc_gd_to_ie( const Relocate_info<size, false>* relinfo, size_t relnum, - Output_segment*, const elfcpp::Rela<size, false>& rela, unsigned int r_type, typename elfcpp::Elf_types<size>::Elf_Addr value,