Fix `canonicalize_file_name' replacement handling when cross-compiling. Without this patch, we end up with: ./.libs/libguile-2.0.so: undefined reference to `rpl_canonicalize_file_name' See for details. index 69b3f4c..3c4c5ee 100644 --- a/m4/canonicalize.m4 +++ b/m4/canonicalize.m4 @@ -16,8 +16,11 @@ AC_DEFUN([gl_FUNC_CANONICALIZE_FILENAME_MODE], AC_REQUIRE([gl_FUNC_REALPATH_WORKS]) if test $ac_cv_func_canonicalize_file_name = no; then HAVE_CANONICALIZE_FILE_NAME=0 - elif test "$gl_cv_func_realpath_works" != yes; then - REPLACE_CANONICALIZE_FILE_NAME=1 + else + case "$gl_cv_func_realpath_works" in + *yes) ;; + *) REPLACE_CANONICALIZE_FILE_NAME=1 ;; + esac fi ]) @@ -30,12 +33,21 @@ AC_DEFUN([gl_CANONICALIZE_LGPL], HAVE_CANONICALIZE_FILE_NAME=0 if test $ac_cv_func_realpath = no; then HAVE_REALPATH=0 - elif test "$gl_cv_func_realpath_works" != yes; then - REPLACE_REALPATH=1 + else + case "$gl_cv_func_realpath_works" in + *yes) ;; + *) REPLACE_REALPATH=1 ;; + esac fi - elif test "$gl_cv_func_realpath_works" != yes; then - REPLACE_CANONICALIZE_FILE_NAME=1 - REPLACE_REALPATH=1 + else + case "$gl_cv_func_realpath_works" in + *yes) + ;; + *) + REPLACE_CANONICALIZE_FILE_NAME=1 + REPLACE_REALPATH=1 + ;; + esac fi ]) Now, work around a second bug: fix default value when cross-compiling for GNU/Hurd. index 69b3f4c..111ddf8 100644 --- a/m4/canonicalize.m4 +++ b/m4/canonicalize.m4 @@ -95,7 +95,7 @@ AC_DEFUN([gl_FUNC_REALPATH_WORKS], [gl_cv_func_realpath_works=no], [case "$host_os" in # Guess yes on glibc systems. - *-gnu*) gl_cv_func_realpath_works="guessing yes" ;; + *gnu*) gl_cv_func_realpath_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_realpath_works="guessing no" ;; esac