SDKMACHINE and ppc64le issue with latest head?


Andrew Geissler
 

Over in OpenBMC, we utilize a mix of x86 and ppc64le machines for our CI.

Our latest rebase of poky master (https://gerrit.openbmc-project.xyz/c/openbmc/openbmc/+/39533/) has started failing to compile on our ppc64le machines with the below error.

I can workaround it by setting "SDKMACHINE=x86_64" but that seems a bit weird on a ppc64le machine?

+ bitbake obmc-phosphor-image obmc-phosphor-debug-tarball
ERROR: OE-core's config sanity checker detected a potential misconfiguration.
    Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
    Following is the list of potential problems / advisories:

    Specified SDKMACHINE value is not valid


Richard Purdie
 

On Fri, 2021-01-29 at 06:38 -0800, Andrew Geissler wrote:
Over in OpenBMC, we utilize a mix of x86 and ppc64le machines for our
CI.

Our latest rebase of poky master
(https://gerrit.openbmc-project.xyz/c/openbmc/openbmc/+/39533/) has
started failing to compile on our ppc64le machines with the below
error.

I can workaround it by setting "SDKMACHINE=x86_64" but that seems a
bit weird on a ppc64le machine?

+ bitbake obmc-phosphor-image obmc-phosphor-debug-tarball
ERROR: OE-core's config sanity checker detected a potential
misconfiguration.
    Either fix the cause of this error or at your own risk disable
the checker (see sanity.conf).
    Following is the list of potential problems / advisories:

    Specified SDKMACHINE value is not valid
What was SDKMACHINE set to before?

Cheers,

Richard


Andrew Geissler
 

> What was SDKMACHINE set to before?

Hey Richard, thanks for the quick response.

We did not have it set. It looks like this recent commit is what changed things on us:

commit c74ec1dd7393b9dc7bec1a3ca2ed0a56fb18d8fb
Author: Ross Burton <ross@...>
Date:   Tue Dec 22 17:23:14 2020 +0000

    bitbake.conf: default SDKMACHINE to the build host architecture


Looks like I need to submit a patch to y'all to add a ppc64le.conf to conf/machine-sdk/?


Richard Purdie
 

On Fri, 2021-01-29 at 08:40 -0800, Andrew Geissler wrote:
What was SDKMACHINE set to before?
Hey Richard, thanks for the quick response.

We did not have it set. It looks like this recent commit is what
changed things on us:

commit c74ec1dd7393b9dc7bec1a3ca2ed0a56fb18d8fb
Author: Ross Burton <ross@burtonini.com>
Date:   Tue Dec 22 17:23:14 2020 +0000

    bitbake.conf: default SDKMACHINE to the build host architecture


Looks like I need to submit a patch to y'all to add a ppc64le.conf to
conf/machine-sdk/?
That would likely avoid the failures you're seeing, yes.

I really wish we had better support for ppc64le both for hosts and
targets and had people actively involved/maintaining the ppc support,
its in need of massive modernisation particularly on the target side.

Cheers,

Richard


Andrew Geissler
 

On Jan 29, 2021, at 10:54 AM, Richard Purdie <richard.purdie@linuxfoundation.org> wrote:

On Fri, 2021-01-29 at 08:40 -0800, Andrew Geissler wrote:
What was SDKMACHINE set to before?
Hey Richard, thanks for the quick response.

We did not have it set. It looks like this recent commit is what
changed things on us:

commit c74ec1dd7393b9dc7bec1a3ca2ed0a56fb18d8fb
Author: Ross Burton <ross@burtonini.com>
Date: Tue Dec 22 17:23:14 2020 +0000

bitbake.conf: default SDKMACHINE to the build host architecture


Looks like I need to submit a patch to y'all to add a ppc64le.conf to
conf/machine-sdk/?
That would likely avoid the failures you're seeing, yes.

I really wish we had better support for ppc64le both for hosts and
targets and had people actively involved/maintaining the ppc support,
its in need of massive modernisation particularly on the target side.
Darn, I tried just adding this:

cat meta/conf/machine-sdk/ppc64le.conf

SDK_ARCH = "ppc64le"
ABIEXTENSION_class-nativesdk = ""

I get further but then hit a bunch of fails like this:

ERROR: /home/andrewg/Code/openbmc/meta/recipes-devtools/meson/nativesdk-meson_0.56.0.bb: Unable to determine endianness for architecture '${SDK_ARCH}'
ERROR: /home/andrewg/Code/openbmc/meta/recipes-devtools/meson/nativesdk-meson_0.56.0.bb: Please add your architecture to siteinfo.bbclass
ERROR: Failed to parse recipe: /home/andrewg/Code/openbmc/meta/recipes-devtools/meson/nativesdk-meson_0.56.0.bb
ERROR: /home/andrewg/Code/openbmc/meta/recipes-graphics/xorg-lib/libxext_1.3.4.bb: Unable to determine endianness for architecture '${SDK_ARCH}'
ERROR: /home/andrewg/Code/openbmc/meta/recipes-graphics/xorg-lib/libxext_1.3.4.bb: Please add your architecture to siteinfo.bbclass


I’m did some grepping around but don’t see anything obvious. Why is it not
finding the SDK_ARCH I’ve set in the new conf file?

Wondering if I should just go with my first workaround and set SDKMACHINE=x86_64.
Apparently using that default in the past hasn’t affected our use cases.


Cheers,

Richard


Richard Purdie
 

On Fri, 2021-01-29 at 13:48 -0600, Andrew Geissler wrote:

On Jan 29, 2021, at 10:54 AM, Richard Purdie <richard.purdie@linuxfoundation.org> wrote:

On Fri, 2021-01-29 at 08:40 -0800, Andrew Geissler wrote:
What was SDKMACHINE set to before?
Hey Richard, thanks for the quick response.

We did not have it set. It looks like this recent commit is what
changed things on us:

commit c74ec1dd7393b9dc7bec1a3ca2ed0a56fb18d8fb
Author: Ross Burton <ross@burtonini.com>
Date: Tue Dec 22 17:23:14 2020 +0000

    bitbake.conf: default SDKMACHINE to the build host architecture


Looks like I need to submit a patch to y'all to add a ppc64le.conf to
conf/machine-sdk/?
That would likely avoid the failures you're seeing, yes.

I really wish we had better support for ppc64le both for hosts and
targets and had people actively involved/maintaining the ppc support,
its in need of massive modernisation particularly on the target side.
Darn, I tried just adding this:

cat meta/conf/machine-sdk/ppc64le.conf

SDK_ARCH = "ppc64le"
ABIEXTENSION_class-nativesdk = ""

I get further but then hit a bunch of fails like this:

ERROR: /home/andrewg/Code/openbmc/meta/recipes-devtools/meson/nativesdk-meson_0.56.0.bb: Unable to determine endianness for architecture '${SDK_ARCH}'
ERROR: /home/andrewg/Code/openbmc/meta/recipes-devtools/meson/nativesdk-meson_0.56.0.bb: Please add your architecture to siteinfo.bbclass
ERROR: Failed to parse recipe: /home/andrewg/Code/openbmc/meta/recipes-devtools/meson/nativesdk-meson_0.56.0.bb
ERROR: /home/andrewg/Code/openbmc/meta/recipes-graphics/xorg-lib/libxext_1.3.4.bb: Unable to determine endianness for architecture '${SDK_ARCH}'
ERROR: /home/andrewg/Code/openbmc/meta/recipes-graphics/xorg-lib/libxext_1.3.4.bb: Please add your architecture to siteinfo.bbclass


I’m did some grepping around but don’t see anything obvious. Why is it not
finding the SDK_ARCH I’ve set in the new conf file?

Wondering if I should just go with my first workaround and set SDKMACHINE=x86_64.
Apparently using that default in the past hasn’t affected our use cases.
SDKMACHINE is the machine to run any SDK that is built on. If you're
not building an SDK or eSDK, it won't matter to your use case.
BUILD_ARCH is the machine you're building upon which is already being
set correctly and unchanged.

Cheers,

Richard