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