summaryrefslogtreecommitdiff
path: root/modules/linkat
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2014-10-31 18:12:15 +0000
committerPádraig Brady <P@draigBrady.com>2014-11-03 15:10:33 +0100
commitc8e57ce5bbfc176ca622fcfff5af1982dd9ff17e (patch)
treed2220bb41dfe4779dafefd5b4d58122f781a4cef /modules/linkat
parent08a713e078f03e7a870b0111960c6f4c54357152 (diff)
downloadgnulib-c8e57ce5bbfc176ca622fcfff5af1982dd9ff17e.tar.gz
linkat: wrap to handle symlinks on OS X 10.10
* m4/linkat.m4 (gl_FUNC_LINKAT): linkat() is available on Yosemite but not usable because it doesn't support creating hardlinks to symlinks. Therefore add a generic test for this capability and fallback to our emulation if linkat() fails with ENOTSUP.
Diffstat (limited to 'modules/linkat')
-rw-r--r--modules/linkat26
1 files changed, 12 insertions, 14 deletions
diff --git a/modules/linkat b/modules/linkat
index f31dcf70c5..e0c4165759 100644
--- a/modules/linkat
+++ b/modules/linkat
@@ -14,18 +14,18 @@ errno [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
fcntl-h [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
filenamecat-lgpl [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
link-follow [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
-areadlink [test $HAVE_LINKAT = 0]
-at-internal [test $HAVE_LINKAT = 0]
-dosname [test $HAVE_LINKAT = 0]
-fstat [test $HAVE_LINKAT = 0]
-getcwd-lgpl [test $HAVE_LINKAT = 0]
-openat-h [test $HAVE_LINKAT = 0]
-openat-die [test $HAVE_LINKAT = 0]
-link [test $HAVE_LINKAT = 0]
-lstat [test $HAVE_LINKAT = 0]
-same-inode [test $HAVE_LINKAT = 0]
-save-cwd [test $HAVE_LINKAT = 0]
-symlink [test $HAVE_LINKAT = 0]
+areadlink [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
+at-internal [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
+dosname [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
+fstat [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
+getcwd-lgpl [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
+openat-h [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
+openat-die [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
+link [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
+lstat [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
+same-inode [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
+save-cwd [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
+symlink [test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1]
areadlinkat [test $REPLACE_LINKAT = 1]
fstatat [test $REPLACE_LINKAT = 1]
@@ -33,8 +33,6 @@ configure.ac:
gl_FUNC_LINKAT
if test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1; then
AC_LIBOBJ([linkat])
-fi
-if test $HAVE_LINKAT = 0; then
AC_LIBOBJ([at-func2])
fi
gl_UNISTD_MODULE_INDICATOR([linkat])