Work around `gl_CANONICALIZE_LGPL' bug when cross-compiling.
authorLudovic Courtès <ludo@gnu.org>
Fri, 6 Jul 2012 23:36:08 +0000 (01:36 +0200)
committerLudovic Courtès <ludo@gnu.org>
Fri, 6 Jul 2012 23:36:08 +0000 (01:36 +0200)
* gnulib-local/m4/canonicalize.m4.diff: New file.
* Makefile.am (EXTRA_DIST): Add it.

Makefile.am
gnulib-local/m4/canonicalize.m4.diff [new file with mode: 0644]
m4/canonicalize.m4

index a8e30c6..807e0a8 100644 (file)
@@ -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 (file)
index 0000000..5b4d06a
--- /dev/null
@@ -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 <http://hydra.nixos.org/build/2765567> 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
+ ])
index 69b3f4c..3c4c5ee 100644 (file)
@@ -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
 ])