Message ID | 20090603125840.GA16209@dupont.ts-a (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
James Pike wrote: > Use correct architecture includes when kernel source and build directory > are different. > Signed-off-by: James Pike <james@chilon.net> > > diff --git a/Makefile b/Makefile > index 95e4c81..ad08c45 100644 > --- 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)" \ > "$$@" Just confirmed: Required when building against home-brewed kernels with split source/binaries. Avi, please merge. Acked-by: Jan Kiszka <jan.kiszka@siemens.com> Jan -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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)" \ > "$$@" > This removes -Iarch/${ARCH_DIR}/include when KERNELSOURCEDIR is not defined. What is the reason for this change?
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)" \ >> "$$@" >> > > This removes -Iarch/${ARCH_DIR}/include when KERNELSOURCEDIR is not > defined. What is the reason for this change? > As far as I can see (I do wear my glasses today...), -Iarch/${ARCH_DIR}/include is present in the else part of $(if). The reason for this change is the missing arch include from the source directory in case it's separate from the build dir (yeah, the changelog has room for improvements). I ran into the same issue after building and installing a recent kernel tree with O=. The split trees SUSE leaves behind do not suffer from this, but they also still work after the change. Same for classic unified trees. Jan
Jan Kiszka wrote: > 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)" \ >>> "$$@" >>> >>> >> This removes -Iarch/${ARCH_DIR}/include when KERNELSOURCEDIR is not >> defined. What is the reason for this change? >> >> > > As far as I can see (I do wear my glasses today...), > -Iarch/${ARCH_DIR}/include is present in the else part of $(if). > Yeah, I missed the comma. Maybe I need to visit your optometrist. > The reason for this change is the missing arch include from the source > directory in case it's separate from the build dir (yeah, the changelog > has room for improvements). > > I ran into the same issue after building and installing a recent kernel > tree with O=. The split trees SUSE leaves behind do not suffer from > this, but they also still work after the change. Same for classic > unified trees. > Okay, will apply the patch.
> 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 > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/Makefile b/Makefile index 95e4c81..ad08c45 100644 --- 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)" \ "$$@"
Use correct architecture includes when kernel source and build directory are different. Signed-off-by: James Pike <james@chilon.net>