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://get.splunk.com/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to