Re: [OE-core] [PATCH v6 6/6] oeqa/sdk/meson: Skip test when SDK arch != build machine arch

Tom Hochstein
2025-04-16T16:16:45Z

On 4/15/2025 5:48 AM, Richard Purdie wrote:
> [You don't often get email from richard.purdie@linuxfoundation.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> On Fri, 2025-04-11 at 12:28 -0500, Tom Hochstein via lists.openembedded.org wrote:
>> The SDK Meson test fails when the SDK is not for the build machine:
>> ```
>> Traceback (most recent call last):
>> File "/srv/pokybuild/yocto-worker/qemux86/build/meta/lib/oeqa/sdk/cases/meson.py", line 47, in test_epoxy
>> self.assertNotEqual(data["build"]["c"]["exelist"], data["host"]["c"]["exelist"])
>> ~~~~~~~~~~~~~^^^^^
>> KeyError: 'c'
>> ```
>>
>> Skip the test in this case.
>>
>> Signed-off-by: Tom Hochstein <tom.hochstein@oss.nxp.com>
>> ---
>> meta/lib/oeqa/sdk/cases/meson.py | 5 +++++
>> 1 file changed, 5 insertions(+)
>
> I think this may not be quite right as I saw:
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/42/builds/1370
>
> in my build with this series applied.
>
> Cheers,
>
> Richard

Thanks, Richard. I'm able to reproduce this. It's specific to
meta-ide-support.

The setup looks fine:

$ meson setup --warnlevel 1 -Degl=no -Dglx=no -Dx11=false build
meson-wrapper: Running meson with setup options: "
--cross-file=.../poky/build/tmp/sysroots/x86_64/usr/share/meson/arm-poky-linux-gnueabi-meson.cross
--native-file=.../poky/build/tmp/sysroots/x86_64/usr/share/meson/meson.native
"
The Meson build system
Version: 1.7.2
...

The KeyError appears because the build machine data is empty:

$ meson introspect -i --compilers build
{
"host": {
"c": {
"id": "gcc",
"exelist": [
"arm-poky-linux-gnueabi-gcc",
"-mthumb",
"-mfpu=neon",
"-mfloat-abi=hard",
"-mcpu=cortex-a15",
"-fstack-protector-strong",
"-O2",
"-D_FORTIFY_SOURCE=2",
"-Wformat",
"-Wformat-security",
"-Werror=format-security",
"-D_TIME_BITS=64",
"-D_FILE_OFFSET_BITS=64",
"--sysroot=.../poky/build/tmp/sysroots/qemuarm"
],
"linker_exelist": [
"arm-poky-linux-gnueabi-gcc",
"-mthumb",
"-mfpu=neon",
"-mfloat-abi=hard",
"-mcpu=cortex-a15",
"-fstack-protector-strong",
"-O2",
"-D_FORTIFY_SOURCE=2",
"-Wformat",
"-Wformat-security",
"-Werror=format-security",
"-D_TIME_BITS=64",
"-D_FILE_OFFSET_BITS=64",
"--sysroot=.../poky/build/tmp/sysroots/qemuarm"
],
"file_suffixes": [
"c"
],
"default_suffix": "c",
"version": "14.2.0",
"full_version": "arm-poky-linux-gnueabi-gcc (GCC) 14.2.0",
"linker_id": "ld.bfd"
}
},
"build": {}
}

I don't understand why. The meson.native file looks the same as for the
standalone SDK case, and the meson machine data seems fine.

$ meson introspect -i --machines build/
{
"host": {
"system": "linux",
"cpu_family": "arm",
"cpu": "arm",
"endian": "little",
"kernel": null,
"subsystem": null,
"is_64_bit": false,
"exe_suffix": "",
"object_suffix": "o"
},
"build": {
"system": "linux",
"cpu_family": "x86_64",
"cpu": "x86_64",
"endian": "little",
"kernel": "linux",
"subsystem": "linux",
"is_64_bit": true,
"exe_suffix": "",
"object_suffix": "o"
},
"target": {
"system": "linux",
"cpu_family": "arm",
"cpu": "arm",
"endian": "little",
"kernel": null,
"subsystem": null,
"is_64_bit": false,
"exe_suffix": "",
"object_suffix": "o"
}
}

I'm stuck.

Tom