On Sun, 14 Mar 2021, Zack Weinberg wrote: > I endorse this change. For glibc, if the header file containing the > function prototype doesn't also provide everything you need to call > the function, it's a bug (except for a few cases where the relevant > standards prevent us from doing this, e.g. a function that calls > vprintf will need the macros in <stdarg.h>, but the C standard > specifically forbids <stdio.h> to include <stdarg.h>). And in particular, where older POSIX doesn't require the types used in the function declarations to be defined by a header, but permits them to be defined by virtue of the general *_t reservation in POSIX (that's not in ISO C), it's appropriate to define those types whenever declaring functions that use them, rather than only for the newer POSIX versions that require those types to be defined alongside declaring the functions that use them. (So we could simplify some of the conditionals in unistd.h and remove the "# define uid_t __uid_t" and similar hacks in conform/data/unistd.h-data, for example.) -- Joseph S. Myers joseph@xxxxxxxxxxxxxxxx