diff options
author | Khem Raj <raj.khem@gmail.com> | 2019-01-16 20:01:04 -0800 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2019-01-19 13:59:52 -0800 |
commit | 73f77d24cd944dee6a1838345921286d70cf14f7 (patch) | |
tree | a60a0b23bf71318669b599ed9b6d44b8649dcd34 /recipes-devtools/clang/clang_git.bb | |
parent | e82ff43b2f361a36d18ac9d09f119f02ca2ac989 (diff) | |
download | meta-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.bb | 27 |
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 | ||
15 | OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" | 15 | OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" |
16 | 16 | ||
17 | def 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 | |||
17 | def get_clang_arch(bb, d, arch_var): | 23 | def 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 | ||
32 | def get_clang_host_arch(bb, d): | 37 | def get_clang_host_arch(bb, d): |
@@ -35,6 +40,9 @@ def get_clang_host_arch(bb, d): | |||
35 | def get_clang_target_arch(bb, d): | 40 | def 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 | ||
43 | def get_clang_experimental_target_arch(bb, d): | ||
44 | return get_clang_experimental_arch(bb, d, 'TARGET_ARCH') | ||
45 | |||
38 | PACKAGECONFIG ??= "compiler-rt libcplusplus shared-libs" | 46 | PACKAGECONFIG ??= "compiler-rt libcplusplus shared-libs" |
39 | PACKAGECONFIG_class-native = "" | 47 | PACKAGECONFIG_class-native = "" |
40 | PACKAGECONFIG_class-nativesdk = "compiler-rt libcplusplus" | 48 | PACKAGECONFIG_class-nativesdk = "compiler-rt libcplusplus" |
@@ -50,7 +58,11 @@ LLVM_TARGETS_TO_BUILD ?= "AArch64;ARM;BPF;Mips;PowerPC;X86" | |||
50 | LLVM_TARGETS_TO_BUILD_append = ";${@get_clang_host_arch(bb, d)};${@get_clang_target_arch(bb, d)}" | 58 | LLVM_TARGETS_TO_BUILD_append = ";${@get_clang_host_arch(bb, d)};${@get_clang_target_arch(bb, d)}" |
51 | 59 | ||
52 | LLVM_TARGETS_TO_BUILD_TARGET ?= "" | 60 | LLVM_TARGETS_TO_BUILD_TARGET ?= "" |
53 | LLVM_TARGETS_TO_BUILD_TARGET_append ?= ";${@get_clang_target_arch(bb, d)}" | 61 | LLVM_TARGETS_TO_BUILD_TARGET_append ?= "${@get_clang_target_arch(bb, d)}" |
62 | |||
63 | LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ?= "RISCV" | ||
64 | LLVM_EXPERIMENTAL_TARGETS_TO_BUILD_append = ";${@get_clang_experimental_target_arch(bb, d)}" | ||
65 | |||
54 | EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ | 66 | EXTRA_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 | ||
71 | EXTRA_OECMAKE_append_class-native = "\ | 83 | EXTRA_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 | " |
74 | EXTRA_OECMAKE_append_class-nativesdk = "\ | 87 | EXTRA_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 | 103 | EXTRA_OECMAKE_append_class-target_riscv64 = "\ | |
104 | -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ | ||
105 | " | ||
106 | EXTRA_OECMAKE_append_class-target_riscv32 = "\ | ||
107 | -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ | ||
108 | " | ||
90 | DEPENDS = "zlib libffi libxml2 ninja-native" | 109 | DEPENDS = "zlib libffi libxml2 ninja-native" |
91 | DEPENDS_append_class-nativesdk = " clang-native virtual/${TARGET_PREFIX}binutils-crosssdk virtual/${TARGET_PREFIX}gcc-crosssdk virtual/${TARGET_PREFIX}g++-crosssdk" | 110 | DEPENDS_append_class-nativesdk = " clang-native virtual/${TARGET_PREFIX}binutils-crosssdk virtual/${TARGET_PREFIX}gcc-crosssdk virtual/${TARGET_PREFIX}g++-crosssdk" |
92 | DEPENDS_append_class-target = " clang-cross-${TARGET_ARCH} ${@bb.utils.contains('TOOLCHAIN', 'gcc', 'virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++', '', d)}" | 111 | DEPENDS_append_class-target = " clang-cross-${TARGET_ARCH} ${@bb.utils.contains('TOOLCHAIN', 'gcc', 'virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++', '', d)}" |