New upstream version 1.9
[debian/gzip] / m4 / signbit.m4
index e42f18319a9711fd2c1c4f66764f69d2d8eec882..9e7884d22a43863416f392d8a20f839228f65c59 100644 (file)
@@ -1,5 +1,5 @@
-# signbit.m4 serial 13
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+# signbit.m4 serial 16
+dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -29,10 +29,12 @@ AC_DEFUN([gl_SIGNBIT],
         [gl_cv_func_signbit=yes],
         [gl_cv_func_signbit=no],
         [case "$host_os" in
-                   # Guess yes on glibc systems.
-           *-gnu*) gl_cv_func_signbit="guessing yes" ;;
-                   # If we don't know, assume the worst.
-           *)      gl_cv_func_signbit="guessing no" ;;
+                          # Guess yes on glibc systems.
+           *-gnu* | gnu*) gl_cv_func_signbit="guessing yes" ;;
+                          # Guess yes on native Windows.
+           mingw*)        gl_cv_func_signbit="guessing yes" ;;
+                          # If we don't know, assume the worst.
+           *)             gl_cv_func_signbit="guessing no" ;;
          esac
         ])
     ])
@@ -58,10 +60,17 @@ AC_DEFUN([gl_SIGNBIT],
         [gl_cv_func_signbit_gcc=yes],
         [gl_cv_func_signbit_gcc=no],
         [case "$host_os" in
-                   # Guess yes on glibc systems.
-           *-gnu*) gl_cv_func_signbit_gcc="guessing yes" ;;
-                   # If we don't know, assume the worst.
-           *)      gl_cv_func_signbit_gcc="guessing no" ;;
+                          # Guess yes on glibc systems.
+           *-gnu* | gnu*) gl_cv_func_signbit_gcc="guessing yes" ;;
+                          # Guess yes on mingw, no on MSVC.
+           mingw*)        if test -n "$GCC"; then
+                            gl_cv_func_signbit_gcc="guessing yes"
+                          else
+                            gl_cv_func_signbit_gcc="guessing no"
+                          fi
+                          ;;
+                          # If we don't know, assume the worst.
+           *)             gl_cv_func_signbit_gcc="guessing no" ;;
          esac
         ])
     ])
@@ -272,6 +281,7 @@ int main ()
         {
           /* More than one bit difference.  */
           fprintf (fp, "unknown");
+          fclose (fp);
           return 2;
         }
       if (x)
@@ -284,6 +294,7 @@ int main ()
     {
       /* No difference.  */
       fprintf (fp, "unknown");
+      fclose (fp);
       return 3;
     }
   /* Now m = plus.word[k] ^ ~minus.word[k].  */
@@ -292,6 +303,7 @@ int main ()
       /* Oh? The sign bit is set in the positive and cleared in the negative
          numbers?  */
       fprintf (fp, "unknown");
+      fclose (fp);
       return 4;
     }
   for (i = 0; ; i++)