* [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