Jim Meyering <[EMAIL PROTECTED]> wrote: > I've just run the test-xprintf-posix.sh test on NetBSD 1.6 > and saw this failure: > > ... > make[3]: Leaving directory `/tmp/coreutils-6.9.89.12-8e412/gnulib-tests' > make check-TESTS > make[3]: Entering directory `/tmp/coreutils-6.9.89.12-8e412/gnulib-tests' > 4,19c4,7 > < 0x0p+0 33 > < inf 33 > < -inf 33 > < inf 33 > < 12.750000 33 > < 1234567.000000 33 > < -0.031250 33 > < 0.000000 33 > < 00001234.000000 33 > < 1234 33 > < 12.750000 33 > < 1234567.000000 33 > < -0.031250 33 > < 0.000000 33 > < 00001234.000000 33 > < 1234 33 > --- >> a 0 >> a 0 >> a 0 >> 000000000a 0 > 31a20,31 >> 1.27500 33 >> 1.23457 33 >> -3.12500 33 >> 0.00000 33 >> 00001.23400 33 >> 1 33 >> 1.27500 33 >> 1.23457 33 >> -3.12500 33 >> 0.00000 33 >> 00001.23400 33 >> 1 33 > FAIL: test-xprintf-posix.sh
This failure was due to NLS. If I run ./configure, the test fails. If I run it with --disable-nls, the test succeeds. The trouble was this definition from libintl.h: #define vprintf libintl_vprintf That ends up overriding (in xprintf.c) the one from stdio.h: #if 1 # if 1 # define vprintf rpl_vprintf And since the gettext installation there is out of date, coreutils is linked with the older, less robust, libintl_vprintf and fails the test. As for how to fix the use, in gnulib/lib/xprintf.c, ... xprintf.c uses "gettext.h" for definitions/decls of gettext. It gets stdio.h via "xprintf.h". I could opt not to include "gettext.h", then s/gettext/dcgettext/ and pull a few #ifdefs, #defines and a declaration out of gettext.h, but that sounds too ugly. Anyone see a better way?