diff options
authorJackie Huang <jackie.huang@windriver.com>2014-11-10 20:54:11 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-11-12 15:36:13 +0000
commitc4e9b2aa894d59fe951038b3b73795b6891df70a (patch)
parentb4e6e0aa0229d2ce4c8bee24581c127a31109676 (diff)
classextend: Do not extend for that already have multilib prefix
If a BSP supports two or more multilibs, for example: MULTILIBS = "multilib:lib32 multilib:lib64" and a variable is already extended to include multilib variants, for example in populate_sdk_base: commit 396371588c7fd2d691ca9c39cd02287e43cb665b Author: Richard Purdie <richard.purdie@linuxfoundation.org> Date: Thu Jul 24 22:09:09 2014 +0100 populate_sdk_base: Extend TOOLCHAIN_TARGET_TASK to include multilib variants Most people expect the toolchain from a multilib build to contain multilib components. This change makes that happen and is easy for users to override should they want something different. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> The mapping clsextend.map_depends_variable("TOOLCHAIN_TARGET_TASK") ends up with a wrong double extended package name like: lib32-lib64-packagegroup-core-standalone-sdk-target This patch avoid such issues. Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
1 files changed, 7 insertions, 0 deletions
diff --git a/meta/lib/oe/classextend.py b/meta/lib/oe/classextend.py
index 68efca32d0..8da87b771a 100644
--- a/meta/lib/oe/classextend.py
+++ b/meta/lib/oe/classextend.py
@@ -57,6 +57,13 @@ class ClassExtender(object):
if dep.endswith(("-native", "-native-runtime")) or ('nativesdk-' in dep) or ('cross-canadian' in dep) or ('-crosssdk-' in dep):
return dep
+ # Do not extend for that already have multilib prefix
+ var = self.d.getVar("MULTILIB_VARIANTS", True)
+ if var:
+ var = var.split()
+ for v in var:
+ if dep.startswith(v):
+ return dep
return self.extend_name(dep)
def map_depends_variable(self, varname, suffix = ""):