# HG changeset patch # User Bruno Haible # Date 1305983150 -7200 # Node ID 0b402f8f9b23c325ca8c458b02fda0a93725c2d7 # Parent 57aae479b6adc3f32f1ea87f5d78f9d93b2d63b7 memcmp: Simplify autoconf macro. * m4/memcmp.m4 (gl_FUNC_MEMCMP): Merge the cross-compilation code into the AC_RUN_IFELSE invocation. Set gl_func_memcmp. * modules/memcmp (Depends-on, configure.ac): Test gl_func_memcmp. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2011-05-21 Bruno Haible + + memcmp: Simplify autoconf macro. + * m4/memcmp.m4 (gl_FUNC_MEMCMP): Merge the cross-compilation code into + the AC_RUN_IFELSE invocation. Set gl_func_memcmp. + * modules/memcmp (Depends-on, configure.ac): Test gl_func_memcmp. + 2011-05-21 Bruno Haible memcmp: Move AC_LIBOBJ invocations to module description. diff --git a/m4/memcmp.m4 b/m4/memcmp.m4 --- a/m4/memcmp.m4 +++ b/m4/memcmp.m4 @@ -6,18 +6,6 @@ AC_DEFUN([gl_FUNC_MEMCMP], [ - if test $cross_compiling != no; then - # The test below defaults to 'no' when cross compiling. - # We default to yes if memcmp appears to exist, which works - # better for MinGW. - AC_CACHE_CHECK([whether cross-compiling target has memcmp], - [gl_cv_func_memcmp_working], - [AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[#include - ]], [[int ret = memcmp ("foo", "bar", 0);]])], - [gl_cv_func_memcmp_working=yes], - [gl_cv_func_memcmp_working=no])]) - fi dnl We don't use AC_FUNC_MEMCMP any more, because it is no longer maintained dnl in Autoconf and because it invokes AC_LIBOBJ. AC_CACHE_CHECK([for working memcmp], [gl_cv_func_memcmp_working], @@ -49,8 +37,21 @@ ]])], [gl_cv_func_memcmp_working=yes], [gl_cv_func_memcmp_working=no], - [gl_cv_func_memcmp_working=no])]) - if test $gl_cv_func_memcmp_working = no; then + [dnl When cross-compiling, guess memcmp works when it exists. + dnl This is useful for mingw. + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[int ret = memcmp ("foo", "bar", 0);]])], + [gl_cv_func_memcmp_working="guessing yes"], + [gl_cv_func_memcmp_working="guessing no"]) + ]) + ]) + case "$gl_cv_func_memcmp_working" in + *yes) gl_func_memcmp=yes ;; + *) gl_func_memcmp=no ;; + esac + if test $gl_func_memcmp = no; then AC_DEFINE([memcmp], [rpl_memcmp], [Define to rpl_memcmp if the replacement function should be used.]) fi diff --git a/modules/memcmp b/modules/memcmp --- a/modules/memcmp +++ b/modules/memcmp @@ -12,11 +12,11 @@ m4/memcmp.m4 Depends-on: -stdint [test $gl_cv_func_memcmp_working = no] +stdint [test $gl_func_memcmp = no] configure.ac: gl_FUNC_MEMCMP -if test $gl_cv_func_memcmp_working = no; then +if test $gl_func_memcmp = no; then AC_LIBOBJ([memcmp]) gl_PREREQ_MEMCMP fi