diff --git a/ChangeLog b/ChangeLog index acee9ae225..aecc325e2f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Sun Mar 1 18:10:34 2015 Nobuyoshi Nakada + + * configure.in (rb_cv_broken_memmem): check before adding the + result HAVE_MEMMEM macro to confdefs.h, so that configured + results will be stable. + Sun Mar 1 11:17:56 2015 Nobuyoshi Nakada * gc.c (id2ref): prohibit from accessing internal objects. diff --git a/configure.in b/configure.in index 7e8b91599c..2824993da7 100644 --- a/configure.in +++ b/configure.in @@ -2027,6 +2027,33 @@ else AC_LIBOBJ([signbit]) fi +AC_CACHE_CHECK(for broken memmem, rb_cv_broken_memmem, [ + AC_TRY_RUN([ +@%:@include + +int +main(int argc, char **argv) +{ + const char *str = "hogefugafoobar"; + const char *rs = "foo"; + const char *empty = ""; + char *p; + + p = memmem(str, strlen(str), rs, strlen(rs)); + if (p == str+8) { + p = memmem(str, strlen(str), empty, strlen(empty)); + if (p == str) + return 0; + } + return 1; +} + ], + rb_cv_broken_memmem=no, + rb_cv_broken_memmem=yes, + rb_cv_broken_memmem=yes) +]) +test x"$rb_cv_broken_memmem" = xyes && ac_cv_func_memmem=no + AC_FUNC_FORK AC_CHECK_FUNCS(__syscall) @@ -3882,40 +3909,6 @@ if test "${universal_binary-no}" = yes ; then [rb_cv_architecture_available=yes], [rb_cv_architecture_available=no])) fi -if test "$ac_cv_func_memmem" = yes; then - AC_CACHE_CHECK(for broken memmem, rb_cv_broken_memmem, [ - AC_TRY_RUN([ -#include - -int -main() -{ - char *str = "hogefugafoobar"; - char *rs = "foo"; - char *empty = ""; - char *p; - - p = memmem(str, strlen(str), rs, strlen(rs)); - if (p == str+8) { - p = memmem(str, strlen(str), empty, strlen(empty)); - if (p == str) - return 0; - else - return 1; - } - else { - return 1; - } -} - ], - rb_cv_broken_memmem=no, - rb_cv_broken_memmem=yes, - rb_cv_broken_memmem=yes) - ]) - test x"$rb_cv_broken_memmem" = xyes && ac_cv_func_memmem=no -fi - - CPPFLAGS="$CPPFLAGS "'$(DEFS)' test -z "$CPPFLAGS" || CPPFLAGS="$CPPFLAGS "; CPPFLAGS="$CPPFLAGS"'${cppflags}' if test -n "${cflags+set}"; then