public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/5] Enable top level configure script for cross compile
@ 2007-10-08  5:10 Jerone Young
  2007-10-08  7:49 ` Christian Ehrhardt
  0 siblings, 1 reply; 3+ messages in thread
From: Jerone Young @ 2007-10-08  5:10 UTC (permalink / raw)
  To: kvm-devel

[-- Attachment #1: Type: text/plain, Size: 156 bytes --]

This patch adds cross compile capability to the top level configure
script.

Signed-off-by: Jerone Young <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>


[-- Attachment #2: enable_cross_comp_main_configure_script --]
[-- Type: text/x-patch, Size: 2753 bytes --]

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
-

[-- Attachment #3: Type: text/plain, Size: 314 bytes --]

-------------------------------------------------------------------------
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/

[-- Attachment #4: Type: text/plain, Size: 186 bytes --]

_______________________________________________
kvm-devel mailing list
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/kvm-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/5] Enable top level configure script for cross compile
  2007-10-08  5:10 [PATCH 1/5] Enable top level configure script for cross compile Jerone Young
@ 2007-10-08  7:49 ` Christian Ehrhardt
       [not found]   ` <4709E0ED.7010709-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Christian Ehrhardt @ 2007-10-08  7:49 UTC (permalink / raw)
  To: jyoung5-r/Jw6+rmf7HQT0dZR+AlfA; +Cc: kvm-devel

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 ?
b) if it is needed, please add a small description to the usage() output

Kind regards, 
Christian Ehrhardt

Jerone Young wrote:
> This patch adds cross compile capability to the top level configure
> script.
> 
> Signed-off-by: Jerone Young <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
> 
> 
> ------------------------------------------------------------------------
> 
> 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-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/kvm-devel


-- 

Grüsse / regards, 
Christian Ehrhardt

IBM Linux Technology Center, Open Virtualization
+49 7031/16-3385
Ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org
Ehrhardt-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org

IBM Deutschland Entwicklung GmbH
Vorsitzender des Aufsichtsrats: Johann Weihen 
Geschäftsführung: Herbert Kircher 
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294

-------------------------------------------------------------------------
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/

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/5] Enable top level configure script for cross compile
       [not found]   ` <4709E0ED.7010709-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
@ 2007-10-08  8:26     ` Jerone Young
  0 siblings, 0 replies; 3+ messages in thread
From: Jerone Young @ 2007-10-08  8:26 UTC (permalink / raw)
  To: Christian Ehrhardt; +Cc: kvm-devel

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 <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
> > 
> > 
> > ------------------------------------------------------------------------
> > 
> > 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-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > 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/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-10-08  8:26 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-08  5:10 [PATCH 1/5] Enable top level configure script for cross compile Jerone Young
2007-10-08  7:49 ` Christian Ehrhardt
     [not found]   ` <4709E0ED.7010709-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2007-10-08  8:26     ` Jerone Young

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox