Re: [patch] Makefile: can't build modules outside the kernel tree if it was built using O=

Arnd Bergmann
2009-09-17T11:45:40Z

On Thursday 17 September 2009, Caveh Jalali wrote:

> when the platform specific include directories were shuffled around
> without updating the
> top level Makefile. however, i think this FAIL is generic, and not
> limited to powerpc.
> here's a patch to the top level Makefile to teach it about the shuffled files:
>
>
> --- /local/caveh/linux/linux-2.6.31/Makefile 2009-09-09
> 15:13:59.000000000 -0700
> +++ Makefile 2009-09-16 12:23:05.000000000 -0700
> @@ -958,9 +958,9 @@ ifneq ($(KBUILD_SRC),)
> echo " in the '$(srctree)' directory.";\
> /bin/false; \
> fi;
> - $(Q)if [ ! -d include2 ]; then \
> - mkdir -p include2; \
> - ln -fsn $(srctree)/include/asm-$(SRCARCH) include2/asm; \
> + $(Q)if [ ! -d include2 ]; then \
> + mkdir -p include2; \
> + ln -fsn $(srctree)/arch/$(SRCARCH)/include/asm include2/asm; \
> fi
> endif

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

I'm not sure what goes wrong here. What is the gcc command line you see?