* [PATCH 0/1] Don't extend package name if extended already for multilib
@ 2017-10-18 8:02 kai.kang
2017-10-18 8:02 ` [PATCH 1/1] toolchain-scripts.bbclass: do not extend dependency if extended already kai.kang
0 siblings, 1 reply; 3+ messages in thread
From: kai.kang @ 2017-10-18 8:02 UTC (permalink / raw)
To: openembedded-core
From: Kai Kang <kai.kang@windriver.com>
This patch is for mips64 which could set for 2 kinds of multilbs:
MULTILIBS ?= "multilib:lib32 multilib:libn32"
DEFAULTTUNE_virtclass-multilib-lib32 ?= "mips"
DEFAULTTUNE_virtclass-multilib-libn32 ?= "mips64-n32"
Tested on Yocto with sample config for qemux86-64:
1 set MACHINE and multilibs in local.conf
===============================================
MACHINE = "qemux86-64"
require conf/multilib.conf
MULTILIBS = "multilib:lib32 multilib:lib64"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
DEFAULTTUNE_virtclass-multilib-lib64 = "x86-64"
===============================================
2 bitbake lib32-meta-ide-support core-image-sato
No such error shows:
ERROR: Nothing PROVIDES 'virtual/lib32-libn32-libc'.
Kai Kang (1):
toolchain-scripts.bbclass: do not extend dependency if extended
already
meta/classes/toolchain-scripts.bbclass | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
--
2.14.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/1] toolchain-scripts.bbclass: do not extend dependency if extended already
2017-10-18 8:02 [PATCH 0/1] Don't extend package name if extended already for multilib kai.kang
@ 2017-10-18 8:02 ` kai.kang
2017-11-16 8:44 ` Kang Kai
0 siblings, 1 reply; 3+ messages in thread
From: kai.kang @ 2017-10-18 8:02 UTC (permalink / raw)
To: openembedded-core
From: Kai Kang <kai.kang@windriver.com>
When set MULTILIBS with two or more items, such as for mips64:
MULTILIBS ?= "multilib:lib32 multilib:libn32"
It extends dependency package name once in multilib.bbclass, and expand again
in toolchain-scripts.bbclass which causes error:
| ERROR: Nothing PROVIDES 'virtual/lib32-libn32-libc'. Close matches:
| virtual/libn32-libc
| virtual/lib32-libc
| virtual/libn32-librpc
| ERROR: Required build target 'libn32-meta-ide-support' has no buildable providers.
| Missing or unbuildable dependency chain was: ['libn32-meta-ide-support', 'virtual/lib32-libn32-libc']
Don't extend package name if it has been extended already.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
meta/classes/toolchain-scripts.bbclass | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/meta/classes/toolchain-scripts.bbclass b/meta/classes/toolchain-scripts.bbclass
index 9bcfe708c7..4e4334abbb 100644
--- a/meta/classes/toolchain-scripts.bbclass
+++ b/meta/classes/toolchain-scripts.bbclass
@@ -150,11 +150,17 @@ toolchain_create_sdk_siteconfig () {
toolchain_create_sdk_siteconfig[vardepsexclude] = "TOOLCHAIN_CONFIGSITE_SYSROOTCACHE"
python __anonymous () {
+ import re
import oe.classextend
deps = ""
for dep in (d.getVar('TOOLCHAIN_NEED_CONFIGSITE_CACHE') or "").split():
deps += " %s:do_populate_sysroot" % dep
- for variant in (d.getVar('MULTILIB_VARIANTS') or "").split():
+ ml_variants = (d.getVar('MULTILIB_VARIANTS') or "").split()
+ for variant in ml_variants:
+ # don't extend if dep has been extended already
+ if filter(lambda x: re.match('(virtual/)?' + x, dep), ml_variants):
+ continue
+
clsextend = oe.classextend.ClassExtender(variant, d)
newdep = clsextend.extend_name(dep)
deps += " %s:do_populate_sysroot" % newdep
--
2.14.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/1] toolchain-scripts.bbclass: do not extend dependency if extended already
2017-10-18 8:02 ` [PATCH 1/1] toolchain-scripts.bbclass: do not extend dependency if extended already kai.kang
@ 2017-11-16 8:44 ` Kang Kai
0 siblings, 0 replies; 3+ messages in thread
From: Kang Kai @ 2017-11-16 8:44 UTC (permalink / raw)
To: openembedded-core
On 2017年10月18日 16:02, kai.kang@windriver.com wrote:
> From: Kai Kang <kai.kang@windriver.com>
>
> When set MULTILIBS with two or more items, such as for mips64:
>
> MULTILIBS ?= "multilib:lib32 multilib:libn32"
>
> It extends dependency package name once in multilib.bbclass, and expand again
> in toolchain-scripts.bbclass which causes error:
>
> | ERROR: Nothing PROVIDES 'virtual/lib32-libn32-libc'. Close matches:
> | virtual/libn32-libc
> | virtual/lib32-libc
> | virtual/libn32-librpc
> | ERROR: Required build target 'libn32-meta-ide-support' has no buildable providers.
> | Missing or unbuildable dependency chain was: ['libn32-meta-ide-support', 'virtual/lib32-libn32-libc']
>
> Don't extend package name if it has been extended already.
Any comment? Thanks.
--Kai
>
> Signed-off-by: Kai Kang <kai.kang@windriver.com>
> ---
> meta/classes/toolchain-scripts.bbclass | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/meta/classes/toolchain-scripts.bbclass b/meta/classes/toolchain-scripts.bbclass
> index 9bcfe708c7..4e4334abbb 100644
> --- a/meta/classes/toolchain-scripts.bbclass
> +++ b/meta/classes/toolchain-scripts.bbclass
> @@ -150,11 +150,17 @@ toolchain_create_sdk_siteconfig () {
> toolchain_create_sdk_siteconfig[vardepsexclude] = "TOOLCHAIN_CONFIGSITE_SYSROOTCACHE"
>
> python __anonymous () {
> + import re
> import oe.classextend
> deps = ""
> for dep in (d.getVar('TOOLCHAIN_NEED_CONFIGSITE_CACHE') or "").split():
> deps += " %s:do_populate_sysroot" % dep
> - for variant in (d.getVar('MULTILIB_VARIANTS') or "").split():
> + ml_variants = (d.getVar('MULTILIB_VARIANTS') or "").split()
> + for variant in ml_variants:
> + # don't extend if dep has been extended already
> + if filter(lambda x: re.match('(virtual/)?' + x, dep), ml_variants):
> + continue
> +
> clsextend = oe.classextend.ClassExtender(variant, d)
> newdep = clsextend.extend_name(dep)
> deps += " %s:do_populate_sysroot" % newdep
--
Regards,
Neil | Kai Kang
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-11-16 8:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-18 8:02 [PATCH 0/1] Don't extend package name if extended already for multilib kai.kang
2017-10-18 8:02 ` [PATCH 1/1] toolchain-scripts.bbclass: do not extend dependency if extended already kai.kang
2017-11-16 8:44 ` Kang Kai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox