Re: [PATCH] fix include paths when the kernel source and build directory are different

James Pike
2009-08-15T22:33:36Z

> This removes -Iarch/${ARCH_DIR}/include when KERNELSOURCEDIR is not
> defined. What is the reason for this change?

No you've interpreted the change wrong. The "else" part of the if clause
ensures this is not removed.

Here is how the make if call works:

$(if <string>,<string for true clase>,<string for else clause>)

What my patch does do is *add* this define in for the case when
KERNELSOURCEDIR is defined, but at the correct source location.

I'd like to ask again if anybody is testing this builds properly against
an out of place kernel build, as I've needed these patches across
several different machines running different distributions at work, so
I'm very sceptical that it can work for many people, doesn't mean I'm
right though..

Thanks, James

On Mon, Jun 08, 2009 at 11:42:05AM +0300, Avi Kivity wrote:
> James Pike wrote:
> > Use correct architecture includes when kernel source and build directory
> > are different.
> > Signed-off-by: James Pike <james@chilon.net>
> >
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -27,8 +27,9 @@ all:: prerequisite
> > # include header priority 1) $LINUX 2) $KERNELDIR 3) include-compat
> > $(MAKE) -C $(KERNELDIR) M=`pwd` \
> > LINUXINCLUDE="-I`pwd`/include -Iinclude \
> > - $(if $(KERNELSOURCEDIR),-Iinclude2 -I$(KERNELSOURCEDIR)/include) \
> > - -Iarch/${ARCH_DIR}/include -I`pwd`/include-compat \
> > + $(if $(KERNELSOURCEDIR),\
> > + -Iinclude2 -I$(KERNELSOURCEDIR)/include -I$(KERNELSOURCEDIR)/arch/${ARCH_DIR}/include, \
> > + -Iarch/${ARCH_DIR}/include) -I`pwd`/include-compat \
> > -include include/linux/autoconf.h \
> > -include `pwd`/$(ARCH_DIR)/external-module-compat.h $(module_defines)" \
> > "$$@"
> >
>
>
> --
> error compiling committee.c: too many arguments to function
>