Skip linear time check if it is redundant.
authorBruno Haible <bruno@clisp.org>
Thu, 18 Jun 2009 08:19:48 +0000 (10:19 +0200)
committerBruno Haible <bruno@clisp.org>
Thu, 18 Jun 2009 08:19:48 +0000 (10:19 +0200)
ChangeLog
m4/strstr.m4

index 9ef6472a2da839d9878fb98a8495de1546c0dbac..1b7cd786570e4fb2ffc517bb8f9c66a6ddb102a3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-06-18  Bruno Haible  <bruno@clisp.org>
+
+       * m4/strstr.m4 (gl_FUNC_STRSTR): Skip linear time test if strstr is
+       going to be replaced anyway.
+
 2009-06-18  Bruno Haible  <bruno@clisp.org>
 
        * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Invoke AC_LIBOBJ only
index c8beb9c88f419a4fddd715823697ba836c8a373e..0f17a6b1ed9e6b9833f09e3d7688bbb43f24ac8d 100644 (file)
@@ -19,9 +19,10 @@ dnl Additionally, check that strstr is efficient.
 AC_DEFUN([gl_FUNC_STRSTR],
 [
   AC_REQUIRE([gl_FUNC_STRSTR_SIMPLE])
-  AC_CACHE_CHECK([whether strstr works in linear time],
-    [gl_cv_func_strstr_linear],
-    [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+  if test $REPLACE_STRSTR = 0; then
+    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 */
@@ -46,11 +47,11 @@ AC_DEFUN([gl_FUNC_STRSTR],
        result = strstr (haystack, needle);
       }
     return !result;]])],
-      [gl_cv_func_strstr_linear=yes], [gl_cv_func_strstr_linear=no],
-      [dnl Only glibc >= 2.9 and cygwin >= 1.7.0 are known to have a
-       dnl strstr that works in linear time.
-       AC_EGREP_CPP([Lucky user],
-        [
+        [gl_cv_func_strstr_linear=yes], [gl_cv_func_strstr_linear=no],
+        [dnl Only glibc >= 2.9 and cygwin >= 1.7.0 are known to have a
+         dnl strstr that works in linear time.
+         AC_EGREP_CPP([Lucky user],
+           [
 #include <features.h>
 #ifdef __GNU_LIBRARY__
  #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 9) || (__GLIBC__ > 2)
@@ -63,13 +64,14 @@ AC_DEFUN([gl_FUNC_STRSTR],
   Lucky user
  #endif
 #endif
-        ],
-        [gl_cv_func_strstr_linear=yes],
-        [gl_cv_func_strstr_linear="guessing no"])
+           ],
+           [gl_cv_func_strstr_linear=yes],
+           [gl_cv_func_strstr_linear="guessing no"])
+        ])
       ])
-    ])
-  if test "$gl_cv_func_strstr_linear" != yes; then
-    REPLACE_STRSTR=1
-    AC_LIBOBJ([strstr])
+    if test "$gl_cv_func_strstr_linear" != yes; then
+      REPLACE_STRSTR=1
+      AC_LIBOBJ([strstr])
+    fi
   fi
 ]) # gl_FUNC_STRSTR