Prev: [PATCH 06/11] oom: kill duplicate OOM_DISABLE check
Next: x86: enlightenment for ticket spin locks - base implementation
From: Jiri Kosina on 30 Jun 2010 05:50 On Tue, 29 Jun 2010, Justin P. Mattock wrote: > Playing around with a printk program I noticed that the #warning > message is incomplete(when using kernel headers for userspace): > > gcc printk.c -o printk > In file included from printk.c:3: > include/linux/kernel.h:733:2: warning: #warning Attempt to use kernel headers from user space, see http: > > My guess for the web address not being displayed is "//" is treated as a comment. > So after changing "http://" to "www." I get the web address.(using firefox with this > address takes me right to the location). The warning looks like this: > > In file included from printk.c:3: > warning: #warning Attempt to use kernel headers from user space, see www.kernelnewbies.org/KernelHeaders > > Signed-off-by: Justin P. Mattock <justinmattock(a)gmail.com> > > --- > include/linux/kernel.h | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/include/linux/kernel.h b/include/linux/kernel.h > index 8317ec4..768196a 100644 > --- 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, see www.kernelnewbies.org/KernelHeaders > #endif /* __KERNEL__ */ > #endif /* __EXPORTED_HEADERS__ */ 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. -- Jiri Kosina SUSE Labs, Novell Inc. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Justin P. Mattock on 30 Jun 2010 09:40 On 06/30/2010 02:48 AM, Jiri Kosina wrote: > On Tue, 29 Jun 2010, Justin P. Mattock wrote: > >> Playing around with a printk program I noticed that the #warning >> message is incomplete(when using kernel headers for userspace): >> >> gcc printk.c -o printk >> In file included from printk.c:3: >> include/linux/kernel.h:733:2: warning: #warning Attempt to use kernel headers from user space, see http: >> >> My guess for the web address not being displayed is "//" is treated as a comment. >> So after changing "http://" to "www." I get the web address.(using firefox with this >> address takes me right to the location). The warning looks like this: >> >> In file included from printk.c:3: >> warning: #warning Attempt to use kernel headers from user space, see www.kernelnewbies.org/KernelHeaders >> >> Signed-off-by: Justin P. Mattock<justinmattock(a)gmail.com> >> >> --- >> include/linux/kernel.h | 2 +- >> 1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/include/linux/kernel.h b/include/linux/kernel.h >> index 8317ec4..768196a 100644 >> --- 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, see www.kernelnewbies.org/KernelHeaders >> #endif /* __KERNEL__ */ >> #endif /* __EXPORTED_HEADERS__ */ > > 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. > before the www. idea, I was thinking maybe sending the address to a file somewhere in documentation something in this area: #warning Using kernel headers from user space, please see Documentation/* but I still need to re-read what the above says, seems a bit technical.. Justin P. Mattock -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Randy Dunlap on 30 Jun 2010 17:30 On Wed, 30 Jun 2010 14:20:42 -0700 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. Doesn't that mean just put double quotation marks around the entire message string?? > o.k. jiri, here is what I came up with, after re-reading and looking at > other in the kernel(below). > > > > From 45f24db45faa06aad01cfc62ff4b475380e5cb11 Mon Sep 17 00:00:00 2001 > From: Justin P. Mattock <justinmattock(a)gmail.com> > Date: Wed, 30 Jun 2010 14:06:18 -0700 > Subject: [PATCH]kernel.h Fix #warning message according to the GCC > preprocessor docs. > > received this #warning from a simple printk program and noticed the web > address is not showing up: > gcc printk.c -o printk > In file included from printk.c:3: > include/linux/kernel.h:733:2: warning: #warning Attempt to use kernel > headers from user space, see http: > > after the changes the warning should just say: > #warning Attempt to use kernel headers from user space! > > Signed-off-by: Justin P. Mattock <justinmattock(a)gmail.com> > --- > include/linux/kernel.h | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/include/linux/kernel.h b/include/linux/kernel.h > index 8317ec4..b542961 100644 > --- 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__ */ > > -- > 1.7.1.rc1.21.gf3bd6 > > > now I'm wondering if there should be a lead to the documentation with > this web address(seems grep is not finding anything that I might be able > to use).or just leave as is, and let people connect-the-dots!! > > let me know.. > > Justin P. Mattock > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo(a)vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ --- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Justin P. Mattock on 30 Jun 2010 17:30 > 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. > o.k. jiri, here is what I came up with, after re-reading and looking at other in the kernel(below). From 45f24db45faa06aad01cfc62ff4b475380e5cb11 Mon Sep 17 00:00:00 2001 From: Justin P. Mattock <justinmattock(a)gmail.com> Date: Wed, 30 Jun 2010 14:06:18 -0700 Subject: [PATCH]kernel.h Fix #warning message according to the GCC preprocessor docs. received this #warning from a simple printk program and noticed the web address is not showing up: gcc printk.c -o printk In file included from printk.c:3: include/linux/kernel.h:733:2: warning: #warning Attempt to use kernel headers from user space, see http: after the changes the warning should just say: #warning Attempt to use kernel headers from user space! Signed-off-by: Justin P. Mattock <justinmattock(a)gmail.com> --- include/linux/kernel.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 8317ec4..b542961 100644 --- 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__ */ -- 1.7.1.rc1.21.gf3bd6 now I'm wondering if there should be a lead to the documentation with this web address(seems grep is not finding anything that I might be able to use).or just leave as is, and let people connect-the-dots!! let me know.. Justin P. Mattock -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Arnd Bergmann on 30 Jun 2010 17:40
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(a)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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |