Hi Jim, > 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.
Oh right. I'm applying the appended patch to GNU gettext. The bug will thus be fixed after I release gettext 0.17.1 and after this newer gettext release is installed on the target machine. 2007-11-28 Bruno Haible <[EMAIL PROTECTED]> * libgnuintl.h.in (fprintf, vfprintf, printf, vprintf, sprintf, vsprintf, snprintf, vsnprintf, asprintf, vasprintf): Don't override definitions made by gnulib. Reported by Jim Meyering <[EMAIL PROTECTED]>. --- libgnuintl.h.in 2 Nov 2007 00:28:53 -0000 1.23 +++ libgnuintl.h.in 28 Nov 2007 14:18:17 -0000 @@ -322,13 +322,18 @@ # include <varargs.h> #endif +#if !(defined fprintf && defined _GL_STDIO_H) /* don't override gnulib */ #undef fprintf #define fprintf libintl_fprintf extern int fprintf (FILE *, const char *, ...); +#endif +#if !(defined vfprintf && defined _GL_STDIO_H) /* don't override gnulib */ #undef vfprintf #define vfprintf libintl_vfprintf extern int vfprintf (FILE *, const char *, va_list); +#endif +#if !(defined printf && defined _GL_STDIO_H) /* don't override gnulib */ #undef printf #if defined __NetBSD__ || defined __BEOS__ || defined __CYGWIN__ || defined __MINGW32__ /* Don't break __attribute__((format(printf,M,N))). @@ -338,36 +343,51 @@ #endif #define printf libintl_printf extern int printf (const char *, ...); +#endif +#if !(defined vprintf && defined _GL_STDIO_H) /* don't override gnulib */ #undef vprintf #define vprintf libintl_vprintf extern int vprintf (const char *, va_list); +#endif +#if !(defined sprintf && defined _GL_STDIO_H) /* don't override gnulib */ #undef sprintf #define sprintf libintl_sprintf extern int sprintf (char *, const char *, ...); +#endif +#if !(defined vsprintf && defined _GL_STDIO_H) /* don't override gnulib */ #undef vsprintf #define vsprintf libintl_vsprintf extern int vsprintf (char *, const char *, va_list); +#endif #if @HAVE_SNPRINTF@ +#if !(defined snprintf && defined _GL_STDIO_H) /* don't override gnulib */ #undef snprintf #define snprintf libintl_snprintf extern int snprintf (char *, size_t, const char *, ...); +#endif +#if !(defined vsnprintf && defined _GL_STDIO_H) /* don't override gnulib */ #undef vsnprintf #define vsnprintf libintl_vsnprintf extern int vsnprintf (char *, size_t, const char *, va_list); +#endif #endif #if @HAVE_ASPRINTF@ +#if !(defined asprintf && defined _GL_STDIO_H) /* don't override gnulib */ #undef asprintf #define asprintf libintl_asprintf extern int asprintf (char **, const char *, ...); +#endif +#if !(defined vasprintf && defined _GL_STDIO_H) /* don't override gnulib */ #undef vasprintf #define vasprintf libintl_vasprintf extern int vasprintf (char **, const char *, va_list); +#endif #endif