diff options
author | Khem Raj <raj.khem@gmail.com> | 2025-05-06 13:11:27 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-05-08 10:28:19 +0100 |
commit | 6d0cb00c6895df6940d07dd1d5d48078e8f701f2 (patch) | |
tree | 902c59a1cb67f6ce91575ad15519f9e0df83ea1b | |
parent | 483c6067eb1ee9562c0b21cea0d375c7f521bede (diff) | |
download | poky-6d0cb00c6895df6940d07dd1d5d48078e8f701f2.tar.gz |
compiler-rt: Always use clang for compiler
This makes it build for all architectures e.g. riscv/mips/ppc etc.
Using clang-native to build all variants of recipe makes it easier to
handle compiling with various distros choosing different runtimes
(From OE-Core rev: 4df1f0da627e0985312ae4a330e7f0800c0c87a5)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/recipes-devtools/clang/compiler-rt_git.bb | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/meta/recipes-devtools/clang/compiler-rt_git.bb b/meta/recipes-devtools/clang/compiler-rt_git.bb index 9392854127..a0f9c769a0 100644 --- a/meta/recipes-devtools/clang/compiler-rt_git.bb +++ b/meta/recipes-devtools/clang/compiler-rt_git.bb | |||
@@ -32,15 +32,15 @@ DEPENDS:append:class-nativesdk = " virtual/cross-c++ clang-native clang-crosssdk | |||
32 | DEPENDS:append:class-native = " clang-native" | 32 | DEPENDS:append:class-native = " clang-native" |
33 | 33 | ||
34 | # Trick clang.bbclass into not creating circular dependencies | 34 | # Trick clang.bbclass into not creating circular dependencies |
35 | UNWINDLIB:class-nativesdk:toolchain-clang = "--unwindlib=libgcc" | 35 | UNWINDLIB:class-nativesdk = "--unwindlib=libgcc" |
36 | COMPILER_RT:class-nativesdk:toolchain-clang = "-rtlib=libgcc --unwindlib=libgcc" | 36 | COMPILER_RT:class-nativesdk = "-rtlib=libgcc" |
37 | LIBCPLUSPLUS:class-nativesdk:toolchain-clang = "-stdlib=libstdc++" | 37 | LIBCPLUSPLUS:class-nativesdk = "-stdlib=libstdc++" |
38 | UNWINDLIB:class-native:toolchain-clang = "--unwindlib=libgcc" | 38 | UNWINDLIB:class-native = "--unwindlib=libgcc" |
39 | COMPILER_RT:class-native:toolchain-clang = "-rtlib=libgcc --unwindlib=libgcc" | 39 | COMPILER_RT:class-native = "-rtlib=libgcc" |
40 | LIBCPLUSPLUS:class-native:toolchain-clang = "-stdlib=libstdc++" | 40 | LIBCPLUSPLUS:class-native = "-stdlib=libstdc++" |
41 | UNWINDLIB:class-target:toolchain-clang = "--unwindlib=libgcc" | 41 | UNWINDLIB:class-target = "--unwindlib=libgcc" |
42 | COMPILER_RT:class-target:toolchain-clang = "-rtlib=libgcc --unwindlib=libgcc" | 42 | COMPILER_RT:class-target = "-rtlib=libgcc" |
43 | LIBCPLUSPLUS:class-target:toolchain-clang = "-stdlib=libstdc++" | 43 | LIBCPLUSPLUS:class-target = "-stdlib=libstdc++" |
44 | 44 | ||
45 | PACKAGECONFIG ??= "" | 45 | PACKAGECONFIG ??= "" |
46 | PACKAGECONFIG[crt] = "-DCOMPILER_RT_BUILD_CRT:BOOL=ON,-DCOMPILER_RT_BUILD_CRT:BOOL=OFF" | 46 | PACKAGECONFIG[crt] = "-DCOMPILER_RT_BUILD_CRT:BOOL=ON,-DCOMPILER_RT_BUILD_CRT:BOOL=OFF" |
@@ -52,6 +52,13 @@ HF = "" | |||
52 | HF:class-target = "${@ bb.utils.contains('TUNE_CCARGS_MFLOAT', 'hard', 'hf', '', d)}" | 52 | HF:class-target = "${@ bb.utils.contains('TUNE_CCARGS_MFLOAT', 'hard', 'hf', '', d)}" |
53 | HF[vardepvalue] = "${HF}" | 53 | HF[vardepvalue] = "${HF}" |
54 | 54 | ||
55 | CC = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
56 | CXX = "${CCACHE}${HOST_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
57 | BUILD_CC = "${CCACHE}clang ${BUILD_CC_ARCH}" | ||
58 | BUILD_CXX = "${CCACHE}clang++ ${BUILD_CC_ARCH}" | ||
59 | LDFLAGS += "${COMPILER_RT} ${UNWINDLIB}" | ||
60 | CXXFLAGS += "${LIBCPLUSPLUS}" | ||
61 | |||
55 | OECMAKE_TARGET_COMPILE = "compiler-rt" | 62 | OECMAKE_TARGET_COMPILE = "compiler-rt" |
56 | OECMAKE_TARGET_INSTALL = "install-compiler-rt install-compiler-rt-headers" | 63 | OECMAKE_TARGET_INSTALL = "install-compiler-rt install-compiler-rt-headers" |
57 | OECMAKE_SOURCEPATH = "${S}/llvm" | 64 | OECMAKE_SOURCEPATH = "${S}/llvm" |
@@ -72,7 +79,7 @@ EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=RelWithDebInfo \ | |||
72 | 79 | ||
73 | EXTRA_OECMAKE:append:class-native = "\ | 80 | EXTRA_OECMAKE:append:class-native = "\ |
74 | -DCOMPILER_RT_DEFAULT_TARGET_ARCH=${HOST_ARCH} \ | 81 | -DCOMPILER_RT_DEFAULT_TARGET_ARCH=${HOST_ARCH} \ |
75 | -DCMAKE_C_COMPILER_TARGET=${HOST_ARCH} \ | 82 | -DCMAKE_C_COMPILER_TARGET=${HOST_SYS} \ |
76 | " | 83 | " |
77 | 84 | ||
78 | EXTRA_OECMAKE:append:class-target = "\ | 85 | EXTRA_OECMAKE:append:class-target = "\ |
@@ -89,7 +96,7 @@ EXTRA_OECMAKE:append:class-nativesdk = "\ | |||
89 | -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ | 96 | -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ |
90 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ | 97 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ |
91 | -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \ | 98 | -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \ |
92 | -DCMAKE_C_COMPILER_TARGET=${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}${HF} \ | 99 | -DCMAKE_C_COMPILER_TARGET=${HOST_SYS} \ |
93 | " | 100 | " |
94 | EXTRA_OECMAKE:append:powerpc = " -DCOMPILER_RT_DEFAULT_TARGET_ARCH=powerpc " | 101 | EXTRA_OECMAKE:append:powerpc = " -DCOMPILER_RT_DEFAULT_TARGET_ARCH=powerpc " |
95 | 102 | ||