'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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to