clang: improve opt-viewer PACKAGECONFIG

Instead of patching the python module detection, we can use the hidden
option LLVM_TOOL_OPT_VIEWER_BUILD.

(From OE-Core rev: ddbbd49c15bad1b2a550188581ffebd752b9b20e)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2025-09-24 13:08:28 +01:00
committed by Richard Purdie
parent 52df555405
commit 47f1496eb9
3 changed files with 1 additions and 72 deletions

View File

@@ -1,70 +0,0 @@
From c2b576a49ed1b83def75578f7d2b2e8c3c54e60f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 2 Aug 2025 17:58:20 -0700
Subject: [PATCH] [opt-viewer] Allow users to set LLVM_HAVE_OPT_VIEWER_MODULES
manually from the CMake
Check right before setting LLVM_HAVE_OPT_VIEWER_MODULES
so that if the user specifies the variable on the commandline
it takes precedence. If not, fall back to the old logic
Upstream-Status: Submitted [https://github.com/llvm/llvm-project/pull/151845]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
llvm/CMakeLists.txt | 2 ++
llvm/cmake/config-ix.cmake | 13 ++++++++++---
llvm/include/llvm/Config/config.h.cmake | 3 +++
3 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index cb945b578e46..e4ed9eca6014 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -7,6 +7,8 @@ set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
include(${LLVM_COMMON_CMAKE_UTILS}/Modules/CMakePolicy.cmake
NO_POLICY_SCOPE)
+option(LLVM_HAVE_OPT_VIEWER_MODULES "Enable opt-viewer modules support" ON)
+
# Builds with custom install names and installation rpath setups may not work
# in the build tree. Allow these cases to use CMake's default build tree
# behavior by setting `LLVM_NO_INSTALL_NAME_DIR_FOR_BUILD_TREE` to do this.
diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake
index a8e4e5a63244..17af3dc1e93f 100644
--- a/llvm/cmake/config-ix.cmake
+++ b/llvm/cmake/config-ix.cmake
@@ -805,10 +805,17 @@ foreach(module ${PYTHON_MODULES})
find_python_module(${module})
endforeach()
-if(PY_PYGMENTS_FOUND AND PY_PYGMENTS_LEXERS_C_CPP_FOUND AND PY_YAML_FOUND)
- set (LLVM_HAVE_OPT_VIEWER_MODULES 1)
+if(NOT DEFINED LLVM_HAVE_OPT_VIEWER_MODULES)
+ if(PY_PYGMENTS_FOUND AND PY_PYGMENTS_LEXERS_C_CPP_FOUND AND PY_YAML_FOUND)
+ set (LLVM_HAVE_OPT_VIEWER_MODULES 1)
+ else()
+ set (LLVM_HAVE_OPT_VIEWER_MODULES 0)
+ endif()
+elseif(LLVM_HAVE_OPT_VIEWER_MODULES)
+ # Use the user-provided value
+ set(LLVM_HAVE_OPT_VIEWER_MODULES 1)
else()
- set (LLVM_HAVE_OPT_VIEWER_MODULES 0)
+ set(LLVM_HAVE_OPT_VIEWER_MODULES 0)
endif()
function(llvm_get_host_prefixes_and_suffixes)
diff --git a/llvm/include/llvm/Config/config.h.cmake b/llvm/include/llvm/Config/config.h.cmake
index ce83de8e4cba..02cf6d2ec363 100644
--- a/llvm/include/llvm/Config/config.h.cmake
+++ b/llvm/include/llvm/Config/config.h.cmake
@@ -287,6 +287,9 @@
/* Define to a function implementing strdup */
#cmakedefine strdup ${strdup}
+/* Define indicating opt-viewer modules */
+#cmakedefine LLVM_HAVE_OPT_VIEWER_MODULES
+
/* Whether GlobalISel rule coverage is being collected */
#cmakedefine01 LLVM_GISEL_COV_ENABLED

View File

@@ -59,7 +59,7 @@ PACKAGECONFIG[libedit] = "-DLLVM_ENABLE_LIBEDIT=ON,-DLLVM_ENABLE_LIBEDIT=OFF,lib
PACKAGECONFIG[libomp] = "-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp,,"
PACKAGECONFIG[lld] = "-DCLANG_DEFAULT_LINKER=lld,,,"
PACKAGECONFIG[lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils,"
PACKAGECONFIG[opt-viewer] = "-DLLVM_HAVE_OPT_VIEWER_MODULES=ON,-DLLVM_HAVE_OPT_VIEWER_MODULES=OFF, \
PACKAGECONFIG[opt-viewer] = "-DLLVM_TOOL_OPT_VIEWER_BUILD=ON,-DLLVM_TOOL_OPT_VIEWER_BUILD=OFF, \
python3-pyyaml-native python3-pygments-native python3-pyyaml python3-pygments, \
python3-pyyaml python3-pygments,"
PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm,"

View File

@@ -60,7 +60,6 @@ SRC_URI = "\
file://0037-Revert-libc-Remap-headers-in-the-debug-info-when-bui.patch \
file://0038-Prevent-revisiting-block-when-searching-for-noreturn.patch \
file://0039-Only-build-c-index-test-when-clang-tests-are-include.patch \
file://0040-opt-viewer-Allow-users-to-set-LLVM_HAVE_OPT_VIEWER_M.patch \
"
# Fallback to no-PIE if not set
GCCPIE ??= ""