On Thu, Oct 30, 2014 at 12:01:17AM +0000, Pádraig Brady wrote: > On 10/29/2014 11:13 PM, Jack Howarth wrote: > > I am finding that the single failure seen on Mavericks for the > > coreutils 8.23 testsuite... > > > > FAIL: test-getcwd.sh > > > > ===================================================== > > GNU coreutils 8.23: gnulib-tests/test-suite.log > > ===================================================== > > The above gnulib issue may occur on Yosemite too but was not run > due to the new failures below > > > when run as sudo, is replaced by two new errors and two new failures > > under Yosemite as sudo. > > > > ERROR: tests/cp/link-deref.sh > > FAIL: tests/cp/link-no-deref.sh > > > > FAIL: tests/cp/link-symlink.sh > > > > ERROR: tests/ln/hard-to-sym.sh > > > > ============================================================================ > > Testsuite summary for GNU coreutils 8.23 > > ============================================================================ > > # TOTAL: 563 > > # PASS: 397 > > # SKIP: 162 > > # XFAIL: 0 > > # FAIL: 2 > > # XPASS: 0 > > # ERROR: 2 > > All these failures and errors are due to trying to create > a hardlink to a symlink and getting an "Operation not supported" error. > > Can you send the output of this command? > $ grep -E "(LINK_F|LINKAT)" lib/config.h >
In case it helps, here is the diff being the lib/config.h files generated on darwin13 and darwin14... --- coreutils-config.h.darwin13 2014-10-30 17:20:17.000000000 -0400 +++ coreutils-config.h.darwin14 2014-10-30 17:19:54.000000000 -0400 @@ -748,7 +748,7 @@ /* #undef GWINSZ_IN_SYS_PTY */ /* Define to 1 if you have the `access' function. */ -#define HAVE_ACCESS 1 +/* #undef HAVE_ACCESS */ /* Define to 1 if you have the `aclsort' function. */ /* #undef HAVE_ACLSORT */ @@ -952,7 +952,7 @@ /* Define to 1 if you have the declaration of `fdopendir', and to 0 if you don't. */ -#define HAVE_DECL_FDOPENDIR 0 +#define HAVE_DECL_FDOPENDIR 1 /* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you don't. */ @@ -1297,7 +1297,7 @@ /* #undef HAVE_EUIDACCESS */ /* Define to 1 if you have the `faccessat' function. */ -/* #undef HAVE_FACCESSAT */ +#define HAVE_FACCESSAT 1 /* Define to 1 if you have the `facl' function. */ /* #undef HAVE_FACL */ @@ -1309,7 +1309,7 @@ #define HAVE_FCHMOD 1 /* Define to 1 if you have the `fchmodat' function. */ -/* #undef HAVE_FCHMODAT */ +#define HAVE_FCHMODAT 1 /* Define to 1 if you have the `fchown' function. */ #define HAVE_FCHOWN 1 @@ -1321,7 +1321,7 @@ #define HAVE_FDATASYNC 1 /* Define to 1 if you have the `fdopendir' function. */ -/* #undef HAVE_FDOPENDIR */ +#define HAVE_FDOPENDIR 1 /* Define to 1 if you have the <features.h> header file. */ /* #undef HAVE_FEATURES_H */ @@ -1349,7 +1349,7 @@ #define HAVE_FSEEKO 1 /* Define to 1 if you have the `fstatat' function. */ -/* #undef HAVE_FSTATAT */ +#define HAVE_FSTATAT 1 /* Define to 1 if you have the `fstatfs' function. */ #define HAVE_FSTATFS 1 @@ -1592,7 +1592,7 @@ #define HAVE_LINK 1 /* Define to 1 if you have the `linkat' function. */ -/* #undef HAVE_LINKAT */ +#define HAVE_LINKAT 1 /* Define to 1 if you have the `listmntent' function. */ /* #undef HAVE_LISTMNTENT */ @@ -1731,7 +1731,7 @@ /* #undef HAVE_OBSTACK */ /* Define to 1 if you have the `openat' function. */ -/* #undef HAVE_OPENAT */ +#define HAVE_OPENAT 1 /* Define to 1 if you have the `opendir' function. */ #define HAVE_OPENDIR 1 @@ -1813,7 +1813,7 @@ #define HAVE_READLINK 1 /* Define to 1 if you have the `readlinkat' function. */ -/* #undef HAVE_READLINKAT */ +#define HAVE_READLINKAT 1 /* Define to 1 if your system has a GNU libc compatible 'realloc' function, and to 0 otherwise. */ @@ -2171,7 +2171,7 @@ #define HAVE_SYMLINK 1 /* Define to 1 if you have the `symlinkat' function. */ -/* #undef HAVE_SYMLINKAT */ +#define HAVE_SYMLINKAT 1 /* Define to 1 if you have the `sync' function. */ #define HAVE_SYNC 1 @@ -2338,7 +2338,7 @@ #define HAVE_UNISTD_H 1 /* Define to 1 if you have the `unlinkat' function. */ -/* #undef HAVE_UNLINKAT */ +#define HAVE_UNLINKAT 1 /* Define to 1 if you have the `unsetenv' function. */ #define HAVE_UNSETENV 1 @@ -2429,7 +2429,7 @@ /* Define to 1 if fstatat (..., 0) works. For example, it does not work in AIX 7.1. */ -/* #undef HAVE_WORKING_FSTATAT_ZERO_FLAG */ +#define HAVE_WORKING_FSTATAT_ZERO_FLAG 1 /* Define to 1 if O_NOATIME works. */ #define HAVE_WORKING_O_NOATIME 0 > What file system type are you running this one? > > I suspect that this might help? > > diff --git a/lib/linkat.c b/lib/linkat.c > index 6ee30fb..fd6bd1c 100644 > --- a/lib/linkat.c > +++ b/lib/linkat.c > @@ -329,7 +329,8 @@ rpl_linkat (int fd1, char const *file1, int fd2, char > const *file2, int flag) > if (0 <= have_follow_really) > { > int result = linkat (fd1, file1, fd2, file2, flag); > - if (!(result == -1 && errno == EINVAL)) > + if (!(result == -1 && (errno == EINVAL || errno == ENOTSUP > + || errno == EOPNOTSUPP))) > { > have_follow_really = 1; > return result;