Re: [kvm-devel] [kvm-ppc-devel] [PATCH 1/2] [v1] consolidate i386 & x86-64 user dir make rules
On Tue, 2007-10-23 at 00:57 -0500, Jerone Young wrote: > This patch removes arch specific make rules for x86 & x86-64 out of the > main Makefile. These rules are now moved into config-$(ARCH) and a new > file config-x86-common has been created to consolidate common rules > amongst x86 & x86-64. > > v1 changes: > *fix x86-64 building by removing redundant rules from >config-x86-64.mak > > Signed-off-by: Jerone Young <[EMAIL PROTECTED]> > > diff --git a/user/Makefile b/user/Makefile > --- a/user/Makefile > +++ b/user/Makefile > @@ -15,8 +15,7 @@ cc-option = $(shell if $(CC) $(1) -S -o > cc-option = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null \ >> /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;) > > -CFLAGS += -I $(KERNELDIR)/include $(autodepend-flags) -g > -fomit-frame-pointer \ > - -Wall > +CFLAGS += $(autodepend-flags) -g -fomit-frame-pointer -Wall > CFLAGS += $(call cc-option, -fno-stack-protector, "") > CFLAGS += $(call cc-option, -fno-stack-protector-all, "") You seem to be adding "-I $(KERNELDIR)/include" twice: once here, and once in each config-*.mak file. > @@ -25,21 +24,6 @@ CXXFLAGS = $(autodepend-flags) > CXXFLAGS = $(autodepend-flags) > > autodepend-flags = -MMD -MF $(dir $*).$(notdir $*).d > - > -all: kvmctl libkvm.a flatfiles > - > -kvmctl: LDFLAGS += -pthread -lrt > - > -kvmctl: kvmctl.o main.o > - > -balloon_ctl: balloon_ctl.o > - > -libkvm.a: kvmctl.o > - $(AR) rcs $@ $^ > - > -flatfiles-common = test/bootstrap test/vmexit.flat test/smp.flat > - > -flatfiles: $(flatfiles-common) $(flatfiles) > > install: > install -D kvmctl.h $(DESTDIR)/$(PREFIX)/include/kvmctl.h > diff --git a/user/config-i386.mak b/user/config-i386.mak > --- a/user/config-i386.mak > +++ b/user/config-i386.mak > @@ -3,5 +3,9 @@ bits = 32 > bits = 32 > ldarch = elf32-i386 > CFLAGS += -m32 > +CFLAGS += -D__i386__ > +CFLAGS += -I $(KERNELDIR)/include > > flatfiles= > + > +include config-x86-common.mak > diff --git a/user/config-x86-common.mak b/user/config-x86-common.mak > new file mode 100644 > --- /dev/null > +++ b/user/config-x86-common.mak > @@ -0,0 +1,16 @@ > +#This is a make file with common rules for both x86 & x86-64 > + > +all: kvmctl libkvm.a flatfiles > + > +kvmctl: LDFLAGS += -pthread -lrt > + > +kvmctl: kvmctl.o main.o > + > +libkvm.a: kvmctl.o > + $(AR) rcs $@ $^ > + > +balloon_ctl: balloon_ctl.o > + > +flatfiles-common = test/bootstrap test/vmexit.flat test/smp.flat > + > +flatfiles: $(flatfiles-common) $(flatfiles) > diff --git a/user/config-x86_64.mak b/user/config-x86_64.mak > --- a/user/config-x86_64.mak > +++ b/user/config-x86_64.mak > @@ -3,5 +3,9 @@ bits = 64 > bits = 64 > ldarch = elf64-x86-64 > CFLAGS += -m64 > +CFLAGS += -D__x86_64__ > +CFLAGS += -I $(KERNELDIR)/include > > flatfiles = test/access.flat test/irq.flat test/sieve.flat test/simple.flat > test/stringio.flat test/memtest1.flat > + > +include config-x86-common.mak I think you're clobbering flatfiles in config-x86-common.mak . Philosophically, I don't think that targets like "all" should be moved into arch-specific makefiles. Also, the kvmctl and libkvm.a targets should both be in the common Makefile. -- Hollis Blanchard IBM Linux Technology Center - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [kvm-ppc-devel] [PATCH 1/2] [v1] consolidate i386 & x86-64 user dir make rules
On Tue, 2007-10-23 at 10:21 -0500, Hollis Blanchard wrote: > > > -CFLAGS += -I $(KERNELDIR)/include $(autodepend-flags) -g > > -fomit-frame-pointer \ > > - -Wall > > +CFLAGS += $(autodepend-flags) -g -fomit-frame-pointer -Wall > > CFLAGS += $(call cc-option, -fno-stack-protector, "") > > CFLAGS += $(call cc-option, -fno-stack-protector-all, "") > > You seem to be adding "-I $(KERNELDIR)/include" twice: once here, and > once in each config-*.mak file. My bad; I read the diff backwards. :) Are you sure about that move though? Why doesn't every arch need that -I switch? -- Hollis Blanchard IBM Linux Technology Center - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [kvm-ppc-devel] [PATCH 1/2] [v1] consolidate i386 & x86-64 user dir make rules
On Tue, 2007-10-23 at 10:24 -0500, Hollis Blanchard wrote: > On Tue, 2007-10-23 at 10:21 -0500, Hollis Blanchard wrote: > > > > > -CFLAGS += -I $(KERNELDIR)/include $(autodepend-flags) -g > > > -fomit-frame-pointer \ > > > - -Wall > > > +CFLAGS += $(autodepend-flags) -g -fomit-frame-pointer -Wall > > > CFLAGS += $(call cc-option, -fno-stack-protector, "") > > > CFLAGS += $(call cc-option, -fno-stack-protector-all, "") > > > > You seem to be adding "-I $(KERNELDIR)/include" twice: once here, and > > once in each config-*.mak file. > > My bad; I read the diff backwards. :) > > Are you sure about that move though? Why doesn't every arch need that -I > switch? Actually no. For our powerpc stuff having -I $(KERNELDIR)/include causes hell with errno.h & it's definitions. Since we do not include any of the kernel headers in our codes we don't need this, but x86 does as it includes nice headears like "linux/paravirt.h". Now including kernel headers is a totally different argument. But basically from what I know is you should "never" do it. > - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [kvm-ppc-devel] [PATCH 1/2] [v1] consolidate i386 & x86-64 user dir make rules
On Tue, 2007-10-23 at 10:21 -0500, Hollis Blanchard wrote: > On Tue, 2007-10-23 at 00:57 -0500, Jerone Young wrote: > > This patch removes arch specific make rules for x86 & x86-64 out of the > > main Makefile. These rules are now moved into config-$(ARCH) and a new > > file config-x86-common has been created to consolidate common rules > > amongst x86 & x86-64. > > > > v1 changes: > > *fix x86-64 building by removing redundant rules from > >config-x86-64.mak > > > > Signed-off-by: Jerone Young <[EMAIL PROTECTED]> > > > > diff --git a/user/Makefile b/user/Makefile > > --- a/user/Makefile > > +++ b/user/Makefile > > @@ -15,8 +15,7 @@ cc-option = $(shell if $(CC) $(1) -S -o > > cc-option = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null \ > >> /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;) > > > > -CFLAGS += -I $(KERNELDIR)/include $(autodepend-flags) -g > > -fomit-frame-pointer \ > > - -Wall > > +CFLAGS += $(autodepend-flags) -g -fomit-frame-pointer -Wall > > CFLAGS += $(call cc-option, -fno-stack-protector, "") > > CFLAGS += $(call cc-option, -fno-stack-protector-all, "") > > You seem to be adding "-I $(KERNELDIR)/include" twice: once here, and > once in each config-*.mak file. > > > @@ -25,21 +24,6 @@ CXXFLAGS = $(autodepend-flags) > > CXXFLAGS = $(autodepend-flags) > > > > autodepend-flags = -MMD -MF $(dir $*).$(notdir $*).d > > - > > -all: kvmctl libkvm.a flatfiles > > - > > -kvmctl: LDFLAGS += -pthread -lrt > > - > > -kvmctl: kvmctl.o main.o > > - > > -balloon_ctl: balloon_ctl.o > > - > > -libkvm.a: kvmctl.o > > - $(AR) rcs $@ $^ > > - > > -flatfiles-common = test/bootstrap test/vmexit.flat test/smp.flat > > - > > -flatfiles: $(flatfiles-common) $(flatfiles) > > > > install: > > install -D kvmctl.h $(DESTDIR)/$(PREFIX)/include/kvmctl.h > > diff --git a/user/config-i386.mak b/user/config-i386.mak > > --- a/user/config-i386.mak > > +++ b/user/config-i386.mak > > @@ -3,5 +3,9 @@ bits = 32 > > bits = 32 > > ldarch = elf32-i386 > > CFLAGS += -m32 > > +CFLAGS += -D__i386__ > > +CFLAGS += -I $(KERNELDIR)/include > > > > flatfiles= > > + > > +include config-x86-common.mak > > diff --git a/user/config-x86-common.mak b/user/config-x86-common.mak > > new file mode 100644 > > --- /dev/null > > +++ b/user/config-x86-common.mak > > @@ -0,0 +1,16 @@ > > +#This is a make file with common rules for both x86 & x86-64 > > + > > +all: kvmctl libkvm.a flatfiles > > + > > +kvmctl: LDFLAGS += -pthread -lrt > > + > > +kvmctl: kvmctl.o main.o > > + > > +libkvm.a: kvmctl.o > > + $(AR) rcs $@ $^ > > + > > +balloon_ctl: balloon_ctl.o > > + > > +flatfiles-common = test/bootstrap test/vmexit.flat test/smp.flat > > + > > +flatfiles: $(flatfiles-common) $(flatfiles) > > diff --git a/user/config-x86_64.mak b/user/config-x86_64.mak > > --- a/user/config-x86_64.mak > > +++ b/user/config-x86_64.mak > > @@ -3,5 +3,9 @@ bits = 64 > > bits = 64 > > ldarch = elf64-x86-64 > > CFLAGS += -m64 > > +CFLAGS += -D__x86_64__ > > +CFLAGS += -I $(KERNELDIR)/include > > > > flatfiles = test/access.flat test/irq.flat test/sieve.flat > > test/simple.flat test/stringio.flat test/memtest1.flat > > + > > +include config-x86-common.mak > > I think you're clobbering flatfiles in config-x86-common.mak . PATCH 2 moves all the rest of the flatfile rules to config-x86-common.mak. So nothing gets clobbered. > > Philosophically, I don't think that targets like "all" should be moved > into arch-specific makefiles. Also, the kvmctl and libkvm.a targets > should both be in the common Makefile. So "all" is going to be different for everyone. Since all the test are not common, and all will not use flat files. Also kvmctl ad libkvm.a will be diffrenent for everyone. But this could also be made into a variable. With new split code (soon to be coming to a kvm-devel list near you). Here is an example of how it will look later. The names may change but you get the idea. Examples x86: kvmctl: kvmctl-x86.o kvmctl.o main-x86.o main.o libkvm.a: kvmctl.o kvmctl-x86.o This split may also grow more .. as maybe the apic stuff will get moved to it's own file. Example Powerpc: kvmctl: kvmctl-powerpc.o kvmctl.o main.o main-x86.o Now one way could be is to create a variable in the arch specific makefiles for kvmctl & libkvm . So that for x86 you woud have KVMCTL= kvmctl-x86.o kvmctl.o main-x86.o main.o Then in the main Makefile. kvmctl: $(KVMCTL) I personally think having the declaration in each arch makes things less confusing. So for this patch it's mainly about keeping things working today, while slowly splitting things apart. Future patches will change all of this. > - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://ge
Re: [kvm-devel] [kvm-ppc-devel] [PATCH 1/2] [v1] consolidate i386 & x86-64 user dir make rules
On Tue, 2007-10-23 at 10:45 -0500, Jerone Young wrote: > On Tue, 2007-10-23 at 10:21 -0500, Hollis Blanchard wrote: > > > diff --git a/user/config-x86-common.mak b/user/config-x86-common.mak > > > new file mode 100644 > > > --- /dev/null > > > +++ b/user/config-x86-common.mak > > > @@ -0,0 +1,16 @@ > > > +#This is a make file with common rules for both x86 & x86-64 > > > + > > > +all: kvmctl libkvm.a flatfiles > > > + > > > +kvmctl: LDFLAGS += -pthread -lrt > > > + > > > +kvmctl: kvmctl.o main.o > > > + > > > +libkvm.a: kvmctl.o > > > + $(AR) rcs $@ $^ > > > + > > > +balloon_ctl: balloon_ctl.o > > > + > > > +flatfiles-common = test/bootstrap test/vmexit.flat test/smp.flat > > > + > > > +flatfiles: $(flatfiles-common) $(flatfiles) > > > diff --git a/user/config-x86_64.mak b/user/config-x86_64.mak > > > --- a/user/config-x86_64.mak > > > +++ b/user/config-x86_64.mak > > > @@ -3,5 +3,9 @@ bits = 64 > > > bits = 64 > > > ldarch = elf64-x86-64 > > > CFLAGS += -m64 > > > +CFLAGS += -D__x86_64__ > > > +CFLAGS += -I $(KERNELDIR)/include > > > > > > flatfiles = test/access.flat test/irq.flat test/sieve.flat > > > test/simple.flat test/stringio.flat test/memtest1.flat > > > + > > > +include config-x86-common.mak > > > > I think you're clobbering flatfiles in config-x86-common.mak . > > PATCH 2 moves all the rest of the flatfile rules to > config-x86-common.mak. So nothing gets clobbered. But THIS patch clobbers it. > > Philosophically, I don't think that targets like "all" should be moved > > into arch-specific makefiles. Also, the kvmctl and libkvm.a targets > > should both be in the common Makefile. > > So "all" is going to be different for everyone. Since all the test are > not common, and all will not use flat files. > > Also kvmctl ad libkvm.a will be diffrenent for everyone. But this could > also be made into a variable. With new split code (soon to be coming to > a kvm-devel list near you). Here is an example of how it will look > later. The names may change but you get the idea. > > Examples x86: >kvmctl: kvmctl-x86.o kvmctl.o main-x86.o main.o > >libkvm.a: kvmctl.o kvmctl-x86.o > >This split may also grow more .. as maybe the apic stuff will get > moved to it's own file. > > > Example Powerpc: >kvmctl: kvmctl-powerpc.o kvmctl.o main.o main-x86.o > > > Now one way could be is to create a variable in the arch specific > makefiles for kvmctl & libkvm . So that for x86 you woud have > > KVMCTL= kvmctl-x86.o kvmctl.o main-x86.o main.o > > Then in the main Makefile. > > kvmctl: $(KVMCTL) Exactly: that way we can ensure that every arch builds a common set of targets. > I personally think having the declaration in each arch makes things less > confusing. I can't tell if you're agreeing or if you forgot a negative. I agree that each arch should define e.g. "kvmctl_objs". -- Hollis Blanchard IBM Linux Technology Center - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [kvm-ppc-devel] [PATCH 1/2] [v1] consolidate i386 & x86-64 user dir make rules
On Tue, 2007-10-23 at 10:52 -0500, Hollis Blanchard wrote: > On Tue, 2007-10-23 at 10:45 -0500, Jerone Young wrote: > > On Tue, 2007-10-23 at 10:21 -0500, Hollis Blanchard wrote: > > > > diff --git a/user/config-x86-common.mak b/user/config-x86-common.mak > > > > new file mode 100644 > > > > --- /dev/null > > > > +++ b/user/config-x86-common.mak > > > > @@ -0,0 +1,16 @@ > > > > +#This is a make file with common rules for both x86 & x86-64 > > > > + > > > > +all: kvmctl libkvm.a flatfiles > > > > + > > > > +kvmctl: LDFLAGS += -pthread -lrt > > > > + > > > > +kvmctl: kvmctl.o main.o > > > > + > > > > +libkvm.a: kvmctl.o > > > > + $(AR) rcs $@ $^ > > > > + > > > > +balloon_ctl: balloon_ctl.o > > > > + > > > > +flatfiles-common = test/bootstrap test/vmexit.flat test/smp.flat > > > > + > > > > +flatfiles: $(flatfiles-common) $(flatfiles) > > > > diff --git a/user/config-x86_64.mak b/user/config-x86_64.mak > > > > --- a/user/config-x86_64.mak > > > > +++ b/user/config-x86_64.mak > > > > @@ -3,5 +3,9 @@ bits = 64 > > > > bits = 64 > > > > ldarch = elf64-x86-64 > > > > CFLAGS += -m64 > > > > +CFLAGS += -D__x86_64__ > > > > +CFLAGS += -I $(KERNELDIR)/include > > > > > > > > flatfiles = test/access.flat test/irq.flat test/sieve.flat > > > > test/simple.flat test/stringio.flat test/memtest1.flat > > > > + > > > > +include config-x86-common.mak > > > > > > I think you're clobbering flatfiles in config-x86-common.mak . > > > > PATCH 2 moves all the rest of the flatfile rules to > > config-x86-common.mak. So nothing gets clobbered. > > But THIS patch clobbers it. Oh, It does not clobber flatfiles. It uses it. So in config-x86-common.mak there is a rule flatfiles: $(flatfiles-common) $(flatfiles) Acutally I thought the same too. But this is actually in the original makefile. It doesn't clobber it apparently. But for saftey I'll change the name of this rule as it shouldn't be the same name as variable. > > > > Philosophically, I don't think that targets like "all" should be moved > > > into arch-specific makefiles. Also, the kvmctl and libkvm.a targets > > > should both be in the common Makefile. > > > > So "all" is going to be different for everyone. Since all the test are > > not common, and all will not use flat files. > > > > Also kvmctl ad libkvm.a will be diffrenent for everyone. But this could > > also be made into a variable. With new split code (soon to be coming to > > a kvm-devel list near you). Here is an example of how it will look > > later. The names may change but you get the idea. > > > > Examples x86: > >kvmctl: kvmctl-x86.o kvmctl.o main-x86.o main.o > > > >libkvm.a: kvmctl.o kvmctl-x86.o > > > >This split may also grow more .. as maybe the apic stuff will get > > moved to it's own file. > > > > > > Example Powerpc: > >kvmctl: kvmctl-powerpc.o kvmctl.o main.o main-x86.o > > > > > > Now one way could be is to create a variable in the arch specific > > makefiles for kvmctl & libkvm . So that for x86 you woud have > > > > KVMCTL= kvmctl-x86.o kvmctl.o main-x86.o main.o > > > > Then in the main Makefile. > > > > kvmctl: $(KVMCTL) > > Exactly: that way we can ensure that every arch builds a common set of > targets. > > > I personally think having the declaration in each arch makes things less > > confusing. > > I can't tell if you're agreeing or if you forgot a negative. I agree > that each arch should define e.g. "kvmctl_objs". Well I guess I'm doing both :-). Either way will work. Having a variable "kvmctl_objs" may be a better way. I'll redo and send again. > - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [kvm-ppc-devel] [PATCH 1/2] [v1] consolidate i386 & x86-64 user dir make rules
On Tue, 2007-10-23 at 11:06 -0500, Jerone Young wrote: > > > > PATCH 2 moves all the rest of the flatfile rules to > > > config-x86-common.mak. So nothing gets clobbered. > > > > But THIS patch clobbers it. > > Oh, It does not clobber flatfiles. It uses it. So in > config-x86-common.mak there is a rule > > flatfiles: $(flatfiles-common) $(flatfiles) > > Acutally I thought the same too. But this is actually in the original > makefile. It doesn't clobber it apparently. But for saftey I'll change > the name of this rule as it shouldn't be the same name as variable. My mistake again. However, it's a little confusing that there is a variable *and* a target named "flatfiles"... -- Hollis Blanchard IBM Linux Technology Center - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel