# HG changeset patch # User Bruno Haible # Date 1245313188 -7200 # Node ID a395edd0f5a46b49cb92c60a98fefcc89ee59a64 # Parent b0f6e24e92acbe96fd1fb059b5006f4096a4d805 Skip linear time check if it is redundant. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-06-18 Bruno Haible + + * m4/strstr.m4 (gl_FUNC_STRSTR): Skip linear time test if strstr is + going to be replaced anyway. + 2009-06-18 Bruno Haible * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Invoke AC_LIBOBJ only diff --git a/m4/strstr.m4 b/m4/strstr.m4 --- a/m4/strstr.m4 +++ b/m4/strstr.m4 @@ -19,9 +19,10 @@ 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 /* for signal */ #include /* for memmem */ #include /* for malloc */ @@ -46,11 +47,11 @@ 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 #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 9) || (__GLIBC__ > 2) @@ -63,13 +64,14 @@ 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