From patchwork Fri Jul 11 15:51:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 66634 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 0035BC83F20 for ; Fri, 11 Jul 2025 15:51:49 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.17339.1752249103263642421 for ; Fri, 11 Jul 2025 08:51:43 -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 4FACD16F8 for ; Fri, 11 Jul 2025 08:51:32 -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 6DA3F3F6A8 for ; Fri, 11 Jul 2025 08:51:42 -0700 (PDT) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH 1/3] clang: move BPN assignment from common.inc Date: Fri, 11 Jul 2025 16:51:34 +0100 Message-ID: <20250711155136.2172651-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, 11 Jul 2025 15:51:48 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/220145 There's a BPN assignment in common.inc which means all recipes need to either be called clang, or set BPN themselves. Move the assignment to the clang recipes. For now I'm leaving the existing BPN assignments in the other recipes, in case there are complex multilib-related reasons to retain them. Signed-off-by: Ross Burton --- meta/recipes-devtools/clang/clang-cross-canadian_git.bb | 1 + meta/recipes-devtools/clang/clang-cross_git.bb | 1 + meta/recipes-devtools/clang/clang-crosssdk_git.bb | 1 + meta/recipes-devtools/clang/clang_git.bb | 2 ++ meta/recipes-devtools/clang/common.inc | 2 -- 5 files changed, 5 insertions(+), 2 deletions(-) diff --git a/meta/recipes-devtools/clang/clang-cross-canadian_git.bb b/meta/recipes-devtools/clang/clang-cross-canadian_git.bb index 456c0d61bc5..0e84d3ac9a3 100644 --- a/meta/recipes-devtools/clang/clang-cross-canadian_git.bb +++ b/meta/recipes-devtools/clang/clang-cross-canadian_git.bb @@ -7,6 +7,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0-with-LLVM-exception; SECTION = "devel" PN = "clang-cross-canadian-${TRANSLATED_TARGET_ARCH}" +BPN = "clang" require common-clang.inc require common-source.inc diff --git a/meta/recipes-devtools/clang/clang-cross_git.bb b/meta/recipes-devtools/clang/clang-cross_git.bb index 323cc0d8809..99e48522a0b 100644 --- a/meta/recipes-devtools/clang/clang-cross_git.bb +++ b/meta/recipes-devtools/clang/clang-cross_git.bb @@ -7,6 +7,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0-with-LLVM-exception; SECTION = "devel" PN = "clang-cross-${TARGET_ARCH}" +BPN = "clang" require common-clang.inc require common-source.inc diff --git a/meta/recipes-devtools/clang/clang-crosssdk_git.bb b/meta/recipes-devtools/clang/clang-crosssdk_git.bb index ef162ef153f..234d4635784 100644 --- a/meta/recipes-devtools/clang/clang-crosssdk_git.bb +++ b/meta/recipes-devtools/clang/clang-crosssdk_git.bb @@ -7,6 +7,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0-with-LLVM-exception; SECTION = "devel" PN = "clang-crosssdk-${SDK_SYS}" +BPN = "clang" require common-clang.inc require common-source.inc diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb index 23dfbb5deb6..2b5d3a27524 100644 --- a/meta/recipes-devtools/clang/clang_git.bb +++ b/meta/recipes-devtools/clang/clang_git.bb @@ -17,6 +17,8 @@ SECTION = "devel" require common-clang.inc require common-source.inc +BPN = "clang" + INHIBIT_DEFAULT_DEPS:class-native = "1" LDFLAGS:append:class-target:riscv32 = " -Wl,--no-as-needed -latomic -Wl,--as-needed" diff --git a/meta/recipes-devtools/clang/common.inc b/meta/recipes-devtools/clang/common.inc index 37d37ec1975..a9d6f899c03 100644 --- a/meta/recipes-devtools/clang/common.inc +++ b/meta/recipes-devtools/clang/common.inc @@ -71,5 +71,3 @@ B ?= "${WORKDIR}/llvm-project-source-${PV}/build.${HOST_SYS}.${TARGET_SYS}" # The real WORKDIR location isn't a dependency for the shared workdir. src_patches[vardepsexclude] = "WORKDIR" should_apply[vardepsexclude] += "PN" - -BPN = "clang" From patchwork Fri Jul 11 15:51:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 66635 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 EE812C83F1A for ; Fri, 11 Jul 2025 15:51:48 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.17340.1752249103884124715 for ; Fri, 11 Jul 2025 08:51: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 EC50116F8 for ; Fri, 11 Jul 2025 08:51:32 -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 15D8C3F6A8 for ; Fri, 11 Jul 2025 08:51:42 -0700 (PDT) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH 2/3] llvm-tblgen-native: add new recipe Date: Fri, 11 Jul 2025 16:51:35 +0100 Message-ID: <20250711155136.2172651-2-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250711155136.2172651-1-ross.burton@arm.com> References: <20250711155136.2172651-1-ross.burton@arm.com> 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, 11 Jul 2025 15:51:48 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/220146 Building the LLVM projects often means using the TableGen tools (llvm-tblgen etc). We currently build them as part of clang-native, but I am teasing the clang recipe into its component parts and having to build llvm-native or lldb-native simply for one tool isn't ideal. Instead, add a native recipe that simply builds the tablegen binaries for llvm, clang, and lldb --- meta/conf/distro/include/maintainers.inc | 1 + meta/recipes-devtools/clang/clang_git.bb | 10 +++---- .../clang/llvm-tblgen-native_git.bb | 27 +++++++++++++++++++ 3 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 meta/recipes-devtools/clang/llvm-tblgen-native_git.bb diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index 60f04da6089..331c438fd67 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc @@ -480,6 +480,7 @@ RECIPE_MAINTAINER:pn-linux-yocto-dev = "Bruce Ashfield X-Patchwork-Id: 66636 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 0225EC83F1B for ; Fri, 11 Jul 2025 15:51:49 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.17379.1752249104476248936 for ; Fri, 11 Jul 2025 08:51: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 92EF016F8 for ; Fri, 11 Jul 2025 08:51:33 -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 B26B73F6A8 for ; Fri, 11 Jul 2025 08:51:43 -0700 (PDT) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH 3/3] lldb: add new recipe, split out of clang Date: Fri, 11 Jul 2025 16:51:36 +0100 Message-ID: <20250711155136.2172651-3-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250711155136.2172651-1-ross.burton@arm.com> References: <20250711155136.2172651-1-ross.burton@arm.com> 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, 11 Jul 2025 15:51:49 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/220147 LLDB takes a reasonable amount of time to compile, but also isn't an essential component of the LLVM suite. Instead of always building it when we build clang, split it out into a separate recipe. On my build machine where clang takes 21 minutes to build with lldb, it takes 19 minutes without lldb. Signed-off-by: Ross Burton --- meta/conf/distro/include/maintainers.inc | 1 + meta/recipes-devtools/clang/clang_git.bb | 54 +++--------------------- meta/recipes-devtools/clang/lldb_git.bb | 53 +++++++++++++++++++++++ 3 files changed, 61 insertions(+), 47 deletions(-) create mode 100644 meta/recipes-devtools/clang/lldb_git.bb diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index 331c438fd67..f49d7317ee9 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc @@ -479,6 +479,7 @@ RECIPE_MAINTAINER:pn-linux-yocto = "Bruce Ashfield " RECIPE_MAINTAINER:pn-linux-yocto-dev = "Bruce Ashfield " RECIPE_MAINTAINER:pn-linux-yocto-rt = "Bruce Ashfield " RECIPE_MAINTAINER:pn-linux-yocto-tiny = "Bruce Ashfield " +RECIPE_MAINTAINER:pn-lldb = "Khem Raj " RECIPE_MAINTAINER:pn-llvm-project-source-20.1.7 = "Khem Raj " RECIPE_MAINTAINER:pn-llvm-tblgen-native = "Khem Raj " RECIPE_MAINTAINER:pn-logrotate = "Yi Zhao " diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb index 0f1b950cc63..be56b169c29 100644 --- a/meta/recipes-devtools/clang/clang_git.bb +++ b/meta/recipes-devtools/clang/clang_git.bb @@ -55,7 +55,7 @@ PACKAGECONFIG_CLANG_COMMON = "build-id eh libedit rtti shared-libs libclang-pyth ${@bb.utils.contains('TC_CXX_RUNTIME', 'llvm', 'compiler-rt libcplusplus libomp unwindlib', '', d)} \ " -PACKAGECONFIG ??= "lldb-wchar terminfo \ +PACKAGECONFIG ??= "terminfo \ ${PACKAGECONFIG_CLANG_COMMON} \ ${@bb.utils.filter('DISTRO_FEATURES', 'lto thin-lto', d)} \ " @@ -79,11 +79,9 @@ PACKAGECONFIG[clangd-dexp] = "-DCLANGD_BUILD_DEXP=ON,-DCLANGD_BUILD_DEXP=OFF,," PACKAGECONFIG[compiler-rt] = "-DCLANG_DEFAULT_RTLIB=compiler-rt,," PACKAGECONFIG[eh] = "-DLLVM_ENABLE_EH=ON,-DLLVM_ENABLE_EH=OFF,," PACKAGECONFIG[libcplusplus] = "-DCLANG_DEFAULT_CXX_STDLIB=libc++,," -PACKAGECONFIG[libedit] = "-DLLVM_ENABLE_LIBEDIT=ON -DLLDB_ENABLE_LIBEDIT=ON,-DLLVM_ENABLE_LIBEDIT=OFF -DLLDB_ENABLE_LIBEDIT=OFF,libedit libedit-native" +PACKAGECONFIG[libedit] = "-DLLVM_ENABLE_LIBEDIT=ON,-DLLVM_ENABLE_LIBEDIT=OFF,libedit libedit-native" PACKAGECONFIG[libomp] = "-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp,," PACKAGECONFIG[lld] = "-DCLANG_DEFAULT_LINKER=lld,," -PACKAGECONFIG[lldb-lua] = "-DLLDB_ENABLE_LUA=ON,-DLLDB_ENABLE_LUA=OFF,lua" -PACKAGECONFIG[lldb-wchar] = "-DLLDB_EDITLINE_USE_WCHAR=1,-DLLDB_EDITLINE_USE_WCHAR=0," PACKAGECONFIG[lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm," PACKAGECONFIG[rtti] = "-DLLVM_ENABLE_RTTI=ON,-DLLVM_ENABLE_RTTI=OFF,," @@ -107,9 +105,8 @@ LLVM_BINDINGS_LIST;LLVM_ENABLE_FFI;FFI_INCLUDE_DIR;LLVM_OPTIMIZED_TABLEGEN;\ LLVM_ENABLE_RTTI;LLVM_ENABLE_EH;LLVM_BUILD_EXTERNAL_COMPILER_RT;CMAKE_SYSTEM_NAME;\ CMAKE_BUILD_TYPE;BUILD_SHARED_LIBS;LLVM_ENABLE_PROJECTS;LLVM_ENABLE_RUNTIMES;LLVM_BINUTILS_INCDIR;\ LLVM_TARGETS_TO_BUILD;LLVM_EXPERIMENTAL_TARGETS_TO_BUILD;PYTHON_EXECUTABLE;\ -PYTHON_LIBRARY;PYTHON_INCLUDE_DIR;LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN;LLDB_EDITLINE_USE_WCHAR;\ -LLVM_ENABLE_LIBEDIT;LLDB_ENABLE_LIBEDIT;LLDB_PYTHON_RELATIVE_PATH;LLDB_PYTHON_EXE_RELATIVE_PATH;\ -LLDB_PYTHON_EXT_SUFFIX;CMAKE_C_FLAGS_RELEASE;CMAKE_CXX_FLAGS_RELEASE;CMAKE_ASM_FLAGS_RELEASE;\ +PYTHON_LIBRARY;PYTHON_INCLUDE_DIR;LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN;\ +LLVM_ENABLE_LIBEDIT;CMAKE_C_FLAGS_RELEASE;CMAKE_CXX_FLAGS_RELEASE;CMAKE_ASM_FLAGS_RELEASE;\ CLANG_DEFAULT_CXX_STDLIB;CLANG_DEFAULT_RTLIB;CLANG_DEFAULT_UNWINDLIB;\ CLANG_DEFAULT_OPENMP_RUNTIME;LLVM_ENABLE_PER_TARGET_RUNTIME_DIR;\ LLVM_BUILD_TOOLS;LLVM_USE_HOST_TOOLS;LLVM_CONFIG_PATH;LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR;\ @@ -133,13 +130,7 @@ HF[vardepvalue] = "${HF}" # Ensure that LLVM_PROJECTS does not contain compiler runtime components e.g. libcxx etc # they are enabled via LLVM_ENABLE_RUNTIMES -LLVM_PROJECTS ?= "clang;clang-tools-extra;libclc;lld${LLDB}" -LLDB ?= ";lldb" -# LLDB support for RISCV32/Mips32 does not work yet -LLDB:riscv32 = "" -LLDB:mips = "" -LLDB:mipsel = "" -LLDB:powerpc = "" +LLVM_PROJECTS ?= "clang;clang-tools-extra;libclc;lld" # linux hosts (.so) on Windows .pyd SOLIBSDEV:mingw32 = ".pyd" @@ -172,10 +163,7 @@ EXTRA_OECMAKE:append:class-native = "\ -DPYTHON_EXECUTABLE='${PYTHON}' \ " EXTRA_OECMAKE:append:class-nativesdk = "\ - -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DLLDB_PYTHON_RELATIVE_PATH=${PYTHON_SITEPACKAGES_DIR} \ - -DLLDB_PYTHON_EXE_RELATIVE_PATH=${PYTHON_PN} \ - -DLLDB_PYTHON_EXT_SUFFIX=${SOLIBSDEV} \ - -DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \ + -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \ -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ @@ -183,9 +171,6 @@ EXTRA_OECMAKE:append:class-nativesdk = "\ -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ -DLLVM_HEADERS_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-min-tblgen \ -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so \ - -DLLDB_PYTHON_RELATIVE_PATH=${PYTHON_SITEPACKAGES_DIR} \ - -DLLDB_PYTHON_EXE_RELATIVE_PATH=${PYTHON_PN} \ - -DLLDB_PYTHON_EXT_SUFFIX=${SOLIBSDEV} \ -DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI} \ -DPYTHON_EXECUTABLE='${PYTHON}' \ " @@ -202,9 +187,6 @@ EXTRA_OECMAKE:append:class-target = "\ -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so \ -DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI} \ -DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} \ - -DLLDB_PYTHON_RELATIVE_PATH=${PYTHON_SITEPACKAGES_DIR} \ - -DLLDB_PYTHON_EXE_RELATIVE_PATH=${bindir} \ - -DLLDB_PYTHON_EXT_SUFFIX=${SOLIBSDEV} \ " DEPENDS = "binutils zlib zstd libffi libxml2 libxml2-native ninja-native swig-native spirv-tools-native llvm-tblgen-native" @@ -317,12 +299,10 @@ PROVIDES:append:class-target = " llvm libclc" PROVIDES:append:class-nativesdk = " nativesdk-llvm nativesdk-libclc" PACKAGES =+ "${PN}-libllvm ${PN}-lldb-python ${PN}-libclang-python ${PN}-libclang-cpp ${PN}-tidy ${PN}-format ${PN}-tools ${PN}-clc \ - libclang lldb lldb-server liblldb llvm-linker-tools" + libclang llvm-linker-tools" BBCLASSEXTEND = "native nativesdk" -RDEPENDS:lldb += "${PN}-lldb-python lldb-server" - RDEPENDS:${PN}-tools += "\ perl-module-digest-md5 \ perl-module-file-basename \ @@ -343,8 +323,6 @@ FILES:llvm-linker-tools = "${libdir}/LLVMgold* ${libdir}/libLTO.so.* ${libdir}/L FILES:${PN}-libclang-cpp = "${libdir}/libclang-cpp.so.*" -FILES:${PN}-lldb-python = "${libdir}/python*/site-packages/lldb/*" - FILES:${PN}-libclang-python = "${PYTHON_SITEPACKAGES_DIR}/clang/*" FILES:${PN}-tidy = "${bindir}/*clang-tidy*" @@ -407,22 +385,6 @@ FILES:${PN} += "\ FILES:${PN}-clc += "${datadir}/clc" -FILES:lldb = "\ - ${bindir}/lldb \ - ${bindir}/lldb-argdumper \ - ${bindir}/lldb-instr \ - ${bindir}/lldb-vscode \ -" - -FILES:lldb-server = "\ - ${bindir}/lldb-server \ -" - -FILES:liblldb = "\ - ${libdir}/liblldbIntelFeatures.so.* \ - ${libdir}/liblldb.so.* \ -" - FILES:${PN}-libllvm =+ "\ ${libdir}/libLLVM.so.${MAJOR_VER}.${MINOR_VER} \ ${libdir}/libLLVM-${MAJOR_VER}.so \ @@ -449,8 +411,6 @@ FILES:${PN}:remove = "${libdir}/${BPN}/*" INSANE_SKIP:${PN} += "already-stripped" #INSANE_SKIP:${PN}-dev += "dev-elf" -INSANE_SKIP:${PN}-lldb-python += "dev-so dev-deps" -INSANE_SKIP:${MLPREFIX}liblldb = "dev-so" INSANE_SKIP:${PN}-libllvm = "dev-so" #Avoid SSTATE_SCAN_COMMAND running sed over llvm-config. diff --git a/meta/recipes-devtools/clang/lldb_git.bb b/meta/recipes-devtools/clang/lldb_git.bb new file mode 100644 index 00000000000..a07be0e3d4c --- /dev/null +++ b/meta/recipes-devtools/clang/lldb_git.bb @@ -0,0 +1,53 @@ +SUMMARY = "LLDB" +DESCRIPTION = "LLDB is a next generation, high-performance debugger." +HOMEPAGE = "https://lldb.llvm.org" +SECTION = "devel" + +require common-clang.inc +require common-source.inc + +COMPATIBLE_HOST = "(x86_64|i.86|arm|aarch64|powerpc64).*-linux" + +LIC_FILES_CHKSUM = "file://lldb/LICENSE.TXT;md5=2e0d44968471fcde980034dbb826bea9" + +inherit cmake pkgconfig python3native python3targetconfig + +# This actually just depends on LLVM but right now llvm and clang are built together +DEPENDS = "llvm-tblgen-native clang" + +OECMAKE_SOURCEPATH = "${S}/lldb" + +EXTRA_OECMAKE = "-DLLDB_INCLUDE_TESTS=OFF \ + -DLLDB_ENABLE_LUA=OFF \ + -DLLDB_PYTHON_RELATIVE_PATH=${PYTHON_SITEPACKAGES_DIR} \ + -DLLDB_PYTHON_EXE_RELATIVE_PATH=${PYTHON_PN} \ + -DLLDB_PYTHON_EXT_SUFFIX=${SOLIBSDEV} \ + -DLLVM_DIR=${STAGING_LIBDIR}/cmake/llvm/ \ + -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ + -DLLDB_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/lldb-tblgen \ +" + +PACKAGECONFIG ??= "libedit libxml2 lzma" +PACKAGECONFIG[libedit] = "-DLLDB_ENABLE_LIBEDIT=ON,-DLLDB_ENABLE_LIBEDIT=OFF,libedit" +PACKAGECONFIG[libxml2] = "-DLLDB_ENABLE_LIBXML2=ON,-DLLDB_ENABLE_LIBXML2=OFF,libxml2" +PACKAGECONFIG[lzma] = "-DLLDB_ENABLE_LLDB_ENABLE_LZMA=ON,-DLLDB_ENABLE_LLDB_ENABLE_LZMA=OFF,xz" +PACKAGECONFIG[python] = "-DLLDB_ENABLE_PYTHON=ON,-DLLDB_ENABLE_PYTHON=OFF,swig-native" + +do_install:append() { + if ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)}; then + # Fix a bad symlink that points to the -dev .so + rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/lldb/_lldb.so + ln -s ${libdir}/liblldb.so.${MAJOR_VER}.${MINOR_VER} ${D}${PYTHON_SITEPACKAGES_DIR}/lldb/_lldb.so + fi +} + +PACKAGES =+ "${PN}-python ${PN}-server" + +FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}" +RDEPENDS:${PN}-python = "${PN}" +# This has a symlink to the lldb library +INSANE_SKIP:${PN}-python = "dev-so" + +FILES:${PN}-server = "${bindir}/lldb-server" + +BBCLASSEXTEND = "native nativesdk"