qemu.bbclass: drop OLDEST_KERNEL reference

Message ID 20211215201615.536707-1-matt@madison.systems
State Accepted, archived
Commit 3a3cfb5f48fc92e548333e5856f3d3fcce27da46
Headers show
Series qemu.bbclass: drop OLDEST_KERNEL reference | expand

Commit Message

Matt Madison Dec. 15, 2021, 8:16 p.m. UTC
which is introducing task hash changes for some
allarch package builds, and should no longer
be needed with recent versions of qemu.

Signed-off-by: Matt Madison <matt@madison.systems>
---
 meta/classes/qemu.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Khem Raj Dec. 15, 2021, 8:24 p.m. UTC | #1
On 12/15/21 12:16 PM, Matt Madison wrote:
> which is introducing task hash changes for some
> allarch package builds, and should no longer
> be needed with recent versions of qemu.
> 

This would need a qemu backport for riscv32
https://lists.nongnu.org/archive/html/qemu-riscv/2021-12/msg00220.html

> Signed-off-by: Matt Madison <matt@madison.systems>
> ---
>   meta/classes/qemu.bbclass | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
> index 01a7b86ae1..333202b7c4 100644
> --- a/meta/classes/qemu.bbclass
> +++ b/meta/classes/qemu.bbclass
> @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path, binary):
>   # this dance). For others (e.g. arm) a -cpu option is not necessary, since the
>   # qemu-arm default CPU supports all required architecture levels.
>   
> -QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
>   QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
>   
>   QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
Matt Madison Dec. 15, 2021, 8:28 p.m. UTC | #2
On Wed, Dec 15, 2021 at 12:24 PM Khem Raj <raj.khem@gmail.com> wrote:
>
>
>
> On 12/15/21 12:16 PM, Matt Madison wrote:
> > which is introducing task hash changes for some
> > allarch package builds, and should no longer
> > be needed with recent versions of qemu.
> >
>
> This would need a qemu backport for riscv32
> https://lists.nongnu.org/archive/html/qemu-riscv/2021-12/msg00220.html

Thanks, Khem.  I'll publish a V2 with that addition.

-Matt

>
> > Signed-off-by: Matt Madison <matt@madison.systems>
> > ---
> >   meta/classes/qemu.bbclass | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
> > index 01a7b86ae1..333202b7c4 100644
> > --- a/meta/classes/qemu.bbclass
> > +++ b/meta/classes/qemu.bbclass
> > @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path, binary):
> >   # this dance). For others (e.g. arm) a -cpu option is not necessary, since the
> >   # qemu-arm default CPU supports all required architecture levels.
> >
> > -QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> >   QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
> >
> >   QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
Richard Purdie Dec. 19, 2021, 11:36 p.m. UTC | #3
On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
> which is introducing task hash changes for some
> allarch package builds, and should no longer
> be needed with recent versions of qemu.
> 
> Signed-off-by: Matt Madison <matt@madison.systems>
> ---
>  meta/classes/qemu.bbclass | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
> index 01a7b86ae1..333202b7c4 100644
> --- a/meta/classes/qemu.bbclass
> +++ b/meta/classes/qemu.bbclass
> @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path, binary):
>  # this dance). For others (e.g. arm) a -cpu option is not necessary, since the
>  # qemu-arm default CPU supports all required architecture levels.
>  
> -QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
>  QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
>  
>  QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"

Rather worryingly this breaks a few docs packages for reproducibility:

http://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20211219-6kkv1f8k/packages/diff-html/

which raises a number of questions in my mind. Investigation is needed as the
hashes clearly aren't encoding everything they should :(.

Cheers,

Richard
Matt Madison Dec. 20, 2021, 1:40 p.m. UTC | #4
On Sun, Dec 19, 2021 at 3:36 PM Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
> > which is introducing task hash changes for some
> > allarch package builds, and should no longer
> > be needed with recent versions of qemu.
> >
> > Signed-off-by: Matt Madison <matt@madison.systems>
> > ---
> >  meta/classes/qemu.bbclass | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
> > index 01a7b86ae1..333202b7c4 100644
> > --- a/meta/classes/qemu.bbclass
> > +++ b/meta/classes/qemu.bbclass
> > @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path, binary):
> >  # this dance). For others (e.g. arm) a -cpu option is not necessary, since the
> >  # qemu-arm default CPU supports all required architecture levels.
> >
> > -QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> >  QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
> >
> >  QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
>
> Rather worryingly this breaks a few docs packages for reproducibility:
>
> http://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20211219-6kkv1f8k/packages/diff-html/
>
> which raises a number of questions in my mind. Investigation is needed as the
> hashes clearly aren't encoding everything they should :(.

I think the problem is in manpages.bbclass - the ":append" for adding
to the pkg_postinst/pkg_postrm functions is in the wrong place.
Fixing them so the ":append" is at the end, rather than before
"${MAN_PKG}", causes the function text and dependencies to show up in
dumpsig output again.

-Matt

>
> Cheers,
>
> Richard
>
Richard Purdie Dec. 20, 2021, 1:44 p.m. UTC | #5
On Mon, 2021-12-20 at 05:40 -0800, Matt Madison wrote:
> On Sun, Dec 19, 2021 at 3:36 PM Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
> > 
> > On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
> > > which is introducing task hash changes for some
> > > allarch package builds, and should no longer
> > > be needed with recent versions of qemu.
> > > 
> > > Signed-off-by: Matt Madison <matt@madison.systems>
> > > ---
> > >  meta/classes/qemu.bbclass | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
> > > index 01a7b86ae1..333202b7c4 100644
> > > --- a/meta/classes/qemu.bbclass
> > > +++ b/meta/classes/qemu.bbclass
> > > @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path, binary):
> > >  # this dance). For others (e.g. arm) a -cpu option is not necessary, since the
> > >  # qemu-arm default CPU supports all required architecture levels.
> > > 
> > > -QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > > +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > >  QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
> > > 
> > >  QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
> > 
> > Rather worryingly this breaks a few docs packages for reproducibility:
> > 
> > http://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20211219-6kkv1f8k/packages/diff-html/
> > 
> > which raises a number of questions in my mind. Investigation is needed as the
> > hashes clearly aren't encoding everything they should :(.
> 
> I think the problem is in manpages.bbclass - the ":append" for adding
> to the pkg_postinst/pkg_postrm functions is in the wrong place.
> Fixing them so the ":append" is at the end, rather than before
> "${MAN_PKG}", causes the function text and dependencies to show up in
> dumpsig output again.

I agree, I'd come to the same conclusion and there is a patch in master-next
testing on the autobuilder to see if that does resolve the issue. I've not sent
it out yet as invalidating the data from a reproducibility perspective is
tricky.

Cheers,

Richard
Richard Purdie Jan. 7, 2022, 11:19 a.m. UTC | #6
On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
> which is introducing task hash changes for some
> allarch package builds, and should no longer
> be needed with recent versions of qemu.
> 
> Signed-off-by: Matt Madison <matt@madison.systems>
> ---
>  meta/classes/qemu.bbclass | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
> index 01a7b86ae1..333202b7c4 100644
> --- a/meta/classes/qemu.bbclass
> +++ b/meta/classes/qemu.bbclass
> @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path, binary):
>  # this dance). For others (e.g. arm) a -cpu option is not necessary, since the
>  # qemu-arm default CPU supports all required architecture levels.
>  
> -QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
>  QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
>  
>  QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"

I've sent a revert for this since the commit message isn't true, this is causing
autobuilder failures and there was also a user report of issues with it.

https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/4559/steps/13/logs/stdio
(centos7 aarch64 build)

We'll have to find a different way to fix the allarch issue (more details
welcome on which package shows the issue).

Cheers,

Richard
Matt Madison Jan. 7, 2022, 12:36 p.m. UTC | #7
On Fri, Jan 7, 2022 at 3:19 AM Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
> > which is introducing task hash changes for some
> > allarch package builds, and should no longer
> > be needed with recent versions of qemu.
> >
> > Signed-off-by: Matt Madison <matt@madison.systems>
> > ---
> >  meta/classes/qemu.bbclass | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
> > index 01a7b86ae1..333202b7c4 100644
> > --- a/meta/classes/qemu.bbclass
> > +++ b/meta/classes/qemu.bbclass
> > @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path, binary):
> >  # this dance). For others (e.g. arm) a -cpu option is not necessary, since the
> >  # qemu-arm default CPU supports all required architecture levels.
> >
> > -QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> >  QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
> >
> >  QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
>
> I've sent a revert for this since the commit message isn't true, this is causing
> autobuilder failures and there was also a user report of issues with it.

Bummer.  I think this is because our OLDEST_KERNEL setting for aarch64
(3.14.0) is
higher than the UNAME_MINIMUM_RELEASE definition in QEMU (3.8.0).

> https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/4559/steps/13/logs/stdio
> (centos7 aarch64 build)
>
> We'll have to find a different way to fix the allarch issue (more details
> welcome on which package shows the issue).

I ran into the issue with cantarell-fonts and wayland-protocols, but
any recipe that inherits both allarch and meson should trigger it.

In my case, I have a layer check job for meta-tegra that runs
yocto-check-layer with the --machines option specifying qemux86 and
one of the (aarch64) machines in my layer, and that was reporting the
signature changes between the two architectures.

-Matt

>
> Cheers,
>
> Richard
>
>
>
Richard Purdie Jan. 7, 2022, 12:51 p.m. UTC | #8
On Fri, 2022-01-07 at 04:36 -0800, Matt Madison wrote:
> On Fri, Jan 7, 2022 at 3:19 AM Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
> > 
> > On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
> > > which is introducing task hash changes for some
> > > allarch package builds, and should no longer
> > > be needed with recent versions of qemu.
> > > 
> > > Signed-off-by: Matt Madison <matt@madison.systems>
> > > ---
> > >  meta/classes/qemu.bbclass | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
> > > index 01a7b86ae1..333202b7c4 100644
> > > --- a/meta/classes/qemu.bbclass
> > > +++ b/meta/classes/qemu.bbclass
> > > @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path, binary):
> > >  # this dance). For others (e.g. arm) a -cpu option is not necessary, since the
> > >  # qemu-arm default CPU supports all required architecture levels.
> > > 
> > > -QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > > +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > >  QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
> > > 
> > >  QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
> > 
> > I've sent a revert for this since the commit message isn't true, this is causing
> > autobuilder failures and there was also a user report of issues with it.
> 
> Bummer.  I think this is because our OLDEST_KERNEL setting for aarch64
> (3.14.0) is
> higher than the UNAME_MINIMUM_RELEASE definition in QEMU (3.8.0).
> 
> > https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/4559/steps/13/logs/stdio
> > (centos7 aarch64 build)
> > 
> > We'll have to find a different way to fix the allarch issue (more details
> > welcome on which package shows the issue).
> 
> I ran into the issue with cantarell-fonts and wayland-protocols, but
> any recipe that inherits both allarch and meson should trigger it.
> 
> In my case, I have a layer check job for meta-tegra that runs
> yocto-check-layer with the --machines option specifying qemux86 and
> one of the (aarch64) machines in my layer, and that was reporting the
> signature changes between the two architectures.

I wonder why we don't detect that with our standard tests? :/

There may be another fix:

diff --git a/meta/classes/allarch.bbclass b/meta/classes/allarch.bbclass
index 5bd5c44a276..0aadf7bfba6 100644
--- a/meta/classes/allarch.bbclass
+++ b/meta/classes/allarch.bbclass
@@ -43,6 +43,9 @@ python () {
         d.setVar("TARGET_LDFLAGS", "none")
         d.setVar("POPULATESYSROOTDEPS", "")
 
+        if bb.data.inherits_class("meson", d):
+            d.setVar("do_write_config", ":")
+
         # Avoid this being unnecessarily different due to nuances of
         # the target machine that aren't important for "all" arch
         # packages.


Cheers,

Richard
Richard Purdie Jan. 7, 2022, 12:56 p.m. UTC | #9
On Fri, 2022-01-07 at 12:51 +0000, Richard Purdie via lists.openembedded.org
wrote:
> On Fri, 2022-01-07 at 04:36 -0800, Matt Madison wrote:
> > On Fri, Jan 7, 2022 at 3:19 AM Richard Purdie
> > <richard.purdie@linuxfoundation.org> wrote:
> > > 
> > > On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
> > > > which is introducing task hash changes for some
> > > > allarch package builds, and should no longer
> > > > be needed with recent versions of qemu.
> > > > 
> > > > Signed-off-by: Matt Madison <matt@madison.systems>
> > > > ---
> > > >  meta/classes/qemu.bbclass | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > 
> > > > diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
> > > > index 01a7b86ae1..333202b7c4 100644
> > > > --- a/meta/classes/qemu.bbclass
> > > > +++ b/meta/classes/qemu.bbclass
> > > > @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path, binary):
> > > >  # this dance). For others (e.g. arm) a -cpu option is not necessary, since the
> > > >  # qemu-arm default CPU supports all required architecture levels.
> > > > 
> > > > -QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > > > +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > > >  QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
> > > > 
> > > >  QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
> > > 
> > > I've sent a revert for this since the commit message isn't true, this is causing
> > > autobuilder failures and there was also a user report of issues with it.
> > 
> > Bummer.  I think this is because our OLDEST_KERNEL setting for aarch64
> > (3.14.0) is
> > higher than the UNAME_MINIMUM_RELEASE definition in QEMU (3.8.0).
> > 
> > > https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/4559/steps/13/logs/stdio
> > > (centos7 aarch64 build)
> > > 
> > > We'll have to find a different way to fix the allarch issue (more details
> > > welcome on which package shows the issue).
> > 
> > I ran into the issue with cantarell-fonts and wayland-protocols, but
> > any recipe that inherits both allarch and meson should trigger it.
> > 
> > In my case, I have a layer check job for meta-tegra that runs
> > yocto-check-layer with the --machines option specifying qemux86 and
> > one of the (aarch64) machines in my layer, and that was reporting the
> > signature changes between the two architectures.
> 
> I wonder why we don't detect that with our standard tests? :/
> 
> There may be another fix:
> 
> diff --git a/meta/classes/allarch.bbclass b/meta/classes/allarch.bbclass
> index 5bd5c44a276..0aadf7bfba6 100644
> --- a/meta/classes/allarch.bbclass
> +++ b/meta/classes/allarch.bbclass
> @@ -43,6 +43,9 @@ python () {
>          d.setVar("TARGET_LDFLAGS", "none")
>          d.setVar("POPULATESYSROOTDEPS", "")
>  
> +        if bb.data.inherits_class("meson", d):
> +            d.setVar("do_write_config", ":")
> +
>          # Avoid this being unnecessarily different due to nuances of
>          # the target machine that aren't important for "all" arch
>          # packages.
> 
> 

Sorry, that isn't quite right. We want to just remove the append to write_config
which generates the qemu wrapper which will probably need a little more invasive
juggling of the code to make it easier...

Cheers,

Richard
Matt Madison Jan. 7, 2022, 2:44 p.m. UTC | #10
On Fri, Jan 7, 2022 at 4:56 AM Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> On Fri, 2022-01-07 at 12:51 +0000, Richard Purdie via lists.openembedded.org
> wrote:
> > On Fri, 2022-01-07 at 04:36 -0800, Matt Madison wrote:
> > > On Fri, Jan 7, 2022 at 3:19 AM Richard Purdie
> > > <richard.purdie@linuxfoundation.org> wrote:
> > > >
> > > > On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
> > > > > which is introducing task hash changes for some
> > > > > allarch package builds, and should no longer
> > > > > be needed with recent versions of qemu.
> > > > >
> > > > > Signed-off-by: Matt Madison <matt@madison.systems>
> > > > > ---
> > > > >  meta/classes/qemu.bbclass | 2 +-
> > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
> > > > > index 01a7b86ae1..333202b7c4 100644
> > > > > --- a/meta/classes/qemu.bbclass
> > > > > +++ b/meta/classes/qemu.bbclass
> > > > > @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path, binary):
> > > > >  # this dance). For others (e.g. arm) a -cpu option is not necessary, since the
> > > > >  # qemu-arm default CPU supports all required architecture levels.
> > > > >
> > > > > -QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > > > > +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > > > >  QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
> > > > >
> > > > >  QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
> > > >
> > > > I've sent a revert for this since the commit message isn't true, this is causing
> > > > autobuilder failures and there was also a user report of issues with it.
> > >
> > > Bummer.  I think this is because our OLDEST_KERNEL setting for aarch64
> > > (3.14.0) is
> > > higher than the UNAME_MINIMUM_RELEASE definition in QEMU (3.8.0).
> > >
> > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/4559/steps/13/logs/stdio
> > > > (centos7 aarch64 build)
> > > >
> > > > We'll have to find a different way to fix the allarch issue (more details
> > > > welcome on which package shows the issue).
> > >
> > > I ran into the issue with cantarell-fonts and wayland-protocols, but
> > > any recipe that inherits both allarch and meson should trigger it.
> > >
> > > In my case, I have a layer check job for meta-tegra that runs
> > > yocto-check-layer with the --machines option specifying qemux86 and
> > > one of the (aarch64) machines in my layer, and that was reporting the
> > > signature changes between the two architectures.
> >
> > I wonder why we don't detect that with our standard tests? :/
> >
> > There may be another fix:
> >
> > diff --git a/meta/classes/allarch.bbclass b/meta/classes/allarch.bbclass
> > index 5bd5c44a276..0aadf7bfba6 100644
> > --- a/meta/classes/allarch.bbclass
> > +++ b/meta/classes/allarch.bbclass
> > @@ -43,6 +43,9 @@ python () {
> >          d.setVar("TARGET_LDFLAGS", "none")
> >          d.setVar("POPULATESYSROOTDEPS", "")
> >
> > +        if bb.data.inherits_class("meson", d):
> > +            d.setVar("do_write_config", ":")
> > +
> >          # Avoid this being unnecessarily different due to nuances of
> >          # the target machine that aren't important for "all" arch
> >          # packages.
> >
> >
>
> Sorry, that isn't quite right. We want to just remove the append to write_config
> which generates the qemu wrapper which will probably need a little more invasive
> juggling of the code to make it easier...

Your patch to disable the qemu wrapper for allarch looks like a good solution.
Hopefully, that will work OK across the board.

Thanks,
-Matt

>
> Cheers,
>
> Richard
>
Richard Purdie Jan. 8, 2022, 2:34 p.m. UTC | #11
On Fri, 2022-01-07 at 06:44 -0800, Matt Madison wrote:
> On Fri, Jan 7, 2022 at 4:56 AM Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
> > 
> > On Fri, 2022-01-07 at 12:51 +0000, Richard Purdie via lists.openembedded.org
> > wrote:
> > > On Fri, 2022-01-07 at 04:36 -0800, Matt Madison wrote:
> > > > On Fri, Jan 7, 2022 at 3:19 AM Richard Purdie
> > > > <richard.purdie@linuxfoundation.org> wrote:
> > > > > 
> > > > > On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
> > > > > > which is introducing task hash changes for some
> > > > > > allarch package builds, and should no longer
> > > > > > be needed with recent versions of qemu.
> > > > > > 
> > > > > > Signed-off-by: Matt Madison <matt@madison.systems>
> > > > > > ---
> > > > > >  meta/classes/qemu.bbclass | 2 +-
> > > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > > > 
> > > > > > diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
> > > > > > index 01a7b86ae1..333202b7c4 100644
> > > > > > --- a/meta/classes/qemu.bbclass
> > > > > > +++ b/meta/classes/qemu.bbclass
> > > > > > @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path, binary):
> > > > > >  # this dance). For others (e.g. arm) a -cpu option is not necessary, since the
> > > > > >  # qemu-arm default CPU supports all required architecture levels.
> > > > > > 
> > > > > > -QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > > > > > +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > > > > >  QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
> > > > > > 
> > > > > >  QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
> > > > > 
> > > > > I've sent a revert for this since the commit message isn't true, this is causing
> > > > > autobuilder failures and there was also a user report of issues with it.
> > > > 
> > > > Bummer.  I think this is because our OLDEST_KERNEL setting for aarch64
> > > > (3.14.0) is
> > > > higher than the UNAME_MINIMUM_RELEASE definition in QEMU (3.8.0).
> > > > 
> > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/4559/steps/13/logs/stdio
> > > > > (centos7 aarch64 build)
> > > > > 
> > > > > We'll have to find a different way to fix the allarch issue (more details
> > > > > welcome on which package shows the issue).
> > > > 
> > > > I ran into the issue with cantarell-fonts and wayland-protocols, but
> > > > any recipe that inherits both allarch and meson should trigger it.
> > > > 
> > > > In my case, I have a layer check job for meta-tegra that runs
> > > > yocto-check-layer with the --machines option specifying qemux86 and
> > > > one of the (aarch64) machines in my layer, and that was reporting the
> > > > signature changes between the two architectures.
> > > 
> > > I wonder why we don't detect that with our standard tests? :/
> > > 
> > > There may be another fix:
> > > 
> > > diff --git a/meta/classes/allarch.bbclass b/meta/classes/allarch.bbclass
> > > index 5bd5c44a276..0aadf7bfba6 100644
> > > --- a/meta/classes/allarch.bbclass
> > > +++ b/meta/classes/allarch.bbclass
> > > @@ -43,6 +43,9 @@ python () {
> > >          d.setVar("TARGET_LDFLAGS", "none")
> > >          d.setVar("POPULATESYSROOTDEPS", "")
> > > 
> > > +        if bb.data.inherits_class("meson", d):
> > > +            d.setVar("do_write_config", ":")
> > > +
> > >          # Avoid this being unnecessarily different due to nuances of
> > >          # the target machine that aren't important for "all" arch
> > >          # packages.
> > > 
> > > 
> > 
> > Sorry, that isn't quite right. We want to just remove the append to write_config
> > which generates the qemu wrapper which will probably need a little more invasive
> > juggling of the code to make it easier...
> 
> Your patch to disable the qemu wrapper for allarch looks like a good solution.
> Hopefully, that will work OK across the board.

It seemed to be so I've merged it. Am hoping this resolves things!

Cheers,

Richard
Matt Madison Jan. 8, 2022, 3:10 p.m. UTC | #12
On Sat, Jan 8, 2022 at 6:34 AM Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> On Fri, 2022-01-07 at 06:44 -0800, Matt Madison wrote:
> > On Fri, Jan 7, 2022 at 4:56 AM Richard Purdie
> > <richard.purdie@linuxfoundation.org> wrote:
> > >
> > > On Fri, 2022-01-07 at 12:51 +0000, Richard Purdie via lists.openembedded.org
> > > wrote:
> > > > On Fri, 2022-01-07 at 04:36 -0800, Matt Madison wrote:
> > > > > On Fri, Jan 7, 2022 at 3:19 AM Richard Purdie
> > > > > <richard.purdie@linuxfoundation.org> wrote:
> > > > > >
> > > > > > On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
> > > > > > > which is introducing task hash changes for some
> > > > > > > allarch package builds, and should no longer
> > > > > > > be needed with recent versions of qemu.
> > > > > > >
> > > > > > > Signed-off-by: Matt Madison <matt@madison.systems>
> > > > > > > ---
> > > > > > >  meta/classes/qemu.bbclass | 2 +-
> > > > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > > > >
> > > > > > > diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
> > > > > > > index 01a7b86ae1..333202b7c4 100644
> > > > > > > --- a/meta/classes/qemu.bbclass
> > > > > > > +++ b/meta/classes/qemu.bbclass
> > > > > > > @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path, binary):
> > > > > > >  # this dance). For others (e.g. arm) a -cpu option is not necessary, since the
> > > > > > >  # qemu-arm default CPU supports all required architecture levels.
> > > > > > >
> > > > > > > -QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > > > > > > +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > > > > > >  QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
> > > > > > >
> > > > > > >  QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
> > > > > >
> > > > > > I've sent a revert for this since the commit message isn't true, this is causing
> > > > > > autobuilder failures and there was also a user report of issues with it.
> > > > >
> > > > > Bummer.  I think this is because our OLDEST_KERNEL setting for aarch64
> > > > > (3.14.0) is
> > > > > higher than the UNAME_MINIMUM_RELEASE definition in QEMU (3.8.0).
> > > > >
> > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/4559/steps/13/logs/stdio
> > > > > > (centos7 aarch64 build)
> > > > > >
> > > > > > We'll have to find a different way to fix the allarch issue (more details
> > > > > > welcome on which package shows the issue).
> > > > >
> > > > > I ran into the issue with cantarell-fonts and wayland-protocols, but
> > > > > any recipe that inherits both allarch and meson should trigger it.
> > > > >
> > > > > In my case, I have a layer check job for meta-tegra that runs
> > > > > yocto-check-layer with the --machines option specifying qemux86 and
> > > > > one of the (aarch64) machines in my layer, and that was reporting the
> > > > > signature changes between the two architectures.
> > > >
> > > > I wonder why we don't detect that with our standard tests? :/
> > > >
> > > > There may be another fix:
> > > >
> > > > diff --git a/meta/classes/allarch.bbclass b/meta/classes/allarch.bbclass
> > > > index 5bd5c44a276..0aadf7bfba6 100644
> > > > --- a/meta/classes/allarch.bbclass
> > > > +++ b/meta/classes/allarch.bbclass
> > > > @@ -43,6 +43,9 @@ python () {
> > > >          d.setVar("TARGET_LDFLAGS", "none")
> > > >          d.setVar("POPULATESYSROOTDEPS", "")
> > > >
> > > > +        if bb.data.inherits_class("meson", d):
> > > > +            d.setVar("do_write_config", ":")
> > > > +
> > > >          # Avoid this being unnecessarily different due to nuances of
> > > >          # the target machine that aren't important for "all" arch
> > > >          # packages.
> > > >
> > > >
> > >
> > > Sorry, that isn't quite right. We want to just remove the append to write_config
> > > which generates the qemu wrapper which will probably need a little more invasive
> > > juggling of the code to make it easier...
> >
> > Your patch to disable the qemu wrapper for allarch looks like a good solution.
> > Hopefully, that will work OK across the board.
>
> It seemed to be so I've merged it. Am hoping this resolves things!

Drat. Unfortunately, it only works if allarch is inherited after meson
(which inherits qemu).  So cantarell-fonts checks out OK,
but wayland-protocols doesn't, since it inherits allarch first.

-Matt

>
> Cheers,
>
> Richard
>
Richard Purdie Jan. 8, 2022, 3:13 p.m. UTC | #13
On Sat, 2022-01-08 at 07:10 -0800, Matt Madison wrote:
> On Sat, Jan 8, 2022 at 6:34 AM Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
> > 
> > On Fri, 2022-01-07 at 06:44 -0800, Matt Madison wrote:
> > > On Fri, Jan 7, 2022 at 4:56 AM Richard Purdie
> > > <richard.purdie@linuxfoundation.org> wrote:
> > > > 
> > > > On Fri, 2022-01-07 at 12:51 +0000, Richard Purdie via lists.openembedded.org
> > > > wrote:
> > > > > On Fri, 2022-01-07 at 04:36 -0800, Matt Madison wrote:
> > > > > > On Fri, Jan 7, 2022 at 3:19 AM Richard Purdie
> > > > > > <richard.purdie@linuxfoundation.org> wrote:
> > > > > > > 
> > > > > > > On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
> > > > > > > > which is introducing task hash changes for some
> > > > > > > > allarch package builds, and should no longer
> > > > > > > > be needed with recent versions of qemu.
> > > > > > > > 
> > > > > > > > Signed-off-by: Matt Madison <matt@madison.systems>
> > > > > > > > ---
> > > > > > > >  meta/classes/qemu.bbclass | 2 +-
> > > > > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > > > > > 
> > > > > > > > diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
> > > > > > > > index 01a7b86ae1..333202b7c4 100644
> > > > > > > > --- a/meta/classes/qemu.bbclass
> > > > > > > > +++ b/meta/classes/qemu.bbclass
> > > > > > > > @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path, binary):
> > > > > > > >  # this dance). For others (e.g. arm) a -cpu option is not necessary, since the
> > > > > > > >  # qemu-arm default CPU supports all required architecture levels.
> > > > > > > > 
> > > > > > > > -QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > > > > > > > +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > > > > > > >  QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
> > > > > > > > 
> > > > > > > >  QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
> > > > > > > 
> > > > > > > I've sent a revert for this since the commit message isn't true, this is causing
> > > > > > > autobuilder failures and there was also a user report of issues with it.
> > > > > > 
> > > > > > Bummer.  I think this is because our OLDEST_KERNEL setting for aarch64
> > > > > > (3.14.0) is
> > > > > > higher than the UNAME_MINIMUM_RELEASE definition in QEMU (3.8.0).
> > > > > > 
> > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/4559/steps/13/logs/stdio
> > > > > > > (centos7 aarch64 build)
> > > > > > > 
> > > > > > > We'll have to find a different way to fix the allarch issue (more details
> > > > > > > welcome on which package shows the issue).
> > > > > > 
> > > > > > I ran into the issue with cantarell-fonts and wayland-protocols, but
> > > > > > any recipe that inherits both allarch and meson should trigger it.
> > > > > > 
> > > > > > In my case, I have a layer check job for meta-tegra that runs
> > > > > > yocto-check-layer with the --machines option specifying qemux86 and
> > > > > > one of the (aarch64) machines in my layer, and that was reporting the
> > > > > > signature changes between the two architectures.
> > > > > 
> > > > > I wonder why we don't detect that with our standard tests? :/
> > > > > 
> > > > > There may be another fix:
> > > > > 
> > > > > diff --git a/meta/classes/allarch.bbclass b/meta/classes/allarch.bbclass
> > > > > index 5bd5c44a276..0aadf7bfba6 100644
> > > > > --- a/meta/classes/allarch.bbclass
> > > > > +++ b/meta/classes/allarch.bbclass
> > > > > @@ -43,6 +43,9 @@ python () {
> > > > >          d.setVar("TARGET_LDFLAGS", "none")
> > > > >          d.setVar("POPULATESYSROOTDEPS", "")
> > > > > 
> > > > > +        if bb.data.inherits_class("meson", d):
> > > > > +            d.setVar("do_write_config", ":")
> > > > > +
> > > > >          # Avoid this being unnecessarily different due to nuances of
> > > > >          # the target machine that aren't important for "all" arch
> > > > >          # packages.
> > > > > 
> > > > > 
> > > > 
> > > > Sorry, that isn't quite right. We want to just remove the append to write_config
> > > > which generates the qemu wrapper which will probably need a little more invasive
> > > > juggling of the code to make it easier...
> > > 
> > > Your patch to disable the qemu wrapper for allarch looks like a good solution.
> > > Hopefully, that will work OK across the board.
> > 
> > It seemed to be so I've merged it. Am hoping this resolves things!
> 
> Drat. Unfortunately, it only works if allarch is inherited after meson
> (which inherits qemu).  So cantarell-fonts checks out OK,
> but wayland-protocols doesn't, since it inherits allarch first.

Probably easy to fix but hard to spot new problems :/

Cheers,

Richard
Konrad Weihmann Jan. 9, 2022, 9:23 a.m. UTC | #14
On 08.01.22 16:13, Richard Purdie wrote:
> On Sat, 2022-01-08 at 07:10 -0800, Matt Madison wrote:
>> On Sat, Jan 8, 2022 at 6:34 AM Richard Purdie
>> <richard.purdie@linuxfoundation.org> wrote:
>>>
>>> On Fri, 2022-01-07 at 06:44 -0800, Matt Madison wrote:
>>>> On Fri, Jan 7, 2022 at 4:56 AM Richard Purdie
>>>> <richard.purdie@linuxfoundation.org> wrote:
>>>>>
>>>>> On Fri, 2022-01-07 at 12:51 +0000, Richard Purdie via lists.openembedded.org
>>>>> wrote:
>>>>>> On Fri, 2022-01-07 at 04:36 -0800, Matt Madison wrote:
>>>>>>> On Fri, Jan 7, 2022 at 3:19 AM Richard Purdie
>>>>>>> <richard.purdie@linuxfoundation.org> wrote:
>>>>>>>>
>>>>>>>> On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
>>>>>>>>> which is introducing task hash changes for some
>>>>>>>>> allarch package builds, and should no longer
>>>>>>>>> be needed with recent versions of qemu.
>>>>>>>>>
>>>>>>>>> Signed-off-by: Matt Madison <matt@madison.systems>
>>>>>>>>> ---
>>>>>>>>>   meta/classes/qemu.bbclass | 2 +-
>>>>>>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>>>>>
>>>>>>>>> diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
>>>>>>>>> index 01a7b86ae1..333202b7c4 100644
>>>>>>>>> --- a/meta/classes/qemu.bbclass
>>>>>>>>> +++ b/meta/classes/qemu.bbclass
>>>>>>>>> @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path, binary):
>>>>>>>>>   # this dance). For others (e.g. arm) a -cpu option is not necessary, since the
>>>>>>>>>   # qemu-arm default CPU supports all required architecture levels.
>>>>>>>>>
>>>>>>>>> -QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
>>>>>>>>> +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
>>>>>>>>>   QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
>>>>>>>>>
>>>>>>>>>   QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
>>>>>>>>
>>>>>>>> I've sent a revert for this since the commit message isn't true, this is causing
>>>>>>>> autobuilder failures and there was also a user report of issues with it.
>>>>>>>
>>>>>>> Bummer.  I think this is because our OLDEST_KERNEL setting for aarch64
>>>>>>> (3.14.0) is
>>>>>>> higher than the UNAME_MINIMUM_RELEASE definition in QEMU (3.8.0).
>>>>>>>
>>>>>>>> https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/4559/steps/13/logs/stdio
>>>>>>>> (centos7 aarch64 build)
>>>>>>>>
>>>>>>>> We'll have to find a different way to fix the allarch issue (more details
>>>>>>>> welcome on which package shows the issue).
>>>>>>>
>>>>>>> I ran into the issue with cantarell-fonts and wayland-protocols, but
>>>>>>> any recipe that inherits both allarch and meson should trigger it.
>>>>>>>
>>>>>>> In my case, I have a layer check job for meta-tegra that runs
>>>>>>> yocto-check-layer with the --machines option specifying qemux86 and
>>>>>>> one of the (aarch64) machines in my layer, and that was reporting the
>>>>>>> signature changes between the two architectures.
>>>>>>
>>>>>> I wonder why we don't detect that with our standard tests? :/
>>>>>>
>>>>>> There may be another fix:
>>>>>>
>>>>>> diff --git a/meta/classes/allarch.bbclass b/meta/classes/allarch.bbclass
>>>>>> index 5bd5c44a276..0aadf7bfba6 100644
>>>>>> --- a/meta/classes/allarch.bbclass
>>>>>> +++ b/meta/classes/allarch.bbclass
>>>>>> @@ -43,6 +43,9 @@ python () {
>>>>>>           d.setVar("TARGET_LDFLAGS", "none")
>>>>>>           d.setVar("POPULATESYSROOTDEPS", "")
>>>>>>
>>>>>> +        if bb.data.inherits_class("meson", d):
>>>>>> +            d.setVar("do_write_config", ":")
>>>>>> +
>>>>>>           # Avoid this being unnecessarily different due to nuances of
>>>>>>           # the target machine that aren't important for "all" arch
>>>>>>           # packages.
>>>>>>
>>>>>>
>>>>>
>>>>> Sorry, that isn't quite right. We want to just remove the append to write_config
>>>>> which generates the qemu wrapper which will probably need a little more invasive
>>>>> juggling of the code to make it easier...
>>>>
>>>> Your patch to disable the qemu wrapper for allarch looks like a good solution.
>>>> Hopefully, that will work OK across the board.
>>>
>>> It seemed to be so I've merged it. Am hoping this resolves things!
>>
>> Drat. Unfortunately, it only works if allarch is inherited after meson
>> (which inherits qemu).  So cantarell-fonts checks out OK,
>> but wayland-protocols doesn't, since it inherits allarch first.
> 
> Probably easy to fix but hard to spot new problems :/

would an insane check similar to native-last be of help here?

> 
> Cheers,
> 
> Richard
> 
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#160277): https://lists.openembedded.org/g/openembedded-core/message/160277
> Mute This Topic: https://lists.openembedded.org/mt/87752526/3647476
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [kweihmann@outlook.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Peter Kjellerstedt Jan. 9, 2022, 11:32 a.m. UTC | #15
> -----Original Message-----
> From: openembedded-core@lists.openembedded.org <openembedded-
> core@lists.openembedded.org> On Behalf Of Konrad Weihmann
> Sent: den 9 januari 2022 10:24
> To: Richard Purdie <richard.purdie@linuxfoundation.org>
> Cc: Patches and discussions about the oe-core layer <openembedded-
> core@lists.openembedded.org>
> Subject: Re: [OE-core][PATCH] qemu.bbclass: drop OLDEST_KERNEL reference
> 
> On 08.01.22 16:13, Richard Purdie wrote:
> > On Sat, 2022-01-08 at 07:10 -0800, Matt Madison wrote:
> >> On Sat, Jan 8, 2022 at 6:34 AM Richard Purdie
> >> <richard.purdie@linuxfoundation.org> wrote:
> >>>
> >>> On Fri, 2022-01-07 at 06:44 -0800, Matt Madison wrote:
> >>>> On Fri, Jan 7, 2022 at 4:56 AM Richard Purdie
> >>>> <richard.purdie@linuxfoundation.org> wrote:
> >>>>>
> >>>>> On Fri, 2022-01-07 at 12:51 +0000, Richard Purdie via
> lists.openembedded.org
> >>>>> wrote:
> >>>>>> On Fri, 2022-01-07 at 04:36 -0800, Matt Madison wrote:
> >>>>>>> On Fri, Jan 7, 2022 at 3:19 AM Richard Purdie
> >>>>>>> <richard.purdie@linuxfoundation.org> wrote:
> >>>>>>>>
> >>>>>>>> On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
> >>>>>>>>> which is introducing task hash changes for some
> >>>>>>>>> allarch package builds, and should no longer
> >>>>>>>>> be needed with recent versions of qemu.
> >>>>>>>>>
> >>>>>>>>> Signed-off-by: Matt Madison <matt@madison.systems>
> >>>>>>>>> ---
> >>>>>>>>>   meta/classes/qemu.bbclass | 2 +-
> >>>>>>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
> >>>>>>>>>
> >>>>>>>>> diff --git a/meta/classes/qemu.bbclass
> b/meta/classes/qemu.bbclass
> >>>>>>>>> index 01a7b86ae1..333202b7c4 100644
> >>>>>>>>> --- a/meta/classes/qemu.bbclass
> >>>>>>>>> +++ b/meta/classes/qemu.bbclass
> >>>>>>>>> @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path,
> binary):
> >>>>>>>>>   # this dance). For others (e.g. arm) a -cpu option is not
> necessary, since the
> >>>>>>>>>   # qemu-arm default CPU supports all required architecture
> levels.
> >>>>>>>>>
> >>>>>>>>> -QEMU_OPTIONS = "-r ${OLDEST_KERNEL}
> ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> >>>>>>>>> +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" %
> d.getVar('PACKAGE_ARCH')) or ""}"
> >>>>>>>>>   QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
> >>>>>>>>>
> >>>>>>>>>   QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
> >>>>>>>>
> >>>>>>>> I've sent a revert for this since the commit message isn't true,
> this is causing
> >>>>>>>> autobuilder failures and there was also a user report of issues
> with it.
> >>>>>>>
> >>>>>>> Bummer.  I think this is because our OLDEST_KERNEL setting for
> aarch64
> >>>>>>> (3.14.0) is
> >>>>>>> higher than the UNAME_MINIMUM_RELEASE definition in QEMU (3.8.0).
> >>>>>>>
> >>>>>>>>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/4559/ste
> ps/13/logs/stdio
> >>>>>>>> (centos7 aarch64 build)
> >>>>>>>>
> >>>>>>>> We'll have to find a different way to fix the allarch issue (more
> details
> >>>>>>>> welcome on which package shows the issue).
> >>>>>>>
> >>>>>>> I ran into the issue with cantarell-fonts and wayland-protocols,
> but
> >>>>>>> any recipe that inherits both allarch and meson should trigger it.
> >>>>>>>
> >>>>>>> In my case, I have a layer check job for meta-tegra that runs
> >>>>>>> yocto-check-layer with the --machines option specifying qemux86
> and
> >>>>>>> one of the (aarch64) machines in my layer, and that was reporting
> the
> >>>>>>> signature changes between the two architectures.
> >>>>>>
> >>>>>> I wonder why we don't detect that with our standard tests? :/
> >>>>>>
> >>>>>> There may be another fix:
> >>>>>>
> >>>>>> diff --git a/meta/classes/allarch.bbclass
> b/meta/classes/allarch.bbclass
> >>>>>> index 5bd5c44a276..0aadf7bfba6 100644
> >>>>>> --- a/meta/classes/allarch.bbclass
> >>>>>> +++ b/meta/classes/allarch.bbclass
> >>>>>> @@ -43,6 +43,9 @@ python () {
> >>>>>>           d.setVar("TARGET_LDFLAGS", "none")
> >>>>>>           d.setVar("POPULATESYSROOTDEPS", "")
> >>>>>>
> >>>>>> +        if bb.data.inherits_class("meson", d):
> >>>>>> +            d.setVar("do_write_config", ":")
> >>>>>> +
> >>>>>>           # Avoid this being unnecessarily different due to nuances
> of
> >>>>>>           # the target machine that aren't important for "all" arch
> >>>>>>           # packages.
> >>>>>>
> >>>>>>
> >>>>>
> >>>>> Sorry, that isn't quite right. We want to just remove the append to
> write_config
> >>>>> which generates the qemu wrapper which will probably need a little
> more invasive
> >>>>> juggling of the code to make it easier...
> >>>>
> >>>> Your patch to disable the qemu wrapper for allarch looks like a good
> solution.
> >>>> Hopefully, that will work OK across the board.
> >>>
> >>> It seemed to be so I've merged it. Am hoping this resolves things!
> >>
> >> Drat. Unfortunately, it only works if allarch is inherited after meson
> >> (which inherits qemu).  So cantarell-fonts checks out OK,
> >> but wayland-protocols doesn't, since it inherits allarch first.
> >
> > Probably easy to fix but hard to spot new problems :/
> 
> would an insane check similar to native-last be of help here?

That seems like the wrong solution. As far as possible, bbclasses should 
be designed to be able to inherit them in any order, and it should be possible 
to rewrite this change so that is still possible to do.

> >
> > Cheers,
> >
> > Richard

//Peter
Matt Madison Jan. 9, 2022, 12:04 p.m. UTC | #16
On Sun, Jan 9, 2022 at 3:32 AM Peter Kjellerstedt
<peter.kjellerstedt@axis.com> wrote:
>
> > -----Original Message-----
> > From: openembedded-core@lists.openembedded.org <openembedded-
> > core@lists.openembedded.org> On Behalf Of Konrad Weihmann
> > Sent: den 9 januari 2022 10:24
> > To: Richard Purdie <richard.purdie@linuxfoundation.org>
> > Cc: Patches and discussions about the oe-core layer <openembedded-
> > core@lists.openembedded.org>
> > Subject: Re: [OE-core][PATCH] qemu.bbclass: drop OLDEST_KERNEL reference
> >
> > On 08.01.22 16:13, Richard Purdie wrote:
> > > On Sat, 2022-01-08 at 07:10 -0800, Matt Madison wrote:
> > >> On Sat, Jan 8, 2022 at 6:34 AM Richard Purdie
> > >> <richard.purdie@linuxfoundation.org> wrote:
> > >>>
> > >>> On Fri, 2022-01-07 at 06:44 -0800, Matt Madison wrote:
> > >>>> On Fri, Jan 7, 2022 at 4:56 AM Richard Purdie
> > >>>> <richard.purdie@linuxfoundation.org> wrote:
> > >>>>>
> > >>>>> On Fri, 2022-01-07 at 12:51 +0000, Richard Purdie via
> > lists.openembedded.org
> > >>>>> wrote:
> > >>>>>> On Fri, 2022-01-07 at 04:36 -0800, Matt Madison wrote:
> > >>>>>>> On Fri, Jan 7, 2022 at 3:19 AM Richard Purdie
> > >>>>>>> <richard.purdie@linuxfoundation.org> wrote:
> > >>>>>>>>
> > >>>>>>>> On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
> > >>>>>>>>> which is introducing task hash changes for some
> > >>>>>>>>> allarch package builds, and should no longer
> > >>>>>>>>> be needed with recent versions of qemu.
> > >>>>>>>>>
> > >>>>>>>>> Signed-off-by: Matt Madison <matt@madison.systems>
> > >>>>>>>>> ---
> > >>>>>>>>>   meta/classes/qemu.bbclass | 2 +-
> > >>>>>>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
> > >>>>>>>>>
> > >>>>>>>>> diff --git a/meta/classes/qemu.bbclass
> > b/meta/classes/qemu.bbclass
> > >>>>>>>>> index 01a7b86ae1..333202b7c4 100644
> > >>>>>>>>> --- a/meta/classes/qemu.bbclass
> > >>>>>>>>> +++ b/meta/classes/qemu.bbclass
> > >>>>>>>>> @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path,
> > binary):
> > >>>>>>>>>   # this dance). For others (e.g. arm) a -cpu option is not
> > necessary, since the
> > >>>>>>>>>   # qemu-arm default CPU supports all required architecture
> > levels.
> > >>>>>>>>>
> > >>>>>>>>> -QEMU_OPTIONS = "-r ${OLDEST_KERNEL}
> > ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > >>>>>>>>> +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" %
> > d.getVar('PACKAGE_ARCH')) or ""}"
> > >>>>>>>>>   QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
> > >>>>>>>>>
> > >>>>>>>>>   QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
> > >>>>>>>>
> > >>>>>>>> I've sent a revert for this since the commit message isn't true,
> > this is causing
> > >>>>>>>> autobuilder failures and there was also a user report of issues
> > with it.
> > >>>>>>>
> > >>>>>>> Bummer.  I think this is because our OLDEST_KERNEL setting for
> > aarch64
> > >>>>>>> (3.14.0) is
> > >>>>>>> higher than the UNAME_MINIMUM_RELEASE definition in QEMU (3.8.0).
> > >>>>>>>
> > >>>>>>>>
> > https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/4559/ste
> > ps/13/logs/stdio
> > >>>>>>>> (centos7 aarch64 build)
> > >>>>>>>>
> > >>>>>>>> We'll have to find a different way to fix the allarch issue (more
> > details
> > >>>>>>>> welcome on which package shows the issue).
> > >>>>>>>
> > >>>>>>> I ran into the issue with cantarell-fonts and wayland-protocols,
> > but
> > >>>>>>> any recipe that inherits both allarch and meson should trigger it.
> > >>>>>>>
> > >>>>>>> In my case, I have a layer check job for meta-tegra that runs
> > >>>>>>> yocto-check-layer with the --machines option specifying qemux86
> > and
> > >>>>>>> one of the (aarch64) machines in my layer, and that was reporting
> > the
> > >>>>>>> signature changes between the two architectures.
> > >>>>>>
> > >>>>>> I wonder why we don't detect that with our standard tests? :/
> > >>>>>>
> > >>>>>> There may be another fix:
> > >>>>>>
> > >>>>>> diff --git a/meta/classes/allarch.bbclass
> > b/meta/classes/allarch.bbclass
> > >>>>>> index 5bd5c44a276..0aadf7bfba6 100644
> > >>>>>> --- a/meta/classes/allarch.bbclass
> > >>>>>> +++ b/meta/classes/allarch.bbclass
> > >>>>>> @@ -43,6 +43,9 @@ python () {
> > >>>>>>           d.setVar("TARGET_LDFLAGS", "none")
> > >>>>>>           d.setVar("POPULATESYSROOTDEPS", "")
> > >>>>>>
> > >>>>>> +        if bb.data.inherits_class("meson", d):
> > >>>>>> +            d.setVar("do_write_config", ":")
> > >>>>>> +
> > >>>>>>           # Avoid this being unnecessarily different due to nuances
> > of
> > >>>>>>           # the target machine that aren't important for "all" arch
> > >>>>>>           # packages.
> > >>>>>>
> > >>>>>>
> > >>>>>
> > >>>>> Sorry, that isn't quite right. We want to just remove the append to
> > write_config
> > >>>>> which generates the qemu wrapper which will probably need a little
> > more invasive
> > >>>>> juggling of the code to make it easier...
> > >>>>
> > >>>> Your patch to disable the qemu wrapper for allarch looks like a good
> > solution.
> > >>>> Hopefully, that will work OK across the board.
> > >>>
> > >>> It seemed to be so I've merged it. Am hoping this resolves things!
> > >>
> > >> Drat. Unfortunately, it only works if allarch is inherited after meson
> > >> (which inherits qemu).  So cantarell-fonts checks out OK,
> > >> but wayland-protocols doesn't, since it inherits allarch first.
> > >
> > > Probably easy to fix but hard to spot new problems :/
> >
> > would an insane check similar to native-last be of help here?
>
> That seems like the wrong solution. As far as possible, bbclasses should
> be designed to be able to inherit them in any order, and it should be possible
> to rewrite this change so that is still possible to do.

Doing so would be a bit ugly, since it's a Python function. Something like

    if bb.data.inherits_class('qemu', d):
        d.setVar("qemu_wrapper_cmdline", "def
qemu_wrapper_cmdline(data, rootfs_path, library_paths):\n    return
'false'\n")

in the anonymous python function in allarch.bbclass would do that.

-Matt

>
> > >
> > > Cheers,
> > >
> > > Richard
>
> //Peter
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#160280): https://lists.openembedded.org/g/openembedded-core/message/160280
> Mute This Topic: https://lists.openembedded.org/mt/87752526/3618418
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [matt@madison.systems]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Peter Kjellerstedt Jan. 9, 2022, 1:52 p.m. UTC | #17
> -----Original Message-----
> From: Matt Madison <matt@madison.systems>
> Sent: den 9 januari 2022 13:04
> To: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
> Cc: Konrad Weihmann <kweihmann@outlook.com>; Richard Purdie
> <richard.purdie@linuxfoundation.org>; Patches and discussions about the
> oe-core layer <openembedded-core@lists.openembedded.org>
> Subject: Re: [OE-core][PATCH] qemu.bbclass: drop OLDEST_KERNEL reference
> 
> On Sun, Jan 9, 2022 at 3:32 AM Peter Kjellerstedt
> <peter.kjellerstedt@axis.com> wrote:
> >
> > > -----Original Message-----
> > > From: openembedded-core@lists.openembedded.org <openembedded-
> > > core@lists.openembedded.org> On Behalf Of Konrad Weihmann
> > > Sent: den 9 januari 2022 10:24
> > > To: Richard Purdie <richard.purdie@linuxfoundation.org>
> > > Cc: Patches and discussions about the oe-core layer <openembedded-
> > > core@lists.openembedded.org>
> > > Subject: Re: [OE-core][PATCH] qemu.bbclass: drop OLDEST_KERNEL
> reference
> > >
> > > On 08.01.22 16:13, Richard Purdie wrote:
> > > > On Sat, 2022-01-08 at 07:10 -0800, Matt Madison wrote:
> > > >> On Sat, Jan 8, 2022 at 6:34 AM Richard Purdie
> > > >> <richard.purdie@linuxfoundation.org> wrote:
> > > >>>
> > > >>> On Fri, 2022-01-07 at 06:44 -0800, Matt Madison wrote:
> > > >>>> On Fri, Jan 7, 2022 at 4:56 AM Richard Purdie
> > > >>>> <richard.purdie@linuxfoundation.org> wrote:
> > > >>>>>
> > > >>>>> On Fri, 2022-01-07 at 12:51 +0000, Richard Purdie via
> > > lists.openembedded.org
> > > >>>>> wrote:
> > > >>>>>> On Fri, 2022-01-07 at 04:36 -0800, Matt Madison wrote:
> > > >>>>>>> On Fri, Jan 7, 2022 at 3:19 AM Richard Purdie
> > > >>>>>>> <richard.purdie@linuxfoundation.org> wrote:
> > > >>>>>>>>
> > > >>>>>>>> On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
> > > >>>>>>>>> which is introducing task hash changes for some
> > > >>>>>>>>> allarch package builds, and should no longer
> > > >>>>>>>>> be needed with recent versions of qemu.
> > > >>>>>>>>>
> > > >>>>>>>>> Signed-off-by: Matt Madison <matt@madison.systems>
> > > >>>>>>>>> ---
> > > >>>>>>>>>   meta/classes/qemu.bbclass | 2 +-
> > > >>>>>>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
> > > >>>>>>>>>
> > > >>>>>>>>> diff --git a/meta/classes/qemu.bbclass
> > > b/meta/classes/qemu.bbclass
> > > >>>>>>>>> index 01a7b86ae1..333202b7c4 100644
> > > >>>>>>>>> --- a/meta/classes/qemu.bbclass
> > > >>>>>>>>> +++ b/meta/classes/qemu.bbclass
> > > >>>>>>>>> @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path,
> > > binary):
> > > >>>>>>>>>   # this dance). For others (e.g. arm) a -cpu option is not
> > > necessary, since the
> > > >>>>>>>>>   # qemu-arm default CPU supports all required architecture
> > > levels.
> > > >>>>>>>>>
> > > >>>>>>>>> -QEMU_OPTIONS = "-r ${OLDEST_KERNEL}
> > > ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > > >>>>>>>>> +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" %
> > > d.getVar('PACKAGE_ARCH')) or ""}"
> > > >>>>>>>>>   QEMU_OPTIONS[vardeps] +=
> "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
> > > >>>>>>>>>
> > > >>>>>>>>>   QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
> > > >>>>>>>>
> > > >>>>>>>> I've sent a revert for this since the commit message isn't
> true,
> > > this is causing
> > > >>>>>>>> autobuilder failures and there was also a user report of
> issues
> > > with it.
> > > >>>>>>>
> > > >>>>>>> Bummer.  I think this is because our OLDEST_KERNEL setting for
> > > aarch64
> > > >>>>>>> (3.14.0) is
> > > >>>>>>> higher than the UNAME_MINIMUM_RELEASE definition in QEMU
> (3.8.0).
> > > >>>>>>>
> > > >>>>>>>>
> > >
> https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/4559/ste
> > > ps/13/logs/stdio
> > > >>>>>>>> (centos7 aarch64 build)
> > > >>>>>>>>
> > > >>>>>>>> We'll have to find a different way to fix the allarch issue
> (more
> > > details
> > > >>>>>>>> welcome on which package shows the issue).
> > > >>>>>>>
> > > >>>>>>> I ran into the issue with cantarell-fonts and wayland-
> protocols,
> > > but
> > > >>>>>>> any recipe that inherits both allarch and meson should trigger
> it.
> > > >>>>>>>
> > > >>>>>>> In my case, I have a layer check job for meta-tegra that runs
> > > >>>>>>> yocto-check-layer with the --machines option specifying
> qemux86
> > > and
> > > >>>>>>> one of the (aarch64) machines in my layer, and that was
> reporting
> > > the
> > > >>>>>>> signature changes between the two architectures.
> > > >>>>>>
> > > >>>>>> I wonder why we don't detect that with our standard tests? :/
> > > >>>>>>
> > > >>>>>> There may be another fix:
> > > >>>>>>
> > > >>>>>> diff --git a/meta/classes/allarch.bbclass
> > > b/meta/classes/allarch.bbclass
> > > >>>>>> index 5bd5c44a276..0aadf7bfba6 100644
> > > >>>>>> --- a/meta/classes/allarch.bbclass
> > > >>>>>> +++ b/meta/classes/allarch.bbclass
> > > >>>>>> @@ -43,6 +43,9 @@ python () {
> > > >>>>>>           d.setVar("TARGET_LDFLAGS", "none")
> > > >>>>>>           d.setVar("POPULATESYSROOTDEPS", "")
> > > >>>>>>
> > > >>>>>> +        if bb.data.inherits_class("meson", d):
> > > >>>>>> +            d.setVar("do_write_config", ":")
> > > >>>>>> +
> > > >>>>>>           # Avoid this being unnecessarily different due to
> nuances
> > > of
> > > >>>>>>           # the target machine that aren't important for "all"
> arch
> > > >>>>>>           # packages.
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > > >>>>> Sorry, that isn't quite right. We want to just remove the append
> to
> > > write_config
> > > >>>>> which generates the qemu wrapper which will probably need a
> little
> > > more invasive
> > > >>>>> juggling of the code to make it easier...
> > > >>>>
> > > >>>> Your patch to disable the qemu wrapper for allarch looks like a
> good
> > > solution.
> > > >>>> Hopefully, that will work OK across the board.
> > > >>>
> > > >>> It seemed to be so I've merged it. Am hoping this resolves things!
> > > >>
> > > >> Drat. Unfortunately, it only works if allarch is inherited after
> meson
> > > >> (which inherits qemu).  So cantarell-fonts checks out OK,
> > > >> but wayland-protocols doesn't, since it inherits allarch first.
> > > >
> > > > Probably easy to fix but hard to spot new problems :/
> > >
> > > would an insane check similar to native-last be of help here?
> >
> > That seems like the wrong solution. As far as possible, bbclasses should
> > be designed to be able to inherit them in any order, and it should be
> possible
> > to rewrite this change so that is still possible to do.
> 
> Doing so would be a bit ugly, since it's a Python function. Something like
> 
>     if bb.data.inherits_class('qemu', d):
>         d.setVar("qemu_wrapper_cmdline", "def
> qemu_wrapper_cmdline(data, rootfs_path, library_paths):\n    return
> 'false'\n")
> 
> in the anonymous python function in allarch.bbclass would do that.

Ok, that's ugly. How about solving it in qemu.bbclass instead by doing:

def qemu_wrapper_cmdline(data, rootfs_path, library_paths):
    import string

    if bb.data.inherits_class('allarch', data):
        return 'false'

    ...

> 
> -Matt
> 
> >
> > > >
> > > > Cheers,
> > > >
> > > > Richard
> >
> > //Peter

//Peter
Matt Madison Jan. 9, 2022, 2:20 p.m. UTC | #18
On Sun, Jan 9, 2022 at 5:52 AM Peter Kjellerstedt
<peter.kjellerstedt@axis.com> wrote:
>
> > -----Original Message-----
> > From: Matt Madison <matt@madison.systems>
> > Sent: den 9 januari 2022 13:04
> > To: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
> > Cc: Konrad Weihmann <kweihmann@outlook.com>; Richard Purdie
> > <richard.purdie@linuxfoundation.org>; Patches and discussions about the
> > oe-core layer <openembedded-core@lists.openembedded.org>
> > Subject: Re: [OE-core][PATCH] qemu.bbclass: drop OLDEST_KERNEL reference
> >
> > On Sun, Jan 9, 2022 at 3:32 AM Peter Kjellerstedt
> > <peter.kjellerstedt@axis.com> wrote:
> > >
> > > > -----Original Message-----
> > > > From: openembedded-core@lists.openembedded.org <openembedded-
> > > > core@lists.openembedded.org> On Behalf Of Konrad Weihmann
> > > > Sent: den 9 januari 2022 10:24
> > > > To: Richard Purdie <richard.purdie@linuxfoundation.org>
> > > > Cc: Patches and discussions about the oe-core layer <openembedded-
> > > > core@lists.openembedded.org>
> > > > Subject: Re: [OE-core][PATCH] qemu.bbclass: drop OLDEST_KERNEL
> > reference
> > > >
> > > > On 08.01.22 16:13, Richard Purdie wrote:
> > > > > On Sat, 2022-01-08 at 07:10 -0800, Matt Madison wrote:
> > > > >> On Sat, Jan 8, 2022 at 6:34 AM Richard Purdie
> > > > >> <richard.purdie@linuxfoundation.org> wrote:
> > > > >>>
> > > > >>> On Fri, 2022-01-07 at 06:44 -0800, Matt Madison wrote:
> > > > >>>> On Fri, Jan 7, 2022 at 4:56 AM Richard Purdie
> > > > >>>> <richard.purdie@linuxfoundation.org> wrote:
> > > > >>>>>
> > > > >>>>> On Fri, 2022-01-07 at 12:51 +0000, Richard Purdie via
> > > > lists.openembedded.org
> > > > >>>>> wrote:
> > > > >>>>>> On Fri, 2022-01-07 at 04:36 -0800, Matt Madison wrote:
> > > > >>>>>>> On Fri, Jan 7, 2022 at 3:19 AM Richard Purdie
> > > > >>>>>>> <richard.purdie@linuxfoundation.org> wrote:
> > > > >>>>>>>>
> > > > >>>>>>>> On Wed, 2021-12-15 at 12:16 -0800, Matt Madison wrote:
> > > > >>>>>>>>> which is introducing task hash changes for some
> > > > >>>>>>>>> allarch package builds, and should no longer
> > > > >>>>>>>>> be needed with recent versions of qemu.
> > > > >>>>>>>>>
> > > > >>>>>>>>> Signed-off-by: Matt Madison <matt@madison.systems>
> > > > >>>>>>>>> ---
> > > > >>>>>>>>>   meta/classes/qemu.bbclass | 2 +-
> > > > >>>>>>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
> > > > >>>>>>>>>
> > > > >>>>>>>>> diff --git a/meta/classes/qemu.bbclass
> > > > b/meta/classes/qemu.bbclass
> > > > >>>>>>>>> index 01a7b86ae1..333202b7c4 100644
> > > > >>>>>>>>> --- a/meta/classes/qemu.bbclass
> > > > >>>>>>>>> +++ b/meta/classes/qemu.bbclass
> > > > >>>>>>>>> @@ -54,7 +54,7 @@ def qemu_run_binary(data, rootfs_path,
> > > > binary):
> > > > >>>>>>>>>   # this dance). For others (e.g. arm) a -cpu option is not
> > > > necessary, since the
> > > > >>>>>>>>>   # qemu-arm default CPU supports all required architecture
> > > > levels.
> > > > >>>>>>>>>
> > > > >>>>>>>>> -QEMU_OPTIONS = "-r ${OLDEST_KERNEL}
> > > > ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
> > > > >>>>>>>>> +QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" %
> > > > d.getVar('PACKAGE_ARCH')) or ""}"
> > > > >>>>>>>>>   QEMU_OPTIONS[vardeps] +=
> > "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
> > > > >>>>>>>>>
> > > > >>>>>>>>>   QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
> > > > >>>>>>>>
> > > > >>>>>>>> I've sent a revert for this since the commit message isn't
> > true,
> > > > this is causing
> > > > >>>>>>>> autobuilder failures and there was also a user report of
> > issues
> > > > with it.
> > > > >>>>>>>
> > > > >>>>>>> Bummer.  I think this is because our OLDEST_KERNEL setting for
> > > > aarch64
> > > > >>>>>>> (3.14.0) is
> > > > >>>>>>> higher than the UNAME_MINIMUM_RELEASE definition in QEMU
> > (3.8.0).
> > > > >>>>>>>
> > > > >>>>>>>>
> > > >
> > https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/4559/ste
> > > > ps/13/logs/stdio
> > > > >>>>>>>> (centos7 aarch64 build)
> > > > >>>>>>>>
> > > > >>>>>>>> We'll have to find a different way to fix the allarch issue
> > (more
> > > > details
> > > > >>>>>>>> welcome on which package shows the issue).
> > > > >>>>>>>
> > > > >>>>>>> I ran into the issue with cantarell-fonts and wayland-
> > protocols,
> > > > but
> > > > >>>>>>> any recipe that inherits both allarch and meson should trigger
> > it.
> > > > >>>>>>>
> > > > >>>>>>> In my case, I have a layer check job for meta-tegra that runs
> > > > >>>>>>> yocto-check-layer with the --machines option specifying
> > qemux86
> > > > and
> > > > >>>>>>> one of the (aarch64) machines in my layer, and that was
> > reporting
> > > > the
> > > > >>>>>>> signature changes between the two architectures.
> > > > >>>>>>
> > > > >>>>>> I wonder why we don't detect that with our standard tests? :/
> > > > >>>>>>
> > > > >>>>>> There may be another fix:
> > > > >>>>>>
> > > > >>>>>> diff --git a/meta/classes/allarch.bbclass
> > > > b/meta/classes/allarch.bbclass
> > > > >>>>>> index 5bd5c44a276..0aadf7bfba6 100644
> > > > >>>>>> --- a/meta/classes/allarch.bbclass
> > > > >>>>>> +++ b/meta/classes/allarch.bbclass
> > > > >>>>>> @@ -43,6 +43,9 @@ python () {
> > > > >>>>>>           d.setVar("TARGET_LDFLAGS", "none")
> > > > >>>>>>           d.setVar("POPULATESYSROOTDEPS", "")
> > > > >>>>>>
> > > > >>>>>> +        if bb.data.inherits_class("meson", d):
> > > > >>>>>> +            d.setVar("do_write_config", ":")
> > > > >>>>>> +
> > > > >>>>>>           # Avoid this being unnecessarily different due to
> > nuances
> > > > of
> > > > >>>>>>           # the target machine that aren't important for "all"
> > arch
> > > > >>>>>>           # packages.
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > > >>>>> Sorry, that isn't quite right. We want to just remove the append
> > to
> > > > write_config
> > > > >>>>> which generates the qemu wrapper which will probably need a
> > little
> > > > more invasive
> > > > >>>>> juggling of the code to make it easier...
> > > > >>>>
> > > > >>>> Your patch to disable the qemu wrapper for allarch looks like a
> > good
> > > > solution.
> > > > >>>> Hopefully, that will work OK across the board.
> > > > >>>
> > > > >>> It seemed to be so I've merged it. Am hoping this resolves things!
> > > > >>
> > > > >> Drat. Unfortunately, it only works if allarch is inherited after
> > meson
> > > > >> (which inherits qemu).  So cantarell-fonts checks out OK,
> > > > >> but wayland-protocols doesn't, since it inherits allarch first.
> > > > >
> > > > > Probably easy to fix but hard to spot new problems :/
> > > >
> > > > would an insane check similar to native-last be of help here?
> > >
> > > That seems like the wrong solution. As far as possible, bbclasses should
> > > be designed to be able to inherit them in any order, and it should be
> > possible
> > > to rewrite this change so that is still possible to do.
> >
> > Doing so would be a bit ugly, since it's a Python function. Something like
> >
> >     if bb.data.inherits_class('qemu', d):
> >         d.setVar("qemu_wrapper_cmdline", "def
> > qemu_wrapper_cmdline(data, rootfs_path, library_paths):\n    return
> > 'false'\n")
> >
> > in the anonymous python function in allarch.bbclass would do that.
>
> Ok, that's ugly. How about solving it in qemu.bbclass instead by doing:
>
> def qemu_wrapper_cmdline(data, rootfs_path, library_paths):
>     import string
>
>     if bb.data.inherits_class('allarch', data):
>         return 'false'

Unfortunately, that wouldn't fix the problem, since task signatures
are computed based on the parsed text of the function, which would
still include the reference to the OLDEST_KERNEL variable.

A somewhat less ugly approach might be to just to do:

    if bb.data.inherits_class('qemu', d):
        d.setVar('QEMU_OPTIONS', '')

along with all the other variable changes in allarch.bbclass.

-Matt

>
>     ...
>
> >
> > -Matt
> >
> > >
> > > > >
> > > > > Cheers,
> > > > >
> > > > > Richard
> > >
> > > //Peter
>
> //Peter
>

Patch

diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
index 01a7b86ae1..333202b7c4 100644
--- a/meta/classes/qemu.bbclass
+++ b/meta/classes/qemu.bbclass
@@ -54,7 +54,7 @@  def qemu_run_binary(data, rootfs_path, binary):
 # this dance). For others (e.g. arm) a -cpu option is not necessary, since the
 # qemu-arm default CPU supports all required architecture levels.
 
-QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
+QEMU_OPTIONS = "${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
 QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
 
 QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"