On Thu, Oct 15, 2015 at 8:59 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote: > On Thursday 15 October 2015 20:32:45 Miklos Szeredi wrote: >> > In my other patches I got review comments that kernel headers should not >> > use <stdint.h> and also Documentation/CodingStyle section 5 says: >> > >> > (e) Types safe for use in userspace. >> > >> > In certain structures which are visible to userspace, we cannot >> > require C99 types and cannot use the 'u32' form above. Thus, we >> > use __u32 and similar types in all structures which are shared >> > with userspace. >> >> Ok, if you cannot require C99, then the __uXX types are the way to go. >> But for the fuse API we *can* use C99 types, nothing preventing us >> from doing it. > > What the sentence above means is that you should not rely on the > user including <stdint.h> before including a kernel header, and > that kernel headers are not allowed to include <stdint.h> themselves, > because that would break any pre-C99 user space that defines types > with the same names in their own headers and that relies on that > header not to be included implicitly. > > It's possible that it has never been a problem for the fuse headers, > but it has been a problem for other headers in the past and what > Mikko is trying to achieve is to ensure that none of the kernel > headers do this so we can make it an error in 'make headers_install'. "in some cases including <stdint.h> might be a problem" is not a very strong argument in favour of making it an error. And since it would be a step backwards for the fuse header I object to making it an error. If this is really such a big issue, then why not make it a warning (and add a mechanism to silence that warning)? Thanks, Miklos -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html