diff options
author | Khem Raj <raj.khem@gmail.com> | 2017-05-18 10:29:01 -0700 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2017-05-18 10:29:01 -0700 |
commit | 1ec5ef54f884844cd8a91a6d1700022a5d454473 (patch) | |
tree | 237ae706d69a5f17690924e50007f5d7c481b60c /recipes-devtools/clang/clang_git.bb | |
parent | c312b19b342d8957e8ea949f53bc1af98f0ae12b (diff) | |
download | meta-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.bb | 25 |
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 | |||
45 | OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" | 45 | OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" |
46 | 46 | ||
47 | def get_clang_arch(bb, d, arch_var): | 47 | def 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 | |||
65 | def get_clang_host_arch(bb, d): | 60 | def 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 | ||