summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorFerruh Yigit <ferruh.yigit@intel.com>2019-05-02 14:35:26 +0100
committerThomas Monjalon <thomas@monjalon.net>2019-05-02 17:48:07 +0200
commite19c6de3f2f12d0f49bdf9e787b3f43612c1df3c (patch)
treecfea1d8fe1c62e3d41fc7c2f2e4ec15c4b409351 /config
parent6e625189f25ca56859715b07732491f829619ec1 (diff)
downloaddpdk-draft-windows-e19c6de3f2f12d0f49bdf9e787b3f43612c1df3c.zip
dpdk-draft-windows-e19c6de3f2f12d0f49bdf9e787b3f43612c1df3c.tar.gz
dpdk-draft-windows-e19c6de3f2f12d0f49bdf9e787b3f43612c1df3c.tar.xz
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>
Diffstat (limited to 'config')
-rw-r--r--config/x86/meson.build4
1 files changed, 4 insertions, 0 deletions
diff --git a/config/x86/meson.build b/config/x86/meson.build
index ca4d125..0a7bed7 100644
--- a/config/x86/meson.build
+++ b/config/x86/meson.build
@@ -10,6 +10,10 @@ if not is_windows
message('Binutils 2.30 detected, disabling AVX512 support as workaround for bug #97')
endif
endif
+ if ldver.contains('2.31') and cc.has_argument('-mno-avx512f')
+ machine_args += '-mno-avx512f'
+ message('Binutils 2.31 detected, disabling AVX512 support as workaround for bug #249')
+ endif
endif
# we require SSE4.2 for DPDK