From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Robert Yang <liezhi.yang@windriver.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 1/1] toolchain-scripts.bbclass: use MLPREFIX to instead of MULTILIB_VARIANTS
Date: Tue, 07 Jul 2015 23:14:34 +0100 [thread overview]
Message-ID: <1436307274.27597.197.camel@linuxfoundation.org> (raw)
In-Reply-To: <b43e9f344635ef03616702689d946a769132e171.1436253346.git.liezhi.yang@windriver.com>
On Tue, 2015-07-07 at 00:17 -0700, Robert Yang wrote:
> Fixed when enable multilib:
> require conf/multilib.conf
> MULTILIBS = "multilib:lib32"
> DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
>
> $ bitbake core-image-minimal
>
> No lib32 package should be built since we don't build
> lib32-core-image-minimal, but a lot them are built:
> lib32-opkg-utils
> lib32-cryptodev-linux
> lib32-sqlite3
> lib32-libtool-cross
> lib32-ncurses
> lib32-db
> lib32-diffutils
> lib32-zlib
> lib32-gcc-cross-i686
> lib32-gcc-cross-initial-i686
> lib32-flex
> lib32-libgcc-initial
> lib32-libffi
> lib32-linux-libc-headers
> lib32-expat
> lib32-openssl
> lib32-glibc
> lib32-binutils-cross-i686
> lib32-gcc-runtime
>
> This is because MULTILIB_VARIANTS is always avaliable when multlib is
> enabled, use MLPREFIX to fix the problem so that lib32/lib64 packages will
> only be built when build lib32/lib64-core-image-minimal.
>
> [YOCTO #7961]
>
> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> ---
> meta/classes/toolchain-scripts.bbclass | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/meta/classes/toolchain-scripts.bbclass b/meta/classes/toolchain-scripts.bbclass
> index 9378918..d05a5a3 100644
> --- a/meta/classes/toolchain-scripts.bbclass
> +++ b/meta/classes/toolchain-scripts.bbclass
> @@ -144,8 +144,9 @@ python __anonymous () {
> deps = ""
> for dep in (d.getVar('TOOLCHAIN_NEED_CONFIGSITE_CACHE', True) or "").split():
> deps += " %s:do_populate_sysroot" % dep
> - for variant in (d.getVar('MULTILIB_VARIANTS', True) or "").split():
> - clsextend = oe.classextend.ClassExtender(variant, d)
> + mlprefix = d.getVar('MLPREFIX', True)
> + if mlprefix:
> + clsextend = oe.classextend.ClassExtender(mlprefix[:-1], d)
> newdep = clsextend.extend_name(dep)
> deps += " %s:do_populate_sysroot" % newdep
> d.appendVarFlag('do_configure', 'depends', deps)
I'm starting to get mildly annoyed with this. Back in 2014 it was
insisted the correct behaviour here was that the cache artefacts for
*all* multilibs shoul be pulled into the SDK. This was done with:
http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=bb213d8e60746d61d80505487d5f14a4eb45231b
where the code quite clearly iterates MULTILIB_VARIANTS for this reason.
We've therefore gone to some lengths to preserve that.
So which is this code supposed to do? I don't honestly know any more. I
do agree its extremely annoying that the images trigger the multilib
builds though and I think we need to fix that. This class is used from:
populate_sdk_base
meta-ide-support
meta-environment
so perhaps the best way to do this is have a function like:
def toolchain_get_depends(d):
import oe.classextend
deps = ""
for dep in (d.getVar('TOOLCHAIN_NEED_CONFIGSITE_CACHE', True) or "").split():
deps += " %s:do_populate_sysroot" % dep
for variant in (d.getVar('MULTILIB_VARIANTS', True) or "").split():
clsextend = oe.classextend.ClassExtender(variant, d)
newdep = clsextend.extend_name(dep)
deps += " %s:do_populate_sysroot" % newdep
return deps
then meta-ide-support can do:
do_populate_ide_support[depends] += "${@toolchain_get_depends(d)}"
meta-environment can do:
do_generate_content[depends] += "${@toolchain_get_depends(d)}"
and I can't actually see why populate_sdk_base needs the
toolchain-scripts class at all. Perhaps someone can spot why it needs
the inherit or the dependency?
Cheers,
Richard
next prev parent reply other threads:[~2015-07-07 22:14 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-07 7:17 [PATCH 0/1] toolchain-scripts.bbclass: use MLPREFIX to instead of MULTILIB_VARIANTS Robert Yang
2015-07-07 7:17 ` [PATCH 1/1] " Robert Yang
2015-07-07 13:22 ` Christopher Larson
2015-07-07 22:14 ` Richard Purdie [this message]
2015-07-09 8:37 ` Robert Yang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1436307274.27597.197.camel@linuxfoundation.org \
--to=richard.purdie@linuxfoundation.org \
--cc=liezhi.yang@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.