Fix compat build without tests and deduplicate BuildRequires

1. Set LLVM_INCLUDE_TESTS:BOOL=OFF in order to build clang without
   requiring googletest as we do not run the tests anyway.

2. Backport a patch from upstream that fixes the generation
   of *.exports.

3. Deduplicate a few BuildRequires entries.
This commit is contained in:
Tulio Magno Quites Machado Filho 2023-07-24 07:41:02 -03:00
parent 419d05e65c
commit fff5077f10
2 changed files with 53 additions and 9 deletions

View File

@ -0,0 +1,39 @@
From 96962d5512fbc6af0ada0f13e6be332c026529cb Mon Sep 17 00:00:00 2001
From: Petr Hosek <phosek@google.com>
Date: Fri, 9 Jun 2023 07:51:40 +0000
Subject: [PATCH] [clang] set python3 as required build dependency
The required HTMLLogger include file needs python3 to run
resource_bundle.py to bundle all the html/css/js resources. However, if
user sets -DLLVM_INCLUDE_TESTS=OFF, CMake will not find python3 and the
resource bundler will never be executed. This patch set the python3 as a
required build dependency to fix this problem.
Patch By: Avimitin
Differential Revision: https://reviews.llvm.org/D152418
---
clang/CMakeLists.txt | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt
index 8220a9dbfd4d..f7936d72e088 100644
--- a/clang/CMakeLists.txt
+++ b/clang/CMakeLists.txt
@@ -82,10 +82,10 @@ if(CLANG_BUILT_STANDALONE)
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} )
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} )
- if(LLVM_INCLUDE_TESTS)
- find_package(Python3 ${LLVM_MINIMUM_PYTHON_VERSION} REQUIRED
- COMPONENTS Interpreter)
+ find_package(Python3 ${LLVM_MINIMUM_PYTHON_VERSION} REQUIRED
+ COMPONENTS Interpreter)
+ if(LLVM_INCLUDE_TESTS)
# Check prebuilt llvm/utils.
if(EXISTS ${LLVM_TOOLS_BINARY_DIR}/FileCheck${CMAKE_EXECUTABLE_SUFFIX}
AND EXISTS ${LLVM_TOOLS_BINARY_DIR}/count${CMAKE_EXECUTABLE_SUFFIX}
--
2.41.0

View File

@ -73,6 +73,9 @@ Patch7: D141581.diff
# See https://reviews.llvm.org/D138472 # See https://reviews.llvm.org/D138472
Patch8: D138472.diff Patch8: D138472.diff
# Backport from LLVM 18.
Patch9: 0001-clang-set-python3-as-required-build-dependency.patch
Patch10: fix-ieee128-cross.diff Patch10: fix-ieee128-cross.diff
# https://reviews.llvm.org/D155192 # https://reviews.llvm.org/D155192
@ -91,20 +94,21 @@ Patch201: 0001-clang-tools-extra-Make-test-dependency-on-LLVMHello-.patch
BuildRequires: clang BuildRequires: clang
BuildRequires: cmake BuildRequires: cmake
BuildRequires: ninja-build BuildRequires: ninja-build
%if %{with compat_build} %if %{with compat_build}
BuildRequires: llvm%{maj_ver}-devel = %{version} %global llvm_pkg_name llvm%{maj_ver}
BuildRequires: llvm%{maj_ver}-static = %{version}
BuildRequires: llvm%{maj_ver}-cmake-utils = %{version}
%else %else
BuildRequires: llvm-devel = %{version} %global llvm_pkg_name llvm
BuildRequires: llvm-cmake-utils = %{version}
BuildRequires: llvm-test = %{version} BuildRequires: llvm-test = %{version}
# llvm-static is required, because clang-tablegen needs libLLVMTableGen, which
# is not included in libLLVM.so.
BuildRequires: llvm-static = %{version}
BuildRequires: llvm-googletest = %{version} BuildRequires: llvm-googletest = %{version}
%endif %endif
BuildRequires: %{llvm_pkg_name}-devel = %{version}
# llvm-static is required, because clang-tablegen needs libLLVMTableGen, which
# is not included in libLLVM.so.
BuildRequires: %{llvm_pkg_name}-static = %{version}
BuildRequires: %{llvm_pkg_name}-cmake-utils = %{version}
BuildRequires: libxml2-devel BuildRequires: libxml2-devel
BuildRequires: perl-generators BuildRequires: perl-generators
BuildRequires: ncurses-devel BuildRequires: ncurses-devel
@ -348,6 +352,7 @@ sed -i 's/\@FEDORA_LLVM_LIB_SUFFIX\@//g' test/lit.cfg.py
-DCLANG_BUILD_TOOLS:BOOL=OFF \ -DCLANG_BUILD_TOOLS:BOOL=OFF \
-DCMAKE_INSTALL_PREFIX=%{install_prefix} \ -DCMAKE_INSTALL_PREFIX=%{install_prefix} \
-DCLANG_INCLUDE_TESTS:BOOL=OFF \ -DCLANG_INCLUDE_TESTS:BOOL=OFF \
-DLLVM_INCLUDE_TESTS:BOOL=OFF \
-DLLVM_CMAKE_DIR=%{install_libdir}/cmake/llvm \ -DLLVM_CMAKE_DIR=%{install_libdir}/cmake/llvm \
%else %else
-DCLANG_INCLUDE_TESTS:BOOL=ON \ -DCLANG_INCLUDE_TESTS:BOOL=ON \