NVR Bump to allow rebuilding with GTS-14 gcc.
Resolves: RHEL-53516
This commit is contained in:
parent
efbb91e081
commit
764e9a6c82
162
binutils.spec
162
binutils.spec
@ -9,7 +9,7 @@ BuildRequires: scl-utils-build
|
||||
Summary: A GNU collection of binary utilities
|
||||
Name: %{?scl_prefix}binutils
|
||||
Version: 2.41
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
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 AND LGPL-2.1-or-later AND LGPL-2.0-or-later
|
||||
URL: https://sourceware.org/binutils
|
||||
|
||||
@ -154,6 +154,13 @@ URL: https://sourceware.org/binutils
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
# Bootstrapping: Set this to 1 to build annobin with the system gcc.
|
||||
# Then once GTS-gcc is built and in the buildroot, reset this variable
|
||||
# to 0, bump the NVR and rebuild GTS-binutils.
|
||||
%define bootstrapping 0
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
# Note - the Linux Kernel binutils releases are too unstable and contain
|
||||
# too many controversial patches so we stick with the official FSF version
|
||||
# instead.
|
||||
@ -359,77 +366,116 @@ BuildRequires: autoconf, automake, perl, sed, coreutils, make
|
||||
BuildRequires: clang compiler-rt
|
||||
%else
|
||||
|
||||
# XXX Bootstrapping - build with the system gcc first.
|
||||
|
||||
# Use the GTS version of gcc to build the binutils so that the built static libraries
|
||||
# (libfd.a, libopcodes.a libiberty.a libsframe.a) use the same LTO version as the one
|
||||
# that will be used by consumers of GTS binutils.
|
||||
# Note - during GTS bootstrap these have to be changed to the systemOS versions.
|
||||
# XXX BuildRequires: %%{?scl_prefix}gcc
|
||||
# XXX BuildRequires: %%{?scl_prefix}annobin-plugin-gcc
|
||||
# XXX BuildRequires: %%{?scl_prefix}gcc-c++
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
|
||||
# XXX %%define gcc_for_libraries %%{?_scl_root}/usr/bin/gcc
|
||||
# XXX %%define gxx_for_libraries %%{?_scl_root}/usr/bin/g++
|
||||
|
||||
%define gcc_for_libraries /usr/bin/gcc
|
||||
%define gxx_for_libraries /usr/bin/g++
|
||||
%if %{bootstrapping}
|
||||
# Note - during GTS bootstrap these have to use the system compiler.
|
||||
|
||||
# Note - during GTS bootstrap it may be necessary to build the binutils without
|
||||
# annobin annotations.
|
||||
# %%undefine _annotated_build
|
||||
|
||||
%define gcc_package gcc
|
||||
%define gxx_package gcc-c++
|
||||
|
||||
%define gcc_for_binutils /usr/bin/gcc
|
||||
%define gxx_for_binutils /usr/bin/g++
|
||||
|
||||
%else
|
||||
|
||||
# Use the GTS version of gcc to build the binutils so that the built static libraries
|
||||
# (libfd.a, libopcodes.a libiberty.a libsframe.a) use the same LTO version as the one
|
||||
# that will be used by consumers of GTS binutils.
|
||||
|
||||
%define gcc_package %{?scl_prefix}gcc
|
||||
%define gxx_package %{?scl_prefix}gcc-c++
|
||||
|
||||
BuildRequires: %{?scl_prefix}annobin-plugin-gcc
|
||||
|
||||
%define gcc_for_binutils %{_scl_root}/usr/bin/gcc
|
||||
%define gxx_for_binutils %{_scl_root}/usr/bin/g++
|
||||
|
||||
%endif
|
||||
|
||||
BuildRequires: %{gcc_package}
|
||||
BuildRequires: %{gxx_package}
|
||||
|
||||
%endif
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
%if %{with gold}
|
||||
# Gold needs bison in order to build gold/yyscript.c. The GOLD testsuite needs a static libc++
|
||||
BuildRequires: bison, m4, libstdc++-static
|
||||
|
||||
%if ! %{with clang}
|
||||
# XXX BuildRequires: %%{?scl_prefix}gcc-c++
|
||||
|
||||
%if %{bootstrapping}
|
||||
BuildRequires: gcc-c++
|
||||
%else
|
||||
BuildRequires: %{?scl_prefix}gcc-c++
|
||||
%endif
|
||||
|
||||
%endif
|
||||
%endif
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
%if %{without bootstrap}
|
||||
|
||||
BuildRequires: gettext, flex, jansson-devel
|
||||
|
||||
%if %{with systemzlib}
|
||||
BuildRequires: zlib-devel
|
||||
%endif
|
||||
|
||||
%endif
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
%if %{with docs}
|
||||
|
||||
BuildRequires: texinfo >= 4.0
|
||||
# BZ 920545: We need pod2man in order to build the manual pages.
|
||||
BuildRequires: /usr/bin/pod2man
|
||||
|
||||
%else
|
||||
|
||||
BuildRequires: findutils
|
||||
|
||||
%endif
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
%if %{with testsuite}
|
||||
|
||||
# Required for: ld-bootstrap/bootstrap.exp bootstrap with --static
|
||||
# It should not be required for: ld-elf/elf.exp static {preinit,init,fini} array
|
||||
%if %{with testsuite}
|
||||
# relro_test.sh uses dc which is part of the bc rpm, hence its inclusion here.
|
||||
# sharutils is needed so that we can uuencode the testsuite results.
|
||||
BuildRequires: dejagnu, glibc-static, sharutils, bc, libstdc++
|
||||
|
||||
%if %{with systemzlib}
|
||||
BuildRequires: zlib-devel
|
||||
%endif
|
||||
|
||||
%endif
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
%if %{with debuginfod}
|
||||
BuildRequires: elfutils-debuginfod-client-devel
|
||||
%endif
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
%{?scl:Requires:%scl_runtime}
|
||||
|
||||
# XXX %%define alternatives_cmd %%{_sbindir}/alternatives
|
||||
# XXX %%define alternatives_cmdline %%{alternatives_cmd}
|
||||
%if %{bootstrapping}
|
||||
%define alternatives_cmd %{_sbindir}/alternatives
|
||||
%define alternatives_cmdline %{alternatives_cmd}
|
||||
%else
|
||||
%define alternatives_cmd %{!?scl:%{_sbindir}}%{?scl:%{_root_sbindir}}/alternatives
|
||||
%define alternatives_cmdline %{alternatives_cmd}%{?scl: --altdir %{_sysconfdir}/alternatives --admindir %{_scl_root}/var/lib/alternatives}
|
||||
%endif
|
||||
|
||||
Requires(post): %{alternatives_cmd}
|
||||
Requires(preun): %{alternatives_cmd}
|
||||
@ -553,8 +599,8 @@ Requires: zlib-devel
|
||||
%endif
|
||||
|
||||
BuildRequires: autoconf automake perl sed coreutils make findutils
|
||||
BuildRequires: %{?scl_prefix}gcc
|
||||
BuildRequires: %{?scl_prefix}gcc-c++
|
||||
BuildRequires: %{gcc_package}
|
||||
BuildRequires: %{gxx_package}
|
||||
|
||||
ExcludeArch: aarch64-linux-gnu aarch64-redhat-linux
|
||||
|
||||
@ -572,8 +618,8 @@ Requires: zlib-devel
|
||||
%endif
|
||||
|
||||
BuildRequires: autoconf automake perl sed coreutils make findutils
|
||||
BuildRequires: %{?scl_prefix}gcc
|
||||
BuildRequires: %{?scl_prefix}gcc-c++
|
||||
BuildRequires: %{gcc_package}
|
||||
BuildRequires: %{gxx_package}
|
||||
|
||||
ExcludeArch: ppc64le-linux-gnu ppc64le-redhat-linux
|
||||
|
||||
@ -591,8 +637,8 @@ Requires: zlib-devel
|
||||
%endif
|
||||
|
||||
BuildRequires: autoconf automake perl sed coreutils make findutils
|
||||
BuildRequires: %{?scl_prefix}gcc
|
||||
BuildRequires: %{?scl_prefix}gcc-c++
|
||||
BuildRequires: %{gcc_package}
|
||||
BuildRequires: %{gxx_package}
|
||||
|
||||
ExcludeArch: s390x-linux-gnu s390x-redhat-linux
|
||||
|
||||
@ -610,8 +656,8 @@ Requires: zlib-devel
|
||||
%endif
|
||||
|
||||
BuildRequires: autoconf automake perl sed coreutils make findutils
|
||||
BuildRequires: %{?scl_prefix}gcc
|
||||
BuildRequires: %{?scl_prefix}gcc-c++
|
||||
BuildRequires: %{gcc_package}
|
||||
BuildRequires: %{gxx_package}
|
||||
|
||||
ExcludeArch: x86_64-linux-gnu x86_64-redhat-linux i686-linux-gnu i686-redhat-linux
|
||||
|
||||
@ -876,8 +922,8 @@ run_target_configuration()
|
||||
else
|
||||
RARGS="--disable-shared"
|
||||
fi
|
||||
|
||||
../configure --target=$target $CARGS $SARGS $RARGS $TARGS || cat config.log
|
||||
|
||||
CC=%gcc_for_binutils CXX=%gxx_for_binutils ../configure --target=$target $CARGS $SARGS $RARGS $TARGS || cat config.log
|
||||
|
||||
popd
|
||||
}
|
||||
@ -894,10 +940,10 @@ build_target()
|
||||
|
||||
%if %{with docs}
|
||||
# Because of parallel building, info has to be made after all.
|
||||
%make_build %{_smp_mflags} tooldir=%{_prefix} all
|
||||
%make_build %{_smp_mflags} tooldir=%{_prefix} info
|
||||
%make_build %{_smp_mflags} tooldir=%{_prefix} CC=%gcc_for_binutils CXX=%gxx_for_binutils all
|
||||
%make_build %{_smp_mflags} tooldir=%{_prefix} CC=%gcc_for_binutils CXX=%gxx_for_binutils info
|
||||
%else
|
||||
%make_build %{_smp_mflags} tooldir=%{_prefix} MAKEINFO=true all
|
||||
%make_build %{_smp_mflags} tooldir=%{_prefix} CC=%gcc_for_binutils CXX=%gxx_for_binutils MAKEINFO=true all
|
||||
%endif
|
||||
|
||||
popd
|
||||
@ -935,14 +981,14 @@ run_tests()
|
||||
# Run the tests and accumulate the logs - but ignore failures...
|
||||
|
||||
if test x$native == x1 ; then
|
||||
make -k check-gas check-binutils check-ld < /dev/null || :
|
||||
make -k CC=%gcc_for_binutils CXX=%gxx_for_binutils check-gas check-binutils check-ld < /dev/null || :
|
||||
%if %{with gold}
|
||||
# The GOLD testsuite always returns an error code, even if no tests fail.
|
||||
make -k check-gold < /dev/null || :
|
||||
make -k CC=%gcc_for_binutils CXX=%gxx_for_binutils check-gold < /dev/null || :
|
||||
%endif
|
||||
else
|
||||
# Do not try running linking tests for the cross-binutils.
|
||||
make -k check-gas check-binutils < /dev/null || :
|
||||
make -k CC=%gcc_for_binutils CXX=%gxx_for_binutils check-gas check-binutils < /dev/null || :
|
||||
fi
|
||||
|
||||
for f in {gas/testsuite/gas,ld/ld,binutils/binutils}.sum
|
||||
@ -985,11 +1031,11 @@ run_tests()
|
||||
# Run the tests and this time fail if there are any errors.
|
||||
|
||||
if test x$native == x1 ; then
|
||||
make -k check-gas check-binutils check-ld < /dev/null
|
||||
make -k CC=%gcc_for_binutils CXX=%gxx_for_binutils check-gas check-binutils check-ld < /dev/null
|
||||
# Ignore the gold tests - they always fail
|
||||
else
|
||||
# Do not try running linking tests for the cross-binutils.
|
||||
make -k check-gas check-binutils < /dev/null
|
||||
make -k CC=%gcc_for_binutils CXX=%gxx_for_binutils check-gas check-binutils < /dev/null
|
||||
fi
|
||||
|
||||
popd
|
||||
@ -1008,7 +1054,7 @@ run_tests()
|
||||
%define _with_cc_clang 1
|
||||
%endif
|
||||
|
||||
# Disable LTO on arm due to:
|
||||
# Disable LTO on Arm due to:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1918924
|
||||
%ifarch %{arm}
|
||||
%define enable_lto 0
|
||||
@ -1078,12 +1124,11 @@ install_binutils()
|
||||
if test x$native == x1 ; then
|
||||
|
||||
%if %{with docs}
|
||||
%make_install DESTDIR=%{buildroot}
|
||||
make prefix=%{buildroot}%{_prefix} infodir=$local_infodir install-info
|
||||
%make_install CC=%gcc_for_binutils CXX=%gxx_for_binutils DESTDIR=%{buildroot}
|
||||
make CC=%gcc_for_binutils CXX=%gxx_for_binutils prefix=%{buildroot}%{_prefix} infodir=$local_infodir install-info
|
||||
%else
|
||||
%make_install DESTDIR=%{buildroot} MAKEINFO=true
|
||||
%make_install CC=%gcc_for_binutils CXX=%gxx_for_binutils DESTDIR=%{buildroot} MAKEINFO=true
|
||||
%endif
|
||||
|
||||
# Rebuild the static libiaries with -fPIC.
|
||||
# It would be nice to build the static libraries with -fno-lto so that
|
||||
# they can be used by programs that are built with a different version
|
||||
@ -1091,23 +1136,23 @@ install_binutils()
|
||||
# warnings from annocheck.
|
||||
|
||||
# Future: Remove libiberty together with its header file, projects should bundle it.
|
||||
%make_build -s -C libiberty clean
|
||||
%make_build -s -C libiberty CC=%gcc_for_binutils CXX=%gxx_for_binutils clean
|
||||
%set_build_flags
|
||||
%make_build -s CFLAGS="-g -fPIC $RPM_OPT_FLAGS" -C libiberty
|
||||
%make_build -s CFLAGS="-g -fPIC $RPM_OPT_FLAGS" -C libiberty CC=%gcc_for_binutils CXX=%gxx_for_binutils
|
||||
|
||||
# Without the hidden visibility the 3rd party shared libraries would export
|
||||
# the bfd non-stable ABI.
|
||||
%make_build -s -C bfd clean
|
||||
%make_build -s -C bfd CC=%gcc_for_binutils CXX=%gxx_for_binutils clean
|
||||
%set_build_flags
|
||||
%make_build -s CFLAGS="-g -fPIC $RPM_OPT_FLAGS -fvisibility=hidden" -C bfd
|
||||
%make_build -s CFLAGS="-g -fPIC $RPM_OPT_FLAGS -fvisibility=hidden" -C bfd CC=%gcc_for_binutils CXX=%gxx_for_binutils
|
||||
|
||||
%make_build -s -C opcodes clean
|
||||
%make_build -s -C opcodes clean CC=%gcc_for_binutils CXX=%gxx_for_binutils
|
||||
%set_build_flags
|
||||
%make_build -s CFLAGS="-g -fPIC $RPM_OPT_FLAGS" -C opcodes
|
||||
%make_build -s CFLAGS="-g -fPIC $RPM_OPT_FLAGS" -C opcodes CC=%gcc_for_binutils CXX=%gxx_for_binutils
|
||||
|
||||
%make_build -s -C libsframe clean
|
||||
%make_build -s -C libsframe clean CC=%gcc_for_binutils CXX=%gxx_for_binutils
|
||||
%set_build_flags
|
||||
%make_build -s CFLAGS="-g -fPIC $RPM_OPT_FLAGS" -C libsframe
|
||||
%make_build -s CFLAGS="-g -fPIC $RPM_OPT_FLAGS" -C libsframe CC=%gcc_for_binutils CXX=%gxx_for_binutils
|
||||
|
||||
install -m 644 bfd/.libs/libbfd.a $local_libdir
|
||||
install -m 644 libiberty/libiberty.a $local_libdir
|
||||
@ -1184,7 +1229,7 @@ EOH
|
||||
|
||||
local target_root=$local_root/$target
|
||||
|
||||
%make_install DESTDIR=%{buildroot} MAKEINFO=true
|
||||
%make_install DESTDIR=%{buildroot} MAKEINFO=true CC=%gcc_for_binutils CXX=%gxx_for_binutils
|
||||
fi
|
||||
|
||||
# This one comes from gcc
|
||||
@ -1268,7 +1313,7 @@ exit 0
|
||||
# RHEL-22818: Restire the SELinux context of the gprofng libraries.
|
||||
restorecon -R %{_libdir}
|
||||
# And the rc file.
|
||||
restorecon /opt/rh/gcc-toolset-14/root/usr/etc/gprofng.rc
|
||||
restorecon %{_scl_root}/usr/etc/gprofng.rc
|
||||
exit 0
|
||||
%endif
|
||||
|
||||
@ -1413,7 +1458,7 @@ exit 0
|
||||
%dir %{_libdir}/gprofng
|
||||
%{_libdir}/gprofng/*
|
||||
# FIXME: Work out the correct way to specify this file:
|
||||
/opt/rh/gcc-toolset-14/root/etc/gprofng.rc
|
||||
%{_scl_root}/etc/gprofng.rc
|
||||
%endif
|
||||
|
||||
%if %{with crossbuilds}
|
||||
@ -1446,5 +1491,8 @@ exit 0
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
%changelog
|
||||
* Fri Aug 16 2024 Nick Clifton <nickc@redhat.com> - 2.41-2
|
||||
- NVR Bump to allow rebuilding with GTS-14 gcc. (RHEL-53516)
|
||||
|
||||
* Fri Apr 26 2024 Nick Clifton <nickc@redhat.com> - 2.41-1
|
||||
- Initial import of upstream 2.41 release with patches from Fedora 40.
|
||||
|
Loading…
Reference in New Issue
Block a user