package/gsl: fix powerpc build

Fix the following powerpc build failures on:
 - musl raised because fpu_control.h is not available:

In file included from fp.c:8:
fp-gnuppc.c:21:10: fatal error: fpu_control.h: No such file or directory
   21 | #include <fpu_control.h>
      |          ^~~~~~~~~~~~~~~

 - glibc raised because _FPU_RC_NEAREST is undefined if _SOFT_FLOAT is
   set:

   In file included from fp.c:8:
fp-gnuppc.c: In function 'gsl_ieee_set_mode':
fp-gnuppc.c:53:15: error: '_FPU_RC_NEAREST' undeclared (first use in this function)
   53 |       mode |= _FPU_RC_NEAREST ;
      |               ^~~~~~~~~~~~~~~

These build failures are raised since the addition of the package in
commit 9d9f7feba4

Fixes:
 - http://autobuild.buildroot.org/results/d73e116c81bf16d2e55fced215d6bd3b382fef10
 - http://autobuild.buildroot.org/results/48403946bb4cda9013e51db59c1b2ffdcf4e2854

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Fabrice Fontaine 2022-11-05 21:52:39 +01:00 committed by Thomas Petazzoni
parent 34b681cfef
commit 94e47000c2
2 changed files with 55 additions and 0 deletions

View File

@ -0,0 +1,53 @@
From 84e62d57b90b41a0c96bb9fb6ec61ecaac76a1ab Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Sat, 5 Nov 2022 21:31:36 +0100
Subject: [PATCH] configure.ac: fix build on powerpc
Fix the following powerpc build failures on:
- musl raised because fpu_control.h is not available:
In file included from fp.c:8:
fp-gnuppc.c:21:10: fatal error: fpu_control.h: No such file or directory
21 | #include <fpu_control.h>
| ^~~~~~~~~~~~~~~
- glibc raised because _FPU_RC_NEAREST is undefined if _SOFT_FLOAT is
set:
In file included from fp.c:8:
fp-gnuppc.c: In function 'gsl_ieee_set_mode':
fp-gnuppc.c:53:15: error: '_FPU_RC_NEAREST' undeclared (first use in this function)
53 | mode |= _FPU_RC_NEAREST ;
| ^~~~~~~~~~~~~~~
Fixes:
- http://autobuild.buildroot.org/results/d73e116c81bf16d2e55fced215d6bd3b382fef10
- http://autobuild.buildroot.org/results/48403946bb4cda9013e51db59c1b2ffdcf4e2854
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
configure.ac | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/configure.ac b/configure.ac
index bfd9ca30..1ee6dca0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -389,6 +389,14 @@ if test "$ac_cv_c_ieee_interface" = "gnux86" ; then
fi
fi
+if test "$ac_cv_c_ieee_interface" = "gnuppc" ; then
+ AC_CACHE_CHECK([for _FPU_RC_NEAREST], ac_cv_c__fpu_rc_nearest,
+ [ac_cv_c__fpu_rc_nearest=no
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <fpu_control.h>
+]], [[ unsigned short mode = _FPU_RC_NEAREST ; ]])],[ac_cv_c__fpu_rc_nearest="yes"],[ac_cv_c_ieee_interface=unknown])
+ ])
+fi
+
ac_tr_ieee_interface=HAVE_`echo $ac_cv_c_ieee_interface | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`_IEEE_INTERFACE
AC_DEFINE_UNQUOTED($ac_tr_ieee_interface,1,[IEEE Interface Type])
--
2.35.1

View File

@ -10,6 +10,8 @@ GSL_INSTALL_STAGING = YES
GSL_LICENSE = GPL-3.0
GSL_LICENSE_FILES = COPYING
GSL_CONFIG_SCRIPTS = gsl-config
# We're patching configure.ac
GSL_AUTORECONF = YES
# uClibc pretends to have fenv support as it installs <fenv.h>, but in
# practice, it only implements it for i386. Problem reported upstream