changeset 2036:796842886361

*** empty log message ***
author Jim Meyering <jim@meyering.net>
date Sat, 18 Dec 1999 22:41:36 +0000
parents 6bd4ce3c1fa4
children e1ba2644ae03
files m4/lstat-slash.m4
diffstat 1 files changed, 41 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/m4/lstat-slash.m4
@@ -0,0 +1,41 @@
+#serial 1
+
+dnl From Jim Meyering.
+dnl FIXME
+
+AC_DEFUN(jm_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK,
+[
+ AC_CACHE_CHECK(
+  [whether lstat dereferences a symlink specified with a trailing slash],
+  jm_cv_func_lstat_dereferences_slashed_symlink,
+  [
+   rm -f conftest.sym conftest.file
+   : > conftest.file
+   if ln -s conftest.file conftest.sym; then
+     AC_TRY_RUN([
+#     include <sys/types.h>
+#     include <sys/stat.h>
+
+      int
+      main ()
+      {
+        struct stat sbuf;
+        exit (lstat ("conftest.sym/", &sbuf) ? 0 : 1);
+      }
+      ],
+      jm_cv_func_lstat_dereferences_slashed_symlink=yes,
+      jm_cv_func_lstat_dereferences_slashed_symlink=no,
+      dnl When crosscompiling, be pessimistic so we'll end up using the
+      dnl replacement version of lstat that checkes for trailing slashes
+      dnl and calls lstat a second time when necessary.
+      jm_cv_func_lstat_dereferences_slashed_symlink=no
+     )
+  ])
+
+  if test $jm_cv_func_lstat_dereferences_slashed_symlink = yes; then
+    AC_SUBST(LIBOBJS)
+    LIBOBJS="$LIBOBJS lstat.$ac_objext"
+    AC_DEFINE_UNQUOTED(LSTAT_FOLLOWS_SLASHED_SYMLINK, 1,
+      [Define if lstat dereferences a symlink specified with a trailing slash])
+  fi
+])