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 /meta/recipes-devtools | |
| 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>
Diffstat (limited to 'meta/recipes-devtools')
| -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 | ||
