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.
