If x86_64 is specified as target CPU instruction set (e.g. when
cross-compiling *to* x86_64), the cpu_instruction_set may be set to
x86_64, e.g. if it is derived from a Meson crossfile. However, while
Meson uses "x86_64" as name for the x86_64 architecture, compiler
options accept only "x86-64".

Introduce a conditional for handling this special case by changing
cpu_instruction_set to the march-compatible value.

Signed-off-by: Adrian Schollmeyer <[email protected]>
---

v2 changes:

 * more explicit comment about GCC/Clang requiring x86-64
 * switch to x86-64-v2 feature level

 config/meson.build | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/config/meson.build b/config/meson.build
index dcb84ebd13..4682729bad 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -177,6 +177,12 @@ if not is_ms_compiler
         machine_args += '-mtune=' + cpu_instruction_set
         compiler_arch_support = cc.has_argument('-mcpu=' + cpu_instruction_set)
     else
+        # Meson uses x86_64, but GCC/Clang expect x86-64.
+        # See https://mesonbuild.com/Reference-tables.html#cpu-families
+        if cpu_instruction_set == 'x86_64'
+            # Feature level derived from DPDK minimum CPU feature requirements
+            cpu_instruction_set = 'x86-64-v2'
+        endif
         machine_args += '-march=' + cpu_instruction_set
         # arm manages generic/auto config in config/arm/meson.build
         if cpu_instruction_set != 'generic' and cpu_instruction_set != 'auto'
--
2.43.0

Reply via email to