From 1ec5ef54f884844cd8a91a6d1700022a5d454473 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 18 May 2017 10:29:01 -0700 Subject: clang: Fix get_clang_arch() to address OE target arch combos Use regular expressions for mapping to a llvm arch Signed-off-by: Khem Raj --- recipes-devtools/clang/clang_git.bb | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) (limited to 'recipes-devtools/clang/clang_git.bb') diff --git a/recipes-devtools/clang/clang_git.bb b/recipes-devtools/clang/clang_git.bb index e35736e..b36fe3a 100644 --- a/recipes-devtools/clang/clang_git.bb +++ b/recipes-devtools/clang/clang_git.bb @@ -45,23 +45,18 @@ inherit cmake OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" def get_clang_arch(bb, d, arch_var): - target_arch = d.getVar(arch_var, True) - clang_arches = { - "i586" : "X86", - "x86_64" : "X86", - "powerpc" : "PowerPC", - "mips" : "Mips", - "arm" : "ARM", - "arm64" : "AArch64", - "aarch64" : "AArch64", - "riscv" : "RISCV", - } - - if target_arch in clang_arches: - return clang_arches[target_arch] + import re + a = d.getVar(arch_var, True) + if re.match('(i.86|athlon|x86.64)$', a): return 'X86' + elif re.match('armeb$', a): return 'ARM' + elif re.match('aarch64$', a): return 'AArch64' + elif re.match('aarch64_be$', a): return 'AArch64' + elif re.match('mips(isa|)(32|64|)(r6|)(el|)$', a): return 'Mips' + elif re.match('p(pc|owerpc)(|64)', a): return 'PowerPC' + else: + bb.error("cannot map '%s' to a supported llvm architecture" % a) return "" - def get_clang_host_arch(bb, d): return get_clang_arch(bb, d, 'HOST_ARCH') -- cgit v1.2.3-54-g00ecf