summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHiroshi Hatake <hatake@clear-code.com>2019-12-09 06:33:35 +0000
committerKhem Raj <raj.khem@gmail.com>2019-12-15 02:17:58 -0800
commit3bc0042f599487643d3844be3ae225a70fa9cb97 (patch)
tree8bae3d078a5d000845cc27b0cbf90b598dd7c1a2
parent1598cc45795cbcab831270e4286aef113faa1325 (diff)
downloadmeta-clang-3bc0042f599487643d3844be3ae225a70fa9cb97.tar.gz
Support multiarch Yocto environment
Co-authored-by: INAJIMA Daisuke <inajima@soum.co.jp>
-rw-r--r--recipes-devtools/clang/clang.inc18
-rw-r--r--recipes-devtools/clang/compiler-rt_git.bb1
-rw-r--r--recipes-devtools/clang/libcxx_git.bb3
3 files changed, 21 insertions, 1 deletions
diff --git a/recipes-devtools/clang/clang.inc b/recipes-devtools/clang/clang.inc
index 11e56ad..12c7a52 100644
--- a/recipes-devtools/clang/clang.inc
+++ b/recipes-devtools/clang/clang.inc
@@ -18,4 +18,22 @@ CLANGMD5SUM = "9a0fe3a7846ba0ffc822a70d6f7f6903"
18LLDMD5SUM = "f4941ace8ddb3d6cf177fff94966319a" 18LLDMD5SUM = "f4941ace8ddb3d6cf177fff94966319a"
19LLDBMD5SUM = "b6320ed0b0d00ae661dd94f277bbf024" 19LLDBMD5SUM = "b6320ed0b0d00ae661dd94f277bbf024"
20 20
21def get_libdir_suffix(d, arch_var):
22 import re
23 multilibs = (d.getVar("MULTILIB_VARIANTS") or "").split()
24 if multilibs:
25 a = d.getVar(arch_var, True)
26 if re.match('(i.86|athlon)$', a): return '32'
27 elif re.match('x86.64$', a): return '64'
28 elif re.match('(arm|armbe)$', a): return '32'
29 elif re.match('(aarch64|aarch64_be)$', a): return '64'
30 elif re.match('mips(isa|)32(r6|)(el|)$', a): return '32'
31 elif re.match('mips(isa|)64(r6|)(el|)$', a): return '64'
32 elif re.match('p(pc|owerpc)', a): return '32'
33 elif re.match('p(pc|owerpc)64', a): return '64'
34 else:
35 return ''
36
37LLVM_LIBDIR_SUFFIX="${@get_libdir_suffix(d, 'TARGET_ARCH')}"
38
21require common.inc 39require common.inc
diff --git a/recipes-devtools/clang/compiler-rt_git.bb b/recipes-devtools/clang/compiler-rt_git.bb
index 9a15211..f4bd909 100644
--- a/recipes-devtools/clang/compiler-rt_git.bb
+++ b/recipes-devtools/clang/compiler-rt_git.bb
@@ -35,6 +35,7 @@ EXTRA_OECMAKE += "-DCOMPILER_RT_STANDALONE_BUILD=OFF \
35 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ 35 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \
36 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ 36 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \
37 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ 37 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \
38 -DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} \
38 -G Ninja ${S}/llvm \ 39 -G Ninja ${S}/llvm \
39" 40"
40 41
diff --git a/recipes-devtools/clang/libcxx_git.bb b/recipes-devtools/clang/libcxx_git.bb
index aced724..13ef77a 100644
--- a/recipes-devtools/clang/libcxx_git.bb
+++ b/recipes-devtools/clang/libcxx_git.bb
@@ -40,11 +40,12 @@ EXTRA_OECMAKE += "\
40 -DCXX_SUPPORTS_CXX11=ON \ 40 -DCXX_SUPPORTS_CXX11=ON \
41 -DLIBCXXABI_LIBCXX_INCLUDES=${S}/libcxx/include \ 41 -DLIBCXXABI_LIBCXX_INCLUDES=${S}/libcxx/include \
42 -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${S}/libcxxabi/include \ 42 -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${S}/libcxxabi/include \
43 -DLIBCXX_CXX_ABI_LIBRARY_PATH=${B}/lib \ 43 -DLIBCXX_CXX_ABI_LIBRARY_PATH=${B}/${base_libdir} \
44 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ 44 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \
45 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ 45 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \
46 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ 46 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \
47 -DLLVM_ENABLE_PROJECTS='libcxx;libcxxabi${LIBUNWIND}' \ 47 -DLLVM_ENABLE_PROJECTS='libcxx;libcxxabi${LIBUNWIND}' \
48 -DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} \
48 -G Ninja \ 49 -G Ninja \
49 ${S}/llvm \ 50 ${S}/llvm \
50" 51"