'cpu' unlike 'cpu_family' must be a more specific subtype for the CPU.
Signed-off-by: Ruslan Babayev <[email protected]>
---
meta/classes/meson.bbclass | 14 ++++++++++++--
.../meson/nativesdk-meson_0.53.2.bb | 12 +++++++++++-
2 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass
index ff52d20e56..0caa7a37c2 100644
--- a/meta/classes/meson.bbclass
+++ b/meta/classes/meson.bbclass
@@ -62,6 +62,16 @@ def meson_cpu_family(var, d):
else:
return arch
+def meson_cpu(prefix, d):
+ import re
+ arch = d.getVar(prefix + "_ARCH")
+ tune_ccargs = d.getVar("TUNE_CCARGS")
+ m = re.search(r"(?<=-march=)\w+|(?<=-mcpu=)\w+", tune_ccargs)
+ if m:
+ return m.group(0)
+ else:
+ return arch
+
# Map our OS values to what Meson expects:
# https://mesonbuild.com/Reference-tables.html#operating-system-names
def meson_operating_system(var, d):
@@ -110,13 +120,13 @@ gtkdoc_exe_wrapper = '${B}/gtkdoc-qemuwrapper'
[host_machine]
system = '${@meson_operating_system('HOST_OS', d)}'
cpu_family = '${@meson_cpu_family('HOST_ARCH', d)}'
-cpu = '${HOST_ARCH}'
+cpu = '${@meson_cpu('HOST', d)}'
endian = '${@meson_endian('HOST', d)}'
[target_machine]
system = '${@meson_operating_system('TARGET_OS', d)}'
cpu_family = '${@meson_cpu_family('TARGET_ARCH', d)}'
-cpu = '${TARGET_ARCH}'
+cpu = '${@meson_cpu('TARGET', d)}'
endian = '${@meson_endian('TARGET', d)}'
EOF
}
diff --git a/meta/recipes-devtools/meson/nativesdk-meson_0.53.2.bb
b/meta/recipes-devtools/meson/nativesdk-meson_0.53.2.bb
index 67add2c25e..021bff0992 100644
--- a/meta/recipes-devtools/meson/nativesdk-meson_0.53.2.bb
+++ b/meta/recipes-devtools/meson/nativesdk-meson_0.53.2.bb
@@ -6,6 +6,16 @@ inherit siteinfo
SRC_URI += "file://meson-setup.py \
file://meson-wrapper"
+def meson_cpu(var, d):
+ import re
+ arch = d.getVar(var)
+ tune_ccargs = d.getVar("TUNE_CCARGS")
+ m = re.search(r"(?<=-march=)\w+|(?<=-mcpu=)\w+", tune_ccargs)
+ if m:
+ return m.group(0)
+ else:
+ return arch
+
def meson_endian(prefix, d):
arch, os = d.getVar(prefix + "_ARCH"), d.getVar(prefix + "_OS")
sitedata = siteinfo_data_for_machine(arch, os, d)
@@ -44,7 +54,7 @@ cpp_link_args = @LDFLAGS
[host_machine]
system = '${SDK_OS}'
cpu_family = '${SDK_ARCH}'
-cpu = '${SDK_ARCH}'
+cpu = '${@meson_cpu("SDK_ARCH", d)}'
endian = '${@meson_endian("SDK", d)}'
EOF
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#140948):
https://lists.openembedded.org/g/openembedded-core/message/140948
Mute This Topic: https://lists.openembedded.org/mt/75796683/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-