build: fix crash by disabling AVX512 with binutils 2.31
authorFerruh Yigit <ferruh.yigit@intel.com>
Thu, 2 May 2019 13:35:26 +0000 (14:35 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 2 May 2019 15:48:07 +0000 (17:48 +0200)
commite19c6de3f2f12d0f49bdf9e787b3f43612c1df3c
treecfea1d8fe1c62e3d41fc7c2f2e4ec15c4b409351
parent6e625189f25ca56859715b07732491f829619ec1
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: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
config/x86/meson.build
doc/guides/rel_notes/release_19_05.rst
mk/toolchain/gcc/rte.toolchain-compat.mk