# HG changeset patch # User Eric Blake # Date 1359673058 25200 # Node ID 19e84115215370b53bc58d40fe96db9e968c8607 # Parent d2ccaec7b18c6d266aac5df0e276db770ca77edc regex: avoid infinite configure test At least glibc 2.15 on Ubuntu ended up hanging. * m4/regex.m4 (gl_REGEX): Add an alarm escape hatch. Reported by Reuben Thomas. Signed-off-by: Eric Blake diff -r d2ccaec7b18c -r 19e841152153 ChangeLog --- a/ChangeLog Thu Jan 31 13:55:55 2013 -0800 +++ b/ChangeLog Thu Jan 31 15:57:38 2013 -0700 @@ -1,3 +1,8 @@ +2013-01-31 Eric Blake + + regex: avoid infinite configure test + * m4/regex.m4 (gl_REGEX): Add an alarm escape hatch. + 2013-01-31 Reuben Thomas openpty: fix bug where HAVE_OPENPTY wasn't defined diff -r d2ccaec7b18c -r 19e841152153 m4/regex.m4 --- a/m4/regex.m4 Thu Jan 31 13:55:55 2013 -0800 +++ b/m4/regex.m4 Thu Jan 31 15:57:38 2013 -0700 @@ -1,4 +1,4 @@ -# serial 62 +# serial 63 # Copyright (C) 1996-2001, 2003-2013 Free Software Foundation, Inc. # @@ -27,6 +27,7 @@ # following run test, then default to *not* using the included regex.c. # If cross compiling, assume the test would fail and use the included # regex.c. + AC_CHECK_FUNCS_ONCE([alarm]) AC_CACHE_CHECK([for working re_compile_pattern], [gl_cv_func_re_compile_pattern_working], [AC_RUN_IFELSE( @@ -35,6 +36,10 @@ #include #include #include + #if HAVE_ALARM + # include + # include + #endif ]], [[int result = 0; static struct re_pattern_buffer regex; @@ -43,6 +48,11 @@ const char *s; struct re_registers regs; +#if HAVE_ALARM + /* Some builds of glibc go into an infinite loop on this test. */ + signal (SIGALRM, SIG_DFL); + alarm (2); +#endif if (setlocale (LC_ALL, "en_US.UTF-8")) { {