| ab5ac1ad | 12-Nov-2021 |
Dmitry Kozlyuk <[email protected]> |
config/x86: fix MinGW cross build with Meson 0.49
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 t
config/x86: fix MinGW cross build with Meson 0.49
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")
Signed-off-by: Dmitry Kozlyuk <[email protected]> Acked-by: Bruce Richardson <[email protected]>
show more ...
|
| ffadd933 | 14-May-2019 |
Bruce Richardson <[email protected]> |
eal/x86: check rdrand and rdseed
The meson build never checked for the presence of rdrand and rdseed instructions, while make build never checked for rdseed. Ensure builds always have the appropriat
eal/x86: check rdrand and rdseed
The meson build never checked for the presence of rdrand and rdseed instructions, while make build never checked for rdseed. Ensure builds always have the appropriate checks - and therefore defines - for these instructions. For runtime, we also add in rdseed to the list of known bits returned from cpuid() instruction, so we can confirm its presence at application init time.
Signed-off-by: Bruce Richardson <[email protected]> Tested-by: Mattias Rönnblom <[email protected]>
show more ...
|
| 8441eb72 | 02-May-2019 |
Ferruh Yigit <[email protected]> |
build: reduce indentation in meson check
Just syntax change to reduce indentation, no functional change.
Signed-off-by: Ferruh Yigit <[email protected]> Acked-by: Bruce Richardson <bruce.richa
build: reduce indentation in meson check
Just syntax change to reduce indentation, no functional change.
Signed-off-by: Ferruh Yigit <[email protected]> Acked-by: Bruce Richardson <[email protected]>
show more ...
|
| e19c6de3 | 02-May-2019 |
Ferruh Yigit <[email protected]> |
build: fix crash by disabling AVX512 with binutils 2.31
On Skylake platform, with native build, KNI kernel module crashes because of the corrupted values passed to kernel module.
The corruption occ
build: fix crash by disabling AVX512 with binutils 2.31
On Skylake platform, with native build, KNI kernel module crashes because of the corrupted values passed to kernel module.
The corruption occurs because the userspace kni library works unexpectedly. Compiler [1] is using AVX512 instructions and generated binary is wrong [2].
It turned around gcc does its job correct, but gas is generating binary wrong. And expected binutils 2.30, 2.31 & 2.31.1 are affected. Issue has been fixed in binutils 2.32 with: Commit x86: don't mistakenly scale non-8-bit displacements
AVX512 was already disabled with bintuils 2.30 [3], extending it to 2.31 & 2.31.1 too.
[1] gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2)
[2] gcc bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90028
[3] Bugzilla ID 97 has the details.
Bugzilla ID: 249 Cc: [email protected]
Signed-off-by: Ferruh Yigit <[email protected]> Acked-by: Bruce Richardson <[email protected]>
show more ...
|