commit fa7ead82c036f25cf34300ea8b9ea4c2f0831049 Author: MSVSphere Packaging Team Date: Fri Oct 25 17:03:22 2024 +0300 import mingw-binutils-2.41-4.el10 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..85a28a3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/binutils-2.41.tar.xz diff --git a/.mingw-binutils.metadata b/.mingw-binutils.metadata new file mode 100644 index 0000000..9cb01f7 --- /dev/null +++ b/.mingw-binutils.metadata @@ -0,0 +1 @@ +0e008260a958bbd10182ee3384672ae0a310eece SOURCES/binutils-2.41.tar.xz diff --git a/SOURCES/binutils-2.27-aarch64-ifunc.patch b/SOURCES/binutils-2.27-aarch64-ifunc.patch new file mode 100644 index 0000000..37e6a62 --- /dev/null +++ b/SOURCES/binutils-2.27-aarch64-ifunc.patch @@ -0,0 +1,11 @@ +diff -rupN --no-dereference binutils-2.41/bfd/elfnn-aarch64.c binutils-2.41-new/bfd/elfnn-aarch64.c +--- binutils-2.41/bfd/elfnn-aarch64.c 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/bfd/elfnn-aarch64.c 2023-10-17 08:36:07.259543844 +0200 +@@ -5654,6 +5654,7 @@ elfNN_aarch64_final_link_relocate (reloc + it here if it is defined in a non-shared object. */ + if (h != NULL + && h->type == STT_GNU_IFUNC ++ && (input_section->flags & SEC_ALLOC) + && h->def_regular) + { + asection *plt; diff --git a/SOURCES/binutils-autoconf-version.patch b/SOURCES/binutils-autoconf-version.patch new file mode 100644 index 0000000..3fa1746 --- /dev/null +++ b/SOURCES/binutils-autoconf-version.patch @@ -0,0 +1,12 @@ +diff -rupN --no-dereference binutils-2.41/config/override.m4 binutils-2.41-new/config/override.m4 +--- binutils-2.41/config/override.m4 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/config/override.m4 2023-10-17 08:36:14.285923364 +0200 +@@ -41,7 +41,7 @@ dnl Or for updating the whole tree at on + AC_DEFUN([_GCC_AUTOCONF_VERSION_CHECK], + [m4_if(m4_defn([_GCC_AUTOCONF_VERSION]), + m4_defn([m4_PACKAGE_VERSION]), [], +- [m4_fatal([Please use exactly Autoconf ]_GCC_AUTOCONF_VERSION[ instead of ]m4_defn([m4_PACKAGE_VERSION])[.])]) ++ []) + ]) + m4_define([AC_INIT], m4_defn([AC_INIT])[ + _GCC_AUTOCONF_VERSION_CHECK diff --git a/SOURCES/binutils-do-not-link-with-static-libstdc++.patch b/SOURCES/binutils-do-not-link-with-static-libstdc++.patch new file mode 100644 index 0000000..7bbdcbc --- /dev/null +++ b/SOURCES/binutils-do-not-link-with-static-libstdc++.patch @@ -0,0 +1,83 @@ +diff -rupN --no-dereference binutils-2.41/configure binutils-2.41-new/configure +--- binutils-2.41/configure 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/configure 2023-10-17 08:36:08.439607929 +0200 +@@ -5442,49 +5442,6 @@ if test -z "$LD"; then + fi + fi + +-# Check whether -static-libstdc++ -static-libgcc is supported. +-have_static_libs=no +-if test "$GCC" = yes; then +- saved_LDFLAGS="$LDFLAGS" +- +- LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc" +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether g++ accepts -static-libstdc++ -static-libgcc" >&5 +-$as_echo_n "checking whether g++ accepts -static-libstdc++ -static-libgcc... " >&6; } +- ac_ext=cpp +-ac_cpp='$CXXCPP $CPPFLAGS' +-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +- +- +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-#if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) +-#error -static-libstdc++ not implemented +-#endif +-int main() {} +-_ACEOF +-if ac_fn_cxx_try_link "$LINENO"; then : +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; }; have_static_libs=yes +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +- ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +- +- LDFLAGS="$saved_LDFLAGS" +-fi +- +- + + + if test -n "$ac_tool_prefix"; then +diff -rupN --no-dereference binutils-2.41/configure.ac binutils-2.41-new/configure.ac +--- binutils-2.41/configure.ac 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/configure.ac 2023-10-17 08:36:08.440607983 +0200 +@@ -1435,26 +1435,6 @@ if test -z "$LD"; then + fi + fi + +-# Check whether -static-libstdc++ -static-libgcc is supported. +-have_static_libs=no +-if test "$GCC" = yes; then +- saved_LDFLAGS="$LDFLAGS" +- +- LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc" +- AC_MSG_CHECKING([whether g++ accepts -static-libstdc++ -static-libgcc]) +- AC_LANG_PUSH(C++) +- AC_LINK_IFELSE([AC_LANG_SOURCE([ +-#if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) +-#error -static-libstdc++ not implemented +-#endif +-int main() {}])], +- [AC_MSG_RESULT([yes]); have_static_libs=yes], +- [AC_MSG_RESULT([no])]) +- AC_LANG_POP(C++) +- +- LDFLAGS="$saved_LDFLAGS" +-fi +- + ACX_PROG_GNAT + ACX_PROG_GDC + ACX_PROG_CMP_IGNORE_INITIAL diff --git a/SOURCES/binutils-export-demangle.h.patch b/SOURCES/binutils-export-demangle.h.patch new file mode 100644 index 0000000..a25c97c --- /dev/null +++ b/SOURCES/binutils-export-demangle.h.patch @@ -0,0 +1,33 @@ +diff -rupN --no-dereference binutils-2.41/bfd/Makefile.am binutils-2.41-new/bfd/Makefile.am +--- binutils-2.41/bfd/Makefile.am 2023-10-17 08:36:03.732351438 +0200 ++++ binutils-2.41-new/bfd/Makefile.am 2023-10-17 08:36:03.737351712 +0200 +@@ -38,7 +38,7 @@ bfdlibdir = @bfdlibdir@ + bfdincludedir = @bfdincludedir@ + bfdlib_LTLIBRARIES = libbfd.la + bfdinclude_HEADERS = $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ +- $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h ++ $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h + else !INSTALL_LIBBFD + # Empty these so that the respective installation directories will not be created. + bfdlibdir = +diff -rupN --no-dereference binutils-2.41/bfd/Makefile.in binutils-2.41-new/bfd/Makefile.in +--- binutils-2.41/bfd/Makefile.in 2023-10-17 08:36:03.733351493 +0200 ++++ binutils-2.41-new/bfd/Makefile.in 2023-10-17 08:36:03.737351712 +0200 +@@ -279,7 +279,7 @@ am__can_run_installinfo = \ + esac + am__bfdinclude_HEADERS_DIST = $(INCDIR)/plugin-api.h bfd.h \ + $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ +- $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h ++ $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h + HEADERS = $(bfdinclude_HEADERS) + RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +@@ -504,7 +504,7 @@ libbfd_la_LDFLAGS = $(am__append_1) -rel + @INSTALL_LIBBFD_FALSE@bfdinclude_HEADERS = $(am__append_2) + @INSTALL_LIBBFD_TRUE@bfdinclude_HEADERS = $(BFD_H) \ + @INSTALL_LIBBFD_TRUE@ $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ +-@INSTALL_LIBBFD_TRUE@ $(INCDIR)/diagnostics.h \ ++@INSTALL_LIBBFD_TRUE@ $(INCDIR)/diagnostics.h $(INCDIR)/demangle.h \ + @INSTALL_LIBBFD_TRUE@ $(INCDIR)/bfdlink.h $(am__append_2) + @INSTALL_LIBBFD_FALSE@rpath_bfdlibdir = @bfdlibdir@ + @INSTALL_LIBBFD_FALSE@noinst_LTLIBRARIES = libbfd.la diff --git a/SOURCES/binutils-gold-empty-dwp.patch b/SOURCES/binutils-gold-empty-dwp.patch new file mode 100644 index 0000000..dfc1d7a --- /dev/null +++ b/SOURCES/binutils-gold-empty-dwp.patch @@ -0,0 +1,12 @@ +diff -rupN --no-dereference binutils-2.41/gold/dwp.cc binutils-2.41-new/gold/dwp.cc +--- binutils-2.41/gold/dwp.cc 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/gold/dwp.cc 2023-10-17 08:36:16.689052035 +0200 +@@ -2418,6 +2418,8 @@ main(int argc, char** argv) + { + Dwo_file exe_file(exe_filename); + exe_file.read_executable(&files); ++ if (files.empty()) ++ gold_fatal(_("Could not find any dwo links in specified EXE")); + } + + // Add any additional files listed on command line. diff --git a/SOURCES/binutils-gold-i386-gnu-property-notes.patch b/SOURCES/binutils-gold-i386-gnu-property-notes.patch new file mode 100644 index 0000000..28bf2c7 --- /dev/null +++ b/SOURCES/binutils-gold-i386-gnu-property-notes.patch @@ -0,0 +1,192 @@ +diff -rupN --no-dereference binutils-2.41/gold/i386.cc binutils-2.41-new/gold/i386.cc +--- binutils-2.41/gold/i386.cc 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/gold/i386.cc 2023-10-17 08:36:13.132861427 +0200 +@@ -360,7 +360,11 @@ class Target_i386 : public Sized_target< + got_(NULL), plt_(NULL), got_plt_(NULL), got_irelative_(NULL), + got_tlsdesc_(NULL), global_offset_table_(NULL), rel_dyn_(NULL), + rel_irelative_(NULL), copy_relocs_(elfcpp::R_386_COPY), +- got_mod_index_offset_(-1U), tls_base_symbol_defined_(false) ++ got_mod_index_offset_(-1U), tls_base_symbol_defined_(false), ++ isa_1_used_(0), isa_1_needed_(0), ++ feature_1_(0), feature_2_used_(0), feature_2_needed_(0), ++ object_isa_1_used_(0), object_feature_1_(0), ++ object_feature_2_used_(0), seen_first_object_(false) + { } + + // Process the relocations to determine unreferenced sections for +@@ -859,6 +863,21 @@ class Target_i386 : public Sized_target< + this->rel_dyn_section(layout)); + } + ++ // Record a target-specific program property in the .note.gnu.property ++ // section. ++ void ++ record_gnu_property(unsigned int, unsigned int, size_t, ++ const unsigned char*, const Object*); ++ ++ // Merge the target-specific program properties from the current object. ++ void ++ merge_gnu_properties(const Object*); ++ ++ // Finalize the target-specific program properties and add them back to ++ // the layout. ++ void ++ do_finalize_gnu_properties(Layout*) const; ++ + // Information about this specific target which we pass to the + // general Target structure. + static const Target::Target_info i386_info; +@@ -898,6 +917,26 @@ class Target_i386 : public Sized_target< + unsigned int got_mod_index_offset_; + // True if the _TLS_MODULE_BASE_ symbol has been defined. + bool tls_base_symbol_defined_; ++ ++ // Target-specific program properties, from .note.gnu.property section. ++ // Each bit represents a specific feature. ++ uint32_t isa_1_used_; ++ uint32_t isa_1_needed_; ++ uint32_t feature_1_; ++ uint32_t feature_2_used_; ++ uint32_t feature_2_needed_; ++ // Target-specific properties from the current object. ++ // These bits get ORed into ISA_1_USED_ after all properties for the object ++ // have been processed. But if either is all zeroes (as when the property ++ // is absent from an object), the result should be all zeroes. ++ // (See PR ld/23486.) ++ uint32_t object_isa_1_used_; ++ // These bits get ANDed into FEATURE_1_ after all properties for the object ++ // have been processed. ++ uint32_t object_feature_1_; ++ uint32_t object_feature_2_used_; ++ // Whether we have seen our first object, for use in initializing FEATURE_1_. ++ bool seen_first_object_; + }; + + const Target::Target_info Target_i386::i386_info = +@@ -1042,6 +1081,126 @@ Target_i386::rel_irelative_section(Layou + return this->rel_irelative_; + } + ++// Record a target-specific program property from the .note.gnu.property ++// section. ++void ++Target_i386::record_gnu_property( ++ unsigned int, unsigned int pr_type, ++ size_t pr_datasz, const unsigned char* pr_data, ++ const Object* object) ++{ ++ uint32_t val = 0; ++ ++ switch (pr_type) ++ { ++ case elfcpp::GNU_PROPERTY_X86_COMPAT_ISA_1_USED: ++ case elfcpp::GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED: ++ case elfcpp::GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED: ++ case elfcpp::GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED: ++ case elfcpp::GNU_PROPERTY_X86_ISA_1_USED: ++ case elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED: ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND: ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_USED: ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_NEEDED: ++ if (pr_datasz != 4) ++ { ++ gold_warning(_("%s: corrupt .note.gnu.property section " ++ "(pr_datasz for property %d is not 4)"), ++ object->name().c_str(), pr_type); ++ return; ++ } ++ val = elfcpp::Swap<32, false>::readval(pr_data); ++ break; ++ default: ++ gold_warning(_("%s: unknown program property type 0x%x " ++ "in .note.gnu.property section"), ++ object->name().c_str(), pr_type); ++ break; ++ } ++ ++ switch (pr_type) ++ { ++ case elfcpp::GNU_PROPERTY_X86_ISA_1_USED: ++ this->object_isa_1_used_ |= val; ++ break; ++ case elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED: ++ this->isa_1_needed_ |= val; ++ break; ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND: ++ // If we see multiple feature props in one object, OR them together. ++ this->object_feature_1_ |= val; ++ break; ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_USED: ++ this->object_feature_2_used_ |= val; ++ break; ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_NEEDED: ++ this->feature_2_needed_ |= val; ++ break; ++ } ++} ++ ++// Merge the target-specific program properties from the current object. ++void ++Target_i386::merge_gnu_properties(const Object*) ++{ ++ if (this->seen_first_object_) ++ { ++ // If any object is missing the ISA_1_USED property, we must omit ++ // it from the output file. ++ if (this->object_isa_1_used_ == 0) ++ this->isa_1_used_ = 0; ++ else if (this->isa_1_used_ != 0) ++ this->isa_1_used_ |= this->object_isa_1_used_; ++ this->feature_1_ &= this->object_feature_1_; ++ // If any object is missing the FEATURE_2_USED property, we must ++ // omit it from the output file. ++ if (this->object_feature_2_used_ == 0) ++ this->feature_2_used_ = 0; ++ else if (this->feature_2_used_ != 0) ++ this->feature_2_used_ |= this->object_feature_2_used_; ++ } ++ else ++ { ++ this->isa_1_used_ = this->object_isa_1_used_; ++ this->feature_1_ = this->object_feature_1_; ++ this->feature_2_used_ = this->object_feature_2_used_; ++ this->seen_first_object_ = true; ++ } ++ this->object_isa_1_used_ = 0; ++ this->object_feature_1_ = 0; ++ this->object_feature_2_used_ = 0; ++} ++ ++static inline void ++add_property(Layout* layout, unsigned int pr_type, uint32_t val) ++{ ++ unsigned char buf[4]; ++ elfcpp::Swap<32, false>::writeval(buf, val); ++ layout->add_gnu_property(elfcpp::NT_GNU_PROPERTY_TYPE_0, pr_type, 4, buf); ++} ++ ++// Finalize the target-specific program properties and add them back to ++// the layout. ++void ++Target_i386::do_finalize_gnu_properties(Layout* layout) const ++{ ++ if (this->isa_1_used_ != 0) ++ add_property(layout, elfcpp::GNU_PROPERTY_X86_ISA_1_USED, ++ this->isa_1_used_); ++ if (this->isa_1_needed_ != 0) ++ add_property(layout, elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED, ++ this->isa_1_needed_); ++ if (this->feature_1_ != 0) ++ add_property(layout, elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND, ++ this->feature_1_); ++ if (this->feature_2_used_ != 0) ++ add_property(layout, elfcpp::GNU_PROPERTY_X86_FEATURE_2_USED, ++ this->feature_2_used_); ++ if (this->feature_2_needed_ != 0) ++ add_property(layout, elfcpp::GNU_PROPERTY_X86_FEATURE_2_NEEDED, ++ this->feature_2_needed_); ++} ++ + // Write the first three reserved words of the .got.plt section. + // The remainder of the section is written while writing the PLT + // in Output_data_plt_i386::do_write. diff --git a/SOURCES/binutils-gold-mismatched-section-flags.patch b/SOURCES/binutils-gold-mismatched-section-flags.patch new file mode 100644 index 0000000..e1c9bb4 --- /dev/null +++ b/SOURCES/binutils-gold-mismatched-section-flags.patch @@ -0,0 +1,19 @@ +diff -rupN --no-dereference binutils-2.41/gold/layout.cc binutils-2.41-new/gold/layout.cc +--- binutils-2.41/gold/layout.cc 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/gold/layout.cc 2023-10-17 08:36:10.778734550 +0200 +@@ -872,6 +872,7 @@ Layout::get_output_section(const char* n + && (same_name->flags() & elfcpp::SHF_TLS) == 0) + os = same_name; + } ++#if 0 /* BZ 1722715, PR 17556. */ + else if ((flags & elfcpp::SHF_TLS) == 0) + { + elfcpp::Elf_Xword zero_flags = 0; +@@ -882,6 +883,7 @@ Layout::get_output_section(const char* n + if (p != this->section_name_map_.end()) + os = p->second; + } ++#endif + } + + if (os == NULL) diff --git a/SOURCES/binutils-gold-powerpc.patch b/SOURCES/binutils-gold-powerpc.patch new file mode 100644 index 0000000..8b83cbe --- /dev/null +++ b/SOURCES/binutils-gold-powerpc.patch @@ -0,0 +1,71 @@ +diff -rupN --no-dereference binutils-2.41/gold/powerpc.cc binutils-2.41-new/gold/powerpc.cc +--- binutils-2.41/gold/powerpc.cc 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/gold/powerpc.cc 2023-10-17 08:36:20.308244748 +0200 +@@ -3714,12 +3714,7 @@ Target_powerpc::do_rel + unsigned int prev_brlt_size = 0; + if (pass == 1) + { +- bool thread_safe +- = this->abiversion() < 2 && parameters->options().plt_thread_safe(); +- if (size == 64 +- && this->abiversion() < 2 +- && !thread_safe +- && !parameters->options().user_set_plt_thread_safe()) ++ if (size == 64 && this->abiversion() < 2) + { + static const char* const thread_starter[] = + { +@@ -3747,29 +3742,37 @@ Target_powerpc::do_rel + /* libgo */ + "__go_go", + }; ++ bool thread_safe = parameters->options().plt_thread_safe(); + +- if (parameters->options().shared()) +- thread_safe = true; +- else ++ if (!thread_safe ++ && !parameters->options().user_set_plt_thread_safe()) + { +- for (unsigned int i = 0; +- i < sizeof(thread_starter) / sizeof(thread_starter[0]); +- i++) ++ if (parameters->options().shared()) ++ thread_safe = true; ++ else + { +- Symbol* sym = symtab->lookup(thread_starter[i], NULL); +- thread_safe = (sym != NULL +- && sym->in_reg() +- && sym->in_real_elf()); +- if (thread_safe) +- break; ++ for (unsigned int i = 0; ++ i < sizeof(thread_starter) / sizeof(thread_starter[0]); ++ i++) ++ { ++ Symbol* sym = symtab->lookup(thread_starter[i], NULL); ++ thread_safe = (sym != NULL ++ && sym->in_reg() ++ && sym->in_real_elf()); ++ if (thread_safe) ++ break; ++ } + } + } ++ this->plt_thread_safe_ = thread_safe; + } +- this->plt_thread_safe_ = thread_safe; + +- if (parameters->options().output_is_position_independent()) +- this->rela_dyn_size_ +- = this->rela_dyn_section(layout)->current_data_size(); ++ if (size == 64 ++ && parameters->options().output_is_position_independent()) ++ { ++ gold_assert (this->rela_dyn_); ++ this->rela_dyn_size_ = this->rela_dyn_->current_data_size(); ++ } + + this->stub_group_size_ = parameters->options().stub_group_size(); + bool no_size_errors = true; diff --git a/SOURCES/binutils-gold-warn-unsupported.patch b/SOURCES/binutils-gold-warn-unsupported.patch new file mode 100644 index 0000000..20a1f98 --- /dev/null +++ b/SOURCES/binutils-gold-warn-unsupported.patch @@ -0,0 +1,67 @@ +diff -rupN --no-dereference binutils-2.41/bfd/config.bfd binutils-2.41-new/bfd/config.bfd +--- binutils-2.41/bfd/config.bfd 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/bfd/config.bfd 2023-10-17 08:36:11.974799088 +0200 +@@ -499,7 +499,7 @@ case "${targ}" in + ;; + + #ifdef BFD64 +- bpf-*-none) ++ bpf-*-none | bpf-*) + targ_defvec=bpf_elf64_le_vec + targ_selvecs=bpf_elf64_be_vec + targ_underscore=yes +@@ -1497,7 +1497,7 @@ case "${targ}" in + ;; + + *) +- echo 1>&2 "*** BFD does not support target ${targ}." ++ echo 1>&2 "*** BFD does not support target '${targ}'. Honest." + echo 1>&2 "*** Look in bfd/config.bfd for supported targets." + exit 1 + ;; +diff -rupN --no-dereference binutils-2.41/gold/configure binutils-2.41-new/gold/configure +--- binutils-2.41/gold/configure 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/gold/configure 2023-10-17 08:36:11.972798980 +0200 +@@ -5255,7 +5255,8 @@ for targ in $target $canon_targets; do + . ${srcdir}/configure.tgt + + if test "$targ_obj" = "UNKNOWN"; then +- as_fn_error $? "\"unsupported target $targ\"" "$LINENO" 5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"unsupported target $targ\"" >&5 ++$as_echo "$as_me: WARNING: \"unsupported target $targ\"" >&2;} + else + targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)" + if test "$targ_extra_obj" != ""; then +diff -rupN --no-dereference binutils-2.41/gold/configure.ac binutils-2.41-new/gold/configure.ac +--- binutils-2.41/gold/configure.ac 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/gold/configure.ac 2023-10-17 08:36:11.973799034 +0200 +@@ -182,7 +182,7 @@ for targ in $target $canon_targets; do + . ${srcdir}/configure.tgt + + if test "$targ_obj" = "UNKNOWN"; then +- AC_MSG_ERROR("unsupported target $targ") ++ AC_MSG_WARN("unsupported target $targ") + else + targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)" + if test "$targ_extra_obj" != ""; then +diff -rupN --no-dereference binutils-2.41/ld/configure.tgt binutils-2.41-new/ld/configure.tgt +--- binutils-2.41/ld/configure.tgt 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/configure.tgt 2023-10-17 08:36:11.973799034 +0200 +@@ -267,7 +267,7 @@ bfin-*-linux-uclibc*) targ_emul=elf32bfi + targ_extra_emuls="elf32bfin" + targ_extra_libpath=$targ_extra_emuls + ;; +-bpf-*-*) targ_emul=elf64bpf ++bpf-* | bpf-*-*) targ_emul=elf64bpf + ;; + cr16-*-elf*) targ_emul=elf32cr16 + ;; +@@ -1087,7 +1087,7 @@ loongarch64-*) targ_emul=elf64loongarch + targ_extra_ofiles= + ;; + *) +- echo 2>&1 "*** ld does not support target ${targ}" ++ echo 2>&1 "*** ld does not support target '${targ}' NO REALLY" + echo 2>&1 "*** see ld/configure.tgt for supported targets" + exit 1 + diff --git a/SOURCES/binutils-handle-corrupt-version-info.patch b/SOURCES/binutils-handle-corrupt-version-info.patch new file mode 100644 index 0000000..1287065 --- /dev/null +++ b/SOURCES/binutils-handle-corrupt-version-info.patch @@ -0,0 +1,30 @@ +diff -rupN --no-dereference binutils-2.41/bfd/elf.c binutils-2.41-new/bfd/elf.c +--- binutils-2.41/bfd/elf.c 2023-10-17 08:36:10.773734280 +0200 ++++ binutils-2.41-new/bfd/elf.c 2023-10-17 08:36:21.496307731 +0200 +@@ -9479,6 +9479,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd + if (elf_use_dt_symtab_p (abfd)) + iverneed->vn_filename + = elf_tdata (abfd)->dt_strtab + iverneed->vn_file; ++ else if (hdr == NULL) ++ goto error_return_bad_verref; + else + iverneed->vn_filename + = bfd_elf_string_from_elf_section (abfd, hdr->sh_link, +@@ -9516,6 +9518,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd + if (elf_use_dt_symtab_p (abfd)) + ivernaux->vna_nodename + = elf_tdata (abfd)->dt_strtab + ivernaux->vna_name; ++ else if (hdr == NULL) ++ goto error_return_bad_verref; + else + ivernaux->vna_nodename + = bfd_elf_string_from_elf_section (abfd, hdr->sh_link, +@@ -9546,7 +9550,7 @@ _bfd_elf_slurp_version_tables (bfd *abfd + iverneed->vn_nextref = NULL; + if (iverneed->vn_next == 0) + break; +- if (i + 1 < hdr->sh_info) ++ if (hdr != NULL && (i + 1 < hdr->sh_info)) + iverneed->vn_nextref = iverneed + 1; + + if (iverneed->vn_next diff --git a/SOURCES/binutils-libtool-no-rpath.patch b/SOURCES/binutils-libtool-no-rpath.patch new file mode 100644 index 0000000..e4a6f6c --- /dev/null +++ b/SOURCES/binutils-libtool-no-rpath.patch @@ -0,0 +1,27 @@ +diff -rupN --no-dereference binutils-2.41/ltmain.sh binutils-2.41-new/ltmain.sh +--- binutils-2.41/ltmain.sh 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ltmain.sh 2023-10-17 08:36:15.518989456 +0200 +@@ -7103,6 +7103,7 @@ EOF + rpath="$finalize_rpath" + test "$mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do ++ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then +@@ -7798,6 +7799,7 @@ EOF + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do ++ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then +@@ -7849,6 +7851,7 @@ EOF + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do ++ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then diff --git a/SOURCES/binutils-no-config-h-check.patch b/SOURCES/binutils-no-config-h-check.patch new file mode 100644 index 0000000..ceed2c1 --- /dev/null +++ b/SOURCES/binutils-no-config-h-check.patch @@ -0,0 +1,30 @@ +diff -rupN --no-dereference binutils-2.41/bfd/bfd-in2.h binutils-2.41-new/bfd/bfd-in2.h +--- binutils-2.41/bfd/bfd-in2.h 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/bfd/bfd-in2.h 2023-10-17 08:36:04.910415849 +0200 +@@ -31,11 +31,6 @@ + #ifndef __BFD_H_SEEN__ + #define __BFD_H_SEEN__ + +-/* PR 14072: Ensure that config.h is included first. */ +-#if !defined PACKAGE && !defined PACKAGE_VERSION +-#error config.h must be included before this header +-#endif +- + #ifdef __cplusplus + extern "C" { + #endif +diff -rupN --no-dereference binutils-2.41/bfd/bfd-in.h binutils-2.41-new/bfd/bfd-in.h +--- binutils-2.41/bfd/bfd-in.h 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/bfd/bfd-in.h 2023-10-17 08:36:04.909415794 +0200 +@@ -23,11 +23,6 @@ + #ifndef __BFD_H_SEEN__ + #define __BFD_H_SEEN__ + +-/* PR 14072: Ensure that config.h is included first. */ +-#if !defined PACKAGE && !defined PACKAGE_VERSION +-#error config.h must be included before this header +-#endif +- + #ifdef __cplusplus + extern "C" { + #endif diff --git a/SOURCES/binutils-revert-PLT-elision.patch b/SOURCES/binutils-revert-PLT-elision.patch new file mode 100644 index 0000000..802135b --- /dev/null +++ b/SOURCES/binutils-revert-PLT-elision.patch @@ -0,0 +1,169 @@ +diff -rupN --no-dereference binutils-2.41/bfd/elfxx-x86.c binutils-2.41-new/bfd/elfxx-x86.c +--- binutils-2.41/bfd/elfxx-x86.c 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/bfd/elfxx-x86.c 2023-10-17 08:36:06.092480328 +0200 +@@ -105,7 +105,7 @@ elf_x86_allocate_dynrelocs (struct elf_l + plt_entry_size = htab->plt.plt_entry_size; + + resolved_to_zero = UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh); +- ++#if 0 + /* We can't use the GOT PLT if pointer equality is needed since + finish_dynamic_symbol won't clear symbol value and the dynamic + linker won't update the GOT slot. We will get into an infinite +@@ -123,7 +123,7 @@ elf_x86_allocate_dynrelocs (struct elf_l + /* Use the GOT PLT. */ + eh->plt_got.refcount = 1; + } +- ++#endif + /* Since STT_GNU_IFUNC symbol must go through PLT, we handle it + here if it is defined and referenced in a non-shared object. */ + if (h->type == STT_GNU_IFUNC +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-i386/pltgot-1.d binutils-2.41-new/ld/testsuite/ld-i386/pltgot-1.d +--- binutils-2.41/ld/testsuite/ld-i386/pltgot-1.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-i386/pltgot-1.d 2023-10-17 08:36:06.088480110 +0200 +@@ -2,6 +2,7 @@ + #readelf: -S --wide + #as: --32 + ++#pass + #... + +\[ *[0-9]+\] \.plt +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+10 +.* + #... +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-i386/pltgot-2.d binutils-2.41-new/ld/testsuite/ld-i386/pltgot-2.d +--- binutils-2.41/ld/testsuite/ld-i386/pltgot-2.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-i386/pltgot-2.d 2023-10-17 08:36:06.089480165 +0200 +@@ -3,7 +3,6 @@ + #readelf: -d --wide + #as: --32 + +-#failif + #... + +0x[0-9a-f]+ +\(PLTREL.* + #... +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-i386/pr19636-2d.d binutils-2.41-new/ld/testsuite/ld-i386/pr19636-2d.d +--- binutils-2.41/ld/testsuite/ld-i386/pr19636-2d.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-i386/pr19636-2d.d 2023-10-17 08:36:06.089480165 +0200 +@@ -8,7 +8,7 @@ Relocation section '\.rel\.dyn' at offse + [0-9a-f]+ +[0-9a-f]+ +R_386_32 +0+ +func + [0-9a-f]+ +[0-9a-f]+ +R_386_PC32 +0+ +func + [0-9a-f]+ +[0-9a-f]+ +R_386_GLOB_DAT +0+ +func +- ++#... + Symbol table '\.dynsym' contains [0-9]+ entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name + #... +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-i386/pr19636-2e.d binutils-2.41-new/ld/testsuite/ld-i386/pr19636-2e.d +--- binutils-2.41/ld/testsuite/ld-i386/pr19636-2e.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-i386/pr19636-2e.d 2023-10-17 08:36:06.089480165 +0200 +@@ -8,7 +8,7 @@ Relocation section '\.rel\.dyn' at offse + [0-9a-f]+ +[0-9a-f]+ +R_386_32 +0+ +func + [0-9a-f]+ +[0-9a-f]+ +R_386_PC32 +0+ +func + [0-9a-f]+ +[0-9a-f]+ +R_386_GLOB_DAT +0+ +func +- ++#... + Symbol table '\.dynsym' contains [0-9]+ entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name + #... +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-i386/pr20830.d binutils-2.41-new/ld/testsuite/ld-i386/pr20830.d +--- binutils-2.41/ld/testsuite/ld-i386/pr20830.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-i386/pr20830.d 2023-10-17 08:36:06.092480328 +0200 +@@ -19,7 +19,7 @@ Contents of the .eh_frame section: + DW_CFA_offset: r8 \(eip\) at cfa-4 + DW_CFA_nop + DW_CFA_nop +- ++#pass + 0+18 00000010 0000001c FDE cie=00000000 pc=00000128..00000133 + DW_CFA_nop + DW_CFA_nop +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pltgot-1.d binutils-2.41-new/ld/testsuite/ld-x86-64/pltgot-1.d +--- binutils-2.41/ld/testsuite/ld-x86-64/pltgot-1.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-x86-64/pltgot-1.d 2023-10-17 08:36:06.090480219 +0200 +@@ -2,8 +2,4 @@ + #readelf: -S --wide + #as: --64 + +-#... +- +\[ *[0-9]+\] \.plt +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+10 +.* +-#... +- +\[ *[0-9]+\] \.got\.plt +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+18 +.* + #pass +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pltgot-2.d binutils-2.41-new/ld/testsuite/ld-x86-64/pltgot-2.d +--- binutils-2.41/ld/testsuite/ld-x86-64/pltgot-2.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-x86-64/pltgot-2.d 2023-10-17 08:36:06.090480219 +0200 +@@ -3,7 +3,6 @@ + #readelf: -d --wide + #as: --64 + +-#failif + #... + +0x[0-9a-f]+ +\(PLTREL.* + #... +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/plt-main.rd binutils-2.41-new/ld/testsuite/ld-x86-64/plt-main.rd +--- binutils-2.41/ld/testsuite/ld-x86-64/plt-main.rd 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-x86-64/plt-main.rd 2023-10-17 08:36:06.090480219 +0200 +@@ -1,4 +1,3 @@ +-#failif + #... + [0-9a-f ]+R_X86_64_JUMP_SLOT +0+ +bar \+ 0 + #... +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pr20830a.d binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830a.d +--- binutils-2.41/ld/testsuite/ld-x86-64/pr20830a.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830a.d 2023-10-17 08:36:06.090480219 +0200 +@@ -20,6 +20,7 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop ++#pass + + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4 + DW_CFA_nop +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pr20830a-now.d binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830a-now.d +--- binutils-2.41/ld/testsuite/ld-x86-64/pr20830a-now.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830a-now.d 2023-10-17 08:36:06.091480274 +0200 +@@ -20,6 +20,7 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop ++#pass + + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4 + DW_CFA_nop +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pr20830b.d binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830b.d +--- binutils-2.41/ld/testsuite/ld-x86-64/pr20830b.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830b.d 2023-10-17 08:36:06.091480274 +0200 +@@ -20,7 +20,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000010 0000001c FDE cie=00000000 pc=0000000000000138..0000000000000144 + DW_CFA_nop + DW_CFA_nop +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pr20830b-now.d binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830b-now.d +--- binutils-2.41/ld/testsuite/ld-x86-64/pr20830b-now.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830b-now.d 2023-10-17 08:36:06.091480274 +0200 +@@ -20,7 +20,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000010 0000001c FDE cie=00000000 pc=0000000000000138..0000000000000144 + DW_CFA_nop + DW_CFA_nop +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/tlspic2.rd binutils-2.41-new/ld/testsuite/ld-x86-64/tlspic2.rd +--- binutils-2.41/ld/testsuite/ld-x86-64/tlspic2.rd 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-x86-64/tlspic2.rd 2023-10-17 08:36:06.091480274 +0200 +@@ -14,6 +14,7 @@ Section Headers: + +\[[ 0-9]+\] .dynsym +.* + +\[[ 0-9]+\] .dynstr +.* + +\[[ 0-9]+\] .rela.dyn +.* ++#pass + +\[[ 0-9]+\] .plt +.* + +\[[ 0-9]+\] .plt.got +.* + +\[[ 0-9]+\] .text +PROGBITS +0+1000 0+1000 0+31a 00 +AX +0 +0 4096 diff --git a/SOURCES/binutils-riscv-testsuite-fixes.patch b/SOURCES/binutils-riscv-testsuite-fixes.patch new file mode 100644 index 0000000..1415ef9 --- /dev/null +++ b/SOURCES/binutils-riscv-testsuite-fixes.patch @@ -0,0 +1,117 @@ +diff -rupN --no-dereference binutils-2.41/binutils/testsuite/binutils-all/objcopy.exp binutils-2.41-new/binutils/testsuite/binutils-all/objcopy.exp +--- binutils-2.41/binutils/testsuite/binutils-all/objcopy.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/binutils/testsuite/binutils-all/objcopy.exp 2023-10-17 08:36:19.150183227 +0200 +@@ -1409,6 +1409,8 @@ proc objcopy_test_without_global_symbol + # The AArch64 and ARM targets preserve mapping symbols + # in object files, so they will fail this test. + setup_xfail aarch64*-*-* arm*-*-* ++# The RISC-V target compiles with annotation enabled and these symbols remain after stripping. ++setup_xfail riscv*-*-* + + objcopy_test_without_global_symbol + +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-elf/dwarf.exp binutils-2.41-new/ld/testsuite/ld-elf/dwarf.exp +--- binutils-2.41/ld/testsuite/ld-elf/dwarf.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-elf/dwarf.exp 2023-10-17 08:36:19.150183227 +0200 +@@ -29,6 +29,10 @@ if ![is_elf_format] { + return + } + ++if { [istarget riscv*-*-*] } then { ++ return ++} ++ + # Skip targets where -shared is not supported + + if ![check_shared_lib_support] { +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-elf/tls.exp binutils-2.41-new/ld/testsuite/ld-elf/tls.exp +--- binutils-2.41/ld/testsuite/ld-elf/tls.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-elf/tls.exp 2023-10-17 08:36:19.150183227 +0200 +@@ -28,6 +28,10 @@ if { !([istarget *-*-linux*] + return + } + ++if { [istarget riscv*-*-*] } then { ++ return ++} ++ + # Check to see if the C compiler works. + if { ![check_compiler_available] } { + return +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-plugin/plugin.exp binutils-2.41-new/ld/testsuite/ld-plugin/plugin.exp +--- binutils-2.41/ld/testsuite/ld-plugin/plugin.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-plugin/plugin.exp 2023-10-17 08:36:19.150183227 +0200 +@@ -132,6 +132,10 @@ if [is_pecoff_format] { + append libs " --image-base=0x10000000" + } + ++if { [istarget riscv*-*-*] } then { ++ return ++} ++ + set plugin_tests [list \ + [list "load plugin" "-plugin $plugin_path \ + $testobjfiles $libs" "" "" "" {{ld plugin-1.d}} "main.x" ] \ +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-riscv-elf/attr-phdr.d binutils-2.41-new/ld/testsuite/ld-riscv-elf/attr-phdr.d +--- binutils-2.41/ld/testsuite/ld-riscv-elf/attr-phdr.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-riscv-elf/attr-phdr.d 2023-10-17 08:36:19.149183174 +0200 +@@ -12,8 +12,8 @@ Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + RISCV_ATTRIBUT .* + LOAD .* +- ++#... + Section to Segment mapping: + Segment Sections... + 00 .riscv.attributes +- 01 .text ++#pass +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d +--- binutils-2.41/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d 2023-10-17 08:36:19.149183174 +0200 +@@ -8,7 +8,7 @@ + Disassembly of section \.text: + + 0+[0-9a-f]+ <_start>: +-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,[0-9]+ ++.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,\-[0-9]+ + .*:[ ]+[0-9a-f]+[ ]+jal[ ]+ra,[0-9a-f]+ <_start> + .*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,gp,\-[0-9]+ # [0-9a-f]+ + .*:[ ]+[0-9a-f]+[ ]+addi[ ]+a2,gp,\-[0-9]+ # [0-9a-f]+ +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d +--- binutils-2.41/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d 2023-10-17 08:36:19.151183281 +0200 +@@ -8,11 +8,11 @@ + Disassembly of section \.text: + + 0+[0-9a-f]+ <_start>: +-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,[0-9]+ ++.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,.* + .*:[ ]+[0-9a-f]+[ ]+jal[ ]+ra,[0-9a-f]+ <_start> + .*:[ ]+[0-9a-f]+[ ]+auipc[ ]+a1,0x[0-9a-f]+ +-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,a1,[0-9]+ # [0-9a-f]+ ++.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,a1,.* # [0-9a-f]+ + .*:[ ]+[0-9a-f]+[ ]+lui[ ]+a2,0x[0-9a-f]+ +-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a2,a2,[0-9]+ # [0-9a-f]+ ++.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a2,a2,.* # [0-9a-f]+ + .*:[ ]+[0-9a-f]+[ ]+addi[ ]+a3,tp,0 # 0 + .*:[ ]+[0-9a-f]+[ ]+auipc[ ]+a0,0x[0-9a-f]+ +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d +--- binutils-2.41/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d 2023-10-17 08:36:19.149183174 +0200 +@@ -11,5 +11,5 @@ Disassembly of section .text: + [0-9a-f]+ <_start>: + .*:[ ]+[0-9a-f]+[ ]+auipc[ ]+a1.* + .*:[ ]+[0-9a-f]+[ ]+addi?[ ]+a0,gp.* +-.*:[ ]+[0-9a-f]+[ ]+addi?[ ]+a1,a1.* ++.*:[ ]+[0-9a-f]+[ ]+mv[ ]+a1,a1 + #pass +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-riscv-elf/pcrel-lo-addend-2a.d binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcrel-lo-addend-2a.d +--- binutils-2.41/ld/testsuite/ld-riscv-elf/pcrel-lo-addend-2a.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcrel-lo-addend-2a.d 2023-10-17 08:36:19.149183174 +0200 +@@ -2,4 +2,5 @@ + #source: pcrel-lo-addend-2a.s + #as: -march=rv32ic + #ld: -m[riscv_choose_ilp32_emul] --no-relax ++#skip: *-*-* + #error: .*dangerous relocation: %pcrel_lo overflow with an addend, the value of %pcrel_hi is 0x1000 without any addend, but may be 0x2000 after adding the %pcrel_lo addend diff --git a/SOURCES/binutils-special-sections-in-groups.patch b/SOURCES/binutils-special-sections-in-groups.patch new file mode 100644 index 0000000..b567538 --- /dev/null +++ b/SOURCES/binutils-special-sections-in-groups.patch @@ -0,0 +1,28 @@ +diff -rupN --no-dereference binutils-2.41/bfd/elf.c binutils-2.41-new/bfd/elf.c +--- binutils-2.41/bfd/elf.c 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/bfd/elf.c 2023-10-17 08:36:09.594670522 +0200 +@@ -827,7 +827,13 @@ setup_group (bfd *abfd, Elf_Internal_Shd + } + } + +- if (elf_group_name (newsect) == NULL) ++ if (elf_group_name (newsect) == NULL ++ /* OS specific sections might be in a group (eg ARM's ARM_EXIDX section) ++ but they will not have been added to the group because they do not ++ have contents that the ELF code in the BFD library knows how to ++ process. This is OK though - we rely upon the target backends to ++ handle these sections for us. */ ++ && hdr->sh_type < SHT_LOOS) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: no group info for section '%pA'"), +@@ -935,7 +941,8 @@ _bfd_elf_setup_sections (bfd *abfd) + else if (idx->shdr->bfd_section) + elf_sec_group (idx->shdr->bfd_section) = shdr->bfd_section; + else if (idx->shdr->sh_type != SHT_RELA +- && idx->shdr->sh_type != SHT_REL) ++ && idx->shdr->sh_type != SHT_REL ++ && idx->shdr->sh_type < SHT_LOOS) + { + /* There are some unknown sections in the group. */ + _bfd_error_handler diff --git a/SOURCES/binutils-testsuite-fixes.patch b/SOURCES/binutils-testsuite-fixes.patch new file mode 100644 index 0000000..716b7ae --- /dev/null +++ b/SOURCES/binutils-testsuite-fixes.patch @@ -0,0 +1,901 @@ +diff -rupN --no-dereference binutils-2.41/binutils/testsuite/binutils-all/addr2line.exp binutils-2.41-new/binutils/testsuite/binutils-all/addr2line.exp +--- binutils-2.41/binutils/testsuite/binutils-all/addr2line.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/binutils/testsuite/binutils-all/addr2line.exp 2023-10-17 08:36:17.898116563 +0200 +@@ -39,9 +39,9 @@ if ![regexp -line "^(\[0-9a-fA-F\]+)? +\ + } else { + set list [regexp -inline -all -- {\S+} $contents] + set got [binutils_run $ADDR2LINE "-e tmpdir/testprog$exe [lindex $list 0]"] +- set want "$srcdir/$subdir/testprog.c:\[0-9\]+" ++ set want ".*" + if ![regexp $want $got] then { +- fail "$testname $got\n" ++ fail "$testname\n wanted: $srcdir/$subdir/.*\n got: $got\n" + } else { + pass "$testname" + } +@@ -54,7 +54,7 @@ if ![regexp -line "^(\[0-9a-fA-F\]+)? +\ + } else { + set list [regexp -inline -all -- {\S+} $contents] + set got [binutils_run $ADDR2LINE "-f -e tmpdir/testprog$exe [lindex $list 0]"] +- set want "fn\n$srcdir/$subdir/testprog.c:\[0-9\]+" ++ set want "fn\n.*" + if ![regexp $want $got] then { + fail "$testname -f option $got\n" + } else { +@@ -64,7 +64,7 @@ if ![regexp -line "^(\[0-9a-fA-F\]+)? +\ + #testcase for -s option. + #Using the same fn function address used in -f option. + set got [binutils_run $ADDR2LINE "-s -e tmpdir/testprog$exe [lindex $list 0]"] +- set want "testprog.c:\[0-9\]+" ++ set want ".\*\[0-9\]+" + if ![regexp $want $got] then { + fail "$testname -s option $got\n" + } else { +diff -rupN --no-dereference binutils-2.41/binutils/testsuite/binutils-all/objdump.exp binutils-2.41-new/binutils/testsuite/binutils-all/objdump.exp +--- binutils-2.41/binutils/testsuite/binutils-all/objdump.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/binutils/testsuite/binutils-all/objdump.exp 2023-10-17 08:36:17.897116510 +0200 +@@ -921,7 +921,7 @@ proc test_objdump_S { } { + } + } + +-test_objdump_S ++# test_objdump_S + + # Test objdump --private + proc test_objdump_P {} { +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-aarch64/bti-plt-5.d binutils-2.41-new/ld/testsuite/ld-aarch64/bti-plt-5.d +--- binutils-2.41/ld/testsuite/ld-aarch64/bti-plt-5.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-aarch64/bti-plt-5.d 2023-10-17 08:36:17.899116616 +0200 +@@ -12,8 +12,8 @@ Disassembly of section \.plt: + [0-9a-f]+ <.*>: + .*: d503245f bti c + .*: a9bf7bf0 stp x16, x30, \[sp, #-16\]! +-.*: 90000090 adrp x16, 410000 <.*> +-.*: f9...... ldr x17, \[x16, #....\] ++.*: 90000090 adrp x16, 4.0000 <.*> ++.*: f9...... ldr x17, \[x16, #.*\] + .*: 91...... add x16, x16, #0x... + .*: d61f0220 br x17 + .*: d503201f nop +@@ -21,8 +21,8 @@ Disassembly of section \.plt: + + [0-9a-f]+ <.*>: + .*: d503245f bti c +-.*: 90000090 adrp x16, 410000 <.*> +-.*: f9...... ldr x17, \[x16, #....\] ++.*: 90000090 adrp x16, 4.0000 <.*> ++.*: f9...... ldr x17, \[x16, #.*\] + .*: 91...... add x16, x16, #0x... + .*: d61f0220 br x17 + .*: d503201f nop +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-aarch64/erratum843419-far-full.d binutils-2.41-new/ld/testsuite/ld-aarch64/erratum843419-far-full.d +--- binutils-2.41/ld/testsuite/ld-aarch64/erratum843419-far-full.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-aarch64/erratum843419-far-full.d 2023-10-17 08:36:17.899116616 +0200 +@@ -8,7 +8,7 @@ Disassembly of section \.text: + + 0*400000 <_start>: + ... +- 400ffc: 90400000 adrp x0, 80400000 <__bss_end__\+0x7ffedff0> ++ 400ffc: 90400000 adrp x0, 80400000 <__bss_end__\+0x[0-9a-f]+> + 401000: f9000042 str x2, \[x2\] + 401004: d2800002 mov x2, #0x0 // #0 + 401008: 14000004 b 401018 +@@ -18,5 +18,5 @@ Disassembly of section \.text: + + 0*401018 : + 401018: f9402001 ldr x1, \[x0, #64\] +- 40101c: 17fffffc b 40100c <_start\+0x100c> ++ 40101c: 17fffffc b 40100c <_start\+0x[0-9a-f]+> + ... +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-aarch64/farcall-bl-plt.d binutils-2.41-new/ld/testsuite/ld-aarch64/farcall-bl-plt.d +--- binutils-2.41/ld/testsuite/ld-aarch64/farcall-bl-plt.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-aarch64/farcall-bl-plt.d 2023-10-17 08:36:17.900116670 +0200 +@@ -10,7 +10,7 @@ Disassembly of section .plt: + + .* <.plt>: + .*: a9bf7bf0 stp x16, x30, \[sp, #-16\]! +-.*: .* adrp x16, .* <__foo_veneer\+.*> ++.*: .* adrp x16, .* <.*> + .*: .* ldr [wx]17, \[x16, #.*\] + .*: .* add [wx]16, [wx]16, #.* + .*: d61f0220 br x17 +@@ -19,7 +19,7 @@ Disassembly of section .plt: + .*: d503201f nop + + .* : +-.*: .* adrp x16, .* <__foo_veneer\+.*> ++.*: .* adrp x16, .* <.*> + .*: .* ldr [wx]17, \[x16, #.*\] + .*: .* add [wx]16, [wx]16, #.* + .*: d61f0220 br x17 +@@ -35,7 +35,7 @@ Disassembly of section .text: + .*: .* nop + + .* <__foo_veneer>: +-.*: .* adrp x16, 0 <.*> ++.*: .* adrp x16, [0-9a-f]+ <.*> + .*: .* add x16, x16, #.* + .*: d61f0200 br x16 + ... +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-aarch64/farcall-b-plt.d binutils-2.41-new/ld/testsuite/ld-aarch64/farcall-b-plt.d +--- binutils-2.41/ld/testsuite/ld-aarch64/farcall-b-plt.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-aarch64/farcall-b-plt.d 2023-10-17 08:36:17.899116616 +0200 +@@ -10,7 +10,7 @@ Disassembly of section .plt: + + .* <.plt>: + .*: a9bf7bf0 stp x16, x30, \[sp, #-16\]! +-.*: .* adrp x16, .* <__foo_veneer\+.*> ++.*: .* adrp x16, .* <.*> + .*: .* ldr [wx]17, \[x16, #.*\] + .*: .* add [wx]16, [wx]16, #.* + .*: d61f0220 br x17 +@@ -19,7 +19,7 @@ Disassembly of section .plt: + .*: d503201f nop + + .* : +-.*: .* adrp x16, .* <__foo_veneer\+.*> ++.*: .* adrp x16, .* <.*> + .*: .* ldr [wx]17, \[x16, #.*\] + .*: .* add [wx]16, [wx]16, #.* + .*: d61f0220 br x17 +@@ -35,7 +35,7 @@ Disassembly of section .text: + .*: .* nop + + .* <__foo_veneer>: +-.*: .* adrp x16, 0 <.*> ++.*: .* adrp x16, [0-9a-f]+ <.*> + .*: .* add x16, x16, #.* + .*: d61f0200 br x16 + ... +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-aarch64/ifunc-1.d binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-1.d +--- binutils-2.41/ld/testsuite/ld-aarch64/ifunc-1.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-1.d 2023-10-17 08:36:17.900116670 +0200 +@@ -2,8 +2,4 @@ + #ld: -shared --hash-style=sysv + #objdump: -dw + +-#... +-0+(130|1a0|1c8) : +-#... +-[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(130|1a0|1c8)@plt> + #pass +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-aarch64/ifunc-1-local.d binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-1-local.d +--- binutils-2.41/ld/testsuite/ld-aarch64/ifunc-1-local.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-1-local.d 2023-10-17 08:36:17.900116670 +0200 +@@ -2,8 +2,4 @@ + #ld: -shared --hash-style=sysv + #objdump: -dw + +-#... +-0+(110|180|1a0) <(__GI_)?foo>: +-#... +-[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+(0x110|0x180|0x1a0)@plt> + #pass +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-aarch64/ifunc-21.d binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-21.d +--- binutils-2.41/ld/testsuite/ld-aarch64/ifunc-21.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-21.d 2023-10-17 08:36:17.900116670 +0200 +@@ -11,7 +11,7 @@ Contents of section .text: + [0-9a-f]+ .* + Contents of section .got.plt: + [0-9a-f]+ 0+ 0+ 0+ 0+ .* +- (10298|102b8) 0+ 0+ [0-9a-f]+ [0-9a-f]+ .* ++ (10298|102b8|20108) 0+ 0+ [0-9a-f]+ [0-9a-f]+ .* + + Disassembly of section .text: + +@@ -19,8 +19,8 @@ Disassembly of section .text: + .*: d65f03c0 ret + + .* : +- .*: 90000080 adrp x0, 10000 <.*> +- .*: .* ldr x0, \[x0, #(672|704)\] ++ .*: 90000080 adrp x0, .0000 <.*> ++ .*: .* ldr x0, \[x0, #(672|704|272)\] + .*: d65f03c0 ret + + #pass +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-aarch64/ifunc-22.d binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-22.d +--- binutils-2.41/ld/testsuite/ld-aarch64/ifunc-22.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-22.d 2023-10-17 08:36:17.901116723 +0200 +@@ -8,4 +8,4 @@ + .*: file format elf64-(little|big)aarch64 + + Contents of section \.got: +- [0-9a-f]+ 00000000 00000000 (d0004000|18004000|00000000) (00000000|004000d0|00400018) .* ++#pass +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-aarch64/ifunc-2.d binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-2.d +--- binutils-2.41/ld/testsuite/ld-aarch64/ifunc-2.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-2.d 2023-10-17 08:36:17.901116723 +0200 +@@ -2,10 +2,4 @@ + #ld: -shared --hash-style=sysv + #objdump: -dw + +-#... +-0+(130|1a0|1c8) : +-#... +-[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(130|1a0|1c8)@plt> +-[ \t0-9a-f]+:[ \t0-9a-f]+adrp[ \t]+x0, 0 <.*> +-[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x(120|190|1b8) + #pass +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-aarch64/ifunc-2-local.d binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-2-local.d +--- binutils-2.41/ld/testsuite/ld-aarch64/ifunc-2-local.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-2-local.d 2023-10-17 08:36:17.901116723 +0200 +@@ -2,10 +2,4 @@ + #ld: -shared --hash-style=sysv + #objdump: -dw + +-#... +-0+(110|180|1a0) <__GI_foo>: +-#... +-[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(110|180|1a0)@plt> +-[ \t0-9a-f]+:[ \t0-9a-f]+adrp[ \t]+x0, 0 <.*> +-[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x(100|170|190) + #pass +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-aarch64/ifunc-3a.d binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-3a.d +--- binutils-2.41/ld/testsuite/ld-aarch64/ifunc-3a.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-3a.d 2023-10-17 08:36:17.901116723 +0200 +@@ -3,8 +3,4 @@ + #ld: -shared --hash-style=sysv + #objdump: -dw + +-#... +-0+(150|1d0|1e8) <__GI_foo>: +-#... +-[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(150|1d0|1e8)@plt> + #pass +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-aarch64/ifunc-7c.d binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-7c.d +--- binutils-2.41/ld/testsuite/ld-aarch64/ifunc-7c.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-aarch64/ifunc-7c.d 2023-10-17 08:36:17.901116723 +0200 +@@ -11,9 +11,9 @@ + Disassembly of section \.text: + + [0-9a-f]+ : +- [0-9a-f]+: d65f03c0 ret ++[ ]+[0-9a-f]+:[ ]+d65f03c0[ ]+ret + + [0-9a-f]+ <__start>: +- [0-9a-f]+: [0-9a-f]+ bl [0-9a-f]+ <\*ABS\*\+0x[0-9a-f]+@plt> +- [0-9a-f]+: [0-9a-f]+ adrp x0, [0-9]+ <__start\+0x[0-9a-f]+> +- [0-9a-f]+: [0-9a-f]+ ldr x0, \[x0, .+\] ++[ ]+[0-9a-f]+:[ ]+[0-9a-f]+[ ]+bl[ ]+[0-9a-f]+ <\*ABS\*\+0x[0-9a-f]+@plt> ++[ ]+[0-9a-f]+:[ ]+[0-9a-f]+[ ]+adrp[ ]+x0, [0-9]+ <.*> ++[ ]+[0-9a-f]+:[ ]+[0-9a-f]+[ ]+ldr[ ]+x0, \[x0, .+\] +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-elf/binutils.exp binutils-2.41-new/ld/testsuite/ld-elf/binutils.exp +--- binutils-2.41/ld/testsuite/ld-elf/binutils.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-elf/binutils.exp 2023-10-17 08:36:17.902116776 +0200 +@@ -174,7 +174,7 @@ binutils_test strip "-T ${srcdir}/${subd + + set tls_tests { "tdata1" "tdata2" } + # hppa64 has its own .tbss section, with different flags. +-if { ![istarget "hppa64-*-*"] } { ++if { ![istarget "hppa64-*-*"] && ![istarget "powerpc*-*-*"] } { + lappend tls_tests "tdata3" "tbss1" "tbss2" "tbss3" + } + set tls_opts { +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-elf/linux-x86.exp binutils-2.41-new/ld/testsuite/ld-elf/linux-x86.exp +--- binutils-2.41/ld/testsuite/ld-elf/linux-x86.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-elf/linux-x86.exp 2023-10-17 08:36:17.905116936 +0200 +@@ -73,6 +73,10 @@ run_ld_link_tests [list \ + ] \ + ] + ++if { [istarget "i686-*-*"] } { ++ return ++} ++ + run_cc_link_tests [list \ + [list \ + "Build indirect-extern-access-1.so" \ +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-elf/shared.exp binutils-2.41-new/ld/testsuite/ld-elf/shared.exp +--- binutils-2.41/ld/testsuite/ld-elf/shared.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-elf/shared.exp 2023-10-17 08:36:17.903116830 +0200 +@@ -1152,10 +1152,6 @@ set run_tests [list \ + [list "Run pr21964-3" \ + "-Wl,--no-as-needed,-rpath,tmpdir tmpdir/pr21964-1a.so tmpdir/pr21964-1b.so tmpdir/pr21964-3a.so" "" \ + {pr21964-3c.c} "pr21964-3" "pass.out" ] \ +- [list "pr26580-3" \ +- "" "" \ +- {pr26580-a.c} "pr26580-3" "pr26580-3.out" "-fcommon" "c" "" \ +- "-Wl,--as-needed tmpdir/libpr26580-2.so" ] \ + [list "pr26580-4" \ + "" "" \ + {pr26580-a.c} "pr26580-4" "pr26580-4.out" "-fcommon" "c" "" \ +@@ -1579,18 +1575,6 @@ if { [istarget *-*-linux*] + "pr22393-2-static" \ + "pass.out" \ + ] \ +- [list \ +- "Run pr21964-4" \ +- "" \ +- "" \ +- {pr21964-4.c} \ +- "pr21964-4" \ +- "pass.out" \ +- "" \ +- "" \ +- "" \ +- "-ldl" \ +- ] \ + ] + } + +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-i386/i386.exp binutils-2.41-new/ld/testsuite/ld-i386/i386.exp +--- binutils-2.41/ld/testsuite/ld-i386/i386.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-i386/i386.exp 2023-10-17 08:36:17.903116830 +0200 +@@ -597,6 +597,10 @@ proc undefined_weak {cflags ldflags} { + } + } + ++if { [istarget "i686-*-*"] } { ++ return ++} ++ + # Must be Linux native with the C compiler + if { [isnative] + && [istarget "i?86-*-linux*"] +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-plugin/lto.exp binutils-2.41-new/ld/testsuite/ld-plugin/lto.exp +--- binutils-2.41/ld/testsuite/ld-plugin/lto.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-plugin/lto.exp 2023-10-17 08:36:17.899116616 +0200 +@@ -31,8 +31,8 @@ if { ![check_plugin_api_available] + + set saved_CFLAGS "$CFLAGS_FOR_TARGET" + set saved_CXXFLAGS "$CXXFLAGS_FOR_TARGET" +-regsub -all "(\\-Wp,)?-D_FORTIFY_SOURCE=\[0-9\]+" $CFLAGS_FOR_TARGET "" CFLAGS_FOR_TARGET +-regsub -all "(\\-Wp,)?-D_FORTIFY_SOURCE=\[0-9\]+" $CXXFLAGS_FOR_TARGET "" CXXFLAGS_FOR_TARGET ++# regsub -all "(\\-Wp,)?-D_FORTIFY_SOURCE=\[0-9\]+" $CFLAGS_FOR_TARGET "" CFLAGS_FOR_TARGET ++# regsub -all "(\\-Wp,)?-D_FORTIFY_SOURCE=\[0-9\]+" $CXXFLAGS_FOR_TARGET "" CXXFLAGS_FOR_TARGET + + proc restore_notify { } { + global saved_CFLAGS +@@ -474,7 +474,7 @@ set lto_link_elf_tests [list \ + [list \ + "Build libpr28879a.so" \ + "-shared" \ +- "-O0 -fpic" \ ++ "-O2 -fpic" \ + {pr28879a.cc} \ + {} \ + "libpr28879a.so" \ +@@ -491,7 +491,7 @@ set lto_link_elf_tests [list \ + [list \ + "Build pr28879" \ + "-Wl,--no-as-needed tmpdir/libpr28879b.so -Wl,-rpath-link,." \ +- "-O0 -flto -D_GLIBCXX_ASSERTIONS" \ ++ "-O2 -flto -D_GLIBCXX_ASSERTIONS" \ + {pr28879b.cc} \ + {} \ + "pr28879" \ +@@ -525,7 +525,7 @@ set lto_link_elf_tests [list \ + [list \ + "PR ld/pr29086" \ + "-Wl,--wrap=foo" \ +- "-O0 -flto" \ ++ "-O2 -flto" \ + {pr29086.c} \ + {} \ + "pr29086" \ +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-powerpc/powerpc.exp binutils-2.41-new/ld/testsuite/ld-powerpc/powerpc.exp +--- binutils-2.41/ld/testsuite/ld-powerpc/powerpc.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-powerpc/powerpc.exp 2023-10-17 08:36:17.904116883 +0200 +@@ -126,65 +126,6 @@ set ppcelftests { + "tls32no"} + {"TLS32 helper shared library" "-shared -melf32ppc tmpdir/tlslib32.o" "" "" {} + {} "libtlslib32.so"} +- {"TLS32 dynamic exec" "-melf32ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls32.o tmpdir/libtlslib32.so" "" "" {} +- {{readelf -WSsrl tlsexe32.r} {objdump -dr tlsexe32.d} +- {objdump -sj.got tlsexe32.g} {objdump -sj.tdata tlsexe32.t}} +- "tlsexe32"} +- {"TLS32 dynamic exec (--no-tls-optimize)" "-melf32ppc --no-tls-optimize --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls32.o tmpdir/libtlslib32.so" "" "" {} +- {{readelf -WSsrl tlsexe32no.r} {objdump -dr tlsexe32no.d} +- {objdump -sj.got tlsexe32no.g} {objdump -sj.tdata tlsexe32.t}} +- "tlsexe32no"} +- {"TLS32 shared" "-shared -melf32ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv -z notext tmpdir/tls32.o" "" "" {} +- {{readelf -WSsrl tlsso32.r} {objdump -dr tlsso32.d} +- {objdump -sj.got tlsso32.g} {objdump -sj.tdata tlsso32.t}} +- "tls32.so"} +- {"TLS32 markers" "-melf32ppc" "" "-a32" {tlsmark32.s tlslib32.s} +- {{objdump -dr tlsmark32.d}} +- "tlsmark32"} +- {"TLS32 opt 1" "-melf32ppc" "" "-a32" {tlsopt1_32.s tlslib32.s} +- {{objdump -dr tlsopt1_32.d}} +- "tlsopt1_32"} +- {"TLS32 opt 2" "-melf32ppc" "" "-a32" {tlsopt2_32.s tlslib32.s} +- {{objdump -dr tlsopt2_32.d}} +- "tlsopt2_32"} +- {"TLS32 opt 3" "-melf32ppc" "" "-a32" {tlsopt3_32.s tlslib32.s} +- {{objdump -dr tlsopt3_32.d}} +- "tlsopt3_32"} +- {"TLS32 opt 4" "-melf32ppc" "" "-a32" {tlsopt4_32.s tlslib32.s} +- {{objdump -dr tlsopt4_32.d}} +- "tlsopt4_32"} +- {"TLS32 DLL" "-shared -melf32ppc --version-script tlsdll.ver" "" +- "-a32" {tlsdll_32.s} +- {} "tlsdll32.so"} +- {"TLS32 opt 5" "-melf32ppc -shared --gc-sections --secure-plt --no-plt-align tmpdir/tlsdll32.so" "" "-a32" {tlsopt5_32.s} +- {{objdump -dr tlsopt5_32.d}} +- "tlsopt5_32"} +- {"Shared library with global symbol" "-shared -melf32ppc" "" "-a32" {sdalib.s} +- {} "sdalib.so"} +- {"Dynamic application with SDA" "-melf32ppc tmpdir/sdalib.so" "" "-a32" {sdadyn.s} +- {{objdump -R sdadyn.d}} "sdadyn"} +- {"relaxing" "-melf32ppc --relax -Ttext=0 --defsym far=0x80001234 --defsym near=0x00004320" "" "-a32" "relax.s" +- {{objdump -dr relax.d}} +- "relax"} +- {"relocatable relaxing" "-melf32ppc -r --relax" "" "-a32" "relax.s" +- {{objdump -dr relaxr.d}} +- "rrelax"} +- {"relocatable relaxing large" "-melf32ppc -r --relax" "" "-a32" "relax.s big.s" +- {{objdump -dr relaxrl.d}} +- "rrelax"} +- {"build empty shared library" "-shared" "" "" "empty.s" {} "empty.so"} +- {"abs32-static" "-melf32ppc -static --defsym a=1 --defsym 'HIDDEN(b=2)' --defsym c=0x12345678" "" +- "-a32" {abs32-reloc.s} +- {{objdump {-dr} abs32-static.d} +- {readelf {-rW} abs32-static.r}} "abs32-static"} +- {"abs32-pie" "-melf32ppc -pie --hash-style=sysv --defsym a=1 --defsym 'HIDDEN(b=2)' --defsym c=0x12345678" "" +- "-a32" {abs32-reloc.s} +- {{objdump {-dr} abs32-pie.d} +- {readelf {-rW} abs32-pie.r}} "abs32-pie"} +- {"abs32-shared" "-melf32ppc -shared --hash-style=sysv --defsym a=1 --defsym 'HIDDEN(b=2)' --defsym c=0x12345678" "" +- "-a32" {abs32-reloc.s} +- {{objdump {-dr} abs32-shared.d} +- {readelf {-rW} abs32-shared.r}} "abs32-shared"} + } + + set ppc64elftests { +@@ -192,200 +133,6 @@ set ppc64elftests { + "-a64 --defsym TLSMARK=1" {tls.s tlslib.s} + {{objdump -dr tls.d} {objdump -sj.got tls.g} {objdump -sj.tdata tls.t}} + "tlsm"} +- {"TLS static exec" "-melf64ppc --no-plt-align" "" "-a64" {tls.s tlslib.s} +- {{objdump -dr tls.d} {objdump -sj.got tls.g} {objdump -sj.tdata tls.t}} +- "tls"} +- {"TLS static exec (--no-tls-optimize)" "-melf64ppc --no-tls-optimize --no-plt-align" "" +- "-a64 --defsym TLSMARK=1" {tls.s tlslib.s} +- {{objdump -dr tlsno.d} {objdump -sj.got tlsno.g} {objdump -sj.tdata tls.t}} +- "tlsno"} +- {"TLS helper shared library" "-shared -melf64ppc tmpdir/tlslib.o" "" "" {} +- {} "libtlslib.so"} +- {"TLS helper old shared lib" "-shared -melf64ppc" "" "-a64" {oldtlslib.s} +- {} "liboldlib.so"} +- {"TLS dynamic exec" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls.o tmpdir/libtlslib.so" "" "" {} +- {{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d} +- {objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}} +- "tlsexe"} +- {"TLS dynamic old" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls.o tmpdir/liboldlib.so" "" "" {} +- {{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d} +- {objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}} +- "tlsexeold"} +- {"TLS dynamic exec (--no-tls-optimize)" "-melf64ppc --no-tls-optimize --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls.o tmpdir/libtlslib.so" "" "" {} +- {{readelf -WSsrl tlsexeno.r} {objdump -dr tlsexeno.d} +- {objdump -sj.got tlsexeno.g} {objdump -sj.tdata tlsexe.t}} +- "tlsexeno"} +- {"TLS shared" "-shared -melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv -z notext tmpdir/tls.o" "" "" {} +- {{readelf -WSsrl tlsso.r} {objdump -dr tlsso.d} +- {objdump -sj.got tlsso.g} {objdump -sj.tdata tlsso.t}} +- "tls.so"} +- {"TLSTOC static exec" "-melf64ppc tmpdir/tlslib.o" "" "-a64" {tlstoc.s} +- {{objdump -dr tlstoc.d} {objdump -sj.got tlstoc.g} +- {objdump -sj.tdata tlstoc.t}} +- "tlstoc"} +- {"TLSTOC static exec (--no-tls-optimize)" "-melf64ppc --no-tls-optimize tmpdir/tlslib.o tmpdir/tlstoc.o" "" "" {} +- {{objdump -dr tlstocno.d} {objdump -sj.got tlstocno.g} +- {objdump -sj.tdata tlstoc.t}} +- "tlstocno"} +- {"TLSTOC dynamic exec" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/libtlslib.so" "" +- "" {} +- {{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d} +- {objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}} +- "tlsexetoc"} +- {"TLSTOC dynamic old" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/liboldlib.so" "" +- "" {} +- {{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d} +- {objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}} +- "tlsexetocold"} +- {"TLSTOC dynamic exec (--no-tls-optimize)" "-melf64ppc --no-tls-optimize --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/libtlslib.so" "" +- "" {} +- {{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetocno.d} +- {objdump -sj.got tlsexetocno.g} {objdump -sj.tdata tlsexetoc.t}} +- "tlsexetocno"} +- {"TLSTOC shared" "-shared -melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv -z notext tmpdir/tlstoc.o" "" "" {} +- {{readelf -WSsrl tlstocso.r} {objdump -dr tlstocso.d} +- {objdump -sj.got tlstocso.g} {objdump -sj.tdata tlstocso.t}} +- "tlstoc.so"} +- {"TLS dynamic exec (--tls-get-addr-regsave)" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv --tls-get-addr-regsave tmpdir/tls.o tmpdir/libtlslib.so" "" "" {} +- {{readelf -WSsrl tlsexers.r} {objdump -dr tlsexers.d} +- {objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}} +- "tlsexers"} +- {"TLS dynamic exec (--no-tls-optimize --tls-get-addr-regsave)" "-melf64ppc --no-tls-optimize --tls-get-addr-regsave --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls.o tmpdir/libtlslib.so" "" "" {} +- {{readelf -WSsrl tlsexenors.r} {objdump -dr tlsexenors.d} +- {objdump -sj.got tlsexeno.g} {objdump -sj.tdata tlsexe.t}} +- "tlsexenors"} +- {"TLSTOC dynamic exec (--tls-get-addr-regsave)" "-melf64ppc --tls-get-addr-regsave --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/libtlslib.so" "" +- "" {} +- {{readelf -WSsrl tlsexetocrs.r} {objdump -dr tlsexetocrs.d} +- {objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}} +- "tlsexetocrs"} +- {"TLSTOC dynamic exec (--no-tls-optimize --tls-get-addr-regsave)" "-melf64ppc --no-tls-optimize --tls-get-addr-regsave --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/libtlslib.so" "" +- "" {} +- {{readelf -WSsrl tlsexetocrs.r} {objdump -dr tlsexetocnors.d} +- {objdump -sj.got tlsexetocno.g} {objdump -sj.tdata tlsexetoc.t}} +- "tlsexetocnors"} +- {"TLS markers" "-melf64ppc" "" "-a64" {tlsmark.s tlslib.s} +- {{objdump -dr tlsmark.d}} +- "tlsmark"} +- {"TLS opt 1" "-melf64ppc" "" "-a64" {tlsopt1.s tlslib.s} +- {{objdump -dr tlsopt1.d}} +- "tlsopt1"} +- {"TLS opt 2" "-melf64ppc" "" "-a64" {tlsopt2.s tlslib.s} +- {{objdump -dr tlsopt2.d}} +- "tlsopt2"} +- {"TLS opt 3" "-melf64ppc" "" "-a64" {tlsopt3.s tlslib.s} +- {{objdump -dr tlsopt3.d}} +- "tlsopt3"} +- {"TLS opt 4" "-melf64ppc" "" "-a64" {tlsopt4.s tlslib.s} +- {{objdump -dr tlsopt4.d}} +- "tlsopt4"} +- {"TLS DLL" "-shared -melf64ppc --version-script tlsdll.ver" "" "-a64" {tlsdll.s} +- {} "tlsdll.so"} +- {"TLS opt 5" "-melf64ppc -shared --hash-style=both --gc-sections --no-plt-localentry tmpdir/tlsdll.so" "" "-a64" {tlsopt5.s} +- {{objdump -dr tlsopt5.d} {readelf -wf tlsopt5.wf}} +- "tlsopt5"} +- {"TLS opt 6" "-melf64ppc -shared --hash-style=both --gc-sections --no-plt-localentry --tls-get-addr-regsave tmpdir/tlsdll.so" "" "-a64" {tlsopt5.s} +- {{objdump -dr tlsopt6.d} {readelf -wf tlsopt6.wf}} +- "tlsopt6"} +- {"TLSdesc" "-melf64ppc -shared --hash-style=both --no-plt-localentry tmpdir/libtlslib.so" "" "-a64" {tlsdesc.s} +- {{objdump -dr tlsdesc.d} {readelf -wf tlsdesc.wf}} +- "tlsdesc"} +- {"TLSdesc2" "-melf64ppc -shared --hash-style=both --no-plt-localentry tmpdir/tlsdll.so" "" "-a64" {tlsdesc.s} +- {{objdump -dr tlsdesc2.d} {readelf -wf tlsdesc2.wf}} +- "tlsdesc2"} +- {"TLSdesc3" "-melf64ppc --no-tls-optimize tmpdir/tlsdll.o" "" "-a64" {tlsdesc.s} +- {{objdump -dr tlsdesc3.d} {readelf -wf tlsdesc3.wf}} +- "tlsdesc3"} +- {"TLSdesc4" "-melf64ppc --no-tls-optimize tmpdir/tlsdll.o" "" "-a64" {tlsdesc4.s} +- {{objdump -dr tlsdesc4.d} {readelf -wf tlsdesc4.wf}} +- "tlsdesc4"} +- {"tlsget" "-shared --hash-style=both -melf64ppc --plt-align=0" "tmpdir/tlsdll.so" "-a64 -mpower10" {tlsget.s} +- {{objdump -dr tlsget.d} {readelf -wf tlsget.wf}} +- "tlsget.so"} +- {"tlsget2" "-shared --hash-style=both -melf64ppc --plt-align=0 --power10-stubs=yes" "tmpdir/tlsdll.so" "-a64 -mpower10" {tlsget.s} +- {{objdump -dr tlsget2.d} {readelf -wf tlsget2.wf}} +- "tlsget2.so"} +- {"sym@tocbase" "-shared -melf64ppc" "" "-a64" {symtocbase-1.s symtocbase-2.s} +- {{objdump -dj.data symtocbase.d}} "symtocbase.so"} +- {"TOC opt" "-melf64ppc" "" "-a64" {tocopt.s} +- {{ld tocopt.out} {objdump -s tocopt.d}} "tocopt"} +- {"TOC opt2" "-melf64ppc --defsym x=2" "" "-a64" {tocopt2.s} +- {{ld tocopt2.out} {objdump -s tocopt2.d}} "tocopt2"} +- {"TOC opt3" "-melf64ppc -no-keep-memory --defsym x=2" "" "-a64" {tocopt3.s} +- {{objdump -s tocopt3.d}} "tocopt3"} +- {"TOC opt4" "-melf64ppc -no-keep-memory --defsym x=2" "" "-a64" +- {tocopt4a.s tocopt4b.s} {{objdump -s tocopt4.d}} "tocopt4"} +- {"TOC opt5" "-melf64ppc" "" "-a64" {tocopt5.s} +- {{objdump -s tocopt5.d}} "tocopt5"} +- {"TOC opt6" "-melf64ppc" "" "-a64" {tocopt6a.s tocopt6b.s tocopt6c.s} +- {{objdump -d tocopt6.d}} "tocopt6"} +- {"TOC opt7" "-melf64ppc" "" "-a64 -mpower9" {tocopt7.s} +- {{ld tocopt7.out} {objdump -s tocopt7.d}} "tocopt7"} +- {"TOC opt8" "-melf64ppc" "" "-a64 -mpower9" {tocopt8.s} +- {{objdump -s tocopt8.d}} "tocopt8"} +- {"tocsave lib" "-shared -melf64ppc" "" "-a64" {tocsavelib.s} +- {} "tocsavelib.so"} +- {"tocsave1 shared" "-melf64ppc" "tmpdir/tocsavelib.so" "-a64" {tocsave1.s} +- {{objdump -dr tocsave1s.d}} "tocsave1s"} +- {"tocsave1 static" "-melf64ppc" "tmpdir/tocsavelib.o" "-a64" {tocsave1.s} +- {{objdump -dr tocsave1a.d}} "tocsave1a"} +- {"tocsave2 shared" "-melf64ppc" "tmpdir/tocsavelib.so" "-a64" {tocsave2.s} +- {{objdump -dr tocsave2s.d}} "tocsave2s"} +- {"tocsave2 static" "-melf64ppc" "tmpdir/tocsavelib.o" "-a64" {tocsave2.s} +- {{objdump -dr tocsave2a.d}} "tocsave2a"} +- {"ambig shared v1" "-shared -melf64ppc" "" "-a64" {funv1.s} {} "funv1.so"} +- {"ambig shared v2" "-shared -melf64ppc" "" "-a64" {funv2.s} {} "funv2.so"} +- {"notoc ext" "" "" "-a64" {ext.s} {} ""} +- {"notoc" "-melf64ppc --no-plt-localentry --no-power10-stubs -T ext.lnk" +- "" "-a64" {notoc.s} +- {{objdump -d notoc.d} {readelf {-wf -W} notoc.wf}} "notoc"} +- {"notoc2" "-melf64ppc -shared" "" "-a64 -mpower10" {notoc2.s} +- {{objdump {-d -Mpower10} notoc2.d}} "notoc2"} +- {"notoc3" "-melf64ppc --no-plt-localentry -T ext.lnk" "" +- "-a64 -mpower10" {notoc3.s} +- {{objdump -d notoc3.d} {readelf {-wf -W} notoc3.wf}} "notoc3"} +- {"pcrelopt" "-melf64ppc --hash-style=gnu" "tmpdir/symtocbase.so" +- "-a64 -mpower10" {pcrelopt.s} +- {{objdump {-d -Mpower10} pcrelopt.d} +- {readelf {-S --wide} pcrelopt.sec}} "pcrelopt" } +- {"group1" "-melf64ppc -e foo" "" "-a64" {group1.s group2.s group3.s} +- {{objdump {-d} group1.d} +- {readelf {-s} group1.sym}} "group1"} +- {"group2" "-melf64ppc -e foo" "" "-a64" {group2.s group1.s group3.s} +- {{objdump {-d} group2.d} +- {readelf {-s} group2.sym}} "group2"} +- {"group3" "-melf64ppc -e foo" "" "-a64" {group3.s group2.s group1.s} +- {{objdump {-d} group2.d} +- {readelf {-s} group3.sym}} "group3"} +- {"weak1" "-melf64ppc --hash-style=both" "" +- "-a64 -mpower10" {weak1.s} +- {{objdump -d weak1.d} {readelf {-srW} weak1.r}} "weak1"} +- {"weak1.so" "-shared -melf64ppc --hash-style=both" "" +- "-a64 -mpower10" {weak1.s} +- {{objdump -d weak1so.d} {readelf {-srW} weak1so.r}} "weak1.so"} +- {"startstop" "-shared -melf64ppc --hash-style=sysv --gc-sections -z start-stop-gc" "" +- "-a64 -mpower10" {startstop.s} +- {{objdump -d startstop.d} {readelf {-rW} startstop.r}} "startstop.so"} +- {"abs-static" "-melf64ppc -static --defsym a=1 --defsym 'HIDDEN(b=2)' --defsym c=0x123456789abcdef0" "" +- "-a64" {abs-reloc.s} +- {{objdump {-sdr} abs-static.d} +- {readelf {-rW} abs-static.r}} "abs-static"} +- {"abs-pie" "-melf64ppc -pie --hash-style=sysv --defsym a=1 --defsym 'HIDDEN(b=2)' --defsym c=0x123456789abcdef0" "" +- "-a64" {abs-reloc.s} +- {{objdump {-sdr} abs-pie.d} +- {readelf {-rW} abs-pie.r}} "abs-pie"} +- {"abs-shared" "-melf64ppc -shared --hash-style=sysv --defsym a=1 --defsym 'HIDDEN(b=2)' --defsym c=0x123456789abcdef0" "" +- "-a64" {abs-reloc.s} +- {{objdump {-sdr} abs-shared.d} +- {readelf {-rW} abs-shared.r}} "abs-shared"} +- {"abs-pie-relr" "-melf64ppc -pie --hash-style=sysv -z pack-relative-relocs --defsym a=1 --defsym 'HIDDEN(b=2)' --defsym c=0x123456789abcdef0" "" +- "-a64" {abs-reloc.s} +- {{objdump {-sdr} abs-pie-relr.d} +- {readelf {-rW} abs-pie-relr.r}} "abs-pie-relr"} +- {"abs-shared-relr" "-melf64ppc -shared --hash-style=sysv -z pack-relative-relocs --defsym a=1 --defsym 'HIDDEN(b=2)' --defsym c=0x123456789abcdef0" "" +- "-a64" {abs-reloc.s} +- {{objdump {-sdr} abs-shared-relr.d} +- {readelf {-rW} abs-shared-relr.r}} "abs-shared-relr"} + } + + set ppceabitests { +@@ -404,15 +151,6 @@ set ppceabitests { + {"VLE multiple segments 5" "-melf32ppc -T vle-multiseg-5.ld" "" + "-a32 -mbig -mregnames -mvle" {vle-multiseg.s} + {{readelf "-l" vle-multiseg-5.d}} "vle-multiseg-5"} +- {"VLE relocations 1" "-melf32ppc -T vle.ld" "" +- "-a32 -mbig -mvle" {vle-reloc-1.s vle-reloc-def-1.s} +- {{objdump "-Mvle -d" vle-reloc-1.d}} "vle-reloc-1"} +- {"VLE relocations 2" "-melf32ppc -T vle.ld" "" +- "-a32 -mbig -mvle" {vle-reloc-2.s vle-reloc-def-2.s} +- {{objdump "-Mvle -d" vle-reloc-2.d}} "vle-reloc-2"} +- {"VLE relocations 3" "-melf32ppc -T vle.ld" "" +- "-a32 -mbig -mvle" {vle-reloc-3.s vle-reloc-def-3.s} +- {{objdump "-Mvle -d" vle-reloc-3.d}} "vle-reloc-3"} + } + + if [istarget "powerpc*le*-*-*"] then { +@@ -439,6 +177,8 @@ if [istarget "powerpc*le*-*-*"] then { + + run_ld_link_tests $ppcelftests + ++return ++ + if [ supports_ppc64 ] then { + run_ld_link_tests $ppc64elftests + run_dump_test "relbrlt" +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-powerpc/tls32.d binutils-2.41-new/ld/testsuite/ld-powerpc/tls32.d +--- binutils-2.41/ld/testsuite/ld-powerpc/tls32.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-powerpc/tls32.d 2023-10-17 08:36:17.902116776 +0200 +@@ -9,11 +9,11 @@ + + Disassembly of section \.text: + +-0+18000a0 <_start>: ++0+18[0-9a-f]+ <_start>: + .*: (42 9f 00 05|05 00 9f 42) bcl 20,4\*cr7\+so,.* <_start\+0x4> + .*: (7f c8 02 a6|a6 02 c8 7f) mflr r30 + .*: (3f de 00 02|02 00 de 3f) addis r30,r30,2 +-.*: (3b de 80 a0|a0 80 de 3b) addi r30,r30,-32608 ++.*: (3b de 80 a0|.. 80 de 3b) addi r30,r30,.* + .*: (60 00 00 00|00 00 00 60) nop + .*: (38 62 90 3c|3c 90 62 38) addi r3,r2,-28612 + .*: (60 00 00 00|00 00 00 60) nop +@@ -43,5 +43,5 @@ Disassembly of section \.text: + .*: (60 00 00 00|00 00 00 60) nop + .*: (a9 42 90 18|18 90 42 a9) lha r10,-28648\(r2\) + +-0+1800120 <__tls_get_addr>: ++0+18[0-9a-f]+ <__tls_get_addr>: + .*: (4e 80 00 20|20 00 80 4e) blr +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-powerpc/tls32.g binutils-2.41-new/ld/testsuite/ld-powerpc/tls32.g +--- binutils-2.41/ld/testsuite/ld-powerpc/tls32.g 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-powerpc/tls32.g 2023-10-17 08:36:17.905116936 +0200 +@@ -8,4 +8,4 @@ + .* + + Contents of section \.got: +- 1810144 00000000 00000000 00000000 .* ++ 18..... 00000000 00000000 00000000 .* +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-powerpc/tls32no.d binutils-2.41-new/ld/testsuite/ld-powerpc/tls32no.d +--- binutils-2.41/ld/testsuite/ld-powerpc/tls32no.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-powerpc/tls32no.d 2023-10-17 08:36:17.905116936 +0200 +@@ -9,11 +9,11 @@ + + Disassembly of section \.text: + +-0+18000a0 <_start>: ++0+18..... <_start>: + .*: (42 9f 00 05|05 00 9f 42) bcl .* + .*: (7f c8 02 a6|a6 02 c8 7f) mflr r30 + .*: (3f de 00 02|02 00 de 3f) addis r30,r30,2 +-.*: (3b de 80 a0|a0 80 de 3b) addi r30,r30,-32608 ++.*: (3b de 80 a0|.. 80 de 3b) addi r30,r30,-[0-9]+ + .*: (38 7f ff e4|e4 ff 7f 38) addi r3,r31,-28 + .*: (48 00 00 6d|6d 00 00 48) bl .* + .*: (38 7f ff f8|f8 ff 7f 38) addi r3,r31,-8 +@@ -43,5 +43,5 @@ Disassembly of section \.text: + .*: (3d 22 00 00|00 00 22 3d) addis r9,r2,0 + .*: (a9 49 90 18|18 90 49 a9) lha r10,-28648\(r9\) + +-0+1800120 <__tls_get_addr>: ++0+18..... <__tls_get_addr>: + .*: (4e 80 00 20|20 00 80 4e) blr +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-powerpc/tls32no.g binutils-2.41-new/ld/testsuite/ld-powerpc/tls32no.g +--- binutils-2.41/ld/testsuite/ld-powerpc/tls32no.g 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-powerpc/tls32no.g 2023-10-17 08:36:17.905116936 +0200 +@@ -8,6 +8,4 @@ + .* + + Contents of section \.got: +- 1810144 (0+01 f+8000 0+01 f+803c|010+ 0080f+ 010+ 3c80f+) .* +- 1810154 (0+01 f+8020 f+9030 0+01|010+ 2080f+ 3090f+ 010+) .* +- 1810164 0+ 0+ 0+ 0+0 .* ++#pass +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-powerpc/tls32.t binutils-2.41-new/ld/testsuite/ld-powerpc/tls32.t +--- binutils-2.41/ld/testsuite/ld-powerpc/tls32.t 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-powerpc/tls32.t 2023-10-17 08:36:17.905116936 +0200 +@@ -8,5 +8,5 @@ + .* + + Contents of section \.tdata: +- 1810124 (12345678|78563412) (23456789|89674523) (3456789a|9a785634) (456789ab|ab896745) .* +- 1810134 (56789abc|bc9a7856) (6789abcd|cdab8967) (789abcde|debc9a78) (00c0ffee|eeffc000) .* ++#pass ++ +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-powerpc/tls.d binutils-2.41-new/ld/testsuite/ld-powerpc/tls.d +--- binutils-2.41/ld/testsuite/ld-powerpc/tls.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-powerpc/tls.d 2023-10-17 08:36:17.904116883 +0200 +@@ -9,7 +9,7 @@ + + Disassembly of section \.text: + +-0+100000e8 <\._start>: ++0+100..... <\._start>: + .*: (60 00 00 00|00 00 00 60) nop + .*: (38 6d 90 78|78 90 6d 38) addi r3,r13,-28552 + .*: (60 00 00 00|00 00 00 60) nop +@@ -49,5 +49,5 @@ Disassembly of section \.text: + .*: (60 00 00 00|00 00 00 60) nop + .*: (a9 4d 90 30|30 90 4d a9) lha r10,-28624\(r13\) + +-0+10000180 <\.__tls_get_addr>: ++0+100..... <\.__tls_get_addr>: + .*: (4e 80 00 20|20 00 80 4e) blr +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-s390/s390.exp binutils-2.41-new/ld/testsuite/ld-s390/s390.exp +--- binutils-2.41/ld/testsuite/ld-s390/s390.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-s390/s390.exp 2023-10-17 08:36:17.903116830 +0200 +@@ -35,6 +35,8 @@ if { !([istarget "s390-*-*"] || [istarge + # nm: Apply nm options on result. Compare with regex (last arg). + # readelf: Apply readelf options on result. Compare with regex (last arg). + ++return ++ + set s390tests { + {"TLS -fpic -shared transitions" "-shared -melf_s390 --hash-style=sysv" "" + "-m31" {tlspic1.s tlspic2.s} +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-scripts/crossref.exp binutils-2.41-new/ld/testsuite/ld-scripts/crossref.exp +--- binutils-2.41/ld/testsuite/ld-scripts/crossref.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-scripts/crossref.exp 2023-10-17 08:36:17.903116830 +0200 +@@ -121,6 +121,10 @@ if [string match "" $exec_output] then { + } + } + ++if { [istarget "i686-*-*"] } { ++ return ++} ++ + # Check cross references for ld -r + + if { ![ld_compile "$CC_FOR_TARGET $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" "$srcdir/$subdir/cross4.c" tmpdir/cross4.o] } { +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-scripts/ld-version-2.d binutils-2.41-new/ld/testsuite/ld-scripts/ld-version-2.d +--- binutils-2.41/ld/testsuite/ld-scripts/ld-version-2.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-scripts/ld-version-2.d 2023-10-17 08:36:17.897116510 +0200 +@@ -4,4 +4,4 @@ + # target: [is_elf_format] + + String dump of section '.comment': +-.*GNU ld \(.*\) 2.* ++.*GNU ld .* 2.* +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-scripts/ld-version.d binutils-2.41-new/ld/testsuite/ld-scripts/ld-version.d +--- binutils-2.41/ld/testsuite/ld-scripts/ld-version.d 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-scripts/ld-version.d 2023-10-17 08:36:17.897116510 +0200 +@@ -4,4 +4,4 @@ + # target: [is_elf_format] + + String dump of section '.comment': +-.*GNU ld \(.*\) 2.* ++.*GNU ld .* 2.* +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-shared/shared.exp binutils-2.41-new/ld/testsuite/ld-shared/shared.exp +--- binutils-2.41/ld/testsuite/ld-shared/shared.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-shared/shared.exp 2023-10-17 08:36:17.904116883 +0200 +@@ -204,6 +204,10 @@ if { [istarget mips*-*-*] && ! [at_least + } + verbose "Using $picflag to compile PIC code" + ++if { [istarget "i686-*-*"] } { ++ return ++} ++ + # Compile the main program. + if ![ld_compile "$CC_FOR_TARGET $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o] { + unsupported "shared (non PIC)" +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-srec/srec.exp binutils-2.41-new/ld/testsuite/ld-srec/srec.exp +--- binutils-2.41/ld/testsuite/ld-srec/srec.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-srec/srec.exp 2023-10-17 08:36:17.904116883 +0200 +@@ -442,6 +442,9 @@ setup_xfail "csky*-*-*" + # The S-record linker is not supported for eBPF. + setup_xfail "bpf-*-*" + ++setup_xfail "s390*-*-*" ++setup_xfail "i686-*-*" ++ + run_srec_test $test1 "tmpdir/sr1.o tmpdir/sr2.o" + + # Now try linking a C++ program with global constructors and +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-vsb/vsb.exp binutils-2.41-new/ld/testsuite/ld-vsb/vsb.exp +--- binutils-2.41/ld/testsuite/ld-vsb/vsb.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-vsb/vsb.exp 2023-10-17 08:36:17.904116883 +0200 +@@ -29,6 +29,10 @@ if { ![check_compiler_available] } { + return + } + ++if { [istarget "i686-*-*"] } { ++ return ++} ++ + # This test can only be run on a couple of ELF platforms or with + # XCOFF formats. + # Square bracket expressions seem to confuse istarget. +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/plt-main-ibt.dd binutils-2.41-new/ld/testsuite/ld-x86-64/plt-main-ibt.dd +--- binutils-2.41/ld/testsuite/ld-x86-64/plt-main-ibt.dd 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-x86-64/plt-main-ibt.dd 2023-10-17 08:36:17.898116563 +0200 +@@ -1,7 +1,3 @@ + #... +-Disassembly of section .plt.got: + +-[a-f0-9]+ <[_a-z]+@plt>: +-[ ]*[a-f0-9]+: f3 0f 1e fa endbr64 +-[ ]*[a-f0-9]+: ff 25 .. .. 3f 00 jmp +\*0x3f....\(%rip\) # ...... <.*> + #pass +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pr22001-1b.err binutils-2.41-new/ld/testsuite/ld-x86-64/pr22001-1b.err +--- binutils-2.41/ld/testsuite/ld-x86-64/pr22001-1b.err 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-x86-64/pr22001-1b.err 2023-10-17 08:36:17.897116510 +0200 +@@ -1,2 +1,2 @@ +-.*relocation R_X86_64_32S against symbol `copy' can not be used when making a P(D|I)E object; recompile with -fPIE ++.*relocation R_X86_64_.* against symbol `copy' can not be used when making a P(D|I)E object; recompile with -fPIE + #... +diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/x86-64.exp binutils-2.41-new/ld/testsuite/ld-x86-64/x86-64.exp +--- binutils-2.41/ld/testsuite/ld-x86-64/x86-64.exp 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/ld/testsuite/ld-x86-64/x86-64.exp 2023-10-17 08:36:17.898116563 +0200 +@@ -1386,7 +1386,7 @@ if { [isnative] && [check_compiler_avail + "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-func-2b.so" \ + "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \ + { protected-func-1b.c } \ +- {{error_output "pr28875-func.err"}} \ ++ {} \ + "protected-func-2" \ + ] \ + [list \ +@@ -1402,7 +1402,7 @@ if { [isnative] && [check_compiler_avail + "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-func-2c.so" \ + "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \ + { protected-func-1b.c } \ +- {{error_output "pr28875-func.err"}} \ ++ {} \ + "protected-func-2a" \ + ] \ + [list \ +@@ -2155,7 +2155,6 @@ if { [isnative] && [check_compiler_avail + } + } + +- undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS" + undefined_weak "-fPIE" "" + undefined_weak "-fPIE" "-pie" + undefined_weak "-fPIE" "-Wl,-z,nodynamic-undefined-weak" diff --git a/SOURCES/binutils-version.patch b/SOURCES/binutils-version.patch new file mode 100644 index 0000000..eec61e3 --- /dev/null +++ b/SOURCES/binutils-version.patch @@ -0,0 +1,46 @@ +diff -rupN --no-dereference binutils-2.41/bfd/Makefile.am binutils-2.41-new/bfd/Makefile.am +--- binutils-2.41/bfd/Makefile.am 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/bfd/Makefile.am 2023-10-17 08:36:02.532285680 +0200 +@@ -966,8 +966,8 @@ DISTCLEANFILES += $(BUILD_CFILES) $(BUIL + bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in + $(AM_V_GEN)\ + bfd_version=`echo "$(VERSION)" | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\ +- bfd_version_string="\"$(VERSION)\"" ;\ +- bfd_soversion="$(VERSION)" ;\ ++ bfd_version_string="\"$(VERSION)-%{release}\"" ;\ ++ bfd_soversion="$(VERSION)-%{release}" ;\ + bfd_version_package="\"$(PKGVERSION)\"" ;\ + report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\ + . $(srcdir)/development.sh ;\ +@@ -978,7 +978,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/ + fi ;\ + $(SED) -e "s,@bfd_version@,$$bfd_version," \ + -e "s,@bfd_version_string@,$$bfd_version_string," \ +- -e "s,@bfd_version_package@,$$bfd_version_package," \ ++ -e "s,@bfd_version_package@,\"version \"," \ + -e "s,@report_bugs_to@,$$report_bugs_to," \ + < $(srcdir)/version.h > $@; \ + echo "$${bfd_soversion}" > libtool-soversion +diff -rupN --no-dereference binutils-2.41/bfd/Makefile.in binutils-2.41-new/bfd/Makefile.in +--- binutils-2.41/bfd/Makefile.in 2023-07-03 01:00:00.000000000 +0200 ++++ binutils-2.41-new/bfd/Makefile.in 2023-10-17 08:36:02.533285735 +0200 +@@ -2425,8 +2425,8 @@ stmp-lcoff-h: $(LIBCOFF_H_FILES) $(MKDOC + bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in + $(AM_V_GEN)\ + bfd_version=`echo "$(VERSION)" | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\ +- bfd_version_string="\"$(VERSION)\"" ;\ +- bfd_soversion="$(VERSION)" ;\ ++ bfd_version_string="\"$(VERSION)-%{release}\"" ;\ ++ bfd_soversion="$(VERSION)-%{release}" ;\ + bfd_version_package="\"$(PKGVERSION)\"" ;\ + report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\ + . $(srcdir)/development.sh ;\ +@@ -2437,7 +2437,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/ + fi ;\ + $(SED) -e "s,@bfd_version@,$$bfd_version," \ + -e "s,@bfd_version_string@,$$bfd_version_string," \ +- -e "s,@bfd_version_package@,$$bfd_version_package," \ ++ -e "s,@bfd_version_package@,\"version \"," \ + -e "s,@report_bugs_to@,$$report_bugs_to," \ + < $(srcdir)/version.h > $@; \ + echo "$${bfd_soversion}" > libtool-soversion diff --git a/SPECS/mingw-binutils.spec b/SPECS/mingw-binutils.spec new file mode 100644 index 0000000..c81141f --- /dev/null +++ b/SPECS/mingw-binutils.spec @@ -0,0 +1,761 @@ +%global run_testsuite 1 +%global mingw_build_ucrt64 1 +%define enable_new_dtags 0 + +Name: mingw-binutils +Version: 2.41 +Release: 4%{?dist} +Summary: Cross-compiled version of binutils for Win32 and Win64 environments + +License: GPL-3.0-or-later AND (GPL-3.0-or-later WITH Bison-exception-2.2) AND (LGPL-2.0-or-later WITH GCC-exception-2.0) AND BSD-3-Clause AND GFDL-1.3-or-later AND GPL-2.0-or-later LGPL-2.1-or-later AND LGPL-2.0-or-later + +URL: http://www.gnu.org/software/binutils/ +Source0: http://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.xz + +### Patches from native package +# Purpose: Use /lib64 and /usr/lib64 instead of /lib and /usr/lib in the +# default library search path of 64-bit targets. +# Lifetime: Permanent, but it should not be. This is a bug in the libtool +# sources used in both binutils and gcc, (specifically the +# libtool.m4 file). These are based on a version released in 2009 +# (2.2.6?) rather than the latest version. (Definitely fixed in +# libtool version 2.4.6). +# Not needed, mingw does not have lib64 +# Patch01: binutils-libtool-lib64.patch + +# Purpose: Appends a RHEL or Fedora release string to the generic binutils +# version string. +# Lifetime: Permanent. This is a RHEL/Fedora specific patch. +Patch02: binutils-version.patch + +# Purpose: Exports the demangle.h header file (associated with the libiberty +# sources) with the binutils-devel rpm. +# Lifetime: Permanent. This is a RHEL/Fedora specific patch. +Patch03: binutils-export-demangle.h.patch + +# Purpose: Disables the check in the BFD library's bfd.h header file that +# config.h has been included before the bfd.h header. See BZ +# #845084 for more details. +# Lifetime: Permanent - but it should not be. The bfd.h header defines +# various types that are dependent upon configuration options, so +# the order of inclusion is important. +# FIXME: It would be better if the packages using the bfd.h header were +# fixed so that they do include the header files in the correct +# order. +Patch04: binutils-no-config-h-check.patch + +# Purpose: Disable an x86/x86_64 optimization that moves functions from the +# PLT into the GOTPLT for faster access. This optimization is +# problematic for tools that want to intercept PLT entries, such +# as ltrace and LD_AUDIT. See BZs 1452111 and 1333481. +# Lifetime: Permanent. But it should not be. +# FIXME: Replace with a configure time option. +Patch05: binutils-revert-PLT-elision.patch + +# Purpose: Do not create PLT entries for AARCH64 IFUNC symbols referenced in +# debug sections. +# Lifetime: Permanent. +# FIXME: Find related bug. Decide on permanency. +Patch06: binutils-2.27-aarch64-ifunc.patch + +# Purpose: Stop the binutils from statically linking with libstdc++. +# Lifetime: Permanent. +Patch07: binutils-do-not-link-with-static-libstdc++.patch + +# Purpose: Allow OS specific sections in section groups. +# Lifetime: Fixed in 2.42 (maybe) +Patch08: binutils-special-sections-in-groups.patch + +# Purpose: Stop gold from aborting when input sections with the same name +# have different flags. +# Lifetime: Fixed in 2.42 (maybe) +Patch09: binutils-gold-mismatched-section-flags.patch + +# Purpose: Change the gold configuration script to only warn about +# unsupported targets. This allows the binutils to be built with +# BPF support enabled. +# Lifetime: Permanent. +Patch10: binutils-gold-warn-unsupported.patch + +# Purpose: Enable the creation of .note.gnu.property sections by the GOLD +# linker for x86 binaries. +# Lifetime: Permanent. +Patch11: binutils-gold-i386-gnu-property-notes.patch + +# Purpose: Allow the binutils to be configured with any (recent) version of +# autoconf. +# Lifetime: Fixed in 2.42 (maybe ?) +Patch12: binutils-autoconf-version.patch + +# Purpose: Stop libtool from inserting useless runpaths into binaries. +# Lifetime: Who knows. +Patch13: binutils-libtool-no-rpath.patch + +%if %{enable_new_dtags} +# Purpose: Change ld man page so that it says that --enable-new-dtags is the default. +# Lifetime: Permanent +Patch14: binutils-update-linker-manual.patch +%endif + +# Purpose: Stop an abort when using dwp to process a file with no dwo links. +# Lifetime: Fixed in 2.42 (maybe) +Patch15: binutils-gold-empty-dwp.patch + +# Purpose: Fix binutils testsuite failures. +# Lifetime: Permanent, but varies with each rebase. +Patch16: binutils-testsuite-fixes.patch + +# Purpose: Fix binutils testsuite failures for the RISCV-64 target. +# Lifetime: Permanent, but varies with each rebase. +Patch17: binutils-riscv-testsuite-fixes.patch + +# Purpose: Fix the GOLD linker's handling of 32-bit PowerPC binaries. +# Lifetime: Fixed in 2.42 +Patch18: binutils-gold-powerpc.patch + +# Purpose: Fix a potential NULL pointer dereference when parsing corrupt +# ELF symbol version information. +# Lifetime: Fixed in 2.42 +Patch19: binutils-handle-corrupt-version-info.patch + + +BuildRequires: make +BuildRequires: gcc +BuildRequires: flex +BuildRequires: bison +BuildRequires: texinfo +BuildRequires: zlib-devel +BuildRequires: mingw32-filesystem >= 133 +BuildRequires: mingw64-filesystem >= 133 +BuildRequires: ucrt64-filesystem >= 133 +%if %{run_testsuite} +BuildRequires: dejagnu +BuildRequires: sharutils +%endif +Provides: bundled(libiberty) + + +%description +Cross compiled binutils (utilities like 'strip', 'as', 'ld') which +understand Windows executables and DLLs. + +%package -n mingw-binutils-generic +Summary: Utilities which are needed for both the Win32 and Win64 toolchains + +%description -n mingw-binutils-generic +Utilities (like strip and objdump) which are needed for +both the Win32 and Win64 toolchains + +%package -n mingw32-binutils +Summary: Cross-compiled version of binutils for the Win32 environment +Requires: mingw-binutils-generic = %{version}-%{release} + +# NB: This must be left in. +Requires: mingw32-filesystem >= 95 + +%description -n mingw32-binutils +Cross compiled binutils (utilities like 'strip', 'as', 'ld') which +understand Windows executables and DLLs. + +%package -n mingw64-binutils +Summary: Cross-compiled version of binutils for the Win64 environment +Requires: mingw-binutils-generic = %{version}-%{release} + +# NB: This must be left in. +Requires: mingw64-filesystem >= 95 + +%description -n mingw64-binutils +Cross compiled binutils (utilities like 'strip', 'as', 'ld') which +understand Windows executables and DLLs. + +%package -n ucrt64-binutils +Summary: Cross-compiled version of binutils for the Win64 environment +Requires: mingw-binutils-generic = %{version}-%{release} + +# NB: This must be left in. +Requires: ucrt64-filesystem >= 133 + +%description -n ucrt64-binutils +Cross compiled binutils (utilities like 'strip', 'as', 'ld') which +understand Windows executables and DLLs. + + +%prep +%autosetup -p1 -n binutils-%{version} + +# See Patch02 +sed -i -e 's/%''{release}/%{release}/g' bfd/Makefile{.am,.in} + + +%build +# We call configure directly rather than via macros, thus if +# we are using LTO, we have to manually fix the broken configure +# scripts +[ %{_lto_cflags}x != x ] && %{_fix_broken_configure_for_lto} + + +mkdir build_win32 +pushd build_win32 +CFLAGS="%{optflags}" \ +../configure \ + --build=%_build --host=%_host \ + --target=%{mingw32_target} \ + --disable-nls \ + --with-sysroot=%{mingw32_sysroot} \ + --prefix=%{_prefix} \ + --bindir=%{_bindir} \ + --includedir=%{_includedir} \ + --libdir=%{_libdir} \ + --mandir=%{_mandir} \ + --infodir=%{_infodir} + +%make_build +popd + +mkdir build_win64 +pushd build_win64 +CFLAGS="%{optflags}" \ +../configure \ + --build=%_build --host=%_host \ + --target=%{mingw64_target} \ + --disable-nls \ + --with-sysroot=%{mingw64_sysroot} \ + --prefix=%{_prefix} \ + --bindir=%{_bindir} \ + --includedir=%{_includedir} \ + --libdir=%{_libdir} \ + --mandir=%{_mandir} \ + --infodir=%{_infodir} + +%make_build +popd + +mkdir build_ucrt64 +pushd build_ucrt64 +CFLAGS="%{optflags}" \ +../configure \ + --build=%_build --host=%_host \ + --target=%{ucrt64_target} \ + --disable-nls \ + --with-sysroot=%{ucrt64_sysroot} \ + --prefix=%{_prefix} \ + --bindir=%{_bindir} \ + --includedir=%{_includedir} \ + --libdir=%{_libdir} \ + --mandir=%{_mandir} \ + --infodir=%{_infodir} + +%make_build +popd + +# Create multilib versions for the tools strip, objdump nm, and objcopy +mkdir build_multilib +pushd build_multilib +CFLAGS="%{optflags}" \ +../configure \ + --build=%_build --host=%_host \ + --target=%{mingw64_target} \ + --enable-targets=%{mingw64_target},%{mingw32_target},%{ucrt64_target} \ + --disable-nls \ + --with-sysroot=%{mingw64_sysroot} \ + --prefix=%{_prefix} \ + --bindir=%{_bindir} \ + --includedir=%{_includedir} \ + --libdir=%{_libdir} \ + --mandir=%{_mandir} \ + --infodir=%{_infodir} + +%make_build +popd + + +%check +%if !%{run_testsuite} +echo ====================TESTSUITE DISABLED========================= +%else +pushd build_win32 + make -k check < /dev/null || : + echo ====================TESTING WIN32 ========================= + cat {gas/testsuite/gas,ld/ld,binutils/binutils}.sum + echo ====================TESTING WIN32 END===================== + for file in {gas/testsuite/gas,ld/ld,binutils/binutils}.{sum,log} + do + ln $file binutils-%{mingw32_target}-$(basename $file) || : + done + tar cjf binutils-%{mingw32_target}.tar.bz2 binutils-%{mingw32_target}-*.{sum,log} + uuencode binutils-%{mingw32_target}.tar.bz2 binutils-%{mingw32_target}.tar.bz2 + rm -f binutils-%{mingw32_target}.tar.bz2 binutils-%{mingw32_target}-*.{sum,log} +popd + +pushd build_win64 + make -k check < /dev/null || : + echo ====================TESTING WIN64 ========================= + cat {gas/testsuite/gas,ld/ld,binutils/binutils}.sum + echo ====================TESTING WIN64 END===================== + for file in {gas/testsuite/gas,ld/ld,binutils/binutils}.{sum,log} + do + ln $file binutils-%{mingw64_target}-$(basename $file) || : + done + tar cjf binutils-%{mingw64_target}.tar.bz2 binutils-%{mingw64_target}-*.{sum,log} + uuencode binutils-%{mingw64_target}.tar.bz2 binutils-%{mingw64_target}.tar.bz2 + rm -f binutils-%{mingw64_target}.tar.bz2 binutils-%{mingw64_target}-*.{sum,log} +popd + +pushd build_ucrt64 + make -k check < /dev/null || : + echo ====================TESTING UCRT64 ========================= + cat {gas/testsuite/gas,ld/ld,binutils/binutils}.sum + echo ====================TESTING UCRT64 END===================== + for file in {gas/testsuite/gas,ld/ld,binutils/binutils}.{sum,log} + do + ln $file binutils-%{ucrt64_target}-$(basename $file) || : + done + tar cjf binutils-%{ucrt64_target}.tar.bz2 binutils-%{ucrt64_target}-*.{sum,log} + uuencode binutils-%{ucrt64_target}.tar.bz2 binutils-%{ucrt64_target}.tar.bz2 + rm -f binutils-%{ucrt64_target}.tar.bz2 binutils-%{ucrt64_target}-*.{sum,log} +popd +%endif + + +%install +%mingw_make_install +make -C build_multilib DESTDIR=%{buildroot}/multilib install + +# These files conflict with ordinary binutils. +rm -rf %{buildroot}%{_infodir} +rm -f %{buildroot}%{_libdir}/libiberty* +rm -f %{buildroot}%{_libdir}/bfd-plugins/libdep.so + +# Keep the multilib versions of the strip, objdump and objcopy commands +# We need these for the RPM integration as these tools must be able to +# both process win32 and win64 binaries +mv %{buildroot}/multilib%{_bindir}/%{mingw64_strip} %{buildroot}%{_bindir}/%{mingw_strip} +mv %{buildroot}/multilib%{_bindir}/%{mingw64_objdump} %{buildroot}%{_bindir}/%{mingw_objdump} +mv %{buildroot}/multilib%{_bindir}/%{mingw64_objcopy} %{buildroot}%{_bindir}/%{mingw_objcopy} +mv %{buildroot}/multilib%{_bindir}/%{mingw64_nm} %{buildroot}%{_bindir}/%{mingw_nm} +rm -rf %{buildroot}/multilib + +# Drop man pages, they are a duplicate of those of the native tools +rm -rf %{buildroot}%{_mandir}/man1/* + + +%files -n mingw-binutils-generic +%license COPYING +%{_bindir}/%{mingw_strip} +%{_bindir}/%{mingw_objdump} +%{_bindir}/%{mingw_objcopy} +%{_bindir}/%{mingw_nm} + +%files -n mingw32-binutils +%{_bindir}/%{mingw32_target}-addr2line +%{_bindir}/%{mingw32_target}-ar +%{_bindir}/%{mingw32_target}-as +%{_bindir}/%{mingw32_target}-c++filt +%{_bindir}/%{mingw32_target}-dlltool +%{_bindir}/%{mingw32_target}-dllwrap +%{_bindir}/%{mingw32_target}-elfedit +%{_bindir}/%{mingw32_target}-gprof +%{_bindir}/%{mingw32_target}-ld +%{_bindir}/%{mingw32_target}-ld.bfd +%{_bindir}/%{mingw32_target}-nm +%{_bindir}/%{mingw32_target}-objcopy +%{_bindir}/%{mingw32_target}-objdump +%{_bindir}/%{mingw32_target}-ranlib +%{_bindir}/%{mingw32_target}-readelf +%{_bindir}/%{mingw32_target}-size +%{_bindir}/%{mingw32_target}-strings +%{_bindir}/%{mingw32_target}-strip +%{_bindir}/%{mingw32_target}-windmc +%{_bindir}/%{mingw32_target}-windres +%{_prefix}/%{mingw32_target}/bin/ar +%{_prefix}/%{mingw32_target}/bin/as +%{_prefix}/%{mingw32_target}/bin/dlltool +%{_prefix}/%{mingw32_target}/bin/ld +%{_prefix}/%{mingw32_target}/bin/ld.bfd +%{_prefix}/%{mingw32_target}/bin/nm +%{_prefix}/%{mingw32_target}/bin/objcopy +%{_prefix}/%{mingw32_target}/bin/objdump +%{_prefix}/%{mingw32_target}/bin/ranlib +%{_prefix}/%{mingw32_target}/bin/readelf +%{_prefix}/%{mingw32_target}/bin/strip +%{_prefix}/%{mingw32_target}/lib/ldscripts + +%files -n mingw64-binutils +%{_bindir}/%{mingw64_target}-addr2line +%{_bindir}/%{mingw64_target}-ar +%{_bindir}/%{mingw64_target}-as +%{_bindir}/%{mingw64_target}-c++filt +%{_bindir}/%{mingw64_target}-dlltool +%{_bindir}/%{mingw64_target}-dllwrap +%{_bindir}/%{mingw64_target}-elfedit +%{_bindir}/%{mingw64_target}-gprof +%{_bindir}/%{mingw64_target}-ld +%{_bindir}/%{mingw64_target}-ld.bfd +%{_bindir}/%{mingw64_target}-nm +%{_bindir}/%{mingw64_target}-objcopy +%{_bindir}/%{mingw64_target}-objdump +%{_bindir}/%{mingw64_target}-ranlib +%{_bindir}/%{mingw64_target}-readelf +%{_bindir}/%{mingw64_target}-size +%{_bindir}/%{mingw64_target}-strings +%{_bindir}/%{mingw64_target}-strip +%{_bindir}/%{mingw64_target}-windmc +%{_bindir}/%{mingw64_target}-windres +%{_prefix}/%{mingw64_target}/bin/ar +%{_prefix}/%{mingw64_target}/bin/as +%{_prefix}/%{mingw64_target}/bin/dlltool +%{_prefix}/%{mingw64_target}/bin/ld +%{_prefix}/%{mingw64_target}/bin/ld.bfd +%{_prefix}/%{mingw64_target}/bin/nm +%{_prefix}/%{mingw64_target}/bin/objcopy +%{_prefix}/%{mingw64_target}/bin/objdump +%{_prefix}/%{mingw64_target}/bin/ranlib +%{_prefix}/%{mingw64_target}/bin/readelf +%{_prefix}/%{mingw64_target}/bin/strip +%{_prefix}/%{mingw64_target}/lib/ldscripts + +%files -n ucrt64-binutils +%{_bindir}/%{ucrt64_target}-addr2line +%{_bindir}/%{ucrt64_target}-ar +%{_bindir}/%{ucrt64_target}-as +%{_bindir}/%{ucrt64_target}-c++filt +%{_bindir}/%{ucrt64_target}-dlltool +%{_bindir}/%{ucrt64_target}-dllwrap +%{_bindir}/%{ucrt64_target}-elfedit +%{_bindir}/%{ucrt64_target}-gprof +%{_bindir}/%{ucrt64_target}-ld +%{_bindir}/%{ucrt64_target}-ld.bfd +%{_bindir}/%{ucrt64_target}-nm +%{_bindir}/%{ucrt64_target}-objcopy +%{_bindir}/%{ucrt64_target}-objdump +%{_bindir}/%{ucrt64_target}-ranlib +%{_bindir}/%{ucrt64_target}-readelf +%{_bindir}/%{ucrt64_target}-size +%{_bindir}/%{ucrt64_target}-strings +%{_bindir}/%{ucrt64_target}-strip +%{_bindir}/%{ucrt64_target}-windmc +%{_bindir}/%{ucrt64_target}-windres +%{_prefix}/%{ucrt64_target}/bin/ar +%{_prefix}/%{ucrt64_target}/bin/as +%{_prefix}/%{ucrt64_target}/bin/dlltool +%{_prefix}/%{ucrt64_target}/bin/ld +%{_prefix}/%{ucrt64_target}/bin/ld.bfd +%{_prefix}/%{ucrt64_target}/bin/nm +%{_prefix}/%{ucrt64_target}/bin/objcopy +%{_prefix}/%{ucrt64_target}/bin/objdump +%{_prefix}/%{ucrt64_target}/bin/ranlib +%{_prefix}/%{ucrt64_target}/bin/readelf +%{_prefix}/%{ucrt64_target}/bin/strip +%{_prefix}/%{ucrt64_target}/lib/ldscripts + + +%changelog +* Fri Oct 25 2024 MSVSphere Packaging Team - 2.41-4 +- Rebuilt for MSVSphere 10 + +* Mon Jun 24 2024 Troy Dawson - 2.41-4 +- Bump release for June 2024 mass rebuild + +* Thu Jan 25 2024 Fedora Release Engineering - 2.41-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 2.41-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Oct 17 2023 Sandro Mani - 2.41-1 +- Update to 2.41 + +* Thu Jul 20 2023 Fedora Release Engineering - 2.40-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jun 14 2023 Sandro Mani - 2.40-3 +- Backport fix for Backport fix for + https://sourceware.org/bugzilla/show_bug.cgi?id=30079 + +* Fri Apr 14 2023 Sandro Mani - 2.40-2 +- Backport fix for CVE-2023-1972 + +* Thu Mar 09 2023 Sandro Mani - 2.40-1 +- Update to 2.40 + +* Tue Mar 07 2023 Sandro Mani - 2.39-5 +- Backport patch for CVE-2023-25587 + +* Thu Jan 19 2023 Fedora Release Engineering - 2.39-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Jan 03 2023 Sandro Mani - 2.39-3 +- Backport patch for CVE-2022-4285 + +* Sun Oct 30 2022 Sandro Mani - 2.39-2 +- Backport patch for CVE-2022-38533 + +* Tue Aug 16 2022 Sandro Mani - 2.39-1 +- Update to 2.39 + +* Thu Jul 21 2022 Fedora Release Engineering - 2.38-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Apr 26 2022 Sandro Mani - 2.38-2 +- Backport proposed fix for binutils #29006 + +* Fri Mar 11 2022 Sandro Mani - 2.38-1 +- Update to 2.38 + +* Wed Feb 23 2022 Marc-AndrĂ© Lureau - 2.37-5 +- Add ucrt64 target. Related to rhbz#2055254. + +* Thu Jan 20 2022 Fedora Release Engineering - 2.37-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sat Dec 18 2021 Sandro Mani - 2.37-3 +- Backport fix for CVE-2021-45078 + +* Thu Aug 12 2021 Sandro Mani - 2.37-2 +- Drop man pages + +* Sat Jul 24 2021 Sandro Mani - 2.37-1 +- Update to 2.37 + +* Sat Jul 24 2021 Sandro Mani - 2.36.1-3 +- Backport fix for "relocation truncated to fit" errors + +* Thu Jul 22 2021 Fedora Release Engineering - 2.36.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sat Feb 13 2021 Sandro Mani - 2.36.1-1 +- Update to 2.36.1 + +* Thu Jan 28 2021 Richard W.M. Jones - 2.34-7 +- Backport fixes for CVE-2021-20197. +- Bump and rebuild for s390. + +* Tue Jan 26 2021 Fedora Release Engineering - 2.34-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Dec 18 2020 Sandro Mani - 2.34-4 +- Backport patches for CVE-2020-16592, CVE-2020-16598 + +* Wed Jul 29 2020 Sandro Mani - 2.34-3 +- Fix ld --version output + +* Tue Jul 28 2020 Fedora Release Engineering - 2.34-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 20 2020 Jeff Law - 2.34.0-2 +- Fix configure tests compromised by LTO + +* Fri Jun 19 2020 Sandro Mani - 2.34.0-1 +- Update to 2.34.0 +- Modernize spec + +* Wed Jan 29 2020 Fedora Release Engineering - 2.32-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Nov 19 2019 Sandro Mani - 2.32-6 +- Add binutils_24267.patch +- Drop non-relevant patches from native binutils package + +* Tue Aug 13 2019 Fabiano FidĂȘncio - 3.32-5 +- Backport all patches from native binutils package, rhbz#1740709 + +* Wed Aug 07 2019 Sandro Mani - 2.32-4 +- Backport patch to fix "too many open files" when linking libLLVM.dll + +* Thu Jul 25 2019 Fedora Release Engineering - 2.32-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue May 07 2019 Sandro Mani - 2.32-1 +- Update to 2.32 + +* Fri Feb 01 2019 Fedora Release Engineering - 2.30-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Aug 22 2018 Sandro Mani - 2.30-5 +- Refresh patch for binutils bug #23061 + +* Wed Aug 08 2018 Sandro Mani - 2.30-4 +- Backport patch for binutils bug #23061 + +* Fri Jul 13 2018 Fedora Release Engineering - 2.30-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Jun 14 2018 Sandro Mani - 2.30-2 +- Backport patch for binutils bug #22762 + +* Thu Jun 14 2018 Sandro Mani - 2.30-1 +- Update to 2.30 + +* Thu Feb 08 2018 Fedora Release Engineering - 2.29.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sun Oct 08 2017 Kalev Lember - 2.29.1-1 +- Update to 2.29.1 + +* Tue Sep 19 2017 Sandro Mani - 2.29-4 +- Rebuild for mingw-filesystem (for %%mingw_nm macro) + +* Fri Aug 25 2017 Sandro Mani - 2.29-3 +- Also build multilib version of nm + +* Thu Aug 03 2017 Fedora Release Engineering - 2.29-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Kalev Lember - 2.29-1 +- Update to 2.29 + +* Mon Mar 06 2017 Kalev Lember - 2.28-1 +- Update to 2.28 + +* Fri Feb 10 2017 Fedora Release Engineering - 2.27-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Aug 10 2016 Kalev Lember - 2.27-1 +- Update to 2.27 + +* Tue May 10 2016 Kalev Lember - 2.26-1 +- Update to 2.26 + +* Thu Feb 04 2016 Fedora Release Engineering - 2.25-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 2.25-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue Dec 23 2014 Erik van Pienbroek - 2.25-1 +- Update to 2.25 + +* Tue Dec 23 2014 Erik van Pienbroek - 2.24-5 +- Fix CVE-2014-8501 (RHBZ #1162578 #1162583) +- Fix CVE-2014-8502 (RHBZ #1162602) +- Fix CVE-2014-8503 (RHBZ #1162612) +- Fix CVE-2014-8504 (RHBZ #1162626) +- Fix CVE-2014-8737 (RHBZ #1162660) +- Fix CVE-2014-8738 (RHBZ #1162673) + +* Sun Aug 17 2014 Fedora Release Engineering - 2.24-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 2.24-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri May 30 2014 Erik van Pienbroek - 2.24-2 +- Fix FTBFS against gcc 4.9 + +* Sat Jan 11 2014 Erik van Pienbroek - 2.24-1 +- Update to 2.24 + +* Sat Aug 03 2013 Fedora Release Engineering - 2.23.52.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Apr 3 2013 Erik van Pienbroek - 2.23.52.0.1-1 +- Update to 2.23.52.0.1 +- Fixes FTBFS against latest texinfo +- Resolve build failure on PPC + +* Thu Feb 14 2013 Fedora Release Engineering - 2.23.51.0.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Tue Jan 22 2013 Erik van Pienbroek - 2.23.51.0.5-3 +- Backported patch to fix 'unexpected version string length' error in windres (RHBZ #902960) + +* Tue Nov 27 2012 Erik van Pienbroek - 2.23.51.0.5-2 +- Added BR: zlib-devel to enable support for compressed debug sections + +* Wed Nov 21 2012 Erik van Pienbroek - 2.23.51.0.5-1 +- Update to 2.23.51.0.5 release + +* Mon Oct 15 2012 Jon Ciesla - 2.22.52.0.4-2 +- Provides: bundled(libiberty) + +* Wed Jul 18 2012 Erik van Pienbroek - 2.22.52.0.4-1 +- Update to 2.22.52.0.4 release + +* Sat Jun 2 2012 Erik van Pienbroek - 2.22.52.0.3-1 +- Update to 2.22.52.0.3 release + +* Sun Apr 8 2012 Erik van Pienbroek - 2.22.52-4 +- Cleaned up unneeded %%global tags + +* Tue Mar 6 2012 Erik van Pienbroek - 2.22.52-3 +- Made the package compliant with the new MinGW packaging guidelines +- Added win64 support +- Added a mingw-binutils-generic package containing toolchain + utilities which can be used by both the win32 and win64 toolchains +- Enable the testsuite +- Package the license +- Fix source URL + +* Tue Mar 6 2012 Erik van Pienbroek - 2.22.52-2 +- Renamed the source package to mingw-binutils (RHBZ #673786) +- Use mingw macros without leading underscore + +* Sat Feb 25 2012 Erik van Pienbroek - 2.22.52-1 +- Update to 2.22.52 20120225 snapshot +- Bump the BR/R: mingw32-filesystem to >= 95 +- Rebuild using the i686-w64-mingw32 triplet +- Dropped some obsolete configure arguments +- Temporary provide mingw-strip, mingw-objdump and mingw-objcopy + in preparation for win32+win64 support + +* Tue Jan 10 2012 Erik van Pienbroek - 2.22-1 +- Update to 2.22 +- Dropped unneeded RPM tags +- Use parallel make + +* Tue May 10 2011 Kalev Lember - 2.21-2 +- Default to runtime pseudo reloc v2 now that mingw32-runtime 3.18 is in + +* Thu Mar 17 2011 Kalev Lember - 2.21-1 +- Update to 2.21 +- Added a patch to use runtime pseudo reloc v1 by default as the version of + mingw32-runtime we have does not support v2. +- Don't own the /usr/i686-pc-mingw32/bin/ directory + +* Tue Feb 08 2011 Fedora Release Engineering - 2.20.51.0.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Sep 7 2010 Richard W.M. Jones - 2.20.51.0.10-1 +- Synchronize with Fedora native version (2.20.51.0.10). +- Note however that we are not using any Fedora patches. + +* Thu May 13 2010 Kalev Lember - 2.20.1-1 +- Update to 2.20.1 + +* Wed Sep 16 2009 Kalev Lember - 2.19.51.0.14-1 +- Update to 2.19.51.0.14 + +* Sat Jul 25 2009 Fedora Release Engineering - 2.19.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Mar 10 2009 Richard W.M. Jones - 2.19.1-4 +- Switch to using upstream (GNU) binutils 2.19.1. It's exactly the + same as the MinGW version now. + +* Wed Feb 25 2009 Fedora Release Engineering - 2.19.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Feb 20 2009 Richard W.M. Jones - 2.19.1-2 +- Rebuild for mingw32-gcc 4.4 + +* Tue Feb 10 2009 Richard W.M. Jones - 2.19.1-1 +- New upstream version 2.19.1. + +* Mon Dec 15 2008 Richard W.M. Jones - 2.19-1 +- New upstream version 2.19. + +* Sat Nov 29 2008 Richard W.M. Jones - 2.18.50_20080109_2-10 +- Must runtime-require mingw32-filesystem. + +* Fri Nov 21 2008 Levente Farkas - 2.18.50_20080109_2-9 +- BR mingw32-filesystem >= 38 + +* Wed Sep 24 2008 Richard W.M. Jones - 2.18.50_20080109_2-8 +- Rename mingw -> mingw32. +- BR mingw32-filesystem >= 26. + +* Thu Sep 4 2008 Richard W.M. Jones - 2.18.50_20080109_2-7 +- Use mingw-filesystem. + +* Mon Jul 7 2008 Richard W.M. Jones - 2.18.50_20080109_2-5 +- Initial RPM release, largely based on earlier work from several sources.