From: Arnd Bergmann <arnd@arndb.de>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: Am?rico Wang <xiyou.wangcong@gmail.com>,
Caveh Jalali <ecaveh@gmail.com>,
linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH] warn about use of uninstalled kernel headers
Date: Mon, 21 Sep 2009 16:37:12 +0200 [thread overview]
Message-ID: <200909211637.12983.arnd@arndb.de> (raw)
In-Reply-To: <20090918045259.GA23333@merkur.ravnborg.org>
On Friday 18 September 2009, Sam Ravnborg wrote:
> > > I think we should no longer have the include2 directory at all with new kernels.
> > >
> > > LINUXINCLUDE already contains the right path in theory:
> > >
> > > LINUXINCLUDE := -Iinclude \
> > > $(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include) \
> > > -I$(srctree)/arch/$(hdr-arch)/include \
> > > -include include/linux/autoconf.h
> >
> > Hmm, at least in mmotm, we still have include2...
> >
> > Maybe Sam is queueing the patches to remove include2?
> I have them queued - yes.
> But as they never hit -next they will wait another cycle.
Variations of this are starting to turn into a FAQ. How about
printing a useful warning when someone tries to use the kernel
headers without installing them first?
Arnd <><
---
User applications frequently hit problems when they try to use
the kernel headers directly, rather than the exported headers.
This adds an explicit warning for this case, and points to
a URL holding an explanation of why this is wrong and what
to do about it.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
include/linux/kernel.h | 6 ++++++
| 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index d6320a3..f392d72 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -656,6 +656,12 @@ extern int do_sysinfo(struct sysinfo *info);
#endif /* __KERNEL__ */
+#ifndef __EXPORTED_HEADERS__
+#ifndef __KERNEL__
+#warning Attempt to use kernel headers from user space, see http://kernelnewbies.org/KernelHeaders
+#endif /* __KERNEL__ */
+#endif /* __EXPORTED_HEADERS__ */
+
#define SI_LOAD_SHIFT 16
struct sysinfo {
long uptime; /* Seconds since boot */
--git a/scripts/headers_install.pl b/scripts/headers_install.pl
index c6ae405..b89ca2c 100644
--- a/scripts/headers_install.pl
+++ b/scripts/headers_install.pl
@@ -20,7 +20,7 @@ use strict;
my ($readdir, $installdir, $arch, @files) = @ARGV;
-my $unifdef = "scripts/unifdef -U__KERNEL__";
+my $unifdef = "scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__";
foreach my $file (@files) {
local *INFILE;
next prev parent reply other threads:[~2009-09-21 14:37 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-17 2:30 [patch] Makefile: can't build modules outside the kernel tree if it was built using O= Caveh Jalali
2009-09-17 2:30 ` Caveh Jalali
2009-09-17 3:15 ` Américo Wang
2009-09-17 3:15 ` Américo Wang
2009-09-17 4:40 ` Caveh Jalali
2009-09-17 4:40 ` Caveh Jalali
2009-09-17 11:45 ` Arnd Bergmann
2009-09-17 21:49 ` Caveh Jalali
2009-09-17 21:49 ` Caveh Jalali
2009-09-18 9:28 ` Arnd Bergmann
2009-09-18 11:15 ` Arnd Bergmann
2009-09-18 1:49 ` Américo Wang
2009-09-18 1:49 ` Américo Wang
2009-09-18 4:52 ` Sam Ravnborg
2009-09-21 14:37 ` Arnd Bergmann [this message]
2009-09-22 4:43 ` [PATCH] warn about use of uninstalled kernel headers Sam Ravnborg
2009-09-22 13:09 ` Arnd Bergmann
2009-09-27 8:44 ` Sam Ravnborg
2009-09-19 9:06 ` [patch] Makefile: can't build modules outside the kernel tree if it was built using O= Sam Ravnborg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200909211637.12983.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=ecaveh@gmail.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sam@ravnborg.org \
--cc=xiyou.wangcong@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.