[v2,2/2] arm: Fix softp-fp Implies (BZ #25635)

Message ID 20200305140105.22734-2-adhemerval.zanella@linaro.org
State New
Headers show
Series
  • [v2,1/2] Remove reference of --without-fp on configure
Related show

Commit Message

Adhemerval Zanella March 5, 2020, 2:01 p.m.
Changes from previous version:

  - Remove wrong --without-fp mention.
  - Change the order on generic sysdep Implies instead of Linux one.

--

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.31 the sysdeps order is:

2.31
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.
---
 sysdeps/arm/be/nofpu/Implies | 1 +
 sysdeps/arm/le/nofpu/Implies | 1 +
 2 files changed, 2 insertions(+)
 create mode 100644 sysdeps/arm/be/nofpu/Implies
 create mode 100644 sysdeps/arm/le/nofpu/Implies

-- 
2.17.1

Comments

Joseph Myers March 5, 2020, 9:48 p.m. | #1
On Thu, 5 Mar 2020, Adhemerval Zanella wrote:

> Changes from previous version:

> 

>   - Remove wrong --without-fp mention.

>   - Change the order on generic sysdep Implies instead of Linux one.

> 

> --

> 

> 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.31 the sysdeps order is:

> 

> 2.31


"git tag --contains 1673ba87fefe019c834c09d33673d1d453ea698d" says that 
commit is in 2.31, so I suppose this should actually be a reference to 
2.30 as the version the old sysdeps order comes from.

OK with that fix to the commit message.

-- 
Joseph S. Myers
joseph@codesourcery.com

Patch

diff --git a/sysdeps/arm/be/nofpu/Implies b/sysdeps/arm/be/nofpu/Implies
new file mode 100644
index 0000000000..c90dd7fd5c
--- /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 0000000000..c90dd7fd5c
--- /dev/null
+++ b/sysdeps/arm/le/nofpu/Implies
@@ -0,0 +1 @@ 
+arm/nofpu