From be7a567a8eab50e6a0a10b3409850ddd0d529a6f Mon Sep 17 00:00:00 2001 From: Hiroshi Hatake Date: Mon, 16 Dec 2019 17:41:45 +0900 Subject: Compute LLVM_LIBDIR_SUFFIX correctly on multiarch environment Co-authored-by: INAJIMA Daisuke --- recipes-devtools/clang/clang.inc | 18 ++++++++++++++++++ recipes-devtools/clang/compiler-rt_git.bb | 1 + recipes-devtools/clang/libcxx_git.bb | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/recipes-devtools/clang/clang.inc b/recipes-devtools/clang/clang.inc index 4c028b4..b631c0e4 100644 --- a/recipes-devtools/clang/clang.inc +++ b/recipes-devtools/clang/clang.inc @@ -18,4 +18,22 @@ CLANGMD5SUM = "ff42885ed2ab98f1ecb8c1fc41205343" LLDMD5SUM = "ae7dc7c027b1fa89b5b013d391d3ee2b" LLDBMD5SUM = "2e0d44968471fcde980034dbb826bea9" +def get_libdir_suffix(d, arch_var): + import re + multilibs = (d.getVar("MULTILIB_VARIANTS") or "").split() + if multilibs: + a = d.getVar(arch_var, True) + if re.match('(i.86|athlon)$', a): return '32' + elif re.match('x86.64$', a): return '64' + elif re.match('(arm|armbe)$', a): return '32' + elif re.match('(aarch64|aarch64_be)$', a): return '64' + elif re.match('mips(isa|)32(r6|)(el|)$', a): return '32' + elif re.match('mips(isa|)64(r6|)(el|)$', a): return '64' + elif re.match('p(pc|owerpc)', a): return '32' + elif re.match('p(pc|owerpc)64', a): return '64' + else: + return '' + +LLVM_LIBDIR_SUFFIX="${@get_libdir_suffix(d, 'TARGET_ARCH')}" + require common.inc diff --git a/recipes-devtools/clang/compiler-rt_git.bb b/recipes-devtools/clang/compiler-rt_git.bb index e76a560..f331a07 100644 --- a/recipes-devtools/clang/compiler-rt_git.bb +++ b/recipes-devtools/clang/compiler-rt_git.bb @@ -31,6 +31,7 @@ EXTRA_OECMAKE += "-DCOMPILER_RT_STANDALONE_BUILD=OFF \ -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ + -DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} \ -G Ninja ${S}/llvm \ " diff --git a/recipes-devtools/clang/libcxx_git.bb b/recipes-devtools/clang/libcxx_git.bb index 2d530c5..01d9260 100644 --- a/recipes-devtools/clang/libcxx_git.bb +++ b/recipes-devtools/clang/libcxx_git.bb @@ -51,7 +51,7 @@ EXTRA_OECMAKE += "\ -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${NM} \ -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \ -DLLVM_ENABLE_PROJECTS='libcxx;libcxxabi;libunwind' \ - -DLLVM_LIBDIR_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ + -DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} \ -G Ninja \ ${S}/llvm \ " -- cgit v1.2.3-54-g00ecf