[v4,01/11] drivers: add generalized AVX build handling
Checks
Commit Message
Add support to the top-level driver build file for AVX2 and AVX512
specific sources. This should simplify driver builds by avoiding the
need to constantly reimplement the same build logic
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
drivers/meson.build | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
@@ -126,6 +126,8 @@ foreach subpath:subdirs
name = drv
annotate_locks = true
sources = []
+ sources_avx2 = []
+ sources_avx512 = []
headers = []
driver_sdk_headers = [] # public headers included by drivers
objs = []
@@ -235,6 +237,34 @@ foreach subpath:subdirs
dpdk_includes += include_directories(drv_path)
endif
+ # handle avx2 and avx512 source files
+ if arch_subdir == 'x86'
+ if sources_avx2.length() > 0
+ avx2_lib = static_library(lib_name + '_avx2_lib',
+ sources_avx2,
+ dependencies: static_deps,
+ include_directories: includes,
+ c_args: [cflags, cc_avx2_flags])
+ objs += avx2_lib.extract_objects(sources_avx2)
+ endif
+ if sources_avx512.length() > 0 and cc_has_avx512
+ cflags += '-DCC_AVX512_SUPPORT'
+ avx512_args = [cflags, cc_avx512_flags]
+ if not target_has_avx512 and cc.has_argument('-march=skylake-avx512')
+ avx512_args += '-march=skylake-avx512'
+ if cc.has_argument('-Wno-overriding-option')
+ avx512_args += '-Wno-overriding-option'
+ endif
+ endif
+ avx512_lib = static_library(lib_name + '_avx512_lib',
+ sources_avx512,
+ dependencies: static_deps,
+ include_directories: includes,
+ c_args: avx512_args)
+ objs += avx512_lib.extract_objects(sources_avx512)
+ endif
+ endif
+
# generate pmdinfo sources by building a temporary
# lib and then running pmdinfogen on the contents of
# that lib. The final lib reuses the object files and