Disable building static libraries with LTO.
Resolves: RHEL-18800
This commit is contained in:
parent
3cd6cf3f9a
commit
a7b08ac0bc
@ -9,7 +9,7 @@ BuildRequires: scl-utils-build
|
|||||||
Summary: A GNU collection of binary utilities
|
Summary: A GNU collection of binary utilities
|
||||||
Name: %{?scl_prefix}binutils
|
Name: %{?scl_prefix}binutils
|
||||||
Version: 2.40
|
Version: 2.40
|
||||||
Release: 15%{?dist}
|
Release: 16%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
URL: https://sourceware.org/binutils
|
URL: https://sourceware.org/binutils
|
||||||
|
|
||||||
@ -958,29 +958,35 @@ install_binutils()
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Rebuild the static libiaries with -fPIC.
|
# 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
|
# Also disable LTO. This is because older versions of GCC can crash if
|
||||||
# of GCC from the one used to build the libraries, but this will trigger
|
# asked to parse the LTO information generated by newer versions.
|
||||||
# warnings from annocheck.
|
# cf: https://issues.redhat.com/browse/RHEL-18800
|
||||||
|
#
|
||||||
|
# Note - disabling LTO does mean that the binutils will be flagged by
|
||||||
|
# annocheck as being non-compliant. There is not a lot that can be
|
||||||
|
# done about this. :-(
|
||||||
|
|
||||||
|
local static_cflags="-g $RPM_OPT_FLAGS -fPIC -fno-lto"
|
||||||
|
|
||||||
# Future: Remove libiberty together with its header file, projects should bundle it.
|
# Future: Remove libiberty together with its header file, projects should bundle it.
|
||||||
%make_build -s -C libiberty clean
|
%make_build -s -C libiberty clean
|
||||||
%set_build_flags
|
%set_build_flags
|
||||||
%make_build -s CFLAGS="-g -fPIC $RPM_OPT_FLAGS" -C libiberty
|
%make_build -s -C libiberty CFLAGS="$static_cflags"
|
||||||
|
|
||||||
# Without the hidden visibility the 3rd party shared libraries would export
|
# Without the hidden visibility the 3rd party shared libraries would export
|
||||||
# the bfd non-stable ABI.
|
# the bfd non-stable ABI.
|
||||||
%make_build -s -C bfd clean
|
%make_build -s -C bfd clean
|
||||||
%set_build_flags
|
%set_build_flags
|
||||||
%make_build -s CFLAGS="-g -fPIC $RPM_OPT_FLAGS -fvisibility=hidden" LD=%gcc_for_libraries -C bfd
|
%make_build -s -C bfd CFLAGS="$static_cflags -fvisibility=hidden" LD=%gcc_for_libraries
|
||||||
|
|
||||||
%make_build -s -C opcodes clean
|
%make_build -s -C opcodes clean
|
||||||
%set_build_flags
|
%set_build_flags
|
||||||
%make_build -s CFLAGS="-g -fPIC $RPM_OPT_FLAGS" -C opcodes
|
%make_build -s -C opcodes CFLAGS="$static_cflags"
|
||||||
|
|
||||||
%make_build -s -C libsframe clean
|
%make_build -s -C libsframe clean
|
||||||
%set_build_flags
|
%set_build_flags
|
||||||
%make_build -s CFLAGS="-g -fPIC $RPM_OPT_FLAGS" -C libsframe
|
%make_build -s -C libsframe CFLAGS="$static_cflags"
|
||||||
|
|
||||||
install -m 644 bfd/libbfd.a $local_libdir
|
install -m 644 bfd/libbfd.a $local_libdir
|
||||||
install -m 644 libiberty/libiberty.a $local_libdir
|
install -m 644 libiberty/libiberty.a $local_libdir
|
||||||
@ -1279,6 +1285,9 @@ exit 0
|
|||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Dec 12 2023 Nick Clifton <nickc@redhat.com> - 2.40-16
|
||||||
|
- Disable building static libraries with LTO. (RHEL-18800)
|
||||||
|
|
||||||
* Mon Sep 11 2023 Nick Clifton <nickc@redhat.com> - 2.40-15
|
* Mon Sep 11 2023 Nick Clifton <nickc@redhat.com> - 2.40-15
|
||||||
- Restore the SE context during the post install phase. (#2236729)
|
- Restore the SE context during the post install phase. (#2236729)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user