From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com>,
openembedded-core@lists.openembedded.org
Cc: Jan Brzezanski <jan.brzezanski@gmail.com>
Subject: Re: [OE-core] [PATCH] base.bbclass: Add sstate-cache dependency to GCCVERSION
Date: Wed, 29 Jun 2022 15:23:14 +0100 [thread overview]
Message-ID: <d0ea870012451b209c23dd76627aceee97530ef1.camel@linuxfoundation.org> (raw)
In-Reply-To: <20220629130830.48974-1-tomasz.dziendzielski@gmail.com>
On Wed, 2022-06-29 at 15:08 +0200, Tomasz Dziendzielski wrote:
> If we have the build with different gcc versions in the same workspace
> it might happen that nativesdk recipe will not detect the change of gcc
> and the package will be taken from sstate-cache. This will lead to
> do_package_qa failure due to binaries requiring symbols that are not
> present in the older libstdc++.
>
> Example error:
> > ERROR: nativesdk-mgen-1.0-r0 do_package_qa: QA Issue:
> > /opt/poky/3.2.3/sysroots/x86_64-pokysdk-linux/usr/lib/libssh2pp.so.0.1
> > contained in package nativesdk-mgen requires
> > libstdc++.so.6(GLIBCXX_3.4.11)(64bit), but no providers found in
> > RDEPENDS_nativesdk-mgen? [file-rdeps]
>
> Add vardeps dependency to GCCVERSION to make sure the package is rebuild
> with correct gcc version.
>
> Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com>
> Signed-off-by: Jan Brzezanski <jan.brzezanski@gmail.com>
> ---
> meta/classes/base.bbclass | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
> index cc02de5f77..da2dc05bba 100644
> --- a/meta/classes/base.bbclass
> +++ b/meta/classes/base.bbclass
> @@ -148,6 +148,7 @@ do_fetch[dirs] = "${DL_DIR}"
> do_fetch[file-checksums] = "${@bb.fetch.get_checksum_file_list(d)}"
> do_fetch[file-checksums] += " ${@get_lic_checksum_file_list(d)}"
> do_fetch[vardeps] += "SRCREV"
> +do_fetch[vardeps] += "GCCVERSION"
> do_fetch[network] = "1"
> python base_do_fetch() {
>
We're definitely not doing that, it is incorrect on many different
levels (e.g. fetching is not dependent on the target compiler version
just for starters). You also just made all native recipes rebuild for
the target GCC version too, which again, is just wrong.
Building with a different target gcc version should mean all the sstate
checksums change. I'm guessing what has happened in your case is that a
TMPDIR as reused after changing gcc version but something didn't
rebuild, probably as ${S} == ${B} and hence ${B} couldn't be cleaned.
We should really track down where the corruption came in and improve
the build output isolation of wherever that came from.
Worse is that your "fix" above probably won't even solve the problem as
if you repeat your build workflow where this broke originally, I'd
strongly suspect it will still break with that change above too.
Cheers,
Richard
next prev parent reply other threads:[~2022-06-29 14:23 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-29 13:08 [PATCH] base.bbclass: Add sstate-cache dependency to GCCVERSION Tomasz Dziendzielski
2022-06-29 14:23 ` Richard Purdie [this message]
2022-06-30 14:14 ` [OE-core] " Tomasz Dziendzielski
2022-06-30 15:28 ` Richard Purdie
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=d0ea870012451b209c23dd76627aceee97530ef1.camel@linuxfoundation.org \
--to=richard.purdie@linuxfoundation.org \
--cc=jan.brzezanski@gmail.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=tomasz.dziendzielski@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox