diff --git a/Makefile.am b/Makefile.am index a8e30c656..807e0a8e9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -49,7 +49,8 @@ EXTRA_DIST = LICENSE HACKING GUILE-VERSION \ .version \ gnulib-local/lib/localcharset.h.diff \ gnulib-local/lib/localcharset.c.diff \ - gnulib-local/m4/clock_time.m4.diff + gnulib-local/m4/clock_time.m4.diff \ + gnulib-local/m4/canonicalize.m4.diff TESTS = check-guile TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ diff --git a/gnulib-local/m4/canonicalize.m4.diff b/gnulib-local/m4/canonicalize.m4.diff new file mode 100644 index 000000000..5b4d06ad0 --- /dev/null +++ b/gnulib-local/m4/canonicalize.m4.diff @@ -0,0 +1,50 @@ +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 + ]) diff --git a/m4/canonicalize.m4 b/m4/canonicalize.m4 index 69b3f4ca2..3c4c5ee3e 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 ])