Build with LTO
Resolves: rhbz#2188418
This commit is contained in:
parent
47aa2a71fc
commit
5df215a555
19
clang.spec
19
clang.spec
@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
Name: %pkg_name
|
Name: %pkg_name
|
||||||
Version: %{clang_version}%{?rc_ver:~rc%{rc_ver}}
|
Version: %{clang_version}%{?rc_ver:~rc%{rc_ver}}
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
Summary: A C language family front-end for LLVM
|
Summary: A C language family front-end for LLVM
|
||||||
|
|
||||||
License: Apache-2.0 WITH LLVM-exception OR NCSA
|
License: Apache-2.0 WITH LLVM-exception OR NCSA
|
||||||
@ -324,14 +324,17 @@ rm test/CodeGen/profile-filter.c
|
|||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
%define _lto_cflags %{nil}
|
|
||||||
|
|
||||||
%if 0%{?__isa_bits} == 64
|
%if 0%{?__isa_bits} == 64
|
||||||
sed -i 's/\@FEDORA_LLVM_LIB_SUFFIX\@/64/g' test/lit.cfg.py
|
sed -i 's/\@FEDORA_LLVM_LIB_SUFFIX\@/64/g' test/lit.cfg.py
|
||||||
%else
|
%else
|
||||||
sed -i 's/\@FEDORA_LLVM_LIB_SUFFIX\@//g' test/lit.cfg.py
|
sed -i 's/\@FEDORA_LLVM_LIB_SUFFIX\@//g' test/lit.cfg.py
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%ifarch %ix86
|
||||||
|
# Linking libclang.so goes out of memory even with ThinLTO and a single link job.
|
||||||
|
%global _lto_cflags %nil
|
||||||
|
%endif
|
||||||
|
|
||||||
%ifarch s390 s390x %{arm} aarch64 %ix86 ppc64le
|
%ifarch s390 s390x %{arm} aarch64 %ix86 ppc64le
|
||||||
# Decrease debuginfo verbosity to reduce memory consumption during final library linking
|
# Decrease debuginfo verbosity to reduce memory consumption during final library linking
|
||||||
%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
|
%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
|
||||||
@ -350,6 +353,9 @@ mv ../cmake-%{compat_ver}.src ../cmake
|
|||||||
|
|
||||||
%global targets_to_build "X86;AMDGPU;PowerPC;NVPTX;SystemZ;AArch64;ARM;Mips;BPF;WebAssembly"
|
%global targets_to_build "X86;AMDGPU;PowerPC;NVPTX;SystemZ;AArch64;ARM;Mips;BPF;WebAssembly"
|
||||||
|
|
||||||
|
# Disable LTO when building the compat libraries. This would perform LTO across all of LLVM and
|
||||||
|
# Clang, and fails due to "too many open files". We don't particularly care about the performance
|
||||||
|
# of these compat libraries.
|
||||||
%cmake -S ../llvm-%{compat_ver}.src -B ../clang-compat-libs -G Ninja \
|
%cmake -S ../llvm-%{compat_ver}.src -B ../clang-compat-libs -G Ninja \
|
||||||
-DLLVM_ENABLE_PROJECTS=clang \
|
-DLLVM_ENABLE_PROJECTS=clang \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
@ -358,7 +364,9 @@ mv ../cmake-%{compat_ver}.src ../cmake
|
|||||||
-DLLVM_ENABLE_RTTI:BOOL=ON \
|
-DLLVM_ENABLE_RTTI:BOOL=ON \
|
||||||
-DCMAKE_SKIP_RPATH:BOOL=ON \
|
-DCMAKE_SKIP_RPATH:BOOL=ON \
|
||||||
-DLLVM_TARGETS_TO_BUILD=%{targets_to_build} \
|
-DLLVM_TARGETS_TO_BUILD=%{targets_to_build} \
|
||||||
-DLLVM_INCLUDE_BENCHMARKS=OFF
|
-DLLVM_INCLUDE_BENCHMARKS=OFF \
|
||||||
|
-DCMAKE_C_FLAGS_RELEASE="-fno-lto" \
|
||||||
|
-DCMAKE_CXX_FLAGS_RELEASE="-fno-lto"
|
||||||
|
|
||||||
%ninja_build -C ../clang-compat-libs libclang.so
|
%ninja_build -C ../clang-compat-libs libclang.so
|
||||||
%ninja_build -C ../clang-compat-libs libclang-cpp.so
|
%ninja_build -C ../clang-compat-libs libclang-cpp.so
|
||||||
@ -678,6 +686,9 @@ mv ./libclang-cpp.so.%{compat_maj_ver} "$compat_lib"
|
|||||||
|
|
||||||
%endif
|
%endif
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jun 02 2023 Nikita Popov <npopov@redhat.com> - 16.0.1-4
|
||||||
|
- Build with LTO
|
||||||
|
|
||||||
* Thu May 25 2023 Nikita Popov <npopov@redhat.com> - 16.0.1-3
|
* Thu May 25 2023 Nikita Popov <npopov@redhat.com> - 16.0.1-3
|
||||||
- Use ld from gcc-toolset
|
- Use ld from gcc-toolset
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user