* [PATCH v6 1/6] meson: Allow user to override setup command options
@ 2025-04-11 17:27 Tom Hochstein
2025-04-11 17:27 ` [PATCH v6 2/6] toolchain-scripts: Add Meson settings for Yocto build SDK Tom Hochstein
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: Tom Hochstein @ 2025-04-11 17:27 UTC (permalink / raw)
To: openembedded-core; +Cc: Tom Hochstein
The user cannot override the setup command options --cross-file and
--native-file because the meson-wrapper places these options on the
command line after the user options. This problem was noticed when
trying to build with an SDK using a custom cross-file.
Signed-off-by: Tom Hochstein <tom.hochstein@oss.nxp.com>
---
meta/recipes-devtools/meson/meson/meson-wrapper | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/meta/recipes-devtools/meson/meson/meson-wrapper b/meta/recipes-devtools/meson/meson/meson-wrapper
index 7455985297..3aa1a93520 100755
--- a/meta/recipes-devtools/meson/meson/meson-wrapper
+++ b/meta/recipes-devtools/meson/meson/meson-wrapper
@@ -14,8 +14,14 @@ fi
unset CC CXX CPP LD AR NM STRIP
case "$1" in
-setup|configure|dist|install|introspect|init|test|wrap|subprojects|rewrite|compile|devenv|env2mfile|help) MESON_CMD="$1" ;;
-*) echo meson-wrapper: Implicit setup command assumed; MESON_CMD=setup ;;
+setup|configure|dist|install|introspect|init|test|wrap|subprojects|rewrite|compile|devenv|env2mfile|help)
+ MESON_CMD="$1"
+ shift
+ ;;
+*)
+ MESON_CMD=setup
+ echo meson-wrapper: Implicit setup command assumed
+ ;;
esac
if [ "$MESON_CMD" = "setup" ]; then
@@ -27,5 +33,6 @@ if [ "$MESON_CMD" = "setup" ]; then
fi
exec "$OECORE_NATIVE_SYSROOT/usr/bin/meson.real" \
- "$@" \
- $MESON_SETUP_OPTS
+ $MESON_CMD \
+ $MESON_SETUP_OPTS \
+ "$@"
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v6 2/6] toolchain-scripts: Add Meson settings for Yocto build SDK
2025-04-11 17:27 [PATCH v6 1/6] meson: Allow user to override setup command options Tom Hochstein
@ 2025-04-11 17:27 ` Tom Hochstein
2025-04-11 17:28 ` [PATCH v6 3/6] toolchain-scripts: Export meson settings for SDK builds Tom Hochstein
` (3 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Tom Hochstein @ 2025-04-11 17:27 UTC (permalink / raw)
To: openembedded-core; +Cc: Tom Hochstein
The Meson settings for the standalone SDK also need to be available for
the Yocto build SDK, a.k.a. meta-ide-support.
Signed-off-by: Tom Hochstein <tom.hochstein@oss.nxp.com>
---
meta/classes-recipe/toolchain-scripts.bbclass | 2 ++
1 file changed, 2 insertions(+)
diff --git a/meta/classes-recipe/toolchain-scripts.bbclass b/meta/classes-recipe/toolchain-scripts.bbclass
index b59a295abc..9e4320f876 100644
--- a/meta/classes-recipe/toolchain-scripts.bbclass
+++ b/meta/classes-recipe/toolchain-scripts.bbclass
@@ -99,6 +99,8 @@ toolchain_create_tree_env_script () {
echo 'export OECORE_BASELIB="${baselib}"' >> $script
echo 'export OECORE_TARGET_ARCH="${TARGET_ARCH}"' >>$script
echo 'export OECORE_TARGET_OS="${TARGET_OS}"' >>$script
+ echo 'export OECORE_TARGET_BITS="${@siteinfo_with_prefix(d, 'bit-')}"' >>$script
+ echo 'export OECORE_TARGET_ENDIAN="${@siteinfo_with_prefix(d, 'endian-')}"' >>$script
toolchain_shared_env_script
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v6 3/6] toolchain-scripts: Export meson settings for SDK builds
2025-04-11 17:27 [PATCH v6 1/6] meson: Allow user to override setup command options Tom Hochstein
2025-04-11 17:27 ` [PATCH v6 2/6] toolchain-scripts: Add Meson settings for Yocto build SDK Tom Hochstein
@ 2025-04-11 17:28 ` Tom Hochstein
2025-04-11 17:28 ` [PATCH v6 4/6] meson: Fix host_machine setting for native cross-file Tom Hochstein
` (2 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Tom Hochstein @ 2025-04-11 17:28 UTC (permalink / raw)
To: openembedded-core; +Cc: Tom Hochstein
Create a new set of exports for the Meson `host_machine` cross settings.
This allows the target cross file to be created correctly from
meson.cross.template and aligns with meson.bbclass.
Note, one might think that HOST_OS and HOST_ARCH would be appropriate as
inputs here, aligning nicely with the Meson naming. That turns out to be
incorrect since the script is generated in a native/nativesdk build with
HOST_OS and HOST_ARCH set for the "build machine", not the "host
machine", using the Meson terminology. See
https://mesonbuild.com/Cross-compilation.html.
Fixes: [YOCTO #15485]
Signed-off-by: Tom Hochstein <tom.hochstein@oss.nxp.com>
---
meta/classes-recipe/toolchain-scripts.bbclass | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/meta/classes-recipe/toolchain-scripts.bbclass b/meta/classes-recipe/toolchain-scripts.bbclass
index 9e4320f876..3053cd0f1f 100644
--- a/meta/classes-recipe/toolchain-scripts.bbclass
+++ b/meta/classes-recipe/toolchain-scripts.bbclass
@@ -4,7 +4,7 @@
# SPDX-License-Identifier: MIT
#
-inherit toolchain-scripts-base siteinfo kernel-arch
+inherit toolchain-scripts-base siteinfo kernel-arch meson-routines
# We want to be able to change the value of MULTIMACH_TARGET_SYS, because it
# doesn't always match our expectations... but we default to the stock value
@@ -72,6 +72,10 @@ toolchain_create_sdk_env_script () {
echo 'export OECORE_TARGET_OS="${TARGET_OS}"' >>$script
echo 'export OECORE_TARGET_BITS="${@siteinfo_with_prefix(d, 'bit-')}"' >>$script
echo 'export OECORE_TARGET_ENDIAN="${@siteinfo_with_prefix(d, 'endian-')}"' >>$script
+ echo 'export OECORE_MESON_HOST_SYSTEM="${@meson_operating_system('TARGET_OS', d)}"' >>$script
+ echo 'export OECORE_MESON_HOST_CPU_FAMILY="${@meson_cpu_family('TARGET_ARCH', d)}"' >>$script
+ echo 'export OECORE_MESON_HOST_CPU="${TARGET_ARCH}"' >>$script
+ echo 'export OECORE_MESON_HOST_ENDIAN="${@meson_endian('TARGET', d)}"' >>$script
echo 'unset command_not_found_handle' >> $script
@@ -101,6 +105,10 @@ toolchain_create_tree_env_script () {
echo 'export OECORE_TARGET_OS="${TARGET_OS}"' >>$script
echo 'export OECORE_TARGET_BITS="${@siteinfo_with_prefix(d, 'bit-')}"' >>$script
echo 'export OECORE_TARGET_ENDIAN="${@siteinfo_with_prefix(d, 'endian-')}"' >>$script
+ echo 'export OECORE_MESON_HOST_SYSTEM="${@meson_operating_system('TARGET_OS', d)}"' >>$script
+ echo 'export OECORE_MESON_HOST_CPU_FAMILY="${@meson_cpu_family('TARGET_ARCH', d)}"' >>$script
+ echo 'export OECORE_MESON_HOST_CPU="${TARGET_ARCH}"' >>$script
+ echo 'export OECORE_MESON_HOST_ENDIAN="${@meson_endian('TARGET', d)}"' >>$script
toolchain_shared_env_script
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v6 4/6] meson: Fix host_machine setting for native cross-file
2025-04-11 17:27 [PATCH v6 1/6] meson: Allow user to override setup command options Tom Hochstein
2025-04-11 17:27 ` [PATCH v6 2/6] toolchain-scripts: Add Meson settings for Yocto build SDK Tom Hochstein
2025-04-11 17:28 ` [PATCH v6 3/6] toolchain-scripts: Export meson settings for SDK builds Tom Hochstein
@ 2025-04-11 17:28 ` Tom Hochstein
2025-04-11 17:28 ` [PATCH v6 5/6] oeqa/sdk/meson: improve test to validate host/build target assignments Tom Hochstein
2025-04-11 17:28 ` [PATCH v6 6/6] oeqa/sdk/meson: Skip test when SDK arch != build machine arch Tom Hochstein
4 siblings, 0 replies; 10+ messages in thread
From: Tom Hochstein @ 2025-04-11 17:28 UTC (permalink / raw)
To: openembedded-core; +Cc: Tom Hochstein
For native and nativesdk, the meson cross-file settings for
`host_machine` are incorrectly set for the build machine, not the
"machine on which the compiled binary will run". See
https://mesonbuild.com/Cross-compilation.html.
Fixes: [YOCTO #15485]
Signed-off-by: Tom Hochstein <tom.hochstein@oss.nxp.com>
---
meta/recipes-devtools/meson/meson_1.7.2.bb | 16 ++++------------
1 file changed, 4 insertions(+), 12 deletions(-)
diff --git a/meta/recipes-devtools/meson/meson_1.7.2.bb b/meta/recipes-devtools/meson/meson_1.7.2.bb
index 45a74612ce..7e9c661818 100644
--- a/meta/recipes-devtools/meson/meson_1.7.2.bb
+++ b/meta/recipes-devtools/meson/meson_1.7.2.bb
@@ -107,18 +107,14 @@ needs_exe_wrapper = true
sys_root = @OECORE_TARGET_SYSROOT
[host_machine]
-system = '$host_system'
-cpu_family = '$host_cpu_family'
-cpu = '$host_cpu'
-endian = '$host_endian'
+system = @OECORE_MESON_HOST_SYSTEM
+cpu_family = @OECORE_MESON_HOST_CPU_FAMILY
+cpu = @OECORE_MESON_HOST_CPU
+endian = @OECORE_MESON_HOST_ENDIAN
EOF
}
do_install:append:class-nativesdk() {
- host_system=${SDK_OS}
- host_cpu_family=${@meson_cpu_family("SDK_ARCH", d)}
- host_cpu=${SDK_ARCH}
- host_endian=${@meson_endian("SDK", d)}
install_templates
install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d
@@ -132,10 +128,6 @@ do_install:append:class-nativesdk() {
FILES:${PN}:append:class-nativesdk = "${datadir}/meson ${SDKPATHNATIVE}"
do_install:append:class-native() {
- host_system=${HOST_OS}
- host_cpu_family=${@meson_cpu_family("HOST_ARCH", d)}
- host_cpu=${HOST_ARCH}
- host_endian=${@meson_endian("HOST", d)}
install_templates
install -d ${D}${datadir}/post-relocate-setup.d
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v6 5/6] oeqa/sdk/meson: improve test to validate host/build target assignments
2025-04-11 17:27 [PATCH v6 1/6] meson: Allow user to override setup command options Tom Hochstein
` (2 preceding siblings ...)
2025-04-11 17:28 ` [PATCH v6 4/6] meson: Fix host_machine setting for native cross-file Tom Hochstein
@ 2025-04-11 17:28 ` Tom Hochstein
2025-04-15 9:12 ` [OE-core] " Mathieu Dubois-Briand
2025-04-11 17:28 ` [PATCH v6 6/6] oeqa/sdk/meson: Skip test when SDK arch != build machine arch Tom Hochstein
4 siblings, 1 reply; 10+ messages in thread
From: Tom Hochstein @ 2025-04-11 17:28 UTC (permalink / raw)
To: openembedded-core; +Cc: Ross Burton, Tom Hochstein
From: Ross Burton <ross.burton@arm.com>
Use 'meson introspect' to dump JSON describing the build configuration
and validate that the build and host architectures are correctly set in
the meson.cross file.
Also instead of calling ninja directly, call the relevant meson commands.
Fixes: [YOCTO #15485]
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Tom Hochstein <tom.hochstein@oss.nxp.com>
---
meta/lib/oeqa/sdk/cases/meson.py | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/meta/lib/oeqa/sdk/cases/meson.py b/meta/lib/oeqa/sdk/cases/meson.py
index 1edf78720a..407b94d242 100644
--- a/meta/lib/oeqa/sdk/cases/meson.py
+++ b/meta/lib/oeqa/sdk/cases/meson.py
@@ -4,6 +4,7 @@
# SPDX-License-Identifier: MIT
#
+import json
import os
import subprocess
import tempfile
@@ -39,10 +40,17 @@ class MesonTest(OESDKTestCase):
self.assertTrue(os.path.isdir(dirs["source"]))
os.makedirs(dirs["build"])
- log = self._run("meson --warnlevel 1 -Degl=no -Dglx=no -Dx11=false {build} {source}".format(**dirs))
- # Check that Meson thinks we're doing a cross build and not a native
- self.assertIn("Build type: cross build", log)
- self._run("ninja -C {build} -v".format(**dirs))
- self._run("DESTDIR={install} ninja -C {build} -v install".format(**dirs))
+ log = self._run("meson setup --warnlevel 1 -Degl=no -Dglx=no -Dx11=false {build} {source}".format(**dirs))
+
+ # Check that the host (gcc) and build (cross-gcc) compilers are different
+ data = json.loads(self._run("meson introspect --compilers {build}".format(**dirs)))
+ self.assertNotEqual(data["build"]["c"]["exelist"], data["host"]["c"]["exelist"])
+ # Check that the system architectures were set correctly
+ data = json.loads(self._run("meson introspect --machines {build}".format(**dirs)))
+ self.assertEqual(data["build"]["cpu"], self.td["SDK_ARCH"])
+ self.assertEqual(data["host"]["cpu"], self.td["HOST_ARCH"])
+
+ self._run("meson compile -C {build} -v".format(**dirs))
+ self._run("meson install -C {build} --destdir {install}".format(**dirs))
self.check_elf(os.path.join(dirs["install"], "usr", "local", "lib", "libepoxy.so"))
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v6 6/6] oeqa/sdk/meson: Skip test when SDK arch != build machine arch
2025-04-11 17:27 [PATCH v6 1/6] meson: Allow user to override setup command options Tom Hochstein
` (3 preceding siblings ...)
2025-04-11 17:28 ` [PATCH v6 5/6] oeqa/sdk/meson: improve test to validate host/build target assignments Tom Hochstein
@ 2025-04-11 17:28 ` Tom Hochstein
2025-04-15 10:48 ` [OE-core] " Richard Purdie
4 siblings, 1 reply; 10+ messages in thread
From: Tom Hochstein @ 2025-04-11 17:28 UTC (permalink / raw)
To: openembedded-core; +Cc: Tom Hochstein
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(+)
diff --git a/meta/lib/oeqa/sdk/cases/meson.py b/meta/lib/oeqa/sdk/cases/meson.py
index 407b94d242..63bdac93a9 100644
--- a/meta/lib/oeqa/sdk/cases/meson.py
+++ b/meta/lib/oeqa/sdk/cases/meson.py
@@ -27,6 +27,11 @@ class MesonTest(OESDKTestCase):
self.tc.hasHostPackage("meson-native")):
raise unittest.SkipTest("MesonTest: needs meson")
+ sdk_arch = self.td["SDK_ARCH"]
+ build_arch = self._run("uname -m").strip()
+ if not sdk_arch == build_arch:
+ raise unittest.SkipTest("MesonTest: SDK arch '%s' not valid for build machine arch '%s'" % (sdk_arch, build_arch))
+
def test_epoxy(self):
with tempfile.TemporaryDirectory(prefix="epoxy", dir=self.tc.sdk_dir) as testdir:
tarball = self.fetch(testdir, self.td["DL_DIR"], "https://github.com/anholt/libepoxy/releases/download/1.5.3/libepoxy-1.5.3.tar.xz")
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [OE-core] [PATCH v6 5/6] oeqa/sdk/meson: improve test to validate host/build target assignments
2025-04-11 17:28 ` [PATCH v6 5/6] oeqa/sdk/meson: improve test to validate host/build target assignments Tom Hochstein
@ 2025-04-15 9:12 ` Mathieu Dubois-Briand
0 siblings, 0 replies; 10+ messages in thread
From: Mathieu Dubois-Briand @ 2025-04-15 9:12 UTC (permalink / raw)
To: tom.hochstein, openembedded-core; +Cc: Ross Burton
On Fri Apr 11, 2025 at 7:28 PM CEST, Tom Hochstein via lists.openembedded.org wrote:
> From: Ross Burton <ross.burton@arm.com>
>
> Use 'meson introspect' to dump JSON describing the build configuration
> and validate that the build and host architectures are correctly set in
> the meson.cross file.
>
> Also instead of calling ninja directly, call the relevant meson commands.
>
> Fixes: [YOCTO #15485]
> Signed-off-by: Ross Burton <ross.burton@arm.com>
> Signed-off-by: Tom Hochstein <tom.hochstein@oss.nxp.com>
> ---
Hi Tom,
Thanks for the new version, but we still have a failure. Same error I
believe:
Traceback (most recent call last):
File "/srv/pokybuild/yocto-worker/genericarm64/build/meta/lib/oeqa/sdk/cases/meson.py", line 52, in test_epoxy
self.assertNotEqual(data["build"]["c"]["exelist"], data["host"]["c"]["exelist"])
KeyError: 'c'
https://autobuilder.yoctoproject.org/valkyrie/#/builders/60/builds/1384
--
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [OE-core] [PATCH v6 6/6] oeqa/sdk/meson: Skip test when SDK arch != build machine arch
2025-04-11 17:28 ` [PATCH v6 6/6] oeqa/sdk/meson: Skip test when SDK arch != build machine arch Tom Hochstein
@ 2025-04-15 10:48 ` Richard Purdie
2025-04-16 16:16 ` Tom Hochstein
[not found] ` <1836D8BA73D61DA5.22324@lists.openembedded.org>
0 siblings, 2 replies; 10+ messages in thread
From: Richard Purdie @ 2025-04-15 10:48 UTC (permalink / raw)
To: tom.hochstein, openembedded-core; +Cc: Ross Burton
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
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [OE-core] [PATCH v6 6/6] oeqa/sdk/meson: Skip test when SDK arch != build machine arch
2025-04-15 10:48 ` [OE-core] " Richard Purdie
@ 2025-04-16 16:16 ` Tom Hochstein
[not found] ` <1836D8BA73D61DA5.22324@lists.openembedded.org>
1 sibling, 0 replies; 10+ messages in thread
From: Tom Hochstein @ 2025-04-16 16:16 UTC (permalink / raw)
To: Richard Purdie, openembedded-core; +Cc: Ross Burton
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
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [OE-core] [PATCH v6 6/6] oeqa/sdk/meson: Skip test when SDK arch != build machine arch
[not found] ` <1836D8BA73D61DA5.22324@lists.openembedded.org>
@ 2025-04-17 13:48 ` Tom Hochstein
0 siblings, 0 replies; 10+ messages in thread
From: Tom Hochstein @ 2025-04-17 13:48 UTC (permalink / raw)
To: openembedded-core
On 4/16/2025 11:16 AM, Tom Hochstein via lists.openembedded.org wrote:
> 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:
This assertion turns out to be wrong. In fact, the build machine data is
empty in the working case as well. I propose to drop this part of the
new test, as the remaining part of the test seems sufficient.
>
> $ 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
>
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#215000): https://lists.openembedded.org/g/openembedded-core/message/215000
> Mute This Topic: https://lists.openembedded.org/mt/112214633/3617670
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [tom.hochstein@oss.nxp.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2025-04-17 13:48 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-11 17:27 [PATCH v6 1/6] meson: Allow user to override setup command options Tom Hochstein
2025-04-11 17:27 ` [PATCH v6 2/6] toolchain-scripts: Add Meson settings for Yocto build SDK Tom Hochstein
2025-04-11 17:28 ` [PATCH v6 3/6] toolchain-scripts: Export meson settings for SDK builds Tom Hochstein
2025-04-11 17:28 ` [PATCH v6 4/6] meson: Fix host_machine setting for native cross-file Tom Hochstein
2025-04-11 17:28 ` [PATCH v6 5/6] oeqa/sdk/meson: improve test to validate host/build target assignments Tom Hochstein
2025-04-15 9:12 ` [OE-core] " Mathieu Dubois-Briand
2025-04-11 17:28 ` [PATCH v6 6/6] oeqa/sdk/meson: Skip test when SDK arch != build machine arch Tom Hochstein
2025-04-15 10:48 ` [OE-core] " Richard Purdie
2025-04-16 16:16 ` Tom Hochstein
[not found] ` <1836D8BA73D61DA5.22324@lists.openembedded.org>
2025-04-17 13:48 ` Tom Hochstein
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox