mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Howells <dhowells@redhat.com>
To: torvalds@osdl.org
Cc: linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org,
	David Howells <dhowells@redhat.com>
Subject: [PATCH 06/40] UAPI: Differentiate userspace build and kernelspace build include path sets [ver #3]
Date: Thu, 28 Jul 2011 16:50:21 +0100	[thread overview]
Message-ID: <20110728155021.16618.17563.stgit@warthog.procyon.org.uk> (raw)
In-Reply-To: <20110728154920.16618.89358.stgit@warthog.procyon.org.uk>

Differentiate userspace build and kernelspace build (LINUXINCLUDE) include path
sets by adding a new make variable (USERINCLUDE) that has everything barring
the kernel-specific include paths, and then make LINUXINCLUDE simply preface
that with the kernel-specific include paths.

Then use USERINCLUDE in building the x86 boot code.

Signed-off-by: David Howells <dhowells@redhat.com>
---

 Makefile                          |   12 ++++++++----
 arch/x86/boot/Makefile            |    4 ++--
 arch/x86/boot/mkcpustr.c          |    2 ++
 arch/x86/include/asm/cpufeature.h |    2 ++
 arch/x86/kernel/cpu/mkcapflags.pl |    5 ++++-
 5 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/Makefile b/Makefile
index 68834a5..91598e4 100644
--- a/Makefile
+++ b/Makefile
@@ -355,16 +355,20 @@ AFLAGS_KERNEL	=
 CFLAGS_GCOV	= -fprofile-arcs -ftest-coverage
 
 
+# Use USERINCLUDE when you must reference the UAPI directories only.
+USERINCLUDE    := \
+		-I$(srctree)/arch/$(hdr-arch)/include/uapi \
+		-Iinclude/uapi \
+                   $(if $(KBUILD_SRC), -I$(srctree)/include) \
+                   -include include/generated/autoconf.h
+
 # Use LINUXINCLUDE when you must reference the include/ directory.
 # Needed to be compatible with the O= option
 LINUXINCLUDE    := \
 		-I$(srctree)/arch/$(hdr-arch)/include \
 		-Iarch/$(hdr-arch)/include/generated \
-		-I$(srctree)/arch/$(hdr-arch)/include/uapi \
 		-Iinclude \
-		-Iinclude/uapi \
-                   $(if $(KBUILD_SRC), -I$(srctree)/include) \
-                   -include include/generated/autoconf.h
+		$(USERINCLUDE)
 
 KBUILD_CPPFLAGS := -D__KERNEL__
 
diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
index 95365a8..86a85aa 100644
--- a/arch/x86/boot/Makefile
+++ b/arch/x86/boot/Makefile
@@ -37,7 +37,7 @@ setup-y		+= video-bios.o
 targets		+= $(setup-y)
 hostprogs-y	:= mkcpustr tools/build
 
-HOST_EXTRACFLAGS += $(LINUXINCLUDE)
+HOST_EXTRACFLAGS += $(USERINCLUDE)
 
 $(obj)/cpu.o: $(obj)/cpustr.h
 
@@ -51,7 +51,7 @@ $(obj)/cpustr.h: $(obj)/mkcpustr FORCE
 
 # How to compile the 16-bit code.  Note we always compile for -march=i386,
 # that way we can complain to the user if the CPU is insufficient.
-KBUILD_CFLAGS	:= $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \
+KBUILD_CFLAGS	:= $(USERINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \
 		   -DDISABLE_BRANCH_PROFILING \
 		   -Wall -Wstrict-prototypes \
 		   -march=i386 -mregparm=3 \
diff --git a/arch/x86/boot/mkcpustr.c b/arch/x86/boot/mkcpustr.c
index 919257f..4579eff 100644
--- a/arch/x86/boot/mkcpustr.c
+++ b/arch/x86/boot/mkcpustr.c
@@ -15,6 +15,8 @@
 
 #include <stdio.h>
 
+#include "../include/asm/required-features.h"
+#include "../include/asm/cpufeature.h"
 #include "../kernel/cpu/capflags.c"
 
 int main(void)
diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
index 4258aac..38ba7a6 100644
--- a/arch/x86/include/asm/cpufeature.h
+++ b/arch/x86/include/asm/cpufeature.h
@@ -4,7 +4,9 @@
 #ifndef _ASM_X86_CPUFEATURE_H
 #define _ASM_X86_CPUFEATURE_H
 
+#ifndef _ASM_X86_REQUIRED_FEATURES_H
 #include <asm/required-features.h>
+#endif
 
 #define NCAPINTS	10	/* N 32-bit words worth of info */
 
diff --git a/arch/x86/kernel/cpu/mkcapflags.pl b/arch/x86/kernel/cpu/mkcapflags.pl
index dfea390..6c3c4f1 100644
--- a/arch/x86/kernel/cpu/mkcapflags.pl
+++ b/arch/x86/kernel/cpu/mkcapflags.pl
@@ -8,7 +8,10 @@
 open(IN, "< $in\0")   or die "$0: cannot open: $in: $!\n";
 open(OUT, "> $out\0") or die "$0: cannot create: $out: $!\n";
 
-print OUT "#include <asm/cpufeature.h>\n\n";
+print OUT "#ifndef _ASM_X86_CPUFEATURE_H\n";
+print OUT "#include <asm/cpufeature.h>\n";
+print OUT "#endif\n";
+print OUT "\n";
 print OUT "const char * const x86_cap_flags[NCAPINTS*32] = {\n";
 
 while (defined($line = <IN>)) {


  parent reply	other threads:[~2011-07-28 15:50 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-28 15:49 [PATCH 00/40] UAPI header file split " David Howells
2011-07-28 15:49 ` [PATCH 01/40] UAPI: Add script to convert #include "..." to #include <path/...> in sys headers " David Howells
2011-07-28 15:49 ` [PATCH 02/40] UAPI: Convert #include "..." to #include <path/...> in kernel system " David Howells
2011-07-28 15:49 ` [PATCH 03/40] UAPI: Add script to audit drivers/gpu/ for #including system headers with "..." " David Howells
2011-07-28 15:49 ` [PATCH 04/40] UAPI: Convert #include "..." to #include <path/...> in kernel system headers " David Howells
2011-07-28 15:50 ` [PATCH 05/40] UAPI: Add include/uapi/ directories to build " David Howells
2011-07-28 15:50 ` David Howells [this message]
2011-07-28 15:50 ` [PATCH 07/40] UAPI: Fix AHZ multiple inclusion when __KERNEL__ is removed " David Howells
2011-07-28 15:50 ` [PATCH 08/40] UAPI: ac_etime in linux/acct.h must keep its __KERNEL__ guards " David Howells
2011-07-28 15:50 ` [PATCH 09/40] UAPI: Make linux/patchkey.h easier to parse " David Howells
2011-07-28 15:50 ` [PATCH 10/40] UAPI: Don't have a #elif clause in a __KERNEL__ guard in linux/soundcard.h " David Howells
2011-07-28 15:51 ` [PATCH 11/40] UAPI: Fix nested __KERNEL__ guards in video/edid.h " David Howells
2011-07-28 15:51 ` [PATCH 12/40] UAPI: Split trivial #if defined(__KERNEL__) && X conditionals " David Howells
2011-07-28 15:51 ` [PATCH 13/40] UAPI: Remove the inclusion of linux/types.h from x86's asm/page.h " David Howells
2011-07-28 15:51 ` [PATCH 14/40] UAPI: Fix definition of HZ in asm-generic/param.h " David Howells
2011-07-28 15:51 ` [PATCH 15/40] UAPI: elf_read_implies_exec() is a kernel-only feature - so hide from userspace " David Howells
2011-07-28 15:51 ` [PATCH 16/40] UAPI: Fix sigset_t ordering problem " David Howells
2011-07-28 15:52 ` [PATCH 17/40] UAPI: Fix E820_X_MAX " David Howells
2011-07-28 15:52 ` [PATCH 18/40] UAPI: Fix linux/netfilter.h inclusion order " David Howells
2011-07-28 15:52 ` [PATCH 19/40] UAPI: Fix linux/input.h " David Howells
2011-07-28 15:52 ` [PATCH 20/40] UAPI: Fix up linux/netfilter/xt_policy.h " David Howells
2011-07-28 15:52 ` [PATCH 21/40] UAPI: Fix linux/auto_fs.h inclusion order " David Howells
2011-07-28 15:52 ` [PATCH 22/40] UAPI: Fix drmP.h to use #include <...> when referring to system header files " David Howells
2011-07-28 15:53 ` [PATCH 23/40] UAPI: sound/sound_core.c should include linux/fs.h " David Howells
2011-07-28 15:53 ` [PATCH 24/40] UAPI: Fix SNDRV_*_ENDIAN ordering problem " David Howells
2011-07-28 15:53 ` [PATCH 25/40] UAPI: Fix u_quad_t ordering problem in linux/coda.h " David Howells
2011-07-28 15:53 ` [PATCH 26/40] UAPI: Fix " David Howells
2011-07-28 15:53 ` [PATCH 27/40] UAPI: Guard linux/isdn_divertif.h " David Howells
2011-07-28 15:53 ` [PATCH 28/40] UAPI: Guard linux/sound.h " David Howells
2011-07-28 15:53 ` [PATCH 29/40] UAPI: Fix linux/ncp.h " David Howells
2011-07-28 15:54 ` [PATCH 30/40] UAPI: Fix x86_64 system call count and generation " David Howells
2011-07-28 15:54 ` [PATCH 31/40] UAPI: Fix arch/mips/include/asm/Kbuild to have separate header-y lines " David Howells
2011-07-28 15:54 ` [PATCH 32/40] UAPI: Add a script to create a commit to set up new UAPI dirs " David Howells
2011-07-28 15:54 ` [PATCH 33/40] UAPI: Set up UAPI Kbuild files " David Howells
2011-07-28 15:54 ` [PATCH 34/40] UAPI: Plumb the UAPI Kbuilds into the user header handling system " David Howells
2011-07-28 15:54 ` [PATCH 35/40] UAPI: Set up uapi/asm/Kbuild.asm " David Howells
2011-07-28 15:55 ` [PATCH 36/40] UAPI: Move linux/version.h " David Howells
2011-07-28 15:55 ` [PATCH 37/40] UAPI: Make UAPI headers install to usr/include/ " David Howells
2011-07-28 15:55 ` [PATCH 38/40] UAPI: Fix the page-types query program in the docs " David Howells
2011-07-28 15:55 ` [PATCH 39/40] UAPI: Fix the x86 test_get_len tool " David Howells
2011-07-28 15:55 ` [PATCH 40/40] UAPI: Scripts to disintegrate header files " David Howells

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=20110728155021.16618.17563.stgit@warthog.procyon.org.uk \
    --to=dhowells@redhat.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@osdl.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®