Re: [PATCH][RESEND] do not redefine userspace's NULL #define

From: Martin Schwidefsky
Date: Mon Apr 16 2012 - 03:44:07 EST


On Fri, 13 Apr 2012 21:02:14 +0000
Arnd Bergmann <arnd@xxxxxxxx> wrote:

> On Friday 13 April 2012, Linus Torvalds wrote:
> > There's no way user should ever include the linux internal stddef.h.
> >
> > And quite frankly, kernel-external definitions of NULL have
> > traditionally been pure sh*t (ie plain "0" without the cast to a
> > pointer), so I'm not entirely convinced about this patch.
> >
> > So what is the actual thing this helps with?
>
> I think it used to get included implictly though other exported
> kernel headers, but I found only one instance where this is still
> true, in the s390 version of asm/ptrace.h.
>
> Martin, does this work for you?
>
> 8<-----
> headers: do not export linux/stddef.h
>
> There is no reason to export linux/stddef.h and users should never
> include it because the header conflicts with the standard stddef.h.
>
> The only other exported header file that actually includes linux/stddef.h
> is the s390 asm/ptrace.h, but there is no reason for it to do so, so
> we can remove both the export and the inclusion.
> When the file is no longer exported, we can also remove the extra lines
> that attempt to make it safe for inclusion
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

Kernel compiles and boots. After protecting the stddef.h #include in
include/linux/posix_types.h with #ifdef __KERNEL__ gdb and strace
could be build as well.

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/