[PATCH 3/3] config/x86: fix MinGW cross build with meson 0.49

Bruce Richardson bruce.richardson at intel.com
Mon Nov 15 10:30:19 CET 2021


On Sat, Nov 13, 2021 at 12:48:26AM +0300, Dmitry Kozlyuk wrote:
> Cross build with MinGW was broken for the baseline meson 0.49.2.
> Cause: in c_args = '-mno-avx512f' from config/x86/cross-mingw,
> each character was treated as a separate compiler option:
> 
>     meson.build:4:0: ERROR:  Compiler x86_64-w64-mingw32-gcc can not compile programs.
> 
> With c_args = ['-mno-avx512f'] configuration passed, but build failed,
> because Meson placed -mno-avx512f after -mavx512f in CFLAGS:
> 
>     In file included from /usr/lib/gcc/x86_64-w64-mingw32/9.3-win32/include/immintrin.h:55,
>                      from /usr/lib/gcc/x86_64-w64-mingw32/9.3-win32/include/x86intrin.h:32,
>                      from ../dpdk/lib/net/net_crc_avx512.c:13:
>     /usr/lib/gcc/x86_64-w64-mingw32/9.3-win32/include/avx512fintrin.h:1650:1:
>             error: inlining failed in call to always_inline _mm512_ternarylogic_epi64:
>             target specific option mismatch
>      1650 | _mm512_ternarylogic_epi64 (__m512i __A, __m512i __B, __m512i __C,
>           | ^~~~~~~~~~~~~~~~~~~~~~~~~
>     ../dpdk/lib/net/net_crc_avx512.c:59:9: note: called from here
>        59 |  return _mm512_ternarylogic_epi64(tmp0, tmp1, data_block, 0x96);
>           |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Additionally, -m[no-]avx512f flag is expected to be in machine_args
> by all the checks in meson.build files.
> 
> Commit 419c6e9af69e ("net/i40e: fix build for Windows MinGW")
> fixed the errors cause by MinGW using AVX512F on Windows.
> The binutils AVX512F bug check is now portable,
> so enable it for Windows to switch AVX512 support on and off
> without any special logic for MinGW.
> 
> Fixes: 549bfc83168f ("config: disable AVX512 with MinGW")
> Cc: leyi.rong at intel.com
> 
> Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk at gmail.com>
> ---
Acked-by: Bruce Richardson <bruce.richardson at intel.com>


More information about the dev mailing list