* [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