Re: [PATCH]kernel.h Fix #warning message web address.

Arnd Bergmann
2010-06-30T21:37:05Z

On Wednesday 30 June 2010 23:20:42 Justin P. Mattock wrote:
>
> > Hehe, ugly. How about making it a single string? GCC preprocessor
> > documentation suggests the same anyway ...
> >
> > Neither `#error' nor `#warning' macro-expands its argument.
> > Internal whitespace sequences are each replaced with a single space.
> > The line must consist of complete tokens. It is wisest to make the
> > argument of these directives be a single string constant; this avoids
> > problems with apostrophes and the like.
> >

What this is telling you is to put the text into a string constant, which
means you add quotation marks at the beginning and end of the line, like

#warning "see http://example.com/"

> From 45f24db45faa06aad01cfc62ff4b475380e5cb11 Mon Sep 17 00:00:00 2001
> From: Justin P. Mattock <justinmattock@gmail.com>
> Date: Wed, 30 Jun 2010 14:06:18 -0700
> Subject: [PATCH]kernel.h Fix #warning message according to the GCC
> preprocessor docs.

BTW, your mail client adds incorrect word wrapping.

> --- a/include/linux/kernel.h
> +++ b/include/linux/kernel.h
> @@ -730,7 +730,7 @@ extern int do_sysinfo(struct sysinfo *info);
>
> #ifndef __EXPORTED_HEADERS__
> #ifndef __KERNEL__
> -#warning Attempt to use kernel headers from user space, see
> http://kernelnewbies.org/KernelHeaders
> +#warning Attempt to use kernel headers from user space!
> #endif /* __KERNEL__ */
> #endif /* __EXPORTED_HEADERS__ */

Here, too.

Also, since you're already touching the warning message, it would be
nice to move it from kernel.h to types.h, which is much more commonly
used. When I introduced the message, I made the mistake to think
that kernel.h was universally used by the majority of all headers,
which turned out to be wrong. linux/types.h (or possibly linux/stddef.h)
seems to be the most commonly used one, so that would be a more
adequate place.

Arnd