On Mon, 2007-10-08 at 09:49 +0200, Christian Ehrhardt wrote: > Hi, > I saw that you derive $target_cpu from arch as I know it from your older > internal and external patches. > Now you added the configure command line option --target-cpu to allow to > overwrite that $arch derived target. > a) do you have some use cases in mind where you need an overwritten target > instead the one derived from $arch ?
I was a bit future thinking with this option. But really it is not needed at this moment. Now the way things work today in KVM x86 & x86-64 use the same qemu target build (x86-64-softmmu). The case I was thinking (at least at the time), was that if we wanted to use a different device model (assuming all the kvm code is in place) then this would allow that. An example would be for powerpc. Right now our current work is for ppc embedded which is also the qemu device model we are working in (ppcemb-softmmu). But if we also ever to have a server ppc or any other higher end power product we may not want that code in our ppcemb-softmmu executable (we want it small as possible). That code would probably go in "ppc-softmmu". Now we have a problem. So you would then need to specify target_cpu= to make this distinction for building the proper qemu executable. > b) if it is needed, please add a small description to the usage() output That is actually missing from the help in this version of the patch. I missed that :-O But for now I will probably just remove this option from the patch and resend it. > > Kind regards, > Christian Ehrhardt > > Jerone Young wrote: > > This patch adds cross compile capability to the top level configure > > script. > > > > Signed-off-by: Jerone Young <[EMAIL PROTECTED]> > > > > > > ------------------------------------------------------------------------ > > > > diff -r f48e521e0add configure > > --- a/configure Wed Oct 03 21:00:03 2007 -0500 > > +++ b/configure Thu Oct 04 14:59:16 2007 -0500 > > @@ -5,13 +5,17 @@ want_module=1 > > want_module=1 > > qemu_cc=$(ls /usr/bin/gcc3* /usr/bin/gcc-3* 2>/dev/null | tail -n1) > > disable_gcc_check= > > +cross_prefix= > > +arch=`uname -m` > > +target_cpu= > > > > usage() { > > cat <<-EOF > > Usage: $0 [options] > > > > Options include: > > - > > + --arch=ARCH architecture to compile for ($arch) > > + --cross-prefix=PREFIX prefix for cross compiler > > --prefix=PREFIX where to install things ($prefix) > > --with-patched-kernel don't use external module > > --kerneldir=DIR kernel build directory ($kerneldir) > > @@ -53,6 +57,15 @@ while [[ "$1" = -* ]]; do > > --disable-gcc-check) > > disable_gcc_check=1 > > ;; > > + --arch) > > + arch="$arg" > > + ;; > > + --cross-prefix) > > + cross_prefix="$arg" > > + ;; > > + --target-cpu) > > + target_cpu="$arg" > > + ;; > > --help) > > usage > > ;; > > @@ -62,7 +75,7 @@ while [[ "$1" = -* ]]; do > > esac > > done > > > > -if [[ -z "$qemu_cc" ]]; then > > +if [[ -z "$qemu_cc" ]] && [[ -z "$cross_prefix" ]]; then > > echo "$0: cannot locate gcc 3.x. please install it or specify with > > --qemu-cc" > > exit 1 > > fi > > @@ -72,29 +85,48 @@ if (( want_module )); then > > libkvm_kerneldir=$(readlink -f kernel) > > fi > > > > -target_cpu() { > > - if [[ $(uname -m) = i?86 ]]; then > > - echo x86_64 > > - else > > - uname -m > > +#if arch is an x86 arch set to i386 > > +if [[ $arch = i?86 ]]; then > > + arch="i386" > > +fi > > + > > +#see if using a cross compiler or not > > +compiler= > > +qemu_opts= > > +user_opts= > > +if [[ -z $cross_prefix ]]; then > > + qemu_opts+=" --cc=$qemu_cc" > > + user_opts+=" --cc=$qemu_cc" > > +else > > + qemu_opts+=" --cross-prefix=$cross_prefix" > > + user_opts+=" --cross-prefix=$cross_prefix" > > +fi > > + > > +#set parameters compiling > > +if [ "$arch" = "i386" -o "$arch" = "x86_64" ]; then > > + if [[ -z $target_cpu ]]; then > > + target_cpu="x86_64" > > fi > > -} > > + qemu_opts+=" --enable-alsa" > > +fi > > > > -(cd user; ./configure --prefix="$prefix" --kerneldir="$libkvm_kerneldir") > > -(cd qemu; ./configure --target-list=$(target_cpu)-softmmu --cc="$qemu_cc" \ > > +#configure user dir > > +(cd user; ./configure --prefix="$prefix" --kerneldir="$libkvm_kerneldir" \ > > + $user_opts --arch="$arch") > > +(cd qemu; ./configure --target-list=$target_cpu-softmmu \ > > --disable-kqemu --extra-cflags="-I $PWD/../user" \ > > --extra-ldflags="-L $PWD/../user" \ > > --enable-kvm --kernel-path="$libkvm_kerneldir" \ > > - --enable-alsa \ > > ${disable_gcc_check:+"--disable-gcc-check"} \ > > - --prefix="$prefix" > > + --prefix="$prefix" \ > > + $qemu_opts --cpu="$arch" > > ) > > > > > > - > > cat <<EOF > config.mak > > +ARCH=$arch > > PREFIX=$prefix > > KERNELDIR=$kerneldir > > WANT_MODULE=$want_module > > +CC=$cross_prefix$qemu_cc > > EOF > > - > > > > > > ------------------------------------------------------------------------ > > > > ------------------------------------------------------------------------- > > 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 > > ------------------------------------------------------------------------- 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