[PATCH] ARM: Fix IEEE-754 sqrt implementation

Sebastian Huber sebastian.huber@embedded-brains.de
Tue Mar 21 14:47:00 GMT 2017


Older GCC (e.g. 4.9.3) seem to define __ARM_FP even in case soft-float
is used.
---
 newlib/libm/machine/arm/e_sqrt.c  | 2 +-
 newlib/libm/machine/arm/ef_sqrt.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/newlib/libm/machine/arm/e_sqrt.c b/newlib/libm/machine/arm/e_sqrt.c
index 8754b9f..6f3eb83 100644
--- a/newlib/libm/machine/arm/e_sqrt.c
+++ b/newlib/libm/machine/arm/e_sqrt.c
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  */
 
-#if __ARM_FP & 0x8
+#if (__ARM_FP & 0x8) && !defined(__SOFTFP__)
 #include <math.h>
 
 double
diff --git a/newlib/libm/machine/arm/ef_sqrt.c b/newlib/libm/machine/arm/ef_sqrt.c
index 81c29f1..3a1ba6c 100644
--- a/newlib/libm/machine/arm/ef_sqrt.c
+++ b/newlib/libm/machine/arm/ef_sqrt.c
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  */
 
-#if __ARM_FP & 0x4
+#if (__ARM_FP & 0x4) && !defined(__SOFTFP__)
 #include <math.h>
 
 float
-- 
1.8.4.5



More information about the Newlib mailing list