On 7/25/20 6:56 PM, Ruslan Babayev wrote:
'cpu' unlike 'cpu_family' must be a more specific subtype for the CPU.


since mcpu/march should provide the right values already, do we need this additional logic in meson? dont we get needed settings to meson
already?

perhaps you can describe some missing cases this would address will help understand the usecase

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



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#141114): 
https://lists.openembedded.org/g/openembedded-core/message/141114
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