From 4f0ae74135a58eb88c76cd061a984e919e5a2433 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Thu, 5 Mar 2020 13:14:41 +0000 Subject: [PATCH] arm: Fix softp-fp Implies (BZ #25635) The commit "arm: Split BE/LE abilist" (1673ba87fefe019c834c09d33673d1d453ea698d) changed the soft-fp order for ARM selection when __SOFTFP__ is defined by the compiler. On 2.30 the sysdeps order is: 2.30 sysdeps/unix/sysv/linux/arm sysdeps/arm/nptl sysdeps/unix/sysv/linux sysdeps/nptl sysdeps/pthread sysdeps/gnu sysdeps/unix/inet sysdeps/unix/sysv sysdeps/unix/arm sysdeps/unix sysdeps/posix sysdeps/arm/nofpu sysdeps/ieee754/soft-fp sysdeps/arm sysdeps/wordsize-32 sysdeps/ieee754/flt-32 sysdeps/ieee754/dbl-64 sysdeps/ieee754 sysdeps/generic While on master is: sysdeps/unix/sysv/linux/arm/le sysdeps/unix/sysv/linux/arm sysdeps/arm/nptl sysdeps/unix/sysv/linux sysdeps/nptl sysdeps/pthread sysdeps/gnu sysdeps/unix/inet sysdeps/unix/sysv sysdeps/unix/arm sysdeps/unix sysdeps/posix sysdeps/arm/le sysdeps/arm sysdeps/wordsize-32 sysdeps/ieee754/flt-32 sysdeps/ieee754/dbl-64 sysdeps/arm/nofpu sysdeps/ieee754/soft-fp sysdeps/ieee754 sysdeps/generic It make the build select some routines (fadd, fdiv, fmul, fsub, and fma) on ieee754/flt-32 and ieee754/dbl-64 that requires fenv support to be correctly rounded which in turns lead to math failures since the __SOFTFP__ does not have fenv support. With this patch the order is now: sysdeps/unix/sysv/linux/arm/le sysdeps/unix/sysv/linux/arm sysdeps/arm/nptl sysdeps/unix/sysv/linux sysdeps/nptlsysdeps/pthread sysdeps/gnu sysdeps/unix/inet sysdeps/unix/sysv sysdeps/unix/arm sysdeps/unix sysdeps/posix sysdeps/arm/le/nofpu sysdeps/arm/nofpu sysdeps/ieee754/soft-fp sysdeps/arm/le sysdeps/arm sysdeps/wordsize-32 sysdeps/ieee754/flt-32 sysdeps/ieee754/dbl-64 sysdeps/ieee754 sysdeps/generic Checked on arm-linux-gnuaebi. (cherry picked from commit af09e5e5d9ec3ca20891e61a6922eac984fcbdc4) --- NEWS | 1 + sysdeps/arm/be/nofpu/Implies | 1 + sysdeps/arm/le/nofpu/Implies | 1 + 3 files changed, 3 insertions(+) create mode 100644 sysdeps/arm/be/nofpu/Implies create mode 100644 sysdeps/arm/le/nofpu/Implies diff --git a/NEWS b/NEWS index 76cfbcaa163..1dabaf93291 100644 --- a/NEWS +++ b/NEWS @@ -45,6 +45,7 @@ The following bugs are resolved with this release: [25401] Remove incorrect alloc_size attribute from pvalloc [25487] sinl() stack corruption from crafted input (CVE-2020-10029) [25523] MIPS/Linux inline syscall template is miscompiled + [25635] arm: Wrong sysdep order selection for soft-fp Version 2.30 diff --git a/sysdeps/arm/be/nofpu/Implies b/sysdeps/arm/be/nofpu/Implies new file mode 100644 index 00000000000..c90dd7fd5c1 --- /dev/null +++ b/sysdeps/arm/be/nofpu/Implies @@ -0,0 +1 @@ +arm/nofpu diff --git a/sysdeps/arm/le/nofpu/Implies b/sysdeps/arm/le/nofpu/Implies new file mode 100644 index 00000000000..c90dd7fd5c1 --- /dev/null +++ b/sysdeps/arm/le/nofpu/Implies @@ -0,0 +1 @@ +arm/nofpu -- 2.47.2