From patchwork Fri Sep 12 14:30:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 70077 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 560A1CAC58F for ; Fri, 12 Sep 2025 14:30:46 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.18366.1757687444147748942 for ; Fri, 12 Sep 2025 07:30:44 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5B56E16A3 for ; Fri, 12 Sep 2025 07:30:35 -0700 (PDT) Received: from cesw-amp-gbt-1s-m12830-04.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 46DFC3F66E for ; Fri, 12 Sep 2025 07:30:43 -0700 (PDT) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH 1/6] clang: improve opt-viewer PACKAGECONFIG Date: Fri, 12 Sep 2025 15:30:33 +0100 Message-ID: <20250912143038.3345369-1-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 12 Sep 2025 14:30:46 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223313 Instead of patching the python module detection, we can use the hidden option LLVM_TOOL_OPT_VIEWER_BUILD. Signed-off-by: Ross Burton --- ...-users-to-set-LLVM_HAVE_OPT_VIEWER_M.patch | 70 ------------------- meta/recipes-devtools/clang/clang_git.bb | 2 +- meta/recipes-devtools/clang/common.inc | 1 - 3 files changed, 1 insertion(+), 72 deletions(-) delete mode 100644 meta/recipes-devtools/clang/clang/0041-opt-viewer-Allow-users-to-set-LLVM_HAVE_OPT_VIEWER_M.patch diff --git a/meta/recipes-devtools/clang/clang/0041-opt-viewer-Allow-users-to-set-LLVM_HAVE_OPT_VIEWER_M.patch b/meta/recipes-devtools/clang/clang/0041-opt-viewer-Allow-users-to-set-LLVM_HAVE_OPT_VIEWER_M.patch deleted file mode 100644 index 4dc01f6e640..00000000000 --- a/meta/recipes-devtools/clang/clang/0041-opt-viewer-Allow-users-to-set-LLVM_HAVE_OPT_VIEWER_M.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 93a51605fccf0f99868f8bae212a08823d01b03a Mon Sep 17 00:00:00 2001 -From: Khem Raj -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 ---- - 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 - diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb index 0009a95628d..f53ecbfe398 100644 --- a/meta/recipes-devtools/clang/clang_git.bb +++ b/meta/recipes-devtools/clang/clang_git.bb @@ -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," diff --git a/meta/recipes-devtools/clang/common.inc b/meta/recipes-devtools/clang/common.inc index 889847c3e11..ac86284fb20 100644 --- a/meta/recipes-devtools/clang/common.inc +++ b/meta/recipes-devtools/clang/common.inc @@ -61,7 +61,6 @@ SRC_URI = "\ file://0038-Revert-libc-Remap-headers-in-the-debug-info-when-bui.patch \ file://0039-Prevent-revisiting-block-when-searching-for-noreturn.patch \ file://0040-Only-build-c-index-test-when-clang-tests-are-include.patch \ - file://0041-opt-viewer-Allow-users-to-set-LLVM_HAVE_OPT_VIEWER_M.patch \ " # Fallback to no-PIE if not set GCCPIE ??= ""