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
> 

Reply via email to