Thanks for reporting the problem. Does the attached fix things for you? If
not, what are the symptoms?
>From ae8fa73d763d0bd833d9f02cb48c5d6a7f9c0039 Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Tue, 21 Apr 2015 00:22:00 -0700
Subject: [PATCH] lstat: fix cross-compilation 'ln -s' problem
* m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK):
Have the test program call 'symlink' rather than a separate
script run 'ln -s'; this is more likely to work in
cross-compilation environments. Reported by Pavel Fedin in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-04/msg00060.html
---
ChangeLog | 9 +++++++++
m4/lstat.m4 | 48 +++++++++++++++++++++++-------------------------
2 files changed, 32 insertions(+), 25 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 4417587..2d3931a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2015-04-21 Paul Eggert <egg...@cs.ucla.edu>
+
+ lstat: fix cross-compilation 'ln -s' problem
+ * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK):
+ Have the test program call 'symlink' rather than a separate
+ script run 'ln -s'; this is more likely to work in
+ cross-compilation environments. Reported by Pavel Fedin in:
+ http://lists.gnu.org/archive/html/bug-gnulib/2015-04/msg00060.html
+
2015-04-16 Ludovic Courtès <l...@gnu.org>
gendocs.sh: default to a common CSS style sheet for HTML output
diff --git a/m4/lstat.m4 b/m4/lstat.m4
index f6c7dd1..adf752c 100644
--- a/m4/lstat.m4
+++ b/m4/lstat.m4
@@ -1,4 +1,4 @@
-# serial 26
+# serial 27
# Copyright (C) 1997-2001, 2003-2015 Free Software Foundation, Inc.
#
@@ -37,30 +37,28 @@ AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
[gl_cv_func_lstat_dereferences_slashed_symlink],
[rm -f conftest.sym conftest.file
echo >conftest.file
- if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then
- AC_RUN_IFELSE(
- [AC_LANG_PROGRAM(
- [AC_INCLUDES_DEFAULT],
- [[struct stat sbuf;
- /* Linux will dereference the symlink and fail, as required by
- POSIX. That is better in the sense that it means we will not
- have to compile and use the lstat wrapper. */
- return lstat ("conftest.sym/", &sbuf) == 0;
- ]])],
- [gl_cv_func_lstat_dereferences_slashed_symlink=yes],
- [gl_cv_func_lstat_dereferences_slashed_symlink=no],
- [case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;;
- esac
- ])
- else
- # If the 'ln -s' command failed, then we probably don't even
- # have an lstat function.
- gl_cv_func_lstat_dereferences_slashed_symlink="guessing no"
- fi
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [AC_INCLUDES_DEFAULT],
+ [[struct stat sbuf;
+ if (symlink ("conftest.file", "conftest.sym") != 0)
+ return 1;
+ /* Linux will dereference the symlink and fail, as required by
+ POSIX. That is better in the sense that it means we will not
+ have to compile and use the lstat wrapper. */
+ return lstat ("conftest.sym/", &sbuf) == 0;
+ ]])],
+ [gl_cv_func_lstat_dereferences_slashed_symlink=yes],
+ [gl_cv_func_lstat_dereferences_slashed_symlink=no],
+ [case "$host_os" in
+ *-gnu*)
+ # Guess yes on glibc systems.
+ gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
+ *)
+ # If we don't know, assume the worst.
+ gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;;
+ esac
+ ])
rm -f conftest.sym conftest.file
])
case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
--
2.1.0