kbuild: search arch/$ARCH/include before include/
Sam Ravnborg [Sat, 17 Oct 2009 19:14:18 +0000 (21:14 +0200)]
The namespace used in arch/$ARCH/include is different from
what is used in include/ except for the include/asm directory.

This patch gives the arch/$ARCH/include/asm directory priority
over include/asm.

When we add asm-offsets.h to arch/$ARCH/include/asm/ this
patch makes sure we pick up the arch specific version
and not the one we have in include/asm.

The situation with an asm-offsets.h file located in
both include/asm _and_ arch/$ARCH/include/asm will happen
when we move more files over to include/generated.

This happens because in some cases it is not practical
to rename all users so we simply add a file
in arch/$ARCH/include/asm that includes the generated version.

This is the solution we use for asm-offsets.h as an example.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Michal Marek <mmarek@suse.cz>

Makefile

index 33d4732..0771178 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -334,9 +334,8 @@ CFLAGS_GCOV = -fprofile-arcs -ftest-coverage
 
 # Use LINUXINCLUDE when you must reference the include/ directory.
 # Needed to be compatible with the O= option
-LINUXINCLUDE    := -Iinclude \
+LINUXINCLUDE    := -I$(srctree)/arch/$(hdr-arch)/include -Iinclude \
                    $(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include) \
-                   -I$(srctree)/arch/$(hdr-arch)/include               \
                    -include include/linux/autoconf.h
 
 KBUILD_CPPFLAGS := -D__KERNEL__