summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/clang/clang_git.bb
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2019-01-16 20:01:04 -0800
committerKhem Raj <raj.khem@gmail.com>2019-01-19 13:59:52 -0800
commit73f77d24cd944dee6a1838345921286d70cf14f7 (patch)
treea60a0b23bf71318669b599ed9b6d44b8649dcd34 /recipes-devtools/clang/clang_git.bb
parente82ff43b2f361a36d18ac9d09f119f02ca2ac989 (diff)
downloadmeta-clang-73f77d24cd944dee6a1838345921286d70cf14f7.tar.gz
clang: Switch to upcoming 8.0 release branch
Clang 8.0 is going to be released in Feb-March 2019 so here we switch to release/8.x branch a bit early so we can provide some feedback for release to be good on OE If one needs to use stable 7.0.1 release please use thud branch clang 8.0 does have RISC-V backend, enable it clang: Add building experimental targets e.g. riscv Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes-devtools/clang/clang_git.bb')
-rw-r--r--recipes-devtools/clang/clang_git.bb27
1 files changed, 23 insertions, 4 deletions
diff --git a/recipes-devtools/clang/clang_git.bb b/recipes-devtools/clang/clang_git.bb
index b3b8272..464f2f7 100644
--- a/recipes-devtools/clang/clang_git.bb
+++ b/recipes-devtools/clang/clang_git.bb
@@ -14,6 +14,12 @@ inherit cmake cmake-native
14 14
15OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" 15OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
16 16
17def get_clang_experimental_arch(bb, d, arch_var):
18 import re
19 a = d.getVar(arch_var, True)
20 if re.match('riscv(32|64)$', a): return 'RISCV'
21 return ""
22
17def get_clang_arch(bb, d, arch_var): 23def get_clang_arch(bb, d, arch_var):
18 import re 24 import re
19 a = d.getVar(arch_var, True) 25 a = d.getVar(arch_var, True)
@@ -24,9 +30,8 @@ def get_clang_arch(bb, d, arch_var):
24 elif re.match('aarch64_be$', a): return 'AArch64' 30 elif re.match('aarch64_be$', a): return 'AArch64'
25 elif re.match('mips(isa|)(32|64|)(r6|)(el|)$', a): return 'Mips' 31 elif re.match('mips(isa|)(32|64|)(r6|)(el|)$', a): return 'Mips'
26 elif re.match('p(pc|owerpc)(|64)', a): return 'PowerPC' 32 elif re.match('p(pc|owerpc)(|64)', a): return 'PowerPC'
27 elif re.match('riscv(32|64)$', a): return 'RISCV'
28 else: 33 else:
29 bb.error("cannot map '%s' to a supported llvm architecture" % a) 34 bb.note("'%s' is not a primary llvm architecture" % a)
30 return "" 35 return ""
31 36
32def get_clang_host_arch(bb, d): 37def get_clang_host_arch(bb, d):
@@ -35,6 +40,9 @@ def get_clang_host_arch(bb, d):
35def get_clang_target_arch(bb, d): 40def get_clang_target_arch(bb, d):
36 return get_clang_arch(bb, d, 'TARGET_ARCH') 41 return get_clang_arch(bb, d, 'TARGET_ARCH')
37 42
43def get_clang_experimental_target_arch(bb, d):
44 return get_clang_experimental_arch(bb, d, 'TARGET_ARCH')
45
38PACKAGECONFIG ??= "compiler-rt libcplusplus shared-libs" 46PACKAGECONFIG ??= "compiler-rt libcplusplus shared-libs"
39PACKAGECONFIG_class-native = "" 47PACKAGECONFIG_class-native = ""
40PACKAGECONFIG_class-nativesdk = "compiler-rt libcplusplus" 48PACKAGECONFIG_class-nativesdk = "compiler-rt libcplusplus"
@@ -50,7 +58,11 @@ LLVM_TARGETS_TO_BUILD ?= "AArch64;ARM;BPF;Mips;PowerPC;X86"
50LLVM_TARGETS_TO_BUILD_append = ";${@get_clang_host_arch(bb, d)};${@get_clang_target_arch(bb, d)}" 58LLVM_TARGETS_TO_BUILD_append = ";${@get_clang_host_arch(bb, d)};${@get_clang_target_arch(bb, d)}"
51 59
52LLVM_TARGETS_TO_BUILD_TARGET ?= "" 60LLVM_TARGETS_TO_BUILD_TARGET ?= ""
53LLVM_TARGETS_TO_BUILD_TARGET_append ?= ";${@get_clang_target_arch(bb, d)}" 61LLVM_TARGETS_TO_BUILD_TARGET_append ?= "${@get_clang_target_arch(bb, d)}"
62
63LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ?= "RISCV"
64LLVM_EXPERIMENTAL_TARGETS_TO_BUILD_append = ";${@get_clang_experimental_target_arch(bb, d)}"
65
54EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ 66EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
55 -DLLVM_ENABLE_EXPENSIVE_CHECKS=OFF \ 67 -DLLVM_ENABLE_EXPENSIVE_CHECKS=OFF \
56 -DLLVM_ENABLE_PIC=ON \ 68 -DLLVM_ENABLE_PIC=ON \
@@ -70,11 +82,13 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
70 82
71EXTRA_OECMAKE_append_class-native = "\ 83EXTRA_OECMAKE_append_class-native = "\
72 -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \ 84 -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \
85 -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \
73" 86"
74EXTRA_OECMAKE_append_class-nativesdk = "\ 87EXTRA_OECMAKE_append_class-nativesdk = "\
75 -DCMAKE_CROSSCOMPILING:BOOL=ON \ 88 -DCMAKE_CROSSCOMPILING:BOOL=ON \
76 -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \ 89 -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \
77 -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \ 90 -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \
91 -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \
78 -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ 92 -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
79 -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \ 93 -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \
80" 94"
@@ -86,7 +100,12 @@ EXTRA_OECMAKE_append_class-target = "\
86 -DLLVM_TARGET_ARCH=${@get_clang_target_arch(bb, d)} \ 100 -DLLVM_TARGET_ARCH=${@get_clang_target_arch(bb, d)} \
87 -DLLVM_DEFAULT_TARGET_TRIPLE=${TARGET_SYS} \ 101 -DLLVM_DEFAULT_TARGET_TRIPLE=${TARGET_SYS} \
88" 102"
89 103EXTRA_OECMAKE_append_class-target_riscv64 = "\
104 -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \
105"
106EXTRA_OECMAKE_append_class-target_riscv32 = "\
107 -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \
108"
90DEPENDS = "zlib libffi libxml2 ninja-native" 109DEPENDS = "zlib libffi libxml2 ninja-native"
91DEPENDS_append_class-nativesdk = " clang-native virtual/${TARGET_PREFIX}binutils-crosssdk virtual/${TARGET_PREFIX}gcc-crosssdk virtual/${TARGET_PREFIX}g++-crosssdk" 110DEPENDS_append_class-nativesdk = " clang-native virtual/${TARGET_PREFIX}binutils-crosssdk virtual/${TARGET_PREFIX}gcc-crosssdk virtual/${TARGET_PREFIX}g++-crosssdk"
92DEPENDS_append_class-target = " clang-cross-${TARGET_ARCH} ${@bb.utils.contains('TOOLCHAIN', 'gcc', 'virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++', '', d)}" 111DEPENDS_append_class-target = " clang-cross-${TARGET_ARCH} ${@bb.utils.contains('TOOLCHAIN', 'gcc', 'virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++', '', d)}"