diff options
author | Khem Raj <raj.khem@gmail.com> | 2019-11-17 16:32:24 -0800 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2019-11-18 10:14:29 -0800 |
commit | 6895c79e0576dff1824f261c258be2e438ea0508 (patch) | |
tree | 9060a49696cffcb018fcd018f87f0745b89fcbab | |
parent | 8b0fb70af059c272b4d5c4e9ffdc588257e645dc (diff) | |
download | meta-clang-6895c79e0576dff1824f261c258be2e438ea0508.tar.gz |
clang.bbclass: Define RUNTIME variable to select compiler runtime
RUNTIME can be 'llvm' or 'gnu' defaults to 'gnu'
Use this variable for selecting stdc++ and c runtime
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r-- | classes/clang.bbclass | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/classes/clang.bbclass b/classes/clang.bbclass index 3ca3ae5..7b662bd 100644 --- a/classes/clang.bbclass +++ b/classes/clang.bbclass | |||
@@ -8,17 +8,15 @@ RANLIB_toolchain-clang = "${HOST_PREFIX}llvm-ranlib" | |||
8 | AR_toolchain-clang = "${HOST_PREFIX}llvm-ar" | 8 | AR_toolchain-clang = "${HOST_PREFIX}llvm-ar" |
9 | NM_toolchain-clang = "${HOST_PREFIX}llvm-nm" | 9 | NM_toolchain-clang = "${HOST_PREFIX}llvm-nm" |
10 | 10 | ||
11 | COMPILER_RT ??= "--rtlib=compiler-rt ${UNWINDLIB}" | 11 | COMPILER_RT ??= "${@bb.utils.contains("RUNTIME", "llvm", "-rtlib=compiler-rt ${UNWINDLIB}", "", d)}" |
12 | COMPILER_RT_toolchain-gcc = "" | ||
13 | COMPILER_RT_powerpc = "--rtlib=libgcc ${UNWINDLIB}" | 12 | COMPILER_RT_powerpc = "--rtlib=libgcc ${UNWINDLIB}" |
14 | 13 | ||
15 | UNWINDLIB ??= "--unwindlib=libgcc" | 14 | UNWINDLIB ??= "${@bb.utils.contains("RUNTIME", "llvm", "--unwindlib=libgcc", "", d)}" |
16 | UNWINDLIB_riscv64 = "--unwindlib=libgcc" | 15 | UNWINDLIB_riscv64 = "--unwindlib=libgcc" |
17 | UNWINDLIB_riscv32 = "--unwindlib=libgcc" | 16 | UNWINDLIB_riscv32 = "--unwindlib=libgcc" |
18 | UNWINDLIB_powerpc = "--unwindlib=libgcc" | 17 | UNWINDLIB_powerpc = "--unwindlib=libgcc" |
19 | 18 | ||
20 | LIBCPLUSPLUS ??= "--stdlib=libc++" | 19 | LIBCPLUSPLUS ??= "${@bb.utils.contains("RUNTIME", "llvm", "--stdlib=libc++", "", d)}" |
21 | LIBCPLUSPLUS_toolchain-gcc = "" | ||
22 | 20 | ||
23 | TARGET_CXXFLAGS_append_toolchain-clang = " ${LIBCPLUSPLUS}" | 21 | TARGET_CXXFLAGS_append_toolchain-clang = " ${LIBCPLUSPLUS}" |
24 | TUNE_CCARGS_append_toolchain-clang = " ${COMPILER_RT} ${LIBCPLUSPLUS}" | 22 | TUNE_CCARGS_append_toolchain-clang = " ${COMPILER_RT} ${LIBCPLUSPLUS}" |
@@ -46,6 +44,9 @@ LDFLAGS_append_toolchain-clang = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is | |||
46 | 44 | ||
47 | # choose between 'gcc' 'clang' an empty '' can be used as well | 45 | # choose between 'gcc' 'clang' an empty '' can be used as well |
48 | TOOLCHAIN ??= "gcc" | 46 | TOOLCHAIN ??= "gcc" |
47 | # choose between 'gnu' 'llvm' | ||
48 | RUNTIME ??= "gnu" | ||
49 | RUNTIME_toolchain-gcc = "gnu" | ||
49 | 50 | ||
50 | TOOLCHAIN_class-native = "gcc" | 51 | TOOLCHAIN_class-native = "gcc" |
51 | TOOLCHAIN_class-nativesdk = "gcc" | 52 | TOOLCHAIN_class-nativesdk = "gcc" |
@@ -54,7 +55,8 @@ TOOLCHAIN_class-crosssdk = "gcc" | |||
54 | TOOLCHAIN_class-cross = "gcc" | 55 | TOOLCHAIN_class-cross = "gcc" |
55 | 56 | ||
56 | OVERRIDES =. "${@['', 'toolchain-${TOOLCHAIN}:']['${TOOLCHAIN}' != '']}" | 57 | OVERRIDES =. "${@['', 'toolchain-${TOOLCHAIN}:']['${TOOLCHAIN}' != '']}" |
57 | OVERRIDES[vardepsexclude] += "TOOLCHAIN" | 58 | OVERRIDES =. "${@['', 'runtime-${RUNTIME}:']['${RUNTIME}' != '']}" |
59 | OVERRIDES[vardepsexclude] += "TOOLCHAIN RUNTIME" | ||
58 | 60 | ||
59 | #DEPENDS_append_toolchain-clang_class-target = " clang-cross-${TARGET_ARCH} " | 61 | #DEPENDS_append_toolchain-clang_class-target = " clang-cross-${TARGET_ARCH} " |
60 | #DEPENDS_remove_toolchain-clang_allarch = "clang-cross-${TARGET_ARCH}" | 62 | #DEPENDS_remove_toolchain-clang_allarch = "clang-cross-${TARGET_ARCH}" |