diff options
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 @@ | |||
| 1 | From e396fbe0e698c80e112af76fcdff8bbd61a30740 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Sat, 2 Aug 2025 17:58:20 -0700 | ||
| 4 | Subject: [PATCH] llvm: Allow users to set LLVM_HAVE_OPT_VIEWER_MODULES | ||
| 5 | manually from the CMake | ||
| 6 | |||
| 7 | Check right before setting LLVM_HAVE_OPT_VIEWER_MODULES | ||
| 8 | so that if the user specifies the variable on the commandline | ||
| 9 | it takes precedence. If not, fall back to the old logic | ||
| 10 | |||
| 11 | Upstream-Status: Submitted [https://github.com/llvm/llvm-project/pull/151845] | ||
| 12 | |||
| 13 | Signed-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 | |||
| 20 | diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt | ||
| 21 | index 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. | ||
| 33 | diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake | ||
| 34 | index 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) | ||
| 58 | diff --git a/llvm/tools/opt-viewer/CMakeLists.txt b/llvm/tools/opt-viewer/CMakeLists.txt | ||
| 59 | index 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 | |||
| 59 | PACKAGECONFIG[libomp] = "-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp,," | 59 | PACKAGECONFIG[libomp] = "-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp,," |
| 60 | PACKAGECONFIG[lld] = "-DCLANG_DEFAULT_LINKER=lld,,," | 60 | PACKAGECONFIG[lld] = "-DCLANG_DEFAULT_LINKER=lld,,," |
| 61 | PACKAGECONFIG[lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," | 61 | PACKAGECONFIG[lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," |
| 62 | PACKAGECONFIG[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," | ||
| 62 | PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm," | 65 | PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm," |
| 63 | PACKAGECONFIG[rtti] = "-DLLVM_ENABLE_RTTI=ON,-DLLVM_ENABLE_RTTI=OFF,," | 66 | PACKAGECONFIG[rtti] = "-DLLVM_ENABLE_RTTI=ON,-DLLVM_ENABLE_RTTI=OFF,," |
| 64 | PACKAGECONFIG[shared-libs] = "-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON,,," | 67 | PACKAGECONFIG[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 |
| 66 | GCCPIE ??= "" | 67 | GCCPIE ??= "" |
