Work around environments that (stupidly) ignore SIGALRM.
authorEric Blake <ebb9@byu.net>
Mon, 9 Jun 2008 22:21:34 +0000 (16:21 -0600)
committerEric Blake <ebb9@byu.net>
Mon, 9 Jun 2008 22:21:34 +0000 (16:21 -0600)
* m4/strstr.m4 (gl_FUNC_STRSTR): Reset SIGALRM to default handling
before using alarm().
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise.
* m4/memmem.m4 (gl_FUNC_MEMMEM): Likewise.
Reported by Ian Beckwith <ianb@erislabs.net>.

Signed-off-by: Eric Blake <ebb9@byu.net>
ChangeLog
m4/memmem.m4
m4/strcasestr.m4
m4/strstr.m4

index 736b1f2..0295048 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2008-06-09  Eric Blake  <ebb9@byu.net>
 
+       Work around environments that (stupidly) ignore SIGALRM.
+       * m4/strstr.m4 (gl_FUNC_STRSTR): Reset SIGALRM to default handling
+       before using alarm().
+       * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise.
+       * m4/memmem.m4 (gl_FUNC_MEMMEM): Likewise.
+       Reported by Ian Beckwith <ianb@erislabs.net>.
+
        Produce autobuild blurb earlier in log.
        * modules/autobuild (configure.ac-early): Move AB_INIT here.
 
index d8c1230..87ab663 100644 (file)
@@ -1,4 +1,4 @@
-# memmem.m4 serial 12
+# memmem.m4 serial 13
 dnl Copyright (C) 2002, 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -27,6 +27,7 @@ AC_DEFUN([gl_FUNC_MEMMEM],
     AC_CACHE_CHECK([whether memmem works in linear time],
       [gl_cv_func_memmem_works],
       [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <signal.h> /* for signal */
 #include <string.h> /* for memmem */
 #include <stdlib.h> /* for malloc */
 #include <unistd.h> /* for alarm */
@@ -36,6 +37,7 @@ AC_DEFUN([gl_FUNC_MEMMEM],
     void *result = 0;
     /* Failure to compile this test due to missing alarm is okay,
        since all such platforms (mingw) also lack memmem.  */
+    signal (SIGALRM, SIG_DFL);
     alarm (5);
     /* Check for quadratic performance.  */
     if (haystack && needle)
index 0ad895a..e1e5390 100644 (file)
@@ -1,4 +1,4 @@
-# strcasestr.m4 serial 11
+# strcasestr.m4 serial 12
 dnl Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -26,6 +26,7 @@ AC_DEFUN([gl_FUNC_STRCASESTR],
     AC_CACHE_CHECK([whether strcasestr works in linear time],
       [gl_cv_func_strcasestr_linear],
       [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <signal.h> /* for signal */
 #include <string.h> /* for memmem */
 #include <stdlib.h> /* for malloc */
 #include <unistd.h> /* for alarm */
@@ -35,6 +36,7 @@ AC_DEFUN([gl_FUNC_STRCASESTR],
     void *result = 0;
     /* Failure to compile this test due to missing alarm is okay,
        since all such platforms (mingw) also lack strcasestr.  */
+    signal (SIGALRM, SIG_DFL);
     alarm (5);
     /* Check for quadratic performance.  */
     if (haystack && needle)
index 67b93c9..f48bebb 100644 (file)
@@ -1,4 +1,4 @@
-# strstr.m4 serial 4
+# strstr.m4 serial 5
 dnl Copyright (C) 2008 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -11,6 +11,7 @@ AC_DEFUN([gl_FUNC_STRSTR],
   AC_CACHE_CHECK([whether strstr works in linear time],
     [gl_cv_func_strstr_linear],
     [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <signal.h> /* for signal */
 #include <string.h> /* for memmem */
 #include <stdlib.h> /* for malloc */
 #include <unistd.h> /* for alarm */
@@ -20,6 +21,7 @@ AC_DEFUN([gl_FUNC_STRSTR],
     void *result = 0;
     /* Failure to compile this test due to missing alarm is okay,
        since all such platforms (mingw) also have quadratic strstr.  */
+    signal (SIGALRM, SIG_DFL);
     alarm (5);
     /* Check for quadratic performance.  */
     if (haystack && needle)