Commit a9baea43 authored by Thomas Petazzoni's avatar Thomas Petazzoni Committed by Peter Korsgaard
Browse files

pixman: add patch to fix Microblaze build failure

The Microblaze build of pixman was failing due to FE_DIVBYZERO not
being implemented. It turns out that the usage of it, like fenv.h and
feenableexcept() is optional. So the patch simply adds a configure
check and disables the appropriate code (which is only use in the
tests anyway).

This commit also renames the existing patch to follow the patch naming
convention, and get a reliable ordering when applying patches.

Fixes:

  http://autobuild.buildroot.org/results/806/8064092cdbac85fbf4322429d29d5d11dc51860f/



Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: default avatarPeter Korsgaard <peter@korsgaard.com>
parent ff600050
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
Add a check for FE_DIVBYZERO

Some architectures (namely Microblaze) do have fenv.h and
feenableexcept, but they don't have the FE_DIVBYZERO definition. This
patch adds a configure check for FE_DIVBYZERO, and only uses it if
it's available.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Index: b/configure.ac
===================================================================
--- a/configure.ac
+++ b/configure.ac
@@ -838,6 +838,11 @@
    AC_DEFINE(HAVE_FEENABLEEXCEPT, 1, [Whether we have feenableexcept()])
 fi
 
+AC_CHECK_DECL([FE_DIVBYZERO], [], [], [[#include <fenv.h>]])
+if test x$have_fe_divbyzero = xyes; then
+   AC_DEFINE(HAVE_FEDIVBYZERO, 1, [Whether we have FE_DIVBYZERO])
+fi
+
 AC_CHECK_FUNC(gettimeofday, have_gettimeofday=yes, have_gettimeofday=no)
 AC_CHECK_HEADER(sys/time.h, have_sys_time_h=yes, have_sys_time_h=no)
 if test x$have_gettimeofday = xyes && test x$have_sys_time_h = xyes; then
Index: b/test/utils.c
===================================================================
--- a/test/utils.c
+++ b/test/utils.c
@@ -776,9 +776,11 @@
 {
 #ifdef HAVE_FENV_H
 #ifdef HAVE_FEENABLEEXCEPT
+#ifdef HAVE_FE_DIVBYZERO
     feenableexcept (FE_DIVBYZERO);
 #endif
 #endif
+#endif
 }
 
 void *