diff --git a/SOURCES/binutils-ppc64le-note-merge.patch b/SOURCES/binutils-ppc64le-note-merge.patch new file mode 100644 index 0000000..3619c55 --- /dev/null +++ b/SOURCES/binutils-ppc64le-note-merge.patch @@ -0,0 +1,14 @@ +--- binutils.orig/binutils/objcopy.c 2021-02-18 11:35:48.062479490 +0000 ++++ binutils-2.30/binutils/objcopy.c 2021-02-18 11:36:52.207071148 +0000 +@@ -2224,6 +2224,11 @@ merge_gnu_build_notes (bfd * ab + goto done; + } + ++ if (start > end) ++ /* This can happen with PPC64LE binaries where empty notes are ++ encoded as start = end + 4. */ ++ start = end; ++ + if (is_open_note (pnote)) + { + if (start) diff --git a/SPECS/binutils.spec b/SPECS/binutils.spec index 819376f..011f86d 100644 --- a/SPECS/binutils.spec +++ b/SPECS/binutils.spec @@ -26,20 +26,24 @@ # [etc] %if 0%{!?binutils_target:1} + %define binutils_target %{_target_platform} -%define isnative 1 +%define isnative 1 %define enable_shared 1 + %else -%define cross %{binutils_target}- + +%define cross %{binutils_target}- %define name_cross -%{binutils_target} -%define isnative 0 +%define isnative 0 %define enable_shared 0 + %endif Summary: A GNU collection of binary utilities Name: binutils%{?name_cross}%{?_with_debug:-debug} Version: 2.30 -Release: 90%{?dist} +Release: 92%{?dist} License: GPLv3+ URL: https://sourceware.org/binutils @@ -545,6 +549,10 @@ Patch82: binutils-aarch64-properties.patch # Lifetime: Fixed in 2.36 Patch83: binutils-common-sym-versioning.patch +# Purpose: Fix merging empty ppc64le notes. +# Lifetime: Fixed in 2.37 +Patch84: binutils-ppc64le-note-merge.patch + #---------------------------------------------------------------------------- Provides: bundled(libiberty) @@ -757,6 +765,7 @@ using libelf instead of BFD. %patch81 -p1 %patch82 -p1 %patch83 -p1 +%patch84 -p1 # We cannot run autotools as there is an exact requirement of autoconf-2.59. # FIXME - this is no longer true. Maybe try reinstating autotool use ? @@ -837,9 +846,20 @@ case %{binutils_target} in ppc64le*) ;; esac -case %{binutils_target} in x86_64*|i?86*|arm*|aarch64*) - CARGS="$CARGS --enable-targets=x86_64-pep" - ;; +# BZ 1920373: Enable PEP support for all targets as the PERF package's +# testsuite expects to be able to read PE format files ragrdless of +# the host's architecture. +case %{binutils_target} in + s390*) + # FIXME: For some unknown reason settting --enable-targets=x86_64-pep + # here breaks the building of GOLD. I have no idea why, and not enough + # knowledge of how gold is configured to fix quickly. So instead I have + # found that supporting "all" targets works. + CARGS="$CARGS --enable-targets=all" + ;; + *) + CARGS="$CARGS --enable-targets=x86_64-pep" + ;; esac %if %{default_relro} @@ -1051,6 +1071,8 @@ rm -rf %{buildroot}%{_infodir} #rm -rf {buildroot}{_prefix}/share/locale #rm -rf {buildroot}{_mandir} rm -rf %{buildroot}%{_libdir}/libiberty.a +# Remove libtool files, which reference the .so libs +rm -f %{buildroot}%{_libdir}/lib{bfd,opcodes}.la %endif # This one comes from gcc @@ -1180,6 +1202,7 @@ exit 0 %if %{with docs} %{_infodir}/[^b]*info* %{_infodir}/binutils*info* +%{_infodir}/bfd*info* %endif %files devel @@ -1188,15 +1211,17 @@ exit 0 %{_libdir}/libbfd.so %{_libdir}/libopcodes.so -%if %{with docs} -%{_infodir}/bfd*info* -%endif - %endif #---------------------------------------------------------------------------- %changelog -* Mon Jan 1 2021 Nick Clifton - 2.30-90 +* Thu Feb 18 2021 Nick Clifton - 2.30-92 +- Fix merging ppc64le notes. (#1928936) + +* Tue Feb 02 2021 Nick Clifton - 2.30-91 +- Enable PEP support for all targets. (#1920373) + +* Mon Jan 11 2021 Nick Clifton - 2.30-90 - NVR bump in order to regain access to gating test results. * Wed Dec 09 2020 Nick Clifton - 2.30-89