Hi Jim, * Jim Meyering wrote on Sun, May 28, 2006 at 03:48:21PM CEST: > Ralf Wildenhues <[EMAIL PROTECTED]> wrote: > > > With coreutils 5.96, I get three failures on AIX 4.3.3, namely: > > cp/fail-perm, rm/inaccessible, help-version.
> > $ env VERBOSE=yes TESTS=help-version make check-TESTS > > [...] > > + 0< in-2578 1> out-2578 > > ../../src/dircolors: <internal>:54: unrecognized keyword > > OTHER_WRITABLERITABLE > > + echo FAIL: dircolors > > FAIL: dircolors > > Odd, indeed. > Does the generated file, dircolors.h, look alright? Well, it was still the one shipped with the 5.96 tarball. If I remove coreutils-5.96/src/dircolors.h, then the regenerated one in the build tree has white-space difference from the removed one. A `dircolors' program rebuilt with that headers gives the same error. > If yours looks the same, then that failure may be due to compiler > limitations. The string defined in that file is pretty long. > Which compiler are you using? /usr/vac/bin/cc aka "C for AIX Compiler, Version 6". But I don't think this is the source for the error. Tried rebuilding it with gcc-3.4.3 (in the same build tree, yes I know this is unreliable), and get the same error... (time passes) ... AIX strndup is severely broken, at least on 4.3.3 and 5.1, similar to its strnlen; see also[1]. See for example this test: $ cat >a.c <<\EOF #include <stdio.h> #include <stdlib.h> extern char *strndup (const char *, size_t); int main() { char *s = strndup ("STICKY_OTHER_WRITABLEx", 21); printf ("%s.\n", s); free (s); printf ("%s.\n", strndup("OTHER_WRITABLE 3", 14)); } EOF $ cc -o a a.c && ./a STICKY_OTHER_WRITABLE. OTHER_WRITABLERITABLE. And yes, that happens with GCC as well. They simply forget the final `\0', I guess. As also mentioned here[2], the strndup declaration is #ifdef'ed away behind a _LINUX_SOURCE_COMPAT define. I guess Autoconf should have a AC_FUNC_STRNLEN analogous to AC_FUNC_STRNLEN, and the Gnulib strnlen modules should use that. I don't know whether other buggy strn* functions exist on AIX. cut.c, dircolors.c, expand.c, and unexpand.c also use strndup. Cheers, Ralf [1] https://bugzilla.samba.org/show_bug.cgi?id=1097 [2] http://mailman.webdav.org/pipermail/cadaver/2004-April/000759.html _______________________________________________ Bug-coreutils mailing list Bug-coreutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-coreutils