re PR libquadmath/55225 (Fail to build lgammaq.c from trunk with mingw-w64)
authorTobias Burnus <burnus@net-b.de>
Wed, 21 Nov 2012 13:46:34 +0000 (14:46 +0100)
committerTobias Burnus <burnus@gcc.gnu.org>
Wed, 21 Nov 2012 13:46:34 +0000 (14:46 +0100)
2012-11-21  Tobias Burnus  <burnus@net-b.de>

        PR libquadmath/55225
        * math/lgammaq.c (lgammaq): Use local variable if
        math.h does not provide signgam.
        * acinclude.m4 (LIBQUAD_CHECK_MATH_H_SIGNGAM): New check.
        * configure.ac: Use it.
        * configure: Regenerate.
        * config.h.in: Regenerate.

From-SVN: r193695

libquadmath/ChangeLog
libquadmath/acinclude.m4
libquadmath/config.h.in
libquadmath/configure
libquadmath/configure.ac
libquadmath/math/lgammaq.c

index 6f731ca84ad20b10119755d00fd8734dabaa787d..b97a45868b3b1d0523d2d29678d2787c3f0e8108 100644 (file)
@@ -1,3 +1,13 @@
+2012-11-21  Tobias Burnus  <burnus@net-b.de>
+
+       PR libquadmath/55225
+       * math/lgammaq.c (lgammaq): Use local variable if
+       math.h does not provide signgam.
+       * acinclude.m4 (LIBQUAD_CHECK_MATH_H_SIGNGAM): New check.
+       * configure.ac: Use it.
+       * configure: Regenerate.
+       * config.h.in: Regenerate.
+
 2012-11-15  Tobias Burnus  <burnus@net-b.de>
            Joseph Myers  <joseph@codesourcery.com>
 
index 38e0808ad933ea3560b68635887ffadc4f9ec6a3..ab73fb52e05420413da60a70e2a5eec9b462c1e5 100644 (file)
@@ -10,3 +10,20 @@ AC_DEFUN([AM_PROG_LIBTOOL])
 AC_DEFUN([AC_LIBTOOL_DLOPEN])
 AC_DEFUN([AC_PROG_LD])
 ])
+
+dnl Check whether POSIX's signgam is defined in math.h.
+AC_DEFUN([LIBQUAD_CHECK_MATH_H_SIGNGAM], [
+  AC_CACHE_CHECK([whether the math.h includes POSIX's signgam],
+                 libgfor_cv_have_math_h_signgam, [
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -Werror"
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <math.h>
+void foo(void) { signgam = 1; }]], [])],
+                    libgfor_cv_have_math_h_signgam=yes,
+                    libgfor_cv_have_math_h_signgam=no)
+  CFLAGS="$save_CFLAGS"])
+  if test $libgfor_cv_have_math_h_signgam = yes; then
+    AC_DEFINE(HAVE_MATH_H_SIGNGAM, 1,
+      [Define to 1 if the math.h includes POSIX's signgam.])
+  fi])
index ea3f10c27868d41525f1366f9765b3391928e6f7..9d18cc3ee3504ef1b3ef92fd08b49bd8b9d4aeba 100644 (file)
@@ -45,6 +45,9 @@
 /* Define to 1 if you have the <locale.h> header file. */
 #undef HAVE_LOCALE_H
 
+/* Define to 1 if the math.h includes POSIX's signgam. */
+#undef HAVE_MATH_H_SIGNGAM
+
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
index 16776719d014efc375c44a0d9cbee5ff7bfc2ee5..0ea6e07455d85f8c7defee9ffb99842abbe383f4 100755 (executable)
 done
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the math.h includes POSIX's signgam" >&5
+$as_echo_n "checking whether the math.h includes POSIX's signgam... " >&6; }
+if test "${libgfor_cv_have_math_h_signgam+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -Werror"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <math.h>
+void foo(void) { signgam = 1; }
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  libgfor_cv_have_math_h_signgam=yes
+else
+  libgfor_cv_have_math_h_signgam=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CFLAGS="$save_CFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgfor_cv_have_math_h_signgam" >&5
+$as_echo "$libgfor_cv_have_math_h_signgam" >&6; }
+  if test $libgfor_cv_have_math_h_signgam = yes; then
+
+$as_echo "#define HAVE_MATH_H_SIGNGAM 1" >>confdefs.h
+
+  fi
+
 # If available, sqrtl and cbrtl speed up the calculation -
 # but they are not required
 if test x$gcc_no_link != xyes; then
index d3bfb040cd044c69369fe55da04f0e0c8243cc08..c547da8dc20675d39fbb08927bab6ab60ccfdc56 100644 (file)
@@ -113,6 +113,7 @@ AC_SUBST(toolexecdir)
 AC_SUBST(toolexeclibdir)
 
 AC_CHECK_HEADERS(fenv.h langinfo.h locale.h wchar.h wctype.h limits.h ctype.h printf.h errno.h)
+LIBQUAD_CHECK_MATH_H_SIGNGAM
 
 # If available, sqrtl and cbrtl speed up the calculation -
 # but they are not required
index 485939af1b43f972631b62603f4dd62214c49f58..eef62dbc91f6c9d28a890c99895ba9a047fe2636 100644 (file)
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA */
 
 #include "quadmath-imp.h"
-#include <math.h>  /* For extern int signgam.  */
+
+#ifdef HAVE_MATH_H_SIGNGAM
+#include <math.h>  /* For POSIX's extern int signgam.  */
+#endif
 
 static const __float128 PIQ = 3.1415926535897932384626433832795028841972E0Q;
 static const __float128 MAXLGM = 1.0485738685148938358098967157129705071571E4928Q;
@@ -759,6 +762,9 @@ lgammaq (__float128 x)
 {
   __float128 p, q, w, z, nx;
   int i, nn;
+#ifndef HAVE_MATH_H_SIGNGAM
+  int signgam;
+#endif
 
   signgam = 1;