[Buildroot] [git commit] package/gsl: fix powerpc build

Thomas Petazzoni thomas.petazzoni at bootlin.com
Sat Nov 5 21:31:35 UTC 2022


commit: https://git.buildroot.net/buildroot/commit/?id=94e47000c27c447de45e7190fbe8d3ef24d7df04
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

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 9d9f7feba4ffbfeb54479f1ad90d47acca1a6f0b

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

Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
---
 .../0001-configure.ac-fix-build-on-powerpc.patch   | 53 ++++++++++++++++++++++
 package/gsl/gsl.mk                                 |  2 +
 2 files changed, 55 insertions(+)

diff --git a/package/gsl/0001-configure.ac-fix-build-on-powerpc.patch b/package/gsl/0001-configure.ac-fix-build-on-powerpc.patch
new file mode 100644
index 0000000000..13f6da4588
--- /dev/null
+++ b/package/gsl/0001-configure.ac-fix-build-on-powerpc.patch
@@ -0,0 +1,53 @@
+From 84e62d57b90b41a0c96bb9fb6ec61ecaac76a1ab Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice at 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 at 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
+
diff --git a/package/gsl/gsl.mk b/package/gsl/gsl.mk
index 416955b72c..3604f9836c 100644
--- a/package/gsl/gsl.mk
+++ b/package/gsl/gsl.mk
@@ -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



More information about the buildroot mailing list