[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