"Dmitry V. Levin" <[email protected]> writes: > Include <stddef.h> (guarded by #ifndef __KERNEL__) to fix the following > linux/sysctl.h userspace compilation errors: > > /usr/include/linux/sysctl.h:38:2: error: unknown type name 'size_t' > size_t *oldlenp; > /usr/include/linux/sysctl.h:40:2: error: unknown type name 'size_t' > size_t newlen; > > This also fixes userspace compilation of uapi headers that include > linux/sysctl.h, e.g. linux/netfilter.h.
Are these compilation errors new? Perhaps we should just refactor linux/netfilter.h not to depend on linux/sysctl.h. The definitions in linux/sysctl.h are essentially dead at this point and I would not expect any new, are really not any old programs to depend on linux/sysctl.h. As I don't expect new users of linux/sysctl.h I don't see how changing anything in the header is meaningful. Either the old users work or the old users are broken. Eric > Signed-off-by: Dmitry V. Levin <[email protected]> > --- > include/uapi/linux/sysctl.h | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/include/uapi/linux/sysctl.h b/include/uapi/linux/sysctl.h > index d2b1215..c6d18aa 100644 > --- a/include/uapi/linux/sysctl.h > +++ b/include/uapi/linux/sysctl.h > @@ -26,6 +26,10 @@ > #include <linux/types.h> > #include <linux/compiler.h> > > +#ifndef __KERNEL__ > +#include <stddef.h> /* For size_t. */ > +#endif > + > #define CTL_MAXNAME 10 /* how many path components do we allow > in a > call to sysctl? In other words, what is > the largest acceptable value for the nlen

