On Wed, Dec 04, 2013 at 01:54:56PM -0200, Lourival Vieira Neto wrote: > >> > Why sys/stddef.h? Just keep them in sys/types.h please. > >> > >> To avoid redefining ptrdiff_t on stddef.h. I think it would be more > >> coherent, since ptrdiff_t is a stddef.h definition and stddef.h > >> shouldn't include sys/types.h. > > > > Weak reason. stddef.h must not include sys/types.h, but it doesn't mean > > they can't both define it. > > I didn't state that it can't be defined by both. I just said it would > be more coherent to define it in just one place. Why it is a bad idea?
Because doing it *right* is a bigger cleanup than you've done(*) and the way consistent with the scheme already in place for handling these issues is what Matt posted. (*) A complete scheme for doing it right removes all the _BSD_FOO_T_ drivel and ifdefs scattered in userland headers in favor of: - a single header file that defines all the needed types prefixed with __, which can be included anywhere; - in userland, include-guarded header files akin to sys/null.h that define single or common groups of the names without the __ prefixes, e.g. <types/size_t.h>; - including these header files in the proper places, such as in standard userland header files like stddef.h; - in the kernel, a single header file that defines all the types without the __, that is or is exposed to sys/types.h but does not affect userland. This is not a small undertaking; don't try it at home. :-/ It is also probably impossible to pull off cleanly until the kernel/userland header namespace gets cleaned. -- David A. Holland dholl...@netbsd.org