From fcd5eb9bd0e8674a6f4987a8fce7dc1ba8f9320c Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 17 Sep 2015 03:08:36 +0200 Subject: [PATCH] [v3] test: add a check for FE_DIVBYZERO Some architectures, such as Microblaze and Nios2, currently do not implement FE_DIVBYZERO, even though they have and feenableexcept(). This commit adds a configure.ac check to verify whether FE_DIVBYZERO is defined or not, and if not, disables the problematic code in test/utils.c. Signed-off-by: Thomas Petazzoni Signed-off-by: Marek Vasut Upstream-Status: Submitted --- Changes v1 -> v2: * Use the ac_cv_have_decl_FE_DIVBYZERO variable, which is automatically set by AC_CHECK_DECL, to decide whether or not HAVE_FEDIVBYZERO should be defined. Changes v2 -> v3: * Use action-if-yes of AC_CHECK_DECL as suggested in http://lists.freedesktop.org/archives/pixman/2014-February/003176.html --- configure.ac | 5 +++++ test/utils.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/configure.ac b/configure.ac index f93cc30..424bfd3 100644 --- a/configure.ac +++ b/configure.ac @@ -891,6 +891,11 @@ if test x$have_feenableexcept = xyes; then AC_DEFINE(HAVE_FEENABLEEXCEPT, 1, [Whether we have feenableexcept()]) fi +AC_CHECK_DECL([FE_DIVBYZERO], + [AC_DEFINE(HAVE_FEDIVBYZERO, 1, [Whether we have FE_DIVBYZERO])], + [], + [[#include ]]) + 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 diff --git a/test/utils.c b/test/utils.c index 222d4d5..8657966 100644 --- a/test/utils.c +++ b/test/utils.c @@ -966,9 +966,11 @@ enable_divbyzero_exceptions (void) { #ifdef HAVE_FENV_H #ifdef HAVE_FEENABLEEXCEPT +#ifdef HAVE_FEDIVBYZERO feenableexcept (FE_DIVBYZERO); +#endif #endif #endif } void -- 2.1.4