On Mon, 2007-10-15 at 15:13 -0500, Anthony Liguori wrote: > Jerone Young wrote: > > This patch is an improved version of patches sent last week to enable > > the top level configuration file for cross compile. This currently > > allows x86 & x86-64 to cross compile. But will soon be sending patches > > for powerpc embedded once this is accepted. This patches to latest git > > and is in git format ;-) > > > > Signed-off-by: Jerone Young <[EMAIL PROTECTED]> > > > > ------------------------------------------------------------------------ > > > diff --git a/configure b/configure > > --- a/configure > > +++ b/configure > > @@ -3,32 +3,30 @@ prefix=/usr/local > > prefix=/usr/local > > kerneldir=/lib/modules/$(uname -r)/build > > want_module=1 > > -qemu_cc=$(ls /usr/bin/gcc3* /usr/bin/gcc-3* 2>/dev/null | tail -n1) > > +cc=gcc > > +qemu_cc= > > disable_gcc_check= > > +cross_prefix= > > +arch=`uname -m` > > +target_exec= > > > > 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) > > - --qemu-cc="$qemu_cc" compiler for qemu (needs gcc3.x) ($qemu_cc) > > + --qemu-cc=CC compiler for qemu (needs to be gcc 3.x) > > + Not valid if used with --cross-prefix > > --disable-gcc-check don't insist on gcc-3.x > > - - this will break running without kvm > > + CAUTION: using this option may break build > > EOF > > exit 1 > > } > > - > > - > > -# prefer gcc if its version is 3.* ( over a compat-gcc ) > > -# do it before parsing command line arguments to enable the user > > -# to specify a specific gcc he/she likes. > > -if gcc -v 2>&1 | grep -q 'gcc *version *3\.[2-4]\.[0-9]'; then > > - qemu_cc=gcc > > -fi > > > > while [[ "$1" = -* ]]; do > > opt="$1"; shift > > @@ -53,6 +51,12 @@ while [[ "$1" = -* ]]; do > > --disable-gcc-check) > > disable_gcc_check=1 > > ;; > > + --arch) > > + arch="$arg" > > + ;; > > + --cross-prefix) > > + cross_prefix="$arg" > > + ;; > > --help) > > usage > > ;; > > @@ -62,39 +66,71 @@ while [[ "$1" = -* ]]; do > > esac > > done > > > > -if [[ -z "$qemu_cc" ]]; then > > - echo "$0: cannot locate gcc 3.x. please install it or specify with > > --qemu-cc" > > - exit 1 > > + > > +# if cc is not specified on the command line > > +# look for gcc version 3.x > > +if [[ -z "$qemu_cc" ]] && [[ -z "$cross_prefix" ]]; then > > + #check for a gcc 3.x version on the system > > + cc_check=$(ls /usr/bin/gcc3* /usr/bin/gcc-3* 2>/dev/null | tail -n1) > > + #prefer gcc if its version is 3.* ( over a compat-gcc ) > > + gcc_check=$(gcc -v 2>&1 | grep -q 'gcc *version *3\.[2-4]\.[0-9]') > > + if [[ -n "$cc_check" ]] && [[ -z "$gcc_check" ]] ; then > > + cc=$cc_check > > + fi > > fi > > > > > > The QEMU that's in git automatically finds the right GCC version so this > whole check isn't necessary anymore.
This is true. Figured that this was still there for a particular reason. If this is the case then this can be removed. > > Regards, > > Anthony Liguori > > > +#if qemu_cc is specfied on the command line, set cc=$qemu_cc > > +if [[ -n "$qemu_cc" ]] && [[ -z "$cross_prefix" ]]; then > > + cc=$qemu_cc > > +fi > > + > > +#set kenel directory > > libkvm_kerneldir="$kerneldir" > > if (( want_module )); then > > libkvm_kerneldir=$(readlink -f kernel) > > fi > > > > -target_cpu() { > > - if [[ $(uname -m) = i?86 ]]; then > > - echo x86_64 > > - else > > - uname -m > > - fi > > -} > > +#if arch is an x86 arch set to i386 > > +if [[ $arch = i?86 ]]; then > > + arch="i386" > > +fi > > > > -(cd user; ./configure --prefix="$prefix" --kerneldir="$libkvm_kerneldir") > > -(cd qemu; ./configure --target-list=$(target_cpu)-softmmu --cc="$qemu_cc" \ > > +#see if using a cross compiler or not > > +qemu_opts= > > +user_opts= > > +if [[ -z $cross_prefix ]]; then > > + qemu_opts+=" --cc=$cc" > > + user_opts+=" --cc=$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 > > + target_exec="x86_64-softmmu" > > + qemu_opts+=" --enable-alsa" > > > > Why are you only passing --enable-alsa only x86? Because for our powerpc stuff we actually want different options. ALSA is not a dependency we want. > > > +fi > > + > > +qemudir=`pwd`/qemu > > + > > +#configure user dir > > +(cd user; ./configure --prefix="$prefix" --kerneldir="$libkvm_kerneldir" \ > > + $user_opts --arch="$arch") > > +(cd qemu; ./configure --target-list=$target_exec \ > > --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" > > > > I don't think this is right. You're using two different --cpu options > for i386 and x86_64. There really shouldn't be a --cpu option at all > for x86. So the --cpu option is actually a hidden option in qemu & is not on the qemu help page .. who know why it isn't but the it's in the code. It makes since though that if you are going to specify cross-prefix= then there is little reason to specify the cpu on the qemu line. As it should detect everything from cross compiler. I'll test this out and send a new patch with the 2 changes. > > Regards, > > Anthony Liguori > > > ) > > > > > > - > > cat <<EOF > config.mak > > +ARCH=$arch > > PREFIX=$prefix > > KERNELDIR=$kerneldir > > WANT_MODULE=$want_module > > +CC=$cross_prefix$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 ------------------------------------------------------------------------- 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