summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2025-05-06 13:11:27 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-05-08 10:28:19 +0100
commit6d0cb00c6895df6940d07dd1d5d48078e8f701f2 (patch)
tree902c59a1cb67f6ce91575ad15519f9e0df83ea1b
parent483c6067eb1ee9562c0b21cea0d375c7f521bede (diff)
downloadpoky-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.bb29
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
32DEPENDS:append:class-native = " clang-native" 32DEPENDS: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
35UNWINDLIB:class-nativesdk:toolchain-clang = "--unwindlib=libgcc" 35UNWINDLIB:class-nativesdk = "--unwindlib=libgcc"
36COMPILER_RT:class-nativesdk:toolchain-clang = "-rtlib=libgcc --unwindlib=libgcc" 36COMPILER_RT:class-nativesdk = "-rtlib=libgcc"
37LIBCPLUSPLUS:class-nativesdk:toolchain-clang = "-stdlib=libstdc++" 37LIBCPLUSPLUS:class-nativesdk = "-stdlib=libstdc++"
38UNWINDLIB:class-native:toolchain-clang = "--unwindlib=libgcc" 38UNWINDLIB:class-native = "--unwindlib=libgcc"
39COMPILER_RT:class-native:toolchain-clang = "-rtlib=libgcc --unwindlib=libgcc" 39COMPILER_RT:class-native = "-rtlib=libgcc"
40LIBCPLUSPLUS:class-native:toolchain-clang = "-stdlib=libstdc++" 40LIBCPLUSPLUS:class-native = "-stdlib=libstdc++"
41UNWINDLIB:class-target:toolchain-clang = "--unwindlib=libgcc" 41UNWINDLIB:class-target = "--unwindlib=libgcc"
42COMPILER_RT:class-target:toolchain-clang = "-rtlib=libgcc --unwindlib=libgcc" 42COMPILER_RT:class-target = "-rtlib=libgcc"
43LIBCPLUSPLUS:class-target:toolchain-clang = "-stdlib=libstdc++" 43LIBCPLUSPLUS:class-target = "-stdlib=libstdc++"
44 44
45PACKAGECONFIG ??= "" 45PACKAGECONFIG ??= ""
46PACKAGECONFIG[crt] = "-DCOMPILER_RT_BUILD_CRT:BOOL=ON,-DCOMPILER_RT_BUILD_CRT:BOOL=OFF" 46PACKAGECONFIG[crt] = "-DCOMPILER_RT_BUILD_CRT:BOOL=ON,-DCOMPILER_RT_BUILD_CRT:BOOL=OFF"
@@ -52,6 +52,13 @@ HF = ""
52HF:class-target = "${@ bb.utils.contains('TUNE_CCARGS_MFLOAT', 'hard', 'hf', '', d)}" 52HF:class-target = "${@ bb.utils.contains('TUNE_CCARGS_MFLOAT', 'hard', 'hf', '', d)}"
53HF[vardepvalue] = "${HF}" 53HF[vardepvalue] = "${HF}"
54 54
55CC = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
56CXX = "${CCACHE}${HOST_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
57BUILD_CC = "${CCACHE}clang ${BUILD_CC_ARCH}"
58BUILD_CXX = "${CCACHE}clang++ ${BUILD_CC_ARCH}"
59LDFLAGS += "${COMPILER_RT} ${UNWINDLIB}"
60CXXFLAGS += "${LIBCPLUSPLUS}"
61
55OECMAKE_TARGET_COMPILE = "compiler-rt" 62OECMAKE_TARGET_COMPILE = "compiler-rt"
56OECMAKE_TARGET_INSTALL = "install-compiler-rt install-compiler-rt-headers" 63OECMAKE_TARGET_INSTALL = "install-compiler-rt install-compiler-rt-headers"
57OECMAKE_SOURCEPATH = "${S}/llvm" 64OECMAKE_SOURCEPATH = "${S}/llvm"
@@ -72,7 +79,7 @@ EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=RelWithDebInfo \
72 79
73EXTRA_OECMAKE:append:class-native = "\ 80EXTRA_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
78EXTRA_OECMAKE:append:class-target = "\ 85EXTRA_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"
94EXTRA_OECMAKE:append:powerpc = " -DCOMPILER_RT_DEFAULT_TARGET_ARCH=powerpc " 101EXTRA_OECMAKE:append:powerpc = " -DCOMPILER_RT_DEFAULT_TARGET_ARCH=powerpc "
95 102