summaryrefslogtreecommitdiffstats
path: root/classes
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2019-11-17 16:32:24 -0800
committerKhem Raj <raj.khem@gmail.com>2019-11-18 10:14:29 -0800
commit6895c79e0576dff1824f261c258be2e438ea0508 (patch)
tree9060a49696cffcb018fcd018f87f0745b89fcbab /classes
parent8b0fb70af059c272b4d5c4e9ffdc588257e645dc (diff)
downloadmeta-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>
Diffstat (limited to 'classes')
-rw-r--r--classes/clang.bbclass14
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"
8AR_toolchain-clang = "${HOST_PREFIX}llvm-ar" 8AR_toolchain-clang = "${HOST_PREFIX}llvm-ar"
9NM_toolchain-clang = "${HOST_PREFIX}llvm-nm" 9NM_toolchain-clang = "${HOST_PREFIX}llvm-nm"
10 10
11COMPILER_RT ??= "--rtlib=compiler-rt ${UNWINDLIB}" 11COMPILER_RT ??= "${@bb.utils.contains("RUNTIME", "llvm", "-rtlib=compiler-rt ${UNWINDLIB}", "", d)}"
12COMPILER_RT_toolchain-gcc = ""
13COMPILER_RT_powerpc = "--rtlib=libgcc ${UNWINDLIB}" 12COMPILER_RT_powerpc = "--rtlib=libgcc ${UNWINDLIB}"
14 13
15UNWINDLIB ??= "--unwindlib=libgcc" 14UNWINDLIB ??= "${@bb.utils.contains("RUNTIME", "llvm", "--unwindlib=libgcc", "", d)}"
16UNWINDLIB_riscv64 = "--unwindlib=libgcc" 15UNWINDLIB_riscv64 = "--unwindlib=libgcc"
17UNWINDLIB_riscv32 = "--unwindlib=libgcc" 16UNWINDLIB_riscv32 = "--unwindlib=libgcc"
18UNWINDLIB_powerpc = "--unwindlib=libgcc" 17UNWINDLIB_powerpc = "--unwindlib=libgcc"
19 18
20LIBCPLUSPLUS ??= "--stdlib=libc++" 19LIBCPLUSPLUS ??= "${@bb.utils.contains("RUNTIME", "llvm", "--stdlib=libc++", "", d)}"
21LIBCPLUSPLUS_toolchain-gcc = ""
22 20
23TARGET_CXXFLAGS_append_toolchain-clang = " ${LIBCPLUSPLUS}" 21TARGET_CXXFLAGS_append_toolchain-clang = " ${LIBCPLUSPLUS}"
24TUNE_CCARGS_append_toolchain-clang = " ${COMPILER_RT} ${LIBCPLUSPLUS}" 22TUNE_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
48TOOLCHAIN ??= "gcc" 46TOOLCHAIN ??= "gcc"
47# choose between 'gnu' 'llvm'
48RUNTIME ??= "gnu"
49RUNTIME_toolchain-gcc = "gnu"
49 50
50TOOLCHAIN_class-native = "gcc" 51TOOLCHAIN_class-native = "gcc"
51TOOLCHAIN_class-nativesdk = "gcc" 52TOOLCHAIN_class-nativesdk = "gcc"
@@ -54,7 +55,8 @@ TOOLCHAIN_class-crosssdk = "gcc"
54TOOLCHAIN_class-cross = "gcc" 55TOOLCHAIN_class-cross = "gcc"
55 56
56OVERRIDES =. "${@['', 'toolchain-${TOOLCHAIN}:']['${TOOLCHAIN}' != '']}" 57OVERRIDES =. "${@['', 'toolchain-${TOOLCHAIN}:']['${TOOLCHAIN}' != '']}"
57OVERRIDES[vardepsexclude] += "TOOLCHAIN" 58OVERRIDES =. "${@['', 'runtime-${RUNTIME}:']['${RUNTIME}' != '']}"
59OVERRIDES[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}"