Package: coreutils;
Reported by: Jack Howarth <howarth <at> bromo.med.uc.edu>
Date: Wed, 29 Oct 2014 23:14:01 UTC
Severity: normal
Done: Pádraig Brady <P <at> draigBrady.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 18896 in the body.
You can then email your comments to 18896 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-coreutils <at> gnu.org
:bug#18896
; Package coreutils
.
(Wed, 29 Oct 2014 23:14:02 GMT) Full text and rfc822 format available.Jack Howarth <howarth <at> bromo.med.uc.edu>
:bug-coreutils <at> gnu.org
.
(Wed, 29 Oct 2014 23:14:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Jack Howarth <howarth <at> bromo.med.uc.edu> To: bug-coreutils <at> gnu.org Subject: regressions in coreutils 8.23 on Yosemite Date: Wed, 29 Oct 2014 19:13:34 -0400
[Message part 1 (text/plain, inline)]
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 ===================================================== # TOTAL: 306 # PASS: 293 # SKIP: 12 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 when run as sudo, is replaced by two new errors and two new failures under Yosemite as sudo. link-deref.sh: set-up failure: ERROR: tests/cp/link-deref.sh FAIL: tests/cp/link-no-deref.sh fiemap-perf.sh: skipped test: this file system lacks FIEMAP support fiemap-2.sh: skipped test: this file system lacks FIEMAP support 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 Are these failures already known and are there any workarounds? I have attached the bzip2 compressed test-suite.log in case it helps. Thanks in advance Jack
[test-suite.log.bz2 (application/x-bzip2, attachment)]
bug-coreutils <at> gnu.org
:bug#18896
; Package coreutils
.
(Thu, 30 Oct 2014 00:02:01 GMT) Full text and rfc822 format available.Message #8 received at 18896 <at> debbugs.gnu.org (full text, mbox):
From: Pádraig Brady <P <at> draigBrady.com> To: Jack Howarth <howarth <at> bromo.med.uc.edu> Cc: 18896 <at> debbugs.gnu.org Subject: Re: bug#18896: regressions in coreutils 8.23 on Yosemite Date: Thu, 30 Oct 2014 00:01:17 +0000
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 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;
bug-coreutils <at> gnu.org
:bug#18896
; Package coreutils
.
(Thu, 30 Oct 2014 18:25:01 GMT) Full text and rfc822 format available.Message #11 received at 18896 <at> debbugs.gnu.org (full text, mbox):
From: Jack Howarth <howarth <at> bromo.med.uc.edu> To: Pádraig Brady <P <at> draigBrady.com> Cc: 18896 <at> debbugs.gnu.org Subject: Re: bug#18896: regressions in coreutils 8.23 on Yosemite Date: Thu, 30 Oct 2014 14:24:08 -0400
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 On x86_64-apple-darwin13 which doesn't show these failures, I see... #define GNULIB_AREADLINKAT 1 #define GNULIB_TEST_LINKAT 1 #define GNULIB_TEST_READLINKAT 1 #define GNULIB_TEST_SYMLINKAT 1 #define GNULIB_TEST_UNLINKAT 1 /* #undef HAVE_LINKAT */ /* #undef HAVE_READLINKAT */ /* #undef HAVE_SYMLINKAT */ /* #undef HAVE_UNLINKAT */ /* #undef LINKAT_TRAILING_SLASH_BUG */ #define LINK_FOLLOWS_SYMLINKS 1 whereas on x86_64-apple-darwin14, I get... #define GNULIB_AREADLINKAT 1 #define GNULIB_TEST_LINKAT 1 #define GNULIB_TEST_READLINKAT 1 #define GNULIB_TEST_SYMLINKAT 1 #define GNULIB_TEST_UNLINKAT 1 #define HAVE_LINKAT 1 #define HAVE_READLINKAT 1 #define HAVE_SYMLINKAT 1 #define HAVE_UNLINKAT 1 /* #undef LINKAT_TRAILING_SLASH_BUG */ #define LINK_FOLLOWS_SYMLINKS 1 > > What file system type are you running this one? Both filesystems are File System Personality: Journaled HFS+ Type (Bundle): hfs Name (User Visible): Mac OS Extended (Journaled) Journal: Journal size 81920 KB at offset 0x1d1c000 Owners: Enabled > > 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; Unfortunately, with this patch, I still see the failures on x86_64-apple-darwin14. link-deref.sh: set-up failure: ERROR: tests/cp/link-deref.sh FAIL: tests/cp/link-no-deref.sh FAIL: tests/cp/link-symlink.sh hard-to-sym.sh: set-up failure: ERROR: tests/ln/hard-to-sym.sh Do we need to handle darwin14 differently now that it sets... #define HAVE_LINKAT 1 #define HAVE_READLINKAT 1 #define HAVE_SYMLINKAT 1 #define HAVE_UNLINKAT 1 which was never tested on darwin before? Jack
bug-coreutils <at> gnu.org
:bug#18896
; Package coreutils
.
(Thu, 30 Oct 2014 21:25:02 GMT) Full text and rfc822 format available.Message #14 received at 18896 <at> debbugs.gnu.org (full text, mbox):
From: Jack Howarth <howarth <at> bromo.med.uc.edu> To: Pádraig Brady <P <at> draigBrady.com> Cc: 18896 <at> debbugs.gnu.org Subject: Re: bug#18896: regressions in coreutils 8.23 on Yosemite Date: Thu, 30 Oct 2014 17:24:35 -0400
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;
bug-coreutils <at> gnu.org
:bug#18896
; Package coreutils
.
(Fri, 31 Oct 2014 02:30:04 GMT) Full text and rfc822 format available.Message #17 received at 18896 <at> debbugs.gnu.org (full text, mbox):
From: Pádraig Brady <P <at> draigBrady.com> To: Jack Howarth <howarth <at> bromo.med.uc.edu> Cc: 18896 <at> debbugs.gnu.org Subject: Re: bug#18896: regressions in coreutils 8.23 on Yosemite Date: Fri, 31 Oct 2014 02:29:05 +0000
[Message part 1 (text/plain, inline)]
On 10/30/2014 06:24 PM, Jack Howarth wrote: > 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 > > On x86_64-apple-darwin13 which doesn't show these failures, I see... > > #define GNULIB_AREADLINKAT 1 > #define GNULIB_TEST_LINKAT 1 > #define GNULIB_TEST_READLINKAT 1 > #define GNULIB_TEST_SYMLINKAT 1 > #define GNULIB_TEST_UNLINKAT 1 > /* #undef HAVE_LINKAT */ > /* #undef HAVE_READLINKAT */ > /* #undef HAVE_SYMLINKAT */ > /* #undef HAVE_UNLINKAT */ > /* #undef LINKAT_TRAILING_SLASH_BUG */ > #define LINK_FOLLOWS_SYMLINKS 1 > > whereas on x86_64-apple-darwin14, I get... > > #define GNULIB_AREADLINKAT 1 > #define GNULIB_TEST_LINKAT 1 > #define GNULIB_TEST_READLINKAT 1 > #define GNULIB_TEST_SYMLINKAT 1 > #define GNULIB_TEST_UNLINKAT 1 > #define HAVE_LINKAT 1 > #define HAVE_READLINKAT 1 > #define HAVE_SYMLINKAT 1 > #define HAVE_UNLINKAT 1 > /* #undef LINKAT_TRAILING_SLASH_BUG */ > #define LINK_FOLLOWS_SYMLINKS 1 > >> >> What file system type are you running this one? > > Both filesystems are > > File System Personality: Journaled HFS+ > Type (Bundle): hfs > Name (User Visible): Mac OS Extended (Journaled) > Journal: Journal size 81920 KB at offset 0x1d1c000 > Owners: Enabled > >> >> 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; > > Unfortunately, with this patch, I still see the failures on x86_64-apple-darwin14. Ah right, that code path is only for older Linux kernels with AT_SYMLINK_FOLLOW specified, which is not the case here. Please drop this patch. > link-deref.sh: set-up failure: > ERROR: tests/cp/link-deref.sh > FAIL: tests/cp/link-no-deref.sh > FAIL: tests/cp/link-symlink.sh > hard-to-sym.sh: set-up failure: > ERROR: tests/ln/hard-to-sym.sh So linkat() is now available but doesn't support hardlinks to symlinks contrary to the POSIX spec. So it would be best we consider linkat() unavailable, which can be done manually like: ac_cv_func_linkat=no ./configure We'll have to augment the gnulib linkat check to actually check that linkat() works, rather than just being available. Attached is an ancillary patch to coreutils to convert the Last ERROR above to the more correct FAILs, which you don't need to apply. thanks, Pádraig.
[tests-linkat-error.patch (text/x-patch, attachment)]
bug-coreutils <at> gnu.org
:bug#18896
; Package coreutils
.
(Fri, 31 Oct 2014 03:32:01 GMT) Full text and rfc822 format available.Message #20 received at 18896 <at> debbugs.gnu.org (full text, mbox):
From: Jack Howarth <howarth <at> bromo.med.uc.edu> To: Pádraig Brady <P <at> draigBrady.com> Cc: 18896 <at> debbugs.gnu.org Subject: Re: bug#18896: regressions in coreutils 8.23 on Yosemite Date: Thu, 30 Oct 2014 23:30:55 -0400
On Fri, Oct 31, 2014 at 02:29:05AM +0000, Pádraig Brady wrote: > On 10/30/2014 06:24 PM, Jack Howarth wrote: > > 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 > > > > On x86_64-apple-darwin13 which doesn't show these failures, I see... > > > > #define GNULIB_AREADLINKAT 1 > > #define GNULIB_TEST_LINKAT 1 > > #define GNULIB_TEST_READLINKAT 1 > > #define GNULIB_TEST_SYMLINKAT 1 > > #define GNULIB_TEST_UNLINKAT 1 > > /* #undef HAVE_LINKAT */ > > /* #undef HAVE_READLINKAT */ > > /* #undef HAVE_SYMLINKAT */ > > /* #undef HAVE_UNLINKAT */ > > /* #undef LINKAT_TRAILING_SLASH_BUG */ > > #define LINK_FOLLOWS_SYMLINKS 1 > > > > whereas on x86_64-apple-darwin14, I get... > > > > #define GNULIB_AREADLINKAT 1 > > #define GNULIB_TEST_LINKAT 1 > > #define GNULIB_TEST_READLINKAT 1 > > #define GNULIB_TEST_SYMLINKAT 1 > > #define GNULIB_TEST_UNLINKAT 1 > > #define HAVE_LINKAT 1 > > #define HAVE_READLINKAT 1 > > #define HAVE_SYMLINKAT 1 > > #define HAVE_UNLINKAT 1 > > /* #undef LINKAT_TRAILING_SLASH_BUG */ > > #define LINK_FOLLOWS_SYMLINKS 1 > > > >> > >> What file system type are you running this one? > > > > Both filesystems are > > > > File System Personality: Journaled HFS+ > > Type (Bundle): hfs > > Name (User Visible): Mac OS Extended (Journaled) > > Journal: Journal size 81920 KB at offset 0x1d1c000 > > Owners: Enabled > > > >> > >> 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; > > > > Unfortunately, with this patch, I still see the failures on x86_64-apple-darwin14. > > Ah right, that code path is only for older Linux kernels > with AT_SYMLINK_FOLLOW specified, which is not the case here. > Please drop this patch. > > > link-deref.sh: set-up failure: > > ERROR: tests/cp/link-deref.sh > > FAIL: tests/cp/link-no-deref.sh > > FAIL: tests/cp/link-symlink.sh > > hard-to-sym.sh: set-up failure: > > ERROR: tests/ln/hard-to-sym.sh > > So linkat() is now available but doesn't support hardlinks to symlinks > contrary to the POSIX spec. So it would be best we consider linkat() > unavailable, which can be done manually like: > > ac_cv_func_linkat=no ./configure > > We'll have to augment the gnulib linkat check to actually check > that linkat() works, rather than just being available. Passing ac_cv_func_linkat=no to configure and using your attached patch results in a large number of failures on x86_64-apple-darwin14. ../build-aux/test-driver: line 107: 83817 Abort trap: 6 "$@" > $log_file 2>&1 FAIL: test-futimens ../build-aux/test-driver: line 107: 84551 Abort trap: 6 "$@" > $log_file 2>&1 FAIL: test-readlinkat ../build-aux/test-driver: line 107: 83516 Abort trap: 6 "$@" > $log_file 2>&1 FAIL: test-fdutimensat ../build-aux/test-driver: line 107: 84928 Abort trap: 6 "$@" > $log_file 2>&1 FAIL: test-symlinkat ../build-aux/test-driver: line 107: 85151 Abort trap: 6 "$@" > $log_file 2>&1 FAIL: test-unlinkat ../build-aux/test-driver: line 107: 85185 Abort trap: 6 "$@" > $log_file 2>&1 FAIL: test-utimens ===================================================== GNU coreutils 8.23: gnulib-tests/test-suite.log ===================================================== # TOTAL: 306 # PASS: 288 # SKIP: 12 # XFAIL: 0 # FAIL: 6 # XPASS: 0 # ERROR: 0 .. contents:: :depth: 2 FAIL: test-fdutimensat ====================== ./test-utimens.h:113: assertion 'st3.st_atime == Y2K' failed FAIL: test-futimens =================== ./test-futimens.h:112: assertion 'st1.st_atime == st2.st_atime' failed SKIP: test-getlogin =================== Skipping test: stdin is not a tty. SKIP: test-mbrtowc-w32-1.sh =========================== Skipping test: not a native Windows system SKIP: test-mbrtowc-w32-2.sh =========================== Skipping test: not a native Windows system SKIP: test-mbrtowc-w32-3.sh =========================== Skipping test: not a native Windows system SKIP: test-mbrtowc-w32-4.sh =========================== Skipping test: not a native Windows system SKIP: test-mbrtowc-w32-5.sh =========================== Skipping test: not a native Windows system SKIP: test-mbscasecmp.sh ======================== Skipping test: no turkish Unicode locale is installed FAIL: test-readlinkat ===================== ./test-readlink.h:71: assertion 'func (BASE "link2/", buf, sizeof buf) == -1' failed FAIL: test-symlinkat ==================== ./test-symlink.h:83: assertion 'func (BASE "nowhere", BASE "link1/") == -1' failed FAIL: test-unlinkat =================== ./test-unlink.h:49: assertion 'func ("..") == -1' failed FAIL: test-utimens ================== ./test-futimens.h:112: assertion 'st1.st_atime == st2.st_atime' failed SKIP: test-wcrtomb-w32-1.sh =========================== Skipping test: not a native Windows system SKIP: test-wcrtomb-w32-2.sh =========================== Skipping test: not a native Windows system SKIP: test-wcrtomb-w32-3.sh =========================== Skipping test: not a native Windows system SKIP: test-wcrtomb-w32-4.sh =========================== Skipping test: not a native Windows system SKIP: test-wcrtomb-w32-5.sh =========================== Skipping test: not a native Windows system ============================================================================ Testsuite summary for GNU coreutils 8.23 ============================================================================ # TOTAL: 306 # PASS: 288 # SKIP: 12 # XFAIL: 0 # FAIL: 6 # XPASS: 0 # ERROR: 0 ============================================================================ > > Attached is an ancillary patch to coreutils to convert the > Last ERROR above to the more correct FAILs, which you don't need to apply. > > thanks, > Pádraig. > >From 0ba224ec5cd102773086137b7097ec91d1538e49 Mon Sep 17 00:00:00 2001 > From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P <at> draigBrady.com> > Date: Fri, 31 Oct 2014 02:25:02 +0000 > Subject: [PATCH] tests: ln/hard-to-sym FAIL rather than ERROR when ln fails > > * tests/ln/hard-to-sym.sh: Only call framework_failure_ when ln > returns success. > --- > tests/ln/hard-to-sym.sh | 36 +++++++++++++++++++++--------------- > 1 files changed, 21 insertions(+), 15 deletions(-) > > diff --git a/tests/ln/hard-to-sym.sh b/tests/ln/hard-to-sym.sh > index 995d3cf..f3ac8ba 100755 > --- a/tests/ln/hard-to-sym.sh > +++ b/tests/ln/hard-to-sym.sh > @@ -29,24 +29,30 @@ ln -s -L -P symlink2 symlink3 || fail=1 > > # =================================================== > # ensure that -L follows symlinks, and overrides -P > -ln -P -L symlink3 hard-to-a || fail=1 > -ls=$(ls -lG hard-to-a)x > -case "$ls" in > - *'hard-to-ax') ;; > - *'hard-to-a -> '*x) fail=1 ;; > - *) framework_failure_ ;; > -esac > +if ln -P -L symlink3 hard-to-a; then > + ls=$(ls -lG hard-to-a)x > + case "$ls" in > + *'hard-to-ax') ;; > + *'hard-to-a -> '*x) fail=1 ;; > + *) framework_failure_ ;; > + esac > +else > + fail=1 > +fi > > # =================================================== > # ensure that -P links (or at least duplicates) symlinks, and overrides -L > -ln -L -P symlink3 hard-to-3 || fail=1 > -ls=$(ls -lG hard-to-3)x > -case "$ls" in > - *'hard-to-3 -> symlink2x') ;; > - *'hard-to-3x') fail=1 ;; > - *'hard-to-3 -> '*x) fail=1 ;; > - *) framework_failure_ ;; > -esac > +if ln -L -P symlink3 hard-to-3; then > + ls=$(ls -lG hard-to-3)x > + case "$ls" in > + *'hard-to-3 -> symlink2x') ;; > + *'hard-to-3x') fail=1 ;; > + *'hard-to-3 -> '*x) fail=1 ;; > + *) framework_failure_ ;; > + esac > +else > + fail=1 > +fi > > # =================================================== > # Create a hard link to a dangling symlink. > -- > 1.7.7.6 >
bug-coreutils <at> gnu.org
:bug#18896
; Package coreutils
.
(Fri, 31 Oct 2014 03:57:02 GMT) Full text and rfc822 format available.Message #23 received at 18896 <at> debbugs.gnu.org (full text, mbox):
From: Pádraig Brady <P <at> draigBrady.com> To: Jack Howarth <howarth <at> bromo.med.uc.edu> Cc: 18896 <at> debbugs.gnu.org Subject: Re: bug#18896: regressions in coreutils 8.23 on Yosemite Date: Fri, 31 Oct 2014 03:56:06 +0000
On 10/31/2014 03:30 AM, Jack Howarth wrote: > On Fri, Oct 31, 2014 at 02:29:05AM +0000, Pádraig Brady wrote: >> >> So linkat() is now available but doesn't support hardlinks to symlinks >> contrary to the POSIX spec. So it would be best we consider linkat() >> unavailable, which can be done manually like: >> >> ac_cv_func_linkat=no ./configure >> >> We'll have to augment the gnulib linkat check to actually check >> that linkat() works, rather than just being available. > > Passing ac_cv_func_linkat=no to configure and using your attached patch > results in a large number of failures on x86_64-apple-darwin14. Good that's better. coreutils tests have passed, and you're getting to gnulib issues below. > FAIL: test-readlinkat > ===================== > ./test-readlink.h:71: assertion 'func (BASE "link2/", buf, sizeof buf) == -1' failed > > FAIL: test-symlinkat > ==================== > ./test-symlink.h:83: assertion 'func (BASE "nowhere", BASE "link1/") == -1' failed > > FAIL: test-unlinkat > =================== > ./test-unlink.h:49: assertion 'func ("..") == -1' failed This is indicating these system functions are succeeding (or failing with a different return value) while their non "at" equivalents are failing as expected. That's surprising. It would be useful to determine (with printf/gdb) the return value and errno in the above tests. > FAIL: test-fdutimensat > ====================== > ./test-utimens.h:113: assertion 'st3.st_atime == Y2K' failed > > FAIL: test-futimens > =================== > ./test-futimens.h:112: assertion 'st1.st_atime == st2.st_atime' failed > > FAIL: test-utimens > ================== > ./test-futimens.h:112: assertion 'st1.st_atime == st2.st_atime' failed I've not looked into these at all. This information is very useful. thanks! Pádraig.
bug-coreutils <at> gnu.org
:bug#18896
; Package coreutils
.
(Fri, 31 Oct 2014 15:42:02 GMT) Full text and rfc822 format available.Message #26 received at 18896 <at> debbugs.gnu.org (full text, mbox):
From: Jack Howarth <howarth <at> bromo.med.uc.edu> To: Pádraig Brady <P <at> draigBrady.com> Cc: 18896 <at> debbugs.gnu.org Subject: Re: bug#18896: regressions in coreutils 8.23 on Yosemite Date: Fri, 31 Oct 2014 11:41:08 -0400
On Fri, Oct 31, 2014 at 03:56:06AM +0000, Pádraig Brady wrote: > On 10/31/2014 03:30 AM, Jack Howarth wrote: > > On Fri, Oct 31, 2014 at 02:29:05AM +0000, Pádraig Brady wrote: > >> > >> So linkat() is now available but doesn't support hardlinks to symlinks > >> contrary to the POSIX spec. So it would be best we consider linkat() > >> unavailable, which can be done manually like: > >> > >> ac_cv_func_linkat=no ./configure > >> > >> We'll have to augment the gnulib linkat check to actually check > >> that linkat() works, rather than just being available. > > > > Passing ac_cv_func_linkat=no to configure and using your attached patch > > results in a large number of failures on x86_64-apple-darwin14. > > Good that's better. coreutils tests have passed, and you're getting > to gnulib issues below. > > > > FAIL: test-readlinkat > > ===================== > > ./test-readlink.h:71: assertion 'func (BASE "link2/", buf, sizeof buf) == -1' failed > > > > FAIL: test-symlinkat > > ==================== > > ./test-symlink.h:83: assertion 'func (BASE "nowhere", BASE "link1/") == -1' failed > > > > FAIL: test-unlinkat > > =================== > > ./test-unlink.h:49: assertion 'func ("..") == -1' failed > > This is indicating these system functions are succeeding (or failing with a different return value) > while their non "at" equivalents are failing as expected. That's surprising. > It would be useful to determine (with printf/gdb) the return value and errno in the above tests. Interestingly some of these asserts seem to be suppressed when I run the failing testcases through lldb or gdb. % sudo lldb ./test-fdutimensat (lldb) target create "./test-fdutimensat" Current executable set to './test-fdutimensat' (x86_64). (lldb) r Process 26490 launched: './test-fdutimensat' (x86_64) Process 26490 exited with status = 0 (0x00000000) (lldb) % sudo lldb ./test-unlinkat (lldb) target create "./test-unlinkat" Current executable set to './test-unlinkat' (x86_64). (lldb) r Process 51535 launched: './test-unlinkat' (x86_64) Process 51535 exited with status = 0 (0x00000000) (lldb) whereas others aren't... % sudo lldb ./test-readlinkat (lldb) target create "./test-readlinkat" Current executable set to './test-readlinkat' (x86_64). (lldb) r Process 51522 launched: './test-readlinkat' (x86_64) ./test-readlink.h:71: assertion 'func (BASE "link2/", buf, sizeof buf) == -1' failed Process 51522 stopped * thread #1: tid = 0x74d0e9, 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT frame #0: 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10 libsystem_kernel.dylib`__pthread_kill + 10: -> 0x7fff962cd282: jae 0x7fff962cd28c ; __pthread_kill + 20 0x7fff962cd284: movq %rax, %rdi 0x7fff962cd287: jmp 0x7fff962c8ca3 ; cerror_nocancel 0x7fff962cd28c: retq (lldb) bt * thread #1: tid = 0x74d0e9, 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT * frame #0: 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10 frame #1: 0x00007fff8ffc44c3 libsystem_pthread.dylib`pthread_kill + 90 frame #2: 0x00007fff8bfe7b73 libsystem_c.dylib`abort + 129 frame #3: 0x0000000100001c2b test-readlinkat`test_readlink(print=<unavailable>, func=<unavailable>) + 3083 at test-readlink.h:34 frame #4: 0x000000010000096e test-readlinkat`main + 174 at test-readlinkat.c:76 frame #5: 0x00007fff999935c9 libdyld.dylib`start + 1 (lldb) h% sudo lldb ./test-symlinkat (lldb) target create "./test-symlinkat" Current executable set to './test-symlinkat' (x86_64). (lldb) r Process 51529 launched: './test-symlinkat' (x86_64) ./test-symlink.h:83: assertion 'func (BASE "nowhere", BASE "link1/") == -1' failed Process 51529 stopped * thread #1: tid = 0x74d1b5, 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT frame #0: 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10 libsystem_kernel.dylib`__pthread_kill + 10: -> 0x7fff962cd282: jae 0x7fff962cd28c ; __pthread_kill + 20 0x7fff962cd284: movq %rax, %rdi 0x7fff962cd287: jmp 0x7fff962c8ca3 ; cerror_nocancel 0x7fff962cd28c: retq (lldb) bt * thread #1: tid = 0x74d1b5, 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT * frame #0: 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10 frame #1: 0x00007fff8ffc44c3 libsystem_pthread.dylib`pthread_kill + 90 frame #2: 0x00007fff8bfe7b73 libsystem_c.dylib`abort + 129 frame #3: 0x0000000100001293 test-symlinkat`test_symlink(print=<unavailable>, func=<unavailable>) + 2211 at test-symlink.h:43 frame #4: 0x0000000100000849 test-symlinkat`main + 169 at test-symlinkat.c:79 frame #5: 0x00007fff999935c9 libdyld.dylib`start + 1 frame #6: 0x00007fff999935c9 libdyld.dylib`start + 1 (lldb) where the error is at... static int test_symlink (int (*func) (char const *, char const *), bool print) { if (func ("nowhere", BASE "link1")) { if (print) fputs ("skipping test: symlinks not supported on this file system\n", stderr); return 77; } /* Some systems allow the creation of 0-length symlinks as a synonym for "."; but most reject it. */ { int status; errno = 0; status = func ("", BASE "link2"); if (status == -1) ASSERT (errno == ENOENT || errno == EINVAL); <<<<<<<<<--------- crash on Yosemite else { ASSERT (status == 0); ASSERT (unlink (BASE "link2") == 0); } } > > > FAIL: test-fdutimensat > > ====================== > > ./test-utimens.h:113: assertion 'st3.st_atime == Y2K' failed > > > > FAIL: test-futimens > > =================== > > ./test-futimens.h:112: assertion 'st1.st_atime == st2.st_atime' failed > > > > FAIL: test-utimens > > ================== > > ./test-futimens.h:112: assertion 'st1.st_atime == st2.st_atime' failed > > I've not looked into these at all. > > This information is very useful. > > thanks! > Pádraig.
bug-coreutils <at> gnu.org
:bug#18896
; Package coreutils
.
(Fri, 31 Oct 2014 16:05:01 GMT) Full text and rfc822 format available.Message #29 received at 18896 <at> debbugs.gnu.org (full text, mbox):
From: Pádraig Brady <P <at> draigBrady.com> To: Jack Howarth <howarth <at> bromo.med.uc.edu> Cc: Eric Blake <eblake <at> redhat.com>, 18896 <at> debbugs.gnu.org Subject: Re: bug#18896: regressions in coreutils 8.23 on Yosemite Date: Fri, 31 Oct 2014 16:03:43 +0000
On 10/31/2014 03:41 PM, Jack Howarth wrote: > On Fri, Oct 31, 2014 at 03:56:06AM +0000, Pádraig Brady wrote: >> On 10/31/2014 03:30 AM, Jack Howarth wrote: >>> On Fri, Oct 31, 2014 at 02:29:05AM +0000, Pádraig Brady wrote: >>>> >>>> So linkat() is now available but doesn't support hardlinks to symlinks >>>> contrary to the POSIX spec. So it would be best we consider linkat() >>>> unavailable, which can be done manually like: >>>> >>>> ac_cv_func_linkat=no ./configure >>>> >>>> We'll have to augment the gnulib linkat check to actually check >>>> that linkat() works, rather than just being available. >>> >>> Passing ac_cv_func_linkat=no to configure and using your attached patch >>> results in a large number of failures on x86_64-apple-darwin14. >> >> Good that's better. coreutils tests have passed, and you're getting >> to gnulib issues below. >> >> >>> FAIL: test-readlinkat >>> ===================== >>> ./test-readlink.h:71: assertion 'func (BASE "link2/", buf, sizeof buf) == -1' failed >>> >>> FAIL: test-symlinkat >>> ==================== >>> ./test-symlink.h:83: assertion 'func (BASE "nowhere", BASE "link1/") == -1' failed >>> >>> FAIL: test-unlinkat >>> =================== >>> ./test-unlink.h:49: assertion 'func ("..") == -1' failed >>> This is indicating these system functions are succeeding (or failing with a different return value) >> while their non "at" equivalents are failing as expected. That's surprising. >> It would be useful to determine (with printf/gdb) the return value and errno in the above tests. > > Interestingly some of these asserts seem to be suppressed when I run the failing testcases through > lldb or gdb. > > % sudo lldb ./test-fdutimensat > (lldb) target create "./test-fdutimensat" > Current executable set to './test-fdutimensat' (x86_64). > (lldb) r > Process 26490 launched: './test-fdutimensat' (x86_64) > Process 26490 exited with status = 0 (0x00000000) > (lldb) Weird, timing issue? > % sudo lldb ./test-unlinkat > (lldb) target create "./test-unlinkat" > Current executable set to './test-unlinkat' (x86_64). > (lldb) r > Process 51535 launched: './test-unlinkat' (x86_64) > Process 51535 exited with status = 0 (0x00000000) > (lldb) Surprising. > whereas others aren't... > > % sudo lldb ./test-readlinkat > (lldb) target create "./test-readlinkat" > Current executable set to './test-readlinkat' (x86_64). > (lldb) r > Process 51522 launched: './test-readlinkat' (x86_64) > ./test-readlink.h:71: assertion 'func (BASE "link2/", buf, sizeof buf) == -1' failed > Process 51522 stopped This one is succeeding unexpectedly (I'm guessing that readlinkat() is returning 0 here?) Eric might have more insight into whether we should relax this test. > h% sudo lldb ./test-symlinkat > (lldb) target create "./test-symlinkat" > Current executable set to './test-symlinkat' (x86_64). > (lldb) r > Process 51529 launched: './test-symlinkat' (x86_64) > ./test-symlink.h:83: assertion 'func (BASE "nowhere", BASE "link1/") == -1' failed > Process 51529 stopped > * thread #1: tid = 0x74d1b5, 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT > frame #0: 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10 > libsystem_kernel.dylib`__pthread_kill + 10: > -> 0x7fff962cd282: jae 0x7fff962cd28c ; __pthread_kill + 20 > 0x7fff962cd284: movq %rax, %rdi > 0x7fff962cd287: jmp 0x7fff962c8ca3 ; cerror_nocancel > 0x7fff962cd28c: retq > (lldb) bt > * thread #1: tid = 0x74d1b5, 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT > * frame #0: 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10 > frame #1: 0x00007fff8ffc44c3 libsystem_pthread.dylib`pthread_kill + 90 > frame #2: 0x00007fff8bfe7b73 libsystem_c.dylib`abort + 129 > frame #3: 0x0000000100001293 test-symlinkat`test_symlink(print=<unavailable>, func=<unavailable>) + 2211 at test-symlink.h:43 > frame #4: 0x0000000100000849 test-symlinkat`main + 169 at test-symlinkat.c:79 > frame #5: 0x00007fff999935c9 libdyld.dylib`start + 1 > frame #6: 0x00007fff999935c9 libdyld.dylib`start + 1 > (lldb) > > where the error is at... > > static int > test_symlink (int (*func) (char const *, char const *), bool print) > { > if (func ("nowhere", BASE "link1")) > { > if (print) > fputs ("skipping test: symlinks not supported on this file system\n", > stderr); > return 77; > } > > /* Some systems allow the creation of 0-length symlinks as a synonym > for "."; but most reject it. */ > { > int status; > errno = 0; > status = func ("", BASE "link2"); > if (status == -1) > ASSERT (errno == ENOENT || errno == EINVAL); <<<<<<<<<--------- crash on Yosemite > else > { > ASSERT (status == 0); > ASSERT (unlink (BASE "link2") == 0); > } > } There is a mismatch between the line numbers reported by ASSERT() and lldb which may be due to the way the header is being included. Anyway it would be best to step through (over the functions) the test noting the returns and errno at the failing step. thanks again, Pádraig.
bug-coreutils <at> gnu.org
:bug#18896
; Package coreutils
.
(Fri, 31 Oct 2014 16:14:01 GMT) Full text and rfc822 format available.Message #32 received at 18896 <at> debbugs.gnu.org (full text, mbox):
From: Jack Howarth <howarth <at> bromo.med.uc.edu> To: Pádraig Brady <P <at> draigBrady.com> Cc: Eric Blake <eblake <at> redhat.com>, 18896 <at> debbugs.gnu.org Subject: Re: bug#18896: regressions in coreutils 8.23 on Yosemite Date: Fri, 31 Oct 2014 12:13:09 -0400
On Fri, Oct 31, 2014 at 04:03:43PM +0000, Pádraig Brady wrote: > On 10/31/2014 03:41 PM, Jack Howarth wrote: > > On Fri, Oct 31, 2014 at 03:56:06AM +0000, Pádraig Brady wrote: > >> On 10/31/2014 03:30 AM, Jack Howarth wrote: > >>> On Fri, Oct 31, 2014 at 02:29:05AM +0000, Pádraig Brady wrote: > >>>> > >>>> So linkat() is now available but doesn't support hardlinks to symlinks > >>>> contrary to the POSIX spec. So it would be best we consider linkat() > >>>> unavailable, which can be done manually like: > >>>> > >>>> ac_cv_func_linkat=no ./configure > >>>> > >>>> We'll have to augment the gnulib linkat check to actually check > >>>> that linkat() works, rather than just being available. > >>> > >>> Passing ac_cv_func_linkat=no to configure and using your attached patch > >>> results in a large number of failures on x86_64-apple-darwin14. > >> > >> Good that's better. coreutils tests have passed, and you're getting > >> to gnulib issues below. > >> > >> > >>> FAIL: test-readlinkat > >>> ===================== > >>> ./test-readlink.h:71: assertion 'func (BASE "link2/", buf, sizeof buf) == -1' failed > >>> > >>> FAIL: test-symlinkat > >>> ==================== > >>> ./test-symlink.h:83: assertion 'func (BASE "nowhere", BASE "link1/") == -1' failed > >>> > >>> FAIL: test-unlinkat > >>> =================== > >>> ./test-unlink.h:49: assertion 'func ("..") == -1' failed > >>> This is indicating these system functions are succeeding (or failing with a different return value) > >> while their non "at" equivalents are failing as expected. That's surprising. > >> It would be useful to determine (with printf/gdb) the return value and errno in the above tests. > > > > Interestingly some of these asserts seem to be suppressed when I run the failing testcases through > > lldb or gdb. > > > > % sudo lldb ./test-fdutimensat > > (lldb) target create "./test-fdutimensat" > > Current executable set to './test-fdutimensat' (x86_64). > > (lldb) r > > Process 26490 launched: './test-fdutimensat' (x86_64) > > Process 26490 exited with status = 0 (0x00000000) > > (lldb) > > Weird, timing issue? Normally that sort of thing occurs when the crash is due to a bad memory access which a debugger suppresses. At least in my experience on darwin. > > > % sudo lldb ./test-unlinkat > > (lldb) target create "./test-unlinkat" > > Current executable set to './test-unlinkat' (x86_64). > > (lldb) r > > Process 51535 launched: './test-unlinkat' (x86_64) > > Process 51535 exited with status = 0 (0x00000000) > > (lldb) > > Surprising. > > > whereas others aren't... > > > > % sudo lldb ./test-readlinkat > > (lldb) target create "./test-readlinkat" > > Current executable set to './test-readlinkat' (x86_64). > > (lldb) r > > Process 51522 launched: './test-readlinkat' (x86_64) > > ./test-readlink.h:71: assertion 'func (BASE "link2/", buf, sizeof buf) == -1' failed > > Process 51522 stopped > > This one is succeeding unexpectedly (I'm guessing that readlinkat() is returning 0 here?) > Eric might have more insight into whether we should relax this test. > > > h% sudo lldb ./test-symlinkat > > (lldb) target create "./test-symlinkat" > > Current executable set to './test-symlinkat' (x86_64). > > (lldb) r > > Process 51529 launched: './test-symlinkat' (x86_64) > > ./test-symlink.h:83: assertion 'func (BASE "nowhere", BASE "link1/") == -1' failed > > Process 51529 stopped > > * thread #1: tid = 0x74d1b5, 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT > > frame #0: 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10 > > libsystem_kernel.dylib`__pthread_kill + 10: > > -> 0x7fff962cd282: jae 0x7fff962cd28c ; __pthread_kill + 20 > > 0x7fff962cd284: movq %rax, %rdi > > 0x7fff962cd287: jmp 0x7fff962c8ca3 ; cerror_nocancel > > 0x7fff962cd28c: retq > > (lldb) bt > > * thread #1: tid = 0x74d1b5, 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT > > * frame #0: 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10 > > frame #1: 0x00007fff8ffc44c3 libsystem_pthread.dylib`pthread_kill + 90 > > frame #2: 0x00007fff8bfe7b73 libsystem_c.dylib`abort + 129 > > frame #3: 0x0000000100001293 test-symlinkat`test_symlink(print=<unavailable>, func=<unavailable>) + 2211 at test-symlink.h:43 > > frame #4: 0x0000000100000849 test-symlinkat`main + 169 at test-symlinkat.c:79 > > frame #5: 0x00007fff999935c9 libdyld.dylib`start + 1 > > frame #6: 0x00007fff999935c9 libdyld.dylib`start + 1 > > (lldb) > > > > where the error is at... > > > > static int > > test_symlink (int (*func) (char const *, char const *), bool print) > > { > > if (func ("nowhere", BASE "link1")) > > { > > if (print) > > fputs ("skipping test: symlinks not supported on this file system\n", > > stderr); > > return 77; > > } > > > > /* Some systems allow the creation of 0-length symlinks as a synonym > > for "."; but most reject it. */ > > { > > int status; > > errno = 0; > > status = func ("", BASE "link2"); > > if (status == -1) > > ASSERT (errno == ENOENT || errno == EINVAL); <<<<<<<<<--------- crash on Yosemite > > else > > { > > ASSERT (status == 0); > > ASSERT (unlink (BASE "link2") == 0); > > } > > } > > There is a mismatch between the line numbers reported by ASSERT() and lldb > which may be due to the way the header is being included. > Anyway it would be best to step through (over the functions) the test > noting the returns and errno at the failing step. > > thanks again, > Pádraig.
bug-coreutils <at> gnu.org
:bug#18896
; Package coreutils
.
(Mon, 03 Nov 2014 14:18:02 GMT) Full text and rfc822 format available.Message #35 received at 18896 <at> debbugs.gnu.org (full text, mbox):
From: Pádraig Brady <P <at> draigBrady.com> To: Jack Howarth <howarth <at> bromo.med.uc.edu> Cc: 18896 <at> debbugs.gnu.org Subject: Re: bug#18896: regressions in coreutils 8.23 on Yosemite Date: Mon, 03 Nov 2014 15:16:58 +0100
On 10/31/2014 05:03 PM, Pádraig Brady wrote: > On 10/31/2014 03:41 PM, Jack Howarth wrote: >> On Fri, Oct 31, 2014 at 03:56:06AM +0000, Pádraig Brady wrote: >>> On 10/31/2014 03:30 AM, Jack Howarth wrote: >>>> On Fri, Oct 31, 2014 at 02:29:05AM +0000, Pádraig Brady wrote: >>>>> >>>>> So linkat() is now available but doesn't support hardlinks to symlinks >>>>> contrary to the POSIX spec. So it would be best we consider linkat() >>>>> unavailable, which can be done manually like: >>>>> >>>>> ac_cv_func_linkat=no ./configure >>>>> >>>>> We'll have to augment the gnulib linkat check to actually check >>>>> that linkat() works, rather than just being available. >>>> >>>> Passing ac_cv_func_linkat=no to configure and using your attached patch >>>> results in a large number of failures on x86_64-apple-darwin14. >>> >>> Good that's better. coreutils tests have passed, and you're getting >>> to gnulib issues below. I pushed the following slightly different more general patch to gnulib to address this issue: http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=c8e57ce5 thanks, Pádraig.
bug-coreutils <at> gnu.org
:bug#18896
; Package coreutils
.
(Mon, 03 Nov 2014 19:41:02 GMT) Full text and rfc822 format available.Message #38 received at 18896 <at> debbugs.gnu.org (full text, mbox):
From: Jack Howarth <howarth <at> bromo.med.uc.edu> To: Pádraig Brady <P <at> draigBrady.com> Cc: 18896 <at> debbugs.gnu.org Subject: Re: bug#18896: regressions in coreutils 8.23 on Yosemite Date: Mon, 3 Nov 2014 14:40:42 -0500
On Mon, Nov 03, 2014 at 03:16:58PM +0100, Pádraig Brady wrote: > On 10/31/2014 05:03 PM, Pádraig Brady wrote: > > On 10/31/2014 03:41 PM, Jack Howarth wrote: > >> On Fri, Oct 31, 2014 at 03:56:06AM +0000, Pádraig Brady wrote: > >>> On 10/31/2014 03:30 AM, Jack Howarth wrote: > >>>> On Fri, Oct 31, 2014 at 02:29:05AM +0000, Pádraig Brady wrote: > >>>>> > >>>>> So linkat() is now available but doesn't support hardlinks to symlinks > >>>>> contrary to the POSIX spec. So it would be best we consider linkat() > >>>>> unavailable, which can be done manually like: > >>>>> > >>>>> ac_cv_func_linkat=no ./configure > >>>>> > >>>>> We'll have to augment the gnulib linkat check to actually check > >>>>> that linkat() works, rather than just being available. > >>>> > >>>> Passing ac_cv_func_linkat=no to configure and using your attached patch > >>>> results in a large number of failures on x86_64-apple-darwin14. > >>> > >>> Good that's better. coreutils tests have passed, and you're getting > >>> to gnulib issues below. > > I pushed the following slightly different more general patch > to gnulib to address this issue: > http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=c8e57ce5 > > thanks, > Pádraig. Pádraig, Using a current checkout of gnulib git at commit c564172a11b94fed43632cbc854277d68d14e693 and the instructions at https://sourceware.org/glibc/wiki/Testing/Gnulib, I tested these changes on x86_64-apple-darwin14. I had to pass -std=c89 to CFLAGS on configure to avoid... mv -f $depbase.Tpo $depbase.Po depbase=`echo symlinkat.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ gcc -DHAVE_CONFIG_H -I. -I.. -DGNULIB_STRICT_CHECKING=1 -Wall -g -O2 -MT symlinkat.o -MD -MP -MF $depbase.Tpo -c -o symlinkat.o symlinkat.c &&\ mv -f $depbase.Tpo $depbase.Po symlinkat.c:31:16: warning: implicitly declaring library function 'strlen' with type 'unsigned long (const char *)' size_t len = strlen (name); ^ symlinkat.c:31:16: note: please include the header <string.h> or explicitly provide a declaration for 'strlen' symlinkat.c:34:19: error: variable has incomplete type 'struct stat' struct stat st; ^ symlinkat.c:34:14: note: forward declaration of 'struct stat' struct stat st; ^ symlinkat.c:35:11: warning: implicit declaration of function 'fstatat' is invalid in C99 [-Wimplicit-function-declaration] if (fstatat (fd, name, &st, 0) == 0) ^ 2 warnings and 1 error generated. to eliminate the C99 warning and '#include <string.h>' in symlinkat.c to eliminate the implicit declaration warning. However this still leaves the compile failure of... make[4]: Entering directory `/private/tmp/testdir/gllib' depbase=`echo symlinkat.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ gcc -DHAVE_CONFIG_H -I. -I.. -DGNULIB_STRICT_CHECKING=1 -Wall -std=c89 -g -O2 -MT symlinkat.o -MD -MP -MF $depbase.Tpo -c -o symlinkat.o symlinkat.c &&\ mv -f $depbase.Tpo $depbase.Po symlinkat.c:35:19: error: variable has incomplete type 'struct stat' struct stat st; ^ symlinkat.c:35:14: note: forward declaration of 'struct stat' struct stat st; ^ symlinkat.c:36:11: warning: implicit declaration of function 'fstatat' [-Wimplicit-function-declaration] if (fstatat (fd, name, &st, 0) == 0) ^ 1 warning and 1 error generated. This required adding '#include <sys/stat.h> in symlinkat.c to eliminate the compilation failure. diff --git a/lib/symlinkat.c b/lib/symlinkat.c index 9797f46..5df605f 100644 --- a/lib/symlinkat.c +++ b/lib/symlinkat.c @@ -20,6 +20,8 @@ #include <unistd.h> #include <errno.h> +#include <string.h> +#include <sys/stat.h> #if HAVE_SYMLINKAT # undef symlinkat At this point, I am stuck on the a later compiler error... gcc -DHAVE_CONFIG_H -I. -I.. -DGNULIB_STRICT_CHECKING=1 -DIN_GNULIB_TESTS=1 -I. -I. -I.. -I./.. -I../gllib -I./../gllib -Wall -std=c89 -g -O2 -MT test-stdnoreturn.o -MD -MP -MF $depbase.Tpo -c -o test-stdnoreturn.o test-stdnoreturn.c &&\ mv -f $depbase.Tpo $depbase.Po In file included from test-stdnoreturn.c:23: In file included from ../gllib/stdlib.h:36: /usr/include/stdlib.h:128:19: error: use of undeclared identifier '__noreturn__' void abort(void) __dead2; ^ /usr/include/sys/cdefs.h:135:33: note: expanded from macro '__dead2' #define __dead2 __attribute__((noreturn)) ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include/stdnoreturn.h:27:18: note: expanded from macro 'noreturn' #define noreturn _Noreturn ^ ../config.h:4252:37: note: expanded from macro '_Noreturn' # define _Noreturn __attribute__ ((__noreturn__)) ^ In file included from test-stdnoreturn.c:23: In file included from ../gllib/stdlib.h:36: /usr/include/stdlib.h:142:17: error: use of undeclared identifier '__noreturn__' void exit(int) __dead2; ^ /usr/include/sys/cdefs.h:135:33: note: expanded from macro '__dead2' #define __dead2 __attribute__((noreturn)) ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include/stdnoreturn.h:27:18: note: expanded from macro 'noreturn' #define noreturn _Noreturn ^ ../config.h:4252:37: note: expanded from macro '_Noreturn' # define _Noreturn __attribute__ ((__noreturn__)) ^ In file included from test-stdnoreturn.c:23: In file included from ../gllib/stdlib.h:36: /usr/include/stdlib.h:182:17: error: use of undeclared identifier '__noreturn__' void _Exit(int) __dead2; ^ /usr/include/sys/cdefs.h:135:33: note: expanded from macro '__dead2' #define __dead2 __attribute__((noreturn)) ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include/stdnoreturn.h:27:18: note: expanded from macro 'noreturn' #define noreturn _Noreturn ^ ../config.h:4252:37: note: expanded from macro '_Noreturn' # define _Noreturn __attribute__ ((__noreturn__)) ^ In file included from test-stdnoreturn.c:23: In file included from ../gllib/stdlib.h:96: In file included from ../gllib/unistd.h:40: /usr/include/unistd.h:424:18: error: use of undeclared identifier '__noreturn__' void _exit(int) __dead2; ^ /usr/include/sys/cdefs.h:135:33: note: expanded from macro '__dead2' #define __dead2 __attribute__((noreturn)) ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include/stdnoreturn.h:27:18: note: expanded from macro 'noreturn' #define noreturn _Noreturn ^ ../config.h:4252:37: note: expanded from macro '_Noreturn' # define _Noreturn __attribute__ ((__noreturn__)) ^ In file included from test-stdnoreturn.c:23: In file included from ../gllib/stdlib.h:96: In file included from ../gllib/unistd.h:40: In file included from /usr/include/unistd.h:633: In file included from ../gllib/sys/select.h:108: In file included from ../gllib/signal.h:65: In file included from ../gllib/pthread.h:30: /usr/include/pthread.h:323:27: error: use of undeclared identifier '__noreturn__' void pthread_exit(void *) __dead2; ^ /usr/include/sys/cdefs.h:135:33: note: expanded from macro '__dead2' #define __dead2 __attribute__((noreturn)) ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include/stdnoreturn.h:27:18: note: expanded from macro 'noreturn' #define noreturn _Noreturn ^ ../config.h:4252:37: note: expanded from macro '_Noreturn' # define _Noreturn __attribute__ ((__noreturn__)) ^ In file included from test-stdnoreturn.c:23: In file included from ../gllib/stdlib.h:96: In file included from ../gllib/unistd.h:40: /usr/include/unistd.h:640:18: error: use of undeclared identifier '__noreturn__' void _Exit(int) __dead2; ^ /usr/include/sys/cdefs.h:135:33: note: expanded from macro '__dead2' #define __dead2 __attribute__((noreturn)) ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include/stdnoreturn.h:27:18: note: expanded from macro 'noreturn' #define noreturn _Noreturn ^ ../config.h:4252:37: note: expanded from macro '_Noreturn' # define _Noreturn __attribute__ ((__noreturn__)) ^ 6 errors generated. Any ideas on how to eliminate that? Jack
bug-coreutils <at> gnu.org
:bug#18896
; Package coreutils
.
(Mon, 03 Nov 2014 20:10:02 GMT) Full text and rfc822 format available.Message #41 received at 18896 <at> debbugs.gnu.org (full text, mbox):
From: Jack Howarth <howarth <at> bromo.med.uc.edu> To: Pádraig Brady <P <at> draigBrady.com> Cc: 18896 <at> debbugs.gnu.org Subject: Re: bug#18896: regressions in coreutils 8.23 on Yosemite Date: Mon, 3 Nov 2014 15:09:45 -0500
On Mon, Nov 03, 2014 at 03:16:58PM +0100, Pádraig Brady wrote: > On 10/31/2014 05:03 PM, Pádraig Brady wrote: > > On 10/31/2014 03:41 PM, Jack Howarth wrote: > >> On Fri, Oct 31, 2014 at 03:56:06AM +0000, Pádraig Brady wrote: > >>> On 10/31/2014 03:30 AM, Jack Howarth wrote: > >>>> On Fri, Oct 31, 2014 at 02:29:05AM +0000, Pádraig Brady wrote: > >>>>> > >>>>> So linkat() is now available but doesn't support hardlinks to symlinks > >>>>> contrary to the POSIX spec. So it would be best we consider linkat() > >>>>> unavailable, which can be done manually like: > >>>>> > >>>>> ac_cv_func_linkat=no ./configure > >>>>> > >>>>> We'll have to augment the gnulib linkat check to actually check > >>>>> that linkat() works, rather than just being available. > >>>> > >>>> Passing ac_cv_func_linkat=no to configure and using your attached patch > >>>> results in a large number of failures on x86_64-apple-darwin14. > >>> > >>> Good that's better. coreutils tests have passed, and you're getting > >>> to gnulib issues below. > > I pushed the following slightly different more general patch > to gnulib to address this issue: > http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=c8e57ce5 > > thanks, > Pádraig. Pádraig, Using... diff --git a/lib/symlinkat.c b/lib/symlinkat.c index 9797f46..5df605f 100644 --- a/lib/symlinkat.c +++ b/lib/symlinkat.c @@ -20,6 +20,8 @@ #include <unistd.h> #include <errno.h> +#include <string.h> +#include <sys/stat.h> #if HAVE_SYMLINKAT # undef symlinkat diff --git a/tests/test-stdnoreturn.c b/tests/test-stdnoreturn.c index a8aead8..04107bc 100644 --- a/tests/test-stdnoreturn.c +++ b/tests/test-stdnoreturn.c @@ -18,6 +18,8 @@ #include <config.h> +#include <unistd.h> + #include <stdnoreturn.h> #include <stdlib.h> ...gets the compilation of gnulib to... make[4]: Entering directory `/private/tmp/testdir/gltests' depbase=`echo test-strtoll.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ gcc -DHAVE_CONFIG_H -I. -I.. -DGNULIB_STRICT_CHECKING=1 -DIN_GNULIB_TESTS=1 -I. -I. -I.. -I./.. -I../gllib -I./../gllib -Wall -std=c89 -g -O2 -MT test-strtoll.o -MD -MP -MF $depbase.Tpo -c -o test-strtoll.o test-strtoll.c &&\ mv -f $depbase.Tpo $depbase.Po test-strtoll.c:23:18: error: use of undeclared identifier 'strtoll' SIGNATURE_CHECK (strtoll, long long, (const char *, char **, int)); ^ ./signature.h:39:21: note: expanded from macro 'SIGNATURE_CHECK' SIGNATURE_CHECK1 (fn, ret, args, __LINE__) ^ ./signature.h:44:21: note: expanded from macro 'SIGNATURE_CHECK1' SIGNATURE_CHECK2 (fn, ret, args, id) /* macroexpand line */ ^ ./signature.h:46:58: note: expanded from macro 'SIGNATURE_CHECK2' static ret (* _GL_UNUSED signature_check ## id) args = fn ^ test-strtoll.c:39:14: warning: implicit declaration of function 'strtoll' [-Wimplicit-function-declaration] result = strtoll (input, &ptr, 10); ^ 1 warning and 1 error generated. The /usr/include/stdlib.h header on darwin14 has... #if !__DARWIN_NO_LONG_LONG long long strtoll(const char *, char **, int); #endif /* !__DARWIN_NO_LONG_LONG */ Jack
bug-coreutils <at> gnu.org
:bug#18896
; Package coreutils
.
(Mon, 03 Nov 2014 22:00:02 GMT) Full text and rfc822 format available.Message #44 received at 18896 <at> debbugs.gnu.org (full text, mbox):
From: Jack Howarth <howarth <at> bromo.med.uc.edu> To: Pádraig Brady <P <at> draigBrady.com> Cc: 18896 <at> debbugs.gnu.org Subject: Re: bug#18896: regressions in coreutils 8.23 on Yosemite Date: Mon, 3 Nov 2014 16:58:59 -0500
On Mon, Nov 03, 2014 at 03:16:58PM +0100, Pádraig Brady wrote: > On 10/31/2014 05:03 PM, Pádraig Brady wrote: > > On 10/31/2014 03:41 PM, Jack Howarth wrote: > >> On Fri, Oct 31, 2014 at 03:56:06AM +0000, Pádraig Brady wrote: > >>> On 10/31/2014 03:30 AM, Jack Howarth wrote: > >>>> On Fri, Oct 31, 2014 at 02:29:05AM +0000, Pádraig Brady wrote: > >>>>> > >>>>> So linkat() is now available but doesn't support hardlinks to symlinks > >>>>> contrary to the POSIX spec. So it would be best we consider linkat() > >>>>> unavailable, which can be done manually like: > >>>>> > >>>>> ac_cv_func_linkat=no ./configure > >>>>> > >>>>> We'll have to augment the gnulib linkat check to actually check > >>>>> that linkat() works, rather than just being available. > >>>> > >>>> Passing ac_cv_func_linkat=no to configure and using your attached patch > >>>> results in a large number of failures on x86_64-apple-darwin14. > >>> > >>> Good that's better. coreutils tests have passed, and you're getting > >>> to gnulib issues below. > > I pushed the following slightly different more general patch > to gnulib to address this issue: > http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=c8e57ce5 > > thanks, > Pádraig. Pádraig, I puzzled out the problem with the strtoll test compilation. I have been using... ./configure CPPFLAGS="-Wall -std=c89" but it appears it needs to be... ./configure CPPFLAGS="-Wall -std=c99" on darwin14. The current gnulib git at your commit and the changes... diff --git a/lib/symlinkat.c b/lib/symlinkat.c index 9797f46..5df605f 100644 --- a/lib/symlinkat.c +++ b/lib/symlinkat.c @@ -20,6 +20,8 @@ #include <unistd.h> #include <errno.h> +#include <string.h> +#include <sys/stat.h> #if HAVE_SYMLINKAT # undef symlinkat diff --git a/tests/test-stdnoreturn.c b/tests/test-stdnoreturn.c index a8aead8..04107bc 100644 --- a/tests/test-stdnoreturn.c +++ b/tests/test-stdnoreturn.c @@ -18,6 +18,8 @@ #include <config.h> +#include <unistd.h> + #include <stdnoreturn.h> #include <stdlib.h> passes 'make' but the 'make check' produces 9 failures... ../build-aux/test-driver: line 107: 3918 Abort trap: 6 "$@" > $log_file 2>&1 FAIL: test-getlogin_r ../build-aux/test-driver: line 107: 3925 Abort trap: 6 "$@" > $log_file 2>&1 FAIL: test-getopt ../build-aux/test-driver: line 107: 4246 Abort trap: 6 "$@" > $log_file 2>&1 FAIL: test-linkat ../build-aux/test-driver: line 107: 5143 Abort trap: 6 "$@" > $log_file 2>&1 FAIL: test-readlinkat ../build-aux/test-driver: line 107: 5498 Abort trap: 6 "$@" > $log_file 2>&1 FAIL: test-snprintf-posix ../build-aux/test-driver: line 107: 5522 Abort trap: 6 "$@" > $log_file 2>&1 FAIL: test-sprintf-posix ../build-aux/test-driver: line 107: 6031 Abort trap: 6 "$@" > $log_file 2>&1 FAIL: test-unlinkat ../build-aux/test-driver: line 107: 6225 Abort trap: 6 "$@" > $log_file 2>&1 FAIL: test-vsnprintf-posix ../build-aux/test-driver: line 107: 6238 Abort trap: 6 "$@" > $log_file 2>&1 FAIL: test-vsprintf-posix which debug as... $ sudo lldb ./test-linkat Password: (lldb) target create "./test-linkat" Current executable set to './test-linkat' (x86_64). (lldb) r Process 6515 launched: './test-linkat' (x86_64) ./test-link.h:166: assertion 'func (BASE "b", BASE "link/") == -1' failed Process 6515 stopped * thread #1: tid = 0xe205e7, 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT frame #0: 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10 libsystem_kernel.dylib`__pthread_kill + 10: -> 0x7fff962cd282: jae 0x7fff962cd28c ; __pthread_kill + 20 0x7fff962cd284: movq %rax, %rdi 0x7fff962cd287: jmp 0x7fff962c8ca3 ; cerror_nocancel 0x7fff962cd28c: retq (lldb) bt * thread #1: tid = 0xe205e7, 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT * frame #0: 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10 frame #1: 0x00007fff8ffc44c3 libsystem_pthread.dylib`pthread_kill + 90 frame #2: 0x00007fff8bfe7b73 libsystem_c.dylib`abort + 129 frame #3: 0x0000000100004426 test-linkat`test_link(func=<unavailable>, print=<unavailable>) + 4534 at test-link.h:32 frame #4: 0x00000001000009fd test-linkat`main + 365 at test-linkat.c:124 frame #5: 0x00007fff999935c9 libdyld.dylib`start + 1 (lldb) static int test_link (int (*func) (char const *, char const *), bool print) { int fd; int ret; /* Create first file. */ fd = open (BASE "a", O_CREAT | O_EXCL | O_WRONLY, 0600); ASSERT (0 <= fd); <=== crash ASSERT (write (fd, "hello", 5) == 5); ASSERT (close (fd) == 0); and $ sudo lldb ./test-readlinkat (lldb) target create "./test-readlinkat" Current executable set to './test-readlinkat' (x86_64). (lldb) r Process 6538 launched: './test-readlinkat' (x86_64) ./test-readlink.h:71: assertion 'func (BASE "link2/", buf, sizeof buf) == -1' failed Process 6538 stopped * thread #1: tid = 0xe209a8, 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT frame #0: 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10 libsystem_kernel.dylib`__pthread_kill + 10: -> 0x7fff962cd282: jae 0x7fff962cd28c ; __pthread_kill + 20 0x7fff962cd284: movq %rax, %rdi 0x7fff962cd287: jmp 0x7fff962c8ca3 ; cerror_nocancel 0x7fff962cd28c: retq (lldb) bt * thread #1: tid = 0xe209a8, 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT * frame #0: 0x00007fff962cd282 libsystem_kernel.dylib`__pthread_kill + 10 frame #1: 0x00007fff8ffc44c3 libsystem_pthread.dylib`pthread_kill + 90 frame #2: 0x00007fff8bfe7b73 libsystem_c.dylib`abort + 129 frame #3: 0x0000000100001b9b test-readlinkat`test_readlink(print=<unavailable>, func=<unavailable>) + 3083 at test-readlink.h:34 frame #4: 0x00000001000008de test-readlinkat`main + 174 at test-readlinkat.c:76 frame #5: 0x00007fff999935c9 libdyld.dylib`start + 1 (lldb) which is at... static int test_readlink (ssize_t (*func) (char const *, char *, size_t), bool print) { char buf[80]; /* Sanity checks of failures. Mingw lacks symlink, but readlink can still distinguish between various errors. */ memset (buf, 0xff, sizeof buf); errno = 0; ASSERT (func ("no_such", buf, sizeof buf) == -1); <<<<<< crash ASSERT (errno == ENOENT); Oddly some tests still pass in the debugger... $ sudo lldb ./test-unlinkat (lldb) target create "./test-unlinkat" Current executable set to './test-unlinkat' (x86_64). (lldb) r Process 6533 launched: './test-unlinkat' (x86_64) Process 6533 exited with status = 0 (0x00000000) (lldb) which in my experience often happens when there is an invalid memory access being suppressed in eh. Jack
bug-coreutils <at> gnu.org
:bug#18896
; Package coreutils
.
(Tue, 04 Nov 2014 00:30:03 GMT) Full text and rfc822 format available.Message #47 received at 18896 <at> debbugs.gnu.org (full text, mbox):
From: Pádraig Brady <P <at> draigBrady.com> To: Jack Howarth <howarth <at> bromo.med.uc.edu> Cc: 18896 <at> debbugs.gnu.org Subject: Re: bug#18896: regressions in coreutils 8.23 on Yosemite Date: Tue, 04 Nov 2014 01:29:39 +0100
On 11/03/2014 10:58 PM, Jack Howarth wrote: > On Mon, Nov 03, 2014 at 03:16:58PM +0100, Pádraig Brady wrote: >> On 10/31/2014 05:03 PM, Pádraig Brady wrote: >>> On 10/31/2014 03:41 PM, Jack Howarth wrote: >>>> On Fri, Oct 31, 2014 at 03:56:06AM +0000, Pádraig Brady wrote: >>>>> On 10/31/2014 03:30 AM, Jack Howarth wrote: >>>>>> On Fri, Oct 31, 2014 at 02:29:05AM +0000, Pádraig Brady wrote: >>>>>>> >>>>>>> So linkat() is now available but doesn't support hardlinks to symlinks >>>>>>> contrary to the POSIX spec. So it would be best we consider linkat() >>>>>>> unavailable, which can be done manually like: >>>>>>> >>>>>>> ac_cv_func_linkat=no ./configure >>>>>>> >>>>>>> We'll have to augment the gnulib linkat check to actually check >>>>>>> that linkat() works, rather than just being available. >>>>>> >>>>>> Passing ac_cv_func_linkat=no to configure and using your attached patch >>>>>> results in a large number of failures on x86_64-apple-darwin14. >>>>> >>>>> Good that's better. coreutils tests have passed, and you're getting >>>>> to gnulib issues below. >> >> I pushed the following slightly different more general patch >> to gnulib to address this issue: >> http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=c8e57ce5 >> >> thanks, >> Pádraig. > > Pádraig, > I puzzled out the problem with the strtoll test compilation. I have > been using... > > ./configure CPPFLAGS="-Wall -std=c89" > > but it appears it needs to be... > > ./configure CPPFLAGS="-Wall -std=c99" > > on darwin14. The current gnulib git at your commit and the changes... > > diff --git a/lib/symlinkat.c b/lib/symlinkat.c > index 9797f46..5df605f 100644 > --- a/lib/symlinkat.c > +++ b/lib/symlinkat.c > @@ -20,6 +20,8 @@ > > #include <unistd.h> > #include <errno.h> > +#include <string.h> > +#include <sys/stat.h> > > #if HAVE_SYMLINKAT > # undef symlinkat > diff --git a/tests/test-stdnoreturn.c b/tests/test-stdnoreturn.c > index a8aead8..04107bc 100644 > --- a/tests/test-stdnoreturn.c > +++ b/tests/test-stdnoreturn.c > @@ -18,6 +18,8 @@ > > #include <config.h> > > +#include <unistd.h> > + Thanks for tracking these missing includes down. We should add those to gnulib. > passes 'make' but the 'make check' produces 9 failures... > ../build-aux/test-driver: line 107: 3918 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-getlogin_r > ../build-aux/test-driver: line 107: 3925 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-getopt > ../build-aux/test-driver: line 107: 4246 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-linkat > ../build-aux/test-driver: line 107: 5143 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-readlinkat > ../build-aux/test-driver: line 107: 5498 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-snprintf-posix > ../build-aux/test-driver: line 107: 5522 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-sprintf-posix > ../build-aux/test-driver: line 107: 6031 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-unlinkat > ../build-aux/test-driver: line 107: 6225 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-vsnprintf-posix > ../build-aux/test-driver: line 107: 6238 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-vsprintf-posix > > which debug as... > > $ sudo lldb ./test-linkat > Password: > (lldb) target create "./test-linkat" > Current executable set to './test-linkat' (x86_64). > (lldb) r > Process 6515 launched: './test-linkat' (x86_64) > ./test-link.h:166: assertion 'func (BASE "b", BASE "link/") == -1' failed Note as mentioned before I'm going by the assertion message as the debugger line seems to be incorrect. Anyway it seems we'll need to augment the LINKAT_TRAILING_SLASH_BUG test in m4/linkat.m4 as per above. > $ sudo lldb ./test-readlinkat > (lldb) target create "./test-readlinkat" > Current executable set to './test-readlinkat' (x86_64). > (lldb) r > Process 6538 launched: './test-readlinkat' (x86_64) > ./test-readlink.h:71: assertion 'func (BASE "link2/", buf, sizeof buf) == -1' failed Seems like we'll have to add much the same trailing "/" test to m4/readlinkat.m4 like we've already done for m4/readlink.m4 I'm travelling at present so patches will be tardy. thanks for the testing so far, Pádraig.
Pádraig Brady <P <at> draigBrady.com>
:Jack Howarth <howarth <at> bromo.med.uc.edu>
:Message #52 received at 18896-done <at> debbugs.gnu.org (full text, mbox):
From: Pádraig Brady <P <at> draigBrady.com> To: Jack Howarth <howarth <at> bromo.med.uc.edu> Cc: 18896-done <at> debbugs.gnu.org Subject: Re: bug#18896: regressions in coreutils 8.23 on Yosemite Date: Sun, 31 May 2015 04:01:16 +0100
unarchive 18896 stop On 03/11/14 21:58, Jack Howarth wrote: > passes 'make' but the 'make check' produces 9 failures... > > ../build-aux/test-driver: line 107: 3918 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-getlogin_r > ../build-aux/test-driver: line 107: 3925 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-getopt > ../build-aux/test-driver: line 107: 4246 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-linkat > ../build-aux/test-driver: line 107: 5143 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-readlinkat > ../build-aux/test-driver: line 107: 5498 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-snprintf-posix > ../build-aux/test-driver: line 107: 5522 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-sprintf-posix > ../build-aux/test-driver: line 107: 6031 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-unlinkat > ../build-aux/test-driver: line 107: 6225 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-vsnprintf-posix > ../build-aux/test-driver: line 107: 6238 Abort trap: 6 "$@" > $log_file 2>&1 > FAIL: test-vsprintf-posix FYI coreutils + gnulib tests are now passing on Yosemite. Fixes include: http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=commitdiff;h=67db18c http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=c9cfa07 http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=c79f352 http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=e176ee0 http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=70e0e9e http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=b650986 http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=4f3dc0b http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=c8e57ce Pádraig.
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Sun, 28 Jun 2015 11:24:07 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.