summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-devtools/clang/clang/0001-llvm-Allow-users-to-set-LLVM_HAVE_OPT_VIEWER_MODULES.patch91
-rw-r--r--meta/recipes-devtools/clang/clang_git.bb3
-rw-r--r--meta/recipes-devtools/clang/common.inc1
3 files changed, 95 insertions, 0 deletions
diff --git a/meta/recipes-devtools/clang/clang/0001-llvm-Allow-users-to-set-LLVM_HAVE_OPT_VIEWER_MODULES.patch b/meta/recipes-devtools/clang/clang/0001-llvm-Allow-users-to-set-LLVM_HAVE_OPT_VIEWER_MODULES.patch
new file mode 100644
index 0000000000..4211cd2e3c
--- /dev/null
+++ b/meta/recipes-devtools/clang/clang/0001-llvm-Allow-users-to-set-LLVM_HAVE_OPT_VIEWER_MODULES.patch
@@ -0,0 +1,91 @@
1From e396fbe0e698c80e112af76fcdff8bbd61a30740 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 2 Aug 2025 17:58:20 -0700
4Subject: [PATCH] llvm: Allow users to set LLVM_HAVE_OPT_VIEWER_MODULES
5 manually from the CMake
6
7Check right before setting LLVM_HAVE_OPT_VIEWER_MODULES
8so that if the user specifies the variable on the commandline
9it takes precedence. If not, fall back to the old logic
10
11Upstream-Status: Submitted [https://github.com/llvm/llvm-project/pull/151845]
12
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 llvm/CMakeLists.txt | 2 ++
16 llvm/cmake/config-ix.cmake | 13 ++++++++++---
17 llvm/tools/opt-viewer/CMakeLists.txt | 24 +++++++++++++-----------
18 3 files changed, 25 insertions(+), 14 deletions(-)
19
20diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
21index 4c70b98a32f9..60b786ca39c2 100644
22--- a/llvm/CMakeLists.txt
23+++ b/llvm/CMakeLists.txt
24@@ -7,6 +7,8 @@ set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
25 include(${LLVM_COMMON_CMAKE_UTILS}/Modules/CMakePolicy.cmake
26 NO_POLICY_SCOPE)
27
28+option(LLVM_HAVE_OPT_VIEWER_MODULES "Enable opt-viewer modules support" ON)
29+
30 # Builds with custom install names and installation rpath setups may not work
31 # in the build tree. Allow these cases to use CMake's default build tree
32 # behavior by setting `LLVM_NO_INSTALL_NAME_DIR_FOR_BUILD_TREE` to do this.
33diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake
34index a8e4e5a63244..17af3dc1e93f 100644
35--- a/llvm/cmake/config-ix.cmake
36+++ b/llvm/cmake/config-ix.cmake
37@@ -805,10 +805,17 @@ foreach(module ${PYTHON_MODULES})
38 find_python_module(${module})
39 endforeach()
40
41-if(PY_PYGMENTS_FOUND AND PY_PYGMENTS_LEXERS_C_CPP_FOUND AND PY_YAML_FOUND)
42- set (LLVM_HAVE_OPT_VIEWER_MODULES 1)
43+if(NOT DEFINED LLVM_HAVE_OPT_VIEWER_MODULES)
44+ if(PY_PYGMENTS_FOUND AND PY_PYGMENTS_LEXERS_C_CPP_FOUND AND PY_YAML_FOUND)
45+ set (LLVM_HAVE_OPT_VIEWER_MODULES 1)
46+ else()
47+ set (LLVM_HAVE_OPT_VIEWER_MODULES 0)
48+ endif()
49+elseif(LLVM_HAVE_OPT_VIEWER_MODULES)
50+ # Use the user-provided value
51+ set(LLVM_HAVE_OPT_VIEWER_MODULES 1)
52 else()
53- set (LLVM_HAVE_OPT_VIEWER_MODULES 0)
54+ set(LLVM_HAVE_OPT_VIEWER_MODULES 0)
55 endif()
56
57 function(llvm_get_host_prefixes_and_suffixes)
58diff --git a/llvm/tools/opt-viewer/CMakeLists.txt b/llvm/tools/opt-viewer/CMakeLists.txt
59index 4bcf6932ee77..d231c39bcc5d 100644
60--- a/llvm/tools/opt-viewer/CMakeLists.txt
61+++ b/llvm/tools/opt-viewer/CMakeLists.txt
62@@ -6,16 +6,18 @@ set (files
63 "optrecord.py"
64 "style.css")
65
66-foreach (file ${files})
67- install(PROGRAMS ${file}
68- DESTINATION "${CMAKE_INSTALL_DATADIR}/opt-viewer"
69- COMPONENT opt-viewer)
70-endforeach (file)
71+if(LLVM_HAVE_OPT_VIEWER_MODULES)
72+ foreach (file ${files})
73+ install(PROGRAMS ${file}
74+ DESTINATION "${CMAKE_INSTALL_DATADIR}/opt-viewer"
75+ COMPONENT opt-viewer)
76+ endforeach (file)
77
78-add_custom_target(opt-viewer DEPENDS ${files})
79-set_target_properties(opt-viewer PROPERTIES FOLDER "LLVM/Tools")
80-if(NOT LLVM_ENABLE_IDE)
81- add_llvm_install_targets("install-opt-viewer"
82- DEPENDS opt-viewer
83- COMPONENT opt-viewer)
84+ add_custom_target(opt-viewer DEPENDS ${files})
85+ set_target_properties(opt-viewer PROPERTIES FOLDER "LLVM/Tools")
86+ if(NOT LLVM_ENABLE_IDE)
87+ add_llvm_install_targets("install-opt-viewer"
88+ DEPENDS opt-viewer
89+ COMPONENT opt-viewer)
90+ endif()
91 endif()
diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb
index 195a7be43b..0009a95628 100644
--- a/meta/recipes-devtools/clang/clang_git.bb
+++ b/meta/recipes-devtools/clang/clang_git.bb
@@ -59,6 +59,9 @@ PACKAGECONFIG[libedit] = "-DLLVM_ENABLE_LIBEDIT=ON,-DLLVM_ENABLE_LIBEDIT=OFF,lib
59PACKAGECONFIG[libomp] = "-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp,," 59PACKAGECONFIG[libomp] = "-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp,,"
60PACKAGECONFIG[lld] = "-DCLANG_DEFAULT_LINKER=lld,,," 60PACKAGECONFIG[lld] = "-DCLANG_DEFAULT_LINKER=lld,,,"
61PACKAGECONFIG[lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," 61PACKAGECONFIG[lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils,"
62PACKAGECONFIG[opt-viewer] = "-DLLVM_HAVE_OPT_VIEWER_MODULES=ON,-DLLVM_HAVE_OPT_VIEWER_MODULES=OFF, \
63 python3-pyyaml-native python3-pygments-native python3-pyyaml python3-pygments, \
64 python3-pyyaml python3-pygments,"
62PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm," 65PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm,"
63PACKAGECONFIG[rtti] = "-DLLVM_ENABLE_RTTI=ON,-DLLVM_ENABLE_RTTI=OFF,," 66PACKAGECONFIG[rtti] = "-DLLVM_ENABLE_RTTI=ON,-DLLVM_ENABLE_RTTI=OFF,,"
64PACKAGECONFIG[shared-libs] = "-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON,,," 67PACKAGECONFIG[shared-libs] = "-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON,,,"
diff --git a/meta/recipes-devtools/clang/common.inc b/meta/recipes-devtools/clang/common.inc
index b2e08f829b..fb96d0679c 100644
--- a/meta/recipes-devtools/clang/common.inc
+++ b/meta/recipes-devtools/clang/common.inc
@@ -61,6 +61,7 @@ SRC_URI = "\
61 file://0038-compiler-rt-Hardcode-uptr-sptr-typedefs-on-Mips-Linu.patch \ 61 file://0038-compiler-rt-Hardcode-uptr-sptr-typedefs-on-Mips-Linu.patch \
62 file://0001-libclc-allow-existing-prepare-builtins-in-standalone.patch \ 62 file://0001-libclc-allow-existing-prepare-builtins-in-standalone.patch \
63 file://no-c-index-test.patch \ 63 file://no-c-index-test.patch \
64 file://0001-llvm-Allow-users-to-set-LLVM_HAVE_OPT_VIEWER_MODULES.patch \
64" 65"
65# Fallback to no-PIE if not set 66# Fallback to no-PIE if not set
66GCCPIE ??= "" 67GCCPIE ??= ""