From c4e9b2aa894d59fe951038b3b73795b6891df70a Mon Sep 17 00:00:00 2001 From: Jackie Huang Date: Mon, 10 Nov 2014 20:54:11 -0500 Subject: 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 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 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 Signed-off-by: Ross Burton --- meta/lib/oe/classextend.py | 7 +++++++ 1 file changed, 7 insertions(+) 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 else: + # 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 = ""): -- cgit 1.2.3-korg