[EMAIL PROTECTED] (Eric Blake) writes: > ls.c and stty.c use ioctl without including <sys/ioctl.h>, > triggering a warning about implicit declarations. Even worse, since > ioctl is a varargs function, this is undefined C (luckily, it > compiles and links okay on cygwin).
Thanks for reporting this. POSIX says that <stropt.h> declares ioctl, so let's try including that instead. > id.c calls error (which ultimately gets to the printf family) with a format > %u for uid_t and gid_t. %lu should be good enough; id.c uses that elsewhere. If we run into hosts where uid_t and gid_t are wider than long int, then we can worry about it later. (Such hosts would not conform to pre-2001 POSIX.) I installed this patch: 2005-07-08 Paul Eggert <[EMAIL PROTECTED]> Fix porting problems reported by Eric Blake. * configure.ac: Add check for HAVE_FIONREAD_IN_SYS_IOCTL. * m4/jm-macros.m4 (gl_CHECK_ALL_HEADERS): Check for stropt.h. * src/cat.c, src/ls.c, src/stty.c: Include stropt.h if available, because POSIX says that's where ioctl is declared. * src/cat.c: Use HAVE_FIONREAD_IN_SYS_IOCTL instead of _POSIX_SOURCE to decide whether to include <sys/ioctl.h>. * src/id.c (print_user): Don't assume uid fits in unsigned int. (print_group): Likewise, for gid. Index: configure.ac =================================================================== RCS file: /fetish/cu/configure.ac,v retrieving revision 1.57 diff -p -u -r1.57 configure.ac --- configure.ac 18 May 2005 19:27:39 -0000 1.57 +++ configure.ac 8 Jul 2005 22:49:47 -0000 @@ -244,6 +244,12 @@ if test $jm_cv_sys_tiocgwinsz_needs_term [Define if your system defines TIOCGWINSZ in sys/pty.h.]) fi +# For src/cat.c. +AC_CHECK_DECL([FIONREAD], + [AC_DEFINE([HAVE_FIONREAD_IN_SYS_IOCTL], 1, + [Define to 1 if <sys/ioctl.h> defines FIONREAD.])], + [], [#include <sys/ioctl.h>]) + # For src/kill.c. AC_CHECK_DECLS([strsignal, sys_siglist, _sys_siglist, __sys_siglist], , , [AC_INCLUDES_DEFAULT Index: m4/jm-macros.m4 =================================================================== RCS file: /fetish/cu/m4/jm-macros.m4,v retrieving revision 1.224 diff -p -u -r1.224 jm-macros.m4 --- m4/jm-macros.m4 3 Jul 2005 09:30:00 -0000 1.224 +++ m4/jm-macros.m4 8 Jul 2005 22:49:47 -0000 @@ -196,6 +196,7 @@ AC_DEFUN([gl_CHECK_ALL_HEADERS], stdlib.h \ stdint.h \ string.h \ + stropt.h \ sys/filsys.h \ sys/fs/s5param.h \ sys/fs_types.h \ Index: src/cat.c =================================================================== RCS file: /fetish/cu/src/cat.c,v retrieving revision 1.102 diff -p -u -r1.102 cat.c --- src/cat.c 16 Jun 2005 21:40:43 -0000 1.102 +++ src/cat.c 8 Jul 2005 22:49:48 -0000 @@ -27,7 +27,10 @@ #include <stdio.h> #include <getopt.h> #include <sys/types.h> -#ifndef _POSIX_SOURCE +#if HAVE_STROPT_H +# include <stropt.h> +#endif +#if HAVE_FIONREAD_IN_SYS_IOCTL # include <sys/ioctl.h> #endif #include "system.h" Index: src/id.c =================================================================== RCS file: /fetish/cu/src/id.c,v retrieving revision 1.85 diff -p -u -r1.85 id.c --- src/id.c 30 May 2005 07:33:00 -0000 1.85 +++ src/id.c 8 Jul 2005 22:49:48 -0000 @@ -202,7 +202,8 @@ print_user (uid_t uid) pwd = getpwuid (uid); if (pwd == NULL) { - error (0, 0, _("cannot find name for user ID %u"), uid); + error (0, 0, _("cannot find name for user ID %lu"), + (unsigned long int) uid); ok = false; } } @@ -225,7 +226,8 @@ print_group (gid_t gid) grp = getgrgid (gid); if (grp == NULL) { - error (0, 0, _("cannot find name for group ID %u"), gid); + error (0, 0, _("cannot find name for group ID %lu"), + (unsigned long int) gid); ok = false; } } Index: src/ls.c =================================================================== RCS file: /fetish/cu/src/ls.c,v retrieving revision 1.392 diff -p -u -r1.392 ls.c --- src/ls.c 3 Jul 2005 09:31:19 -0000 1.392 +++ src/ls.c 8 Jul 2005 22:49:48 -0000 @@ -60,6 +60,10 @@ #include <getopt.h> #include <signal.h> +#if HAVE_STROPT_H +# include <stropt.h> +#endif + /* Use SA_NOCLDSTOP as a proxy for whether the sigaction machinery is present. */ #ifndef SA_NOCLDSTOP Index: src/stty.c =================================================================== RCS file: /fetish/cu/src/stty.c,v retrieving revision 1.136 diff -p -u -r1.136 stty.c --- src/stty.c 3 Jul 2005 07:21:03 -0000 1.136 +++ src/stty.c 8 Jul 2005 22:49:48 -0000 @@ -54,6 +54,10 @@ #include <getopt.h> #include <stdarg.h> +#if HAVE_STROPT_H +# include <stropt.h> +#endif + #include "system.h" #include "error.h" #include "fd-reopen.h" _______________________________________________ Bug-coreutils mailing list Bug-coreutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-coreutils