On Tue, Nov 03, 2020 at 08:56:28PM +0800, Leyi Rong wrote: > Fix the build error when -march=skylake-avx512 is not supported on > lower version GCC. > > Fixes: ef5d52dae5e2 ("net/ice: add AVX512 vector path") > > Signed-off-by: Leyi Rong <leyi.r...@intel.com> > --- > drivers/net/ice/meson.build | 21 +++++++++++++++------ > 1 file changed, 15 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/ice/meson.build b/drivers/net/ice/meson.build > index 7d54a49236..ec8933aa1a 100644 > --- a/drivers/net/ice/meson.build > +++ b/drivers/net/ice/meson.build > @@ -46,12 +46,21 @@ if arch_subdir == 'x86' > > if ice_avx512_cpu_support == true or ice_avx512_cc_support == true > cflags += ['-DCC_AVX512_SUPPORT'] > - ice_avx512_lib = static_library('ice_avx512_lib', > - 'ice_rxtx_vec_avx512.c', > - dependencies: [static_rte_ethdev, > - static_rte_kvargs, static_rte_hash], > - include_directories: includes, > - c_args: [cflags, '-march=skylake-avx512', > '-mavx512f', '-mavx512bw']) > + if cc.has_argument('-march=skylake-avx512') > + ice_avx512_lib = static_library('ice_avx512_lib', > + 'ice_rxtx_vec_avx512.c', > + dependencies: [static_rte_ethdev, > + static_rte_kvargs, > static_rte_hash], > + include_directories: includes, > + c_args: [cflags, > '-march=skylake-avx512', '-mavx512f', '-mavx512bw']) > + else > + ice_avx512_lib = static_library('ice_avx512_lib', > + 'ice_rxtx_vec_avx512.c', > + dependencies: [static_rte_ethdev, > + static_rte_kvargs, > static_rte_hash], > + include_directories: includes, > + c_args: [cflags, '-mavx512f', > '-mavx512bw']) > + endif
Rather than duplicating the whole static_library call, you can just do: avx512_cflags = [cflags, '-mavx512f', '-mavx512bw'] if cc.has_argument('-march=skylake-avx512') avx512_cflags += '-march=skylake-avx512' endif and then use avx512_cflags inside a single static_library call. Much shorter code. /Bruce > objs += ice_avx512_lib.extract_objects('ice_rxtx_vec_avx512.c') > endif > endif > -- > 2.17.1 >