diff mbox series

[1/2] clang: move get_clang_arch() functions to the common inc file

Message ID 20250724183849.3546823-1-ross.burton@arm.com
State New
Headers show
Series [1/2] clang: move get_clang_arch() functions to the common inc file | expand

Commit Message

Ross Burton July 24, 2025, 6:38 p.m. UTC
These functions are useful outside of just the clang recipe, so move
them to a common .inc file so they can be used by other clang-related
recipes.

Also make the function fail if it doesn't recognise the architecture,
instead of returning the empty string and causing mysterious fails later.

Signed-off-by: Ross Burton <ross.burton@arm.com>
---
 meta/recipes-devtools/clang/clang_git.bb     | 23 --------------------
 meta/recipes-devtools/clang/common-clang.inc | 23 ++++++++++++++++++++
 2 files changed, 23 insertions(+), 23 deletions(-)
diff mbox series

Patch

diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb
index 60eb256e1ad..ad070b5a3e0 100644
--- a/meta/recipes-devtools/clang/clang_git.bb
+++ b/meta/recipes-devtools/clang/clang_git.bb
@@ -30,29 +30,6 @@  inherit cmake pkgconfig python3native python3targetconfig multilib_header
 
 OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
 
-def get_clang_arch(bb, d, arch_var):
-    import re
-    a = d.getVar(arch_var)
-    if   re.match('(i.86|athlon|x86.64)$', a):         return 'X86'
-    elif re.match('arm$', a):                          return 'ARM'
-    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('riscv32$', a):                      return 'RISCV'
-    elif re.match('riscv64$', a):                      return 'RISCV'
-    elif re.match('p(pc|owerpc)(|64)', a):             return 'PowerPC'
-    elif re.match('loongarch64$', a):                  return 'LoongArch'
-    else:
-        bb.note("'%s' is not a primary llvm architecture" % a)
-    return ""
-
-def get_clang_host_arch(bb, d):
-    return get_clang_arch(bb, d, 'HOST_ARCH')
-
-def get_clang_target_arch(bb, d):
-    return get_clang_arch(bb, d, 'TARGET_ARCH')
-
 PACKAGECONFIG_CLANG_COMMON = "build-id eh libedit rtti shared-libs libclang-python \
                               ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', 'lld', '', d)} \
                               ${@bb.utils.contains('TC_CXX_RUNTIME', 'llvm', 'compiler-rt libcplusplus libomp unwindlib', '', d)} \
diff --git a/meta/recipes-devtools/clang/common-clang.inc b/meta/recipes-devtools/clang/common-clang.inc
index b8f37daea24..6ac53125f09 100644
--- a/meta/recipes-devtools/clang/common-clang.inc
+++ b/meta/recipes-devtools/clang/common-clang.inc
@@ -21,4 +21,27 @@  LLVM_LIBDIR_SUFFIX = "${@d.getVar('baselib').replace('lib', '')}"
 # set the default pigz thread
 export PIGZ = "-p ${@oe.utils.cpu_count(at_least=2)}"
 
+def get_clang_arch(bb, d, arch_var):
+    import re
+    a = d.getVar(arch_var)
+    if   re.match('(i.86|athlon|x86.64)$', a):         return 'X86'
+    elif re.match('arm$', a):                          return 'ARM'
+    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('riscv32$', a):                      return 'RISCV'
+    elif re.match('riscv64$', a):                      return 'RISCV'
+    elif re.match('p(pc|owerpc)(|64)', a):             return 'PowerPC'
+    elif re.match('loongarch64$', a):                  return 'LoongArch'
+    else:
+        bb.fatal("Unhandled architecture %s" % arch_val)
+        return ""
+
+def get_clang_host_arch(bb, d):
+    return get_clang_arch(bb, d, 'HOST_ARCH')
+
+def get_clang_target_arch(bb, d):
+    return get_clang_arch(bb, d, 'TARGET_ARCH')
+
 require common.inc