From: Khem Raj <raj.khem@gmail.com>
To: openembedded-core@lists.openembedded.org
Cc: Khem Raj <raj.khem@gmail.com>
Subject: [PATCH 05/19] clang-native.bbclass: Abstraction to enable clang as native compiler
Date: Tue, 5 Nov 2024 10:45:24 -0800 [thread overview]
Message-ID: <20241105184540.3450302-5-raj.khem@gmail.com> (raw)
In-Reply-To: <20241105184540.3450302-1-raj.khem@gmail.com>
Some packages demand clang all the way, including for native pieces e.g.
chromium, this helps to get that going
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
meta/classes-recipe/clang-native.bbclass | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
create mode 100644 meta/classes-recipe/clang-native.bbclass
diff --git a/meta/classes-recipe/clang-native.bbclass b/meta/classes-recipe/clang-native.bbclass
new file mode 100644
index 00000000000..a136deeee38
--- /dev/null
+++ b/meta/classes-recipe/clang-native.bbclass
@@ -0,0 +1,24 @@
+# inherit this class if you would like to use clang to compile the native
+# version of your recipes instead of system compiler ( which is normally gcc )
+# on build machines
+# to use it add
+#
+# inherit clang-native
+#
+# to the concerned recipe via a bbappend or directly to recipe file
+#
+DEPENDS:append:runtime-llvm = " compiler-rt-native libcxx-native"
+# Use libcxx headers for native parts
+CXXFLAGS:append:runtime-llvm = " -stdlib=libc++"
+BUILD_CXXFLAGS:append:runtime-llvm = " -isysroot=${STAGING_DIR_NATIVE} -stdlib=libc++"
+# Use libgcc for native parts
+LDFLAGS:append:runtime-llvm = " -stdlib=libc++ -rtlib=libgcc -unwindlib=libgcc"
+BUILD_LDFLAGS:append:runtime-llvm = " -stdlib=libc++ -rtlib=libgcc -unwindlib=libgcc"
+DEPENDS:append = " clang-native"
+BUILD_CC = "${CCACHE}clang -isysroot=${STAGING_DIR_NATIVE}"
+BUILD_CXX = "${CCACHE}clang++ -isysroot=${STAGING_DIR_NATIVE}"
+BUILD_CPP = "${CCACHE}clang -isysroot=${STAGING_DIR_NATIVE} -E"
+BUILD_CCLD = "${CCACHE}clang"
+BUILD_RANLIB = "llvm-ranlib"
+BUILD_AR = "llvm-ar"
+BUILD_NM = "llvm-nm"
next prev parent reply other threads:[~2024-11-05 18:45 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-05 18:45 [PATCH 01/19] clang.inc: Global settings for clang toolchain Khem Raj
2024-11-05 18:45 ` [PATCH 02/19] nonclangable.inc: Add recipe which can not be built with clang Khem Raj
2025-01-07 13:52 ` [OE-core] " Richard Purdie
2024-11-05 18:45 ` [PATCH 03/19] nonscanable.inc: Includes recipes which can not be used with clang-scan Khem Raj
2024-11-05 18:45 ` [PATCH 04/19] scan-build.bbclass: Add class to enable clang static analyser Khem Raj
2025-01-07 13:50 ` [OE-core] " Richard Purdie
2024-11-05 18:45 ` Khem Raj [this message]
2024-11-05 18:45 ` [PATCH 06/19] cmake-native.bbclass: Abstraction to use cmake with native toolchains Khem Raj
2024-11-05 18:45 ` [PATCH 07/19] clang: Migrate clang and related recipes from meta-clang Khem Raj
2025-01-07 13:54 ` [OE-core] " Richard Purdie
2024-11-05 18:45 ` [PATCH 08/19] clang/recipes: Add missing SUMMARY field Khem Raj
2025-01-07 13:55 ` [OE-core] " Richard Purdie
2024-11-05 18:45 ` [PATCH 09/19] llvm: Delete Khem Raj
2024-11-05 18:45 ` [PATCH 10/19] spirv-llvm-translator: Add recipe Khem Raj
2024-11-05 18:45 ` [PATCH 11/19] multilib.conf: Add llvm-project-source recipe to NON_MULTILIB_RECIPES Khem Raj
2024-11-05 18:45 ` [PATCH 12/19] distro/defaultsetup: Inherit clang, nonclangable, and nonscanable Khem Raj
2024-11-05 18:45 ` [PATCH 13/19] maintainers.inc: Add myself as maintainer for clang family of recipes Khem Raj
2024-11-05 18:45 ` [PATCH 14/19] clang: PROVIDE llvm-native and llvm Khem Raj
2024-11-05 18:45 ` [PATCH 15/19] rpm: Use gcc to compile always Khem Raj
2024-11-05 18:45 ` [PATCH 16/19] sdks: Add clang toolchain to SDKs Khem Raj
2024-11-06 10:38 ` [OE-core] " Mathieu Dubois-Briand
2024-11-06 14:54 ` Khem Raj
2024-11-05 18:45 ` [PATCH 17/19] toolchain-scripts.bbclass: Add env variables in SDK to use clang/clang++ Khem Raj
2024-11-05 18:45 ` [PATCH 18/19] mesa: update 24.0.7 -> 24.2.2 Khem Raj
2024-11-06 11:30 ` [OE-core] " Alexander Kanavin
2024-11-06 14:53 ` Khem Raj
2024-11-05 18:45 ` [PATCH 19/19] mesa: add support for rusticl Khem Raj
2024-11-06 11:27 ` [OE-core] " Alexander Kanavin
2024-11-06 15:54 ` [OE-core] [PATCH 01/19] clang.inc: Global settings for clang toolchain Richard Purdie
2024-11-06 16:14 ` Khem Raj
2025-01-07 13:50 ` Richard Purdie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241105184540.3450302-5-raj.khem@gmail.com \
--to=raj.khem@gmail.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox