summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/clang/clang_git.bb
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2017-05-18 10:29:01 -0700
committerKhem Raj <raj.khem@gmail.com>2017-05-18 10:29:01 -0700
commit1ec5ef54f884844cd8a91a6d1700022a5d454473 (patch)
tree237ae706d69a5f17690924e50007f5d7c481b60c /recipes-devtools/clang/clang_git.bb
parentc312b19b342d8957e8ea949f53bc1af98f0ae12b (diff)
downloadmeta-clang-1ec5ef54f884844cd8a91a6d1700022a5d454473.tar.gz
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 <raj.khem@gmail.com>
Diffstat (limited to 'recipes-devtools/clang/clang_git.bb')
-rw-r--r--recipes-devtools/clang/clang_git.bb25
1 files changed, 10 insertions, 15 deletions
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
45OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" 45OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
46 46
47def get_clang_arch(bb, d, arch_var): 47def get_clang_arch(bb, d, arch_var):
48 target_arch = d.getVar(arch_var, True) 48 import re
49 clang_arches = { 49 a = d.getVar(arch_var, True)
50 "i586" : "X86", 50 if re.match('(i.86|athlon|x86.64)$', a): return 'X86'
51 "x86_64" : "X86", 51 elif re.match('armeb$', a): return 'ARM'
52 "powerpc" : "PowerPC", 52 elif re.match('aarch64$', a): return 'AArch64'
53 "mips" : "Mips", 53 elif re.match('aarch64_be$', a): return 'AArch64'
54 "arm" : "ARM", 54 elif re.match('mips(isa|)(32|64|)(r6|)(el|)$', a): return 'Mips'
55 "arm64" : "AArch64", 55 elif re.match('p(pc|owerpc)(|64)', a): return 'PowerPC'
56 "aarch64" : "AArch64", 56 else:
57 "riscv" : "RISCV", 57 bb.error("cannot map '%s' to a supported llvm architecture" % a)
58 }
59
60 if target_arch in clang_arches:
61 return clang_arches[target_arch]
62 return "" 58 return ""
63 59
64
65def get_clang_host_arch(bb, d): 60def get_clang_host_arch(bb, d):
66 return get_clang_arch(bb, d, 'HOST_ARCH') 61 return get_clang_arch(bb, d, 'HOST_ARCH')
67 62