summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Blake <ebb9@byu.net>2008-06-09 16:21:34 -0600
committerEric Blake <ebb9@byu.net>2008-06-09 16:21:34 -0600
commit5c89085f979329a97768dc096b1303942b062958 (patch)
treecf4d066bbde44976e138eb0c3ea513f0dda8c152
parentbede52934556196b082508b76eb295ab3f857fae (diff)
downloadgnulib-5c89085f979329a97768dc096b1303942b062958.tar.gz
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>
-rw-r--r--ChangeLog7
-rw-r--r--m4/memmem.m44
-rw-r--r--m4/strcasestr.m44
-rw-r--r--m4/strstr.m44
4 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 736b1f28c5..02950481cd 100644
--- 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.
diff --git a/m4/memmem.m4 b/m4/memmem.m4
index d8c1230970..87ab66319f 100644
--- a/m4/memmem.m4
+++ b/m4/memmem.m4
@@ -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)
diff --git a/m4/strcasestr.m4 b/m4/strcasestr.m4
index 0ad895acfd..e1e5390542 100644
--- a/m4/strcasestr.m4
+++ b/m4/strcasestr.m4
@@ -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)
diff --git a/m4/strstr.m4 b/m4/strstr.m4
index 67b93c9f76..f48bebb6dd 100644
--- a/m4/strstr.m4
+++ b/m4/strstr.m4
@@ -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)