Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/1] Update classextend file to support multiple multilib item
@ 2015-11-13  2:32 kai.kang
  2015-11-13  2:32 ` [PATCH 1/1] classextend.py: update filter to support multiple multilib items kai.kang
  0 siblings, 1 reply; 3+ messages in thread
From: kai.kang @ 2015-11-13  2:32 UTC (permalink / raw)
  To: openembedded-core

From: Kai Kang <kai.kang@windriver.com>

Add following configure to local.conf, then failure appears.

===============================================
MACHINE = "qemux86-64" 

require conf/multilib.conf                                                                                   
MULTILIBS = "multilib:lib32 multilib:lib64"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
DEFAULTTUNE_virtclass-multilib-lib64 = "x86-64"
===============================================

Run:
$ bitbake lib64-meta-ide-support                                                                   [10:38:25]

Loading cache: 100% |#########################################################################| ETA:  00:00:00
Loaded 3126 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies
ERROR: Nothing PROVIDES 'virtual/lib32-lib64-libc'. Close matches:
  virtual/lib64-libc
  virtual/lib32-libc
  virtual/lib32-libgl
ERROR: Required build target 'lib64-meta-ide-support' has no buildable providers.
Missing or unbuildable dependency chain was: ['lib64-meta-ide-support', 'virtual/lib32-lib64-libc']


The following changes since commit fc45deac89ef63ca1c44e763c38ced7dfd72cbe1:

  build-appliance-image: Update to jethro head revision (2015-11-03 14:03:03 +0000)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib kangkai/multilib
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=kangkai/multilib

Kai Kang (1):
  classextend.py: update filter to support multiple multilib items

 meta/lib/oe/classextend.py | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

-- 
2.6.1



^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 1/1] classextend.py: update filter to support multiple multilib items
  2015-11-13  2:32 [PATCH 0/1] Update classextend file to support multiple multilib item kai.kang
@ 2015-11-13  2:32 ` kai.kang
  2015-11-13  9:16   ` Kang Kai
  0 siblings, 1 reply; 3+ messages in thread
From: kai.kang @ 2015-11-13  2:32 UTC (permalink / raw)
  To: openembedded-core

From: Kai Kang <kai.kang@windriver.com>

If it is set with two or more mutliblib items, such as:

MULTILIBS = "multilib:lib32 multilib:lib64"

it expands some virtual providers wrongly:

| ERROR: Nothing PROVIDES 'virtual/lib32-lib64-libc'.

Update the filter that do not extend variables which already have
one of mulitlib prefixes.

Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
 meta/lib/oe/classextend.py | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/meta/lib/oe/classextend.py b/meta/lib/oe/classextend.py
index 5107ecd..6a6affb 100644
--- a/meta/lib/oe/classextend.py
+++ b/meta/lib/oe/classextend.py
@@ -15,10 +15,10 @@ class ClassExtender(object):
             name = name.replace("-" + self.extname, "")
         if name.startswith("virtual/"):
             subs = name.split("/", 1)[1]
-            if not subs.startswith(self.extname):
+            if not self.check_prefix(subs):
                 return "virtual/" + self.extname + "-" + subs
             return name
-        if not name.startswith(self.extname):
+        if not self.check_prefix(name):
             return self.extname + "-" + name
         return name
 
@@ -57,13 +57,6 @@ 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 = ""):
@@ -108,6 +101,16 @@ class ClassExtender(object):
             for subs in variables:
                 self.d.renameVar("%s_%s" % (subs, pkg_mapping[0]), "%s_%s" % (subs, pkg_mapping[1]))
 
+    def check_prefix(self, name):
+        ml_prefixes = (self.d.getVar("MULTILIB_VARIANTS", True) or "").split()
+        if self.extname in ml_prefixes:
+            for var in ml_prefixes:
+                if name.startswith(var):
+                    return True
+            return False
+        else:
+            return name.startswith(self.extname)
+
 class NativesdkClassExtender(ClassExtender):
     def map_depends(self, dep):
         if dep.startswith(self.extname):
-- 
2.6.1



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/1] classextend.py: update filter to support multiple multilib items
  2015-11-13  2:32 ` [PATCH 1/1] classextend.py: update filter to support multiple multilib items kai.kang
@ 2015-11-13  9:16   ` Kang Kai
  0 siblings, 0 replies; 3+ messages in thread
From: Kang Kai @ 2015-11-13  9:16 UTC (permalink / raw)
  To: openembedded-core

On 2015年11月13日 10:32, kai.kang@windriver.com wrote:
> From: Kai Kang <kai.kang@windriver.com>
>
> If it is set with two or more mutliblib items, such as:
>
> MULTILIBS = "multilib:lib32 multilib:lib64"
>
> it expands some virtual providers wrongly:
>
> | ERROR: Nothing PROVIDES 'virtual/lib32-lib64-libc'.
>
> Update the filter that do not extend variables which already have
> one of mulitlib prefixes.
>
> Signed-off-by: Kai Kang <kai.kang@windriver.com>
> ---
>   meta/lib/oe/classextend.py | 21 ++++++++++++---------
>   1 file changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/meta/lib/oe/classextend.py b/meta/lib/oe/classextend.py


It is better to be fixed in toolchain-scripts.bbclass where call the 
fucs of class ClassExtender.
So ignore this one please. I'll send another patch to fix it.

--Kai

> index 5107ecd..6a6affb 100644
> --- a/meta/lib/oe/classextend.py
> +++ b/meta/lib/oe/classextend.py
> @@ -15,10 +15,10 @@ class ClassExtender(object):
>               name = name.replace("-" + self.extname, "")
>           if name.startswith("virtual/"):
>               subs = name.split("/", 1)[1]
> -            if not subs.startswith(self.extname):
> +            if not self.check_prefix(subs):
>                   return "virtual/" + self.extname + "-" + subs
>               return name
> -        if not name.startswith(self.extname):
> +        if not self.check_prefix(name):
>               return self.extname + "-" + name
>           return name
>   
> @@ -57,13 +57,6 @@ 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 = ""):
> @@ -108,6 +101,16 @@ class ClassExtender(object):
>               for subs in variables:
>                   self.d.renameVar("%s_%s" % (subs, pkg_mapping[0]), "%s_%s" % (subs, pkg_mapping[1]))
>   
> +    def check_prefix(self, name):
> +        ml_prefixes = (self.d.getVar("MULTILIB_VARIANTS", True) or "").split()
> +        if self.extname in ml_prefixes:
> +            for var in ml_prefixes:
> +                if name.startswith(var):
> +                    return True
> +            return False
> +        else:
> +            return name.startswith(self.extname)
> +
>   class NativesdkClassExtender(ClassExtender):
>       def map_depends(self, dep):
>           if dep.startswith(self.extname):


-- 
Regards,
Neil | Kai Kang



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-11-13  9:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-13  2:32 [PATCH 0/1] Update classextend file to support multiple multilib item kai.kang
2015-11-13  2:32 ` [PATCH 1/1] classextend.py: update filter to support multiple multilib items kai.kang
2015-11-13  9:16   ` Kang Kai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox