changeset 10189:2304e9103317

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>. Signed-off-by: Eric Blake <ebb9@byu.net>
author Eric Blake <ebb9@byu.net>
date Mon, 09 Jun 2008 16:21:34 -0600
parents d97126852324
children e33912e3fd26
files ChangeLog m4/memmem.m4 m4/strcasestr.m4 m4/strstr.m4
diffstat 4 files changed, 16 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Jun 09 08:14:45 2008 -0600
+++ b/ChangeLog	Mon Jun 09 16:21:34 2008 -0600
@@ -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.
 
--- a/m4/memmem.m4	Mon Jun 09 08:14:45 2008 -0600
+++ b/m4/memmem.m4	Mon Jun 09 16:21:34 2008 -0600
@@ -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_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 @@
     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)
--- a/m4/strcasestr.m4	Mon Jun 09 08:14:45 2008 -0600
+++ b/m4/strcasestr.m4	Mon Jun 09 16:21:34 2008 -0600
@@ -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_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 @@
     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)
--- a/m4/strstr.m4	Mon Jun 09 08:14:45 2008 -0600
+++ b/m4/strstr.m4	Mon Jun 09 16:21:34 2008 -0600
@@ -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_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 @@
     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)