config: add static linkage of mlx dependency
[dpdk.git] / config / meson.build
index 1af305f..40802fc 100644 (file)
@@ -7,6 +7,27 @@ if meson.is_cross_build()
 else
        machine = get_option('machine')
 endif
+
+# machine type 'default' is special, it defaults to the per arch agreed common
+# minimal baseline needed for DPDK.
+# That might not be the most optimized, but the most portable version while
+# still being able to support the CPU features required for DPDK.
+# This can be bumped up by the DPDK project, but it can never be an
+# invariant like 'native'
+if machine == 'default'
+       if host_machine.cpu_family().startswith('x86')
+               # matches the old pre-meson build systems default
+               machine = 'corei7'
+       elif host_machine.cpu_family().startswith('arm')
+               machine = 'armv7-a'
+       elif host_machine.cpu_family().startswith('aarch')
+               # arm64 manages defaults in config/arm/meson.build
+               machine = 'default'
+       elif host_machine.cpu_family().startswith('ppc')
+               machine = 'power8'
+       endif
+endif
+
 dpdk_conf.set('RTE_MACHINE', machine)
 machine_args = []
 
@@ -22,6 +43,14 @@ toolchain = cc.get_id()
 dpdk_conf.set_quoted('RTE_TOOLCHAIN', toolchain)
 dpdk_conf.set('RTE_TOOLCHAIN_' + toolchain.to_upper(), 1)
 
+# get binutils version for the workaround of Bug 97
+ldver = run_command('ld', '-v').stdout().strip()
+if ldver.contains('2.30')
+       if cc.has_argument('-mno-avx512f')
+               machine_args += '-mno-avx512f'
+       endif
+endif
+
 add_project_link_arguments('-Wl,--no-as-needed', language: 'c')
 dpdk_extra_ldflags += '-Wl,--no-as-needed'