+2009-09-22 Eric Blake <ebb9@byu.net>
+
+ link-follow: ensure correct result
+ * m4/fcntl_h.m4 (gl_FCNTL_H): Clean up temporary file.
+ * m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Likewise, and
+ distinguish between possible failures.
+
2009-09-21 Eric Blake <ebb9@byu.net>
fts: avoid compiler warning
-# serial 4
+# serial 5
# Configure fcntl.h.
dnl Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
if (symlink (".", sym) != 0
|| close (open (sym, O_RDONLY | O_NOFOLLOW)) == 0)
status |= 32;
+ unlink (sym);
}
{
static char const file[] = "confdefs.h";
-# serial 14
+# serial 15
dnl Run a program to determine whether link(2) follows symlinks.
dnl Set LINK_FOLLOWS_SYMLINKS accordingly.
/* Create a symlink to the regular file. */
if (symlink (file, sym))
- abort ();
+ return 2;
/* Create a hard link to that symlink. */
if (link (sym, hard))
- abort ();
+ return 3;
if (lstat (hard, &sb_hard))
- abort ();
+ return 4;
if (lstat (file, &sb_file))
- abort ();
+ return 5;
/* If the dev/inode of hard and file are the same, then
the link call followed the symlink. */
[gl_cv_func_link_follows_symlink=yes], dnl Followed link/compile failed
[gl_cv_func_link_follows_symlink=unknown] dnl We're cross compiling.
)
+ rm -f conftest.file conftest.sym conftest.hard
])
case $gl_cv_func_link_follows_symlink in
yes) gl_link_follows_symlinks=1 ;;