GNU bug report logs - #18896
regressions in coreutils 8.23 on Yosemite

Previous Next

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.

Full log


View this message in rfc822 format

From: Jack Howarth <howarth <at> bromo.med.uc.edu>
To: Pádraig Brady <P <at> draigBrady.com>
Cc: 18896 <at> debbugs.gnu.org
Subject: 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





This bug report was last modified 10 years and 72 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.