[OE-core] [PATCH] llvm: Raise SkipRecipe exception for unsupported architectures

Nathan Rossi nathan at nathanrossi.com
Wed Aug 2 11:09:16 UTC 2017


When parsing this recipe on an unsupported or non-mappable architecture
an error is generated despite no dependencies on the recipe. E.g.

  ERROR: .../llvm_git.bb: cannot map 'microblazeel' to a supported llvm architecture

Instead of generating an error which might confuse users, raise a
SkipRecipe exception similar to other arch-style mapping functions (e.g.
go_map_arch). This avoids showing the error during parse, and prevents
the use of the recipe on unsupported targets. Resulting in an error like
so when trying to build llvm:

  ERROR: Nothing PROVIDES 'llvm'
  llvm was skipped: Cannot map 'microblazeel' to a supported LLVM architecture

Signed-off-by: Nathan Rossi <nathan at nathanrossi.com>
---
 meta/recipes-devtools/llvm/llvm_git.bb | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/meta/recipes-devtools/llvm/llvm_git.bb b/meta/recipes-devtools/llvm/llvm_git.bb
index 5dcb508c23..5db728bf44 100644
--- a/meta/recipes-devtools/llvm/llvm_git.bb
+++ b/meta/recipes-devtools/llvm/llvm_git.bb
@@ -42,8 +42,7 @@ def get_llvm_arch(bb, d, arch_var):
     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 ""
+        raise bb.parse.SkipRecipe("Cannot map '%s' to a supported LLVM architecture" % a)
 
 def get_llvm_target_arch(bb, d):
     return get_llvm_arch(bb, d, 'TARGET_ARCH')
-- 
2.13.2




More information about the Openembedded-core mailing list