* [PATCH] Add cross compile to top level configuration file
@ 2007-10-15 19:12 Jerone Young
2007-10-15 20:13 ` Anthony Liguori
0 siblings, 1 reply; 14+ messages in thread
From: Jerone Young @ 2007-10-15 19:12 UTC (permalink / raw)
To: kvm-devel; +Cc: embedded-hypervisor, Avi Kivity
[-- Attachment #1: Type: text/plain, Size: 383 bytes --]
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 <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
[-- Attachment #2: top_level_configure_patch --]
[-- Type: text/x-patch, Size: 4028 bytes --]
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
+#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"
+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"
)
-
cat <<EOF > config.mak
+ARCH=$arch
PREFIX=$prefix
KERNELDIR=$kerneldir
WANT_MODULE=$want_module
+CC=$cross_prefix$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] 14+ messages in thread
* Re: [PATCH] Add cross compile to top level configuration file
2007-10-15 19:12 [PATCH] Add cross compile to top level configuration file Jerone Young
@ 2007-10-15 20:13 ` Anthony Liguori
[not found] ` <4713C9D5.3070001-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
0 siblings, 1 reply; 14+ messages in thread
From: Anthony Liguori @ 2007-10-15 20:13 UTC (permalink / raw)
To: jyoung5-r/Jw6+rmf7HQT0dZR+AlfA; +Cc: kvm-devel, Avi Kivity
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 <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
>
> ------------------------------------------------------------------------
> 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.
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?
> +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.
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-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] 14+ messages in thread
* Re: [PATCH] Add cross compile to top level configuration file
[not found] ` <4713C9D5.3070001-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
@ 2007-10-15 20:35 ` Jerone Young
2007-10-15 20:51 ` Anthony Liguori
2007-10-16 14:59 ` Anthony Liguori
0 siblings, 2 replies; 14+ messages in thread
From: Jerone Young @ 2007-10-15 20:35 UTC (permalink / raw)
To: Anthony Liguori; +Cc: kvm-devel, Avi Kivity
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 <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
> >
> > ------------------------------------------------------------------------
>
> > 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-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/
> _______________________________________________
> 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] 14+ messages in thread
* Re: [PATCH] Add cross compile to top level configuration file
2007-10-15 20:35 ` Jerone Young
@ 2007-10-15 20:51 ` Anthony Liguori
[not found] ` <4713D2BD.9040202-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-10-16 14:59 ` Anthony Liguori
1 sibling, 1 reply; 14+ messages in thread
From: Anthony Liguori @ 2007-10-15 20:51 UTC (permalink / raw)
To: jyoung5-r/Jw6+rmf7HQT0dZR+AlfA; +Cc: kvm-devel, Avi Kivity
Jerone Young wrote:
> 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 <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
>>>
>>> ------------------------------------------------------------------------
>>>
>> 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.
>
Well, you don't want the dependency, but does that mean noone will ever
want the dependency on anything but x86?
I'm curious why --enable-alsa is here in the first place. QEMU will use
SDL audio by default. Perhaps Avi can shed light on why added in the
first place?
Regards,
Anthony Liguori
>>> +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-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/
>> _______________________________________________
>> 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] 14+ messages in thread
* Re: [PATCH] Add cross compile to top level configuration file
[not found] ` <4713D2BD.9040202-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
@ 2007-10-16 2:30 ` Jerone Young
2007-10-16 3:08 ` [PATCH] [RESEND] " Jerone Young
2007-10-16 9:37 ` [PATCH] " Avi Kivity
2 siblings, 0 replies; 14+ messages in thread
From: Jerone Young @ 2007-10-16 2:30 UTC (permalink / raw)
To: Anthony Liguori; +Cc: kvm-devel, Avi Kivity
So it appears that trying to remove --cpu option will not work. Qemu
still wants to compile to the arch of the machine you are compiling on
without it. Even with cross compiler specified. So qemu still thinks the
host CPU is going to be i386, even though I specified an x86-64 cross
compilers. So Qemu will intern use -m32 cflag as well as not make the
correct assumptions during build.
So same goes for power. This option is how we cross compile qemu today
on our x86 machines to the run on the our embedded power boards.
So I'll leave the patch alone for now until Avi weighs in on it. But
everything that is currently there keeps functionality that was already
there.
On Mon, 2007-10-15 at 15:51 -0500, Anthony Liguori wrote:
> Jerone Young wrote:
> > 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 <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
> >>>
> >>> ------------------------------------------------------------------------
> >>>
> >> 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.
> >
>
> Well, you don't want the dependency, but does that mean noone will ever
> want the dependency on anything but x86?
>
> I'm curious why --enable-alsa is here in the first place. QEMU will use
> SDL audio by default. Perhaps Avi can shed light on why added in the
> first place?
>
> Regards,
>
> Anthony Liguori
>
>
> >>> +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-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/
> >> _______________________________________________
> >> 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/
> _______________________________________________
> 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] 14+ messages in thread
* [PATCH] [RESEND] Add cross compile to top level configuration file
[not found] ` <4713D2BD.9040202-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-10-16 2:30 ` Jerone Young
@ 2007-10-16 3:08 ` Jerone Young
2007-10-16 9:59 ` Avi Kivity
2007-10-16 10:30 ` Avi Kivity
2007-10-16 9:37 ` [PATCH] " Avi Kivity
2 siblings, 2 replies; 14+ messages in thread
From: Jerone Young @ 2007-10-16 3:08 UTC (permalink / raw)
To: Anthony Liguori; +Cc: kvm-devel, Avi Kivity
This new patch removes gcc 3.x checks, as well as adds environment
variables $CFLAGS & $LDFLAGS to include libs to qemu for cross compile.
I was going to add this in another patch. But they should probably go in
now. So an example for power is to include zlib so before running
configure you do:
export LDFLAGS="-L/home/public/zlib-ppc/lib"
export CFLAGS="-I/home/public/zlib-ppc/include"
Signed-on-by: Jerone Young <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
diff -r ff2feafadcac configure
--- a/configure Fri Oct 12 07:35:25 2007 -0500
+++ b/configure Mon Oct 15 21:52:51 2007 -0500
@@ -3,32 +3,29 @@ 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
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
@@ -48,11 +45,17 @@ while [[ "$1" = -* ]]; do
want_module=
;;
--qemu-cc)
- qemu_cc="$arg"
+ cc="$arg"
;;
--disable-gcc-check)
disable_gcc_check=1
;;
+ --arch)
+ arch="$arg"
+ ;;
+ --cross-prefix)
+ cross_prefix="$arg"
+ ;;
--help)
usage
;;
@@ -62,39 +65,54 @@ 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
-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" \
- --disable-kqemu --extra-cflags="-I $PWD/../user" \
- --extra-ldflags="-L $PWD/../user" \
+#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"
+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 $CFLAGS" \
+ --extra-ldflags="-L $PWD/../user $LDFLAGS" \
--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$cc
EOF
-
On Mon, 2007-10-15 at 15:51 -0500, Anthony Liguori wrote:
> Jerone Young wrote:
> > 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 <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
> >>>
> >>> ------------------------------------------------------------------------
> >>>
> >> 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.
> >
>
> Well, you don't want the dependency, but does that mean noone will ever
> want the dependency on anything but x86?
>
> I'm curious why --enable-alsa is here in the first place. QEMU will use
> SDL audio by default. Perhaps Avi can shed light on why added in the
> first place?
>
> Regards,
>
> Anthony Liguori
>
>
> >>> +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-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/
> >> _______________________________________________
> >> 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/
> _______________________________________________
> 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] 14+ messages in thread
* Re: [PATCH] Add cross compile to top level configuration file
[not found] ` <4713D2BD.9040202-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-10-16 2:30 ` Jerone Young
2007-10-16 3:08 ` [PATCH] [RESEND] " Jerone Young
@ 2007-10-16 9:37 ` Avi Kivity
2 siblings, 0 replies; 14+ messages in thread
From: Avi Kivity @ 2007-10-16 9:37 UTC (permalink / raw)
To: Anthony Liguori; +Cc: kvm-devel, jyoung5-r/Jw6+rmf7HQT0dZR+AlfA
Anthony Liguori wrote:
> I'm curious why --enable-alsa is here in the first place. QEMU will use
> SDL audio by default. Perhaps Avi can shed light on why added in the
> first place?
>
<shrug> seemed like a good idea at the time. It's not like I actually
know what goes on in the qemu sound emulation innards.
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
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] 14+ messages in thread
* Re: [PATCH] [RESEND] Add cross compile to top level configuration file
2007-10-16 3:08 ` [PATCH] [RESEND] " Jerone Young
@ 2007-10-16 9:59 ` Avi Kivity
[not found] ` <47148B90.2020607-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-16 10:30 ` Avi Kivity
1 sibling, 1 reply; 14+ messages in thread
From: Avi Kivity @ 2007-10-16 9:59 UTC (permalink / raw)
To: jyoung5-r/Jw6+rmf7HQT0dZR+AlfA; +Cc: kvm-devel
Jerone Young wrote:
> This new patch removes gcc 3.x checks, as well as adds environment
> variables $CFLAGS & $LDFLAGS to include libs to qemu for cross compile.
> I was going to add this in another patch. But they should probably go in
> now. So an example for power is to include zlib so before running
> configure you do:
> export LDFLAGS="-L/home/public/zlib-ppc/lib"
> export CFLAGS="-I/home/public/zlib-ppc/include"
>
>
Let's not add dependencies on environment variables. Explicit --options
please.
> Signed-on-by: Jerone Young <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
>
> diff -r ff2feafadcac configure
> --- a/configure Fri Oct 12 07:35:25 2007 -0500
> +++ b/configure Mon Oct 15 21:52:51 2007 -0500
> @@ -3,32 +3,29 @@ 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
> 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
>
Looks like a step back in terms of the amount of information provided to
the user.
> while [[ "$1" = -* ]]; do
> opt="$1"; shift
> @@ -48,11 +45,17 @@ while [[ "$1" = -* ]]; do
> want_module=
> ;;
> --qemu-cc)
> - qemu_cc="$arg"
> + cc="$arg"
>
This forces everything to be compiled with $cc, not just qemu? Or is
the kernel/ dierctory not affected by this?
> +qemudir=`pwd`/qemu
>
Add quoting so we can pretend we're safe in the presence of whitespace
in $PWD.
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
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] 14+ messages in thread
* Re: [PATCH] [RESEND] Add cross compile to top level configuration file
2007-10-16 3:08 ` [PATCH] [RESEND] " Jerone Young
2007-10-16 9:59 ` Avi Kivity
@ 2007-10-16 10:30 ` Avi Kivity
1 sibling, 0 replies; 14+ messages in thread
From: Avi Kivity @ 2007-10-16 10:30 UTC (permalink / raw)
To: jyoung5-r/Jw6+rmf7HQT0dZR+AlfA; +Cc: kvm-devel
Jerone Young wrote:
> This new patch
btw, if it's an updated patch, don't put [RESEND] in there, it confuses
me. Put in v2, v3, etc. so I know it's something new.
A [RESEND] is for when I've dropped a patch without comment (which
should not happen normally).
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
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] 14+ messages in thread
* Re: [PATCH] Add cross compile to top level configuration file
2007-10-15 20:35 ` Jerone Young
2007-10-15 20:51 ` Anthony Liguori
@ 2007-10-16 14:59 ` Anthony Liguori
[not found] ` <4714D1BA.6050504-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
1 sibling, 1 reply; 14+ messages in thread
From: Anthony Liguori @ 2007-10-16 14:59 UTC (permalink / raw)
To: jyoung5-r/Jw6+rmf7HQT0dZR+AlfA; +Cc: kvm-devel, Avi Kivity
Jerone Young wrote:
> On Mon, 2007-10-15 at 15:13 -0500, Anthony Liguori wrote:
>
>
>>> +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.
>
So, instead of doing the funky $qemu_opts thing, why not just do:
${cross_prefix:+"--cross-prefix=${cross_prefix} --cpu=${arch}"}
Regards,
Anthony Liguori
-------------------------------------------------------------------------
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] 14+ messages in thread
* Re: [PATCH] [RESEND] Add cross compile to top level configuration file
[not found] ` <47148B90.2020607-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
@ 2007-10-16 19:08 ` Jerone Young
2007-10-16 19:58 ` Avi Kivity
0 siblings, 1 reply; 14+ messages in thread
From: Jerone Young @ 2007-10-16 19:08 UTC (permalink / raw)
To: Avi Kivity; +Cc: kvm-devel
On Tue, 2007-10-16 at 11:59 +0200, Avi Kivity wrote:
> Jerone Young wrote:
> > This new patch removes gcc 3.x checks, as well as adds environment
> > variables $CFLAGS & $LDFLAGS to include libs to qemu for cross compile.
> > I was going to add this in another patch. But they should probably go in
> > now. So an example for power is to include zlib so before running
> > configure you do:
> > export LDFLAGS="-L/home/public/zlib-ppc/lib"
> > export CFLAGS="-I/home/public/zlib-ppc/include"
> >
> >
>
> Let's not add dependencies on environment variables. Explicit --options
> please.
ok will do this in the next redo.
>
> > Signed-on-by: Jerone Young <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
> >
> > diff -r ff2feafadcac configure
> > --- a/configure Fri Oct 12 07:35:25 2007 -0500
> > +++ b/configure Mon Oct 15 21:52:51 2007 -0500
> > @@ -3,32 +3,29 @@ 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
> > 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
> >
>
> Looks like a step back in terms of the amount of information provided to
> the user.
I'll add the text back with the CAUTION:
>
> > while [[ "$1" = -* ]]; do
> > opt="$1"; shift
> > @@ -48,11 +45,17 @@ while [[ "$1" = -* ]]; do
> > want_module=
> > ;;
> > --qemu-cc)
> > - qemu_cc="$arg"
> > + cc="$arg"
> >
>
> This forces everything to be compiled with $cc, not just qemu? Or is
> the kernel/ dierctory not affected by this?
I can create two but it will make things very complicated. This only
will effect the qemu and user directory, but not the kernel directory.
Currently kernel directory is used for headers by these two.
If a user wants to change this they can run the configure script in user
directory manually.
Really I can just change it to just the option is --cc and remove the
qemu part. That actually makes more since.
Otherwise you end up with something more complicated like having to
specify which one needs the cross compiler and not, which need this
specific gcc, just bad. Really you should be compiling both with the
same gcc anyway. If you want to do something different then you really
should go into both directories and run configure stand alone.
>
> > +qemudir=`pwd`/qemu
> >
>
> Add quoting so we can pretend we're safe in the presence of whitespace
> in $PWD.
>
-------------------------------------------------------------------------
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] 14+ messages in thread
* Re: [PATCH] Add cross compile to top level configuration file
[not found] ` <4714D1BA.6050504-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
@ 2007-10-16 19:51 ` Jerone Young
2007-10-16 20:03 ` Anthony Liguori
0 siblings, 1 reply; 14+ messages in thread
From: Jerone Young @ 2007-10-16 19:51 UTC (permalink / raw)
To: Anthony Liguori; +Cc: kvm-devel, Avi Kivity
On Tue, 2007-10-16 at 09:59 -0500, Anthony Liguori wrote:
> Jerone Young wrote:
> > On Mon, 2007-10-15 at 15:13 -0500, Anthony Liguori wrote:
> >
> >
> >>> +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.
> >
>
> So, instead of doing the funky $qemu_opts thing, why not just do:
>
> ${cross_prefix:+"--cross-prefix=${cross_prefix} --cpu=${arch}"}
Well you could but what I need to is satisfy the situation that if you
have --qemu-cc specified that it not use it. I'm not sure how you do
this in one line in bash. So I have
if [[ -z $cross_prefix ]]; then
qemu_opts+=" --cc=$cc"
else
qemu_opts+=" --cross-prefix=$cross_prefix"
fi
Also after this options are added to $qemu_opts based on what
architecture you are compiling for. For now you only see x86-64 & i386.
But this is about to change .. if I can ever get this patch in :-)
Also it becomes even more complicated with the next version of the patch
I'll be sending out in out.
>
> Regards,
>
> Anthony Liguori
>
>
> -------------------------------------------------------------------------
> 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] 14+ messages in thread
* Re: [PATCH] [RESEND] Add cross compile to top level configuration file
2007-10-16 19:08 ` Jerone Young
@ 2007-10-16 19:58 ` Avi Kivity
0 siblings, 0 replies; 14+ messages in thread
From: Avi Kivity @ 2007-10-16 19:58 UTC (permalink / raw)
To: jyoung5-r/Jw6+rmf7HQT0dZR+AlfA; +Cc: kvm-devel
Jerone Young wrote:
>
>>> while [[ "$1" = -* ]]; do
>>> opt="$1"; shift
>>> @@ -48,11 +45,17 @@ while [[ "$1" = -* ]]; do
>>> want_module=
>>> ;;
>>> --qemu-cc)
>>> - qemu_cc="$arg"
>>> + cc="$arg"
>>>
>>>
>> This forces everything to be compiled with $cc, not just qemu? Or is
>> the kernel/ dierctory not affected by this?
>>
>
> I can create two but it will make things very complicated. This only
> will effect the qemu and user directory, but not the kernel directory.
> Currently kernel directory is used for headers by these two.
>
> If a user wants to change this they can run the configure script in user
> directory manually.
>
> Really I can just change it to just the option is --cc and remove the
> qemu part. That actually makes more since.
>
> Otherwise you end up with something more complicated like having to
> specify which one needs the cross compiler and not, which need this
> specific gcc, just bad. Really you should be compiling both with the
> same gcc anyway. If you want to do something different then you really
> should go into both directories and run configure stand alone.
>
So long as the kernel isn't affected I don't mind a common cc for user/
and qemu/.
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
-------------------------------------------------------------------------
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] 14+ messages in thread
* Re: [PATCH] Add cross compile to top level configuration file
2007-10-16 19:51 ` Jerone Young
@ 2007-10-16 20:03 ` Anthony Liguori
0 siblings, 0 replies; 14+ messages in thread
From: Anthony Liguori @ 2007-10-16 20:03 UTC (permalink / raw)
To: jyoung5-r/Jw6+rmf7HQT0dZR+AlfA; +Cc: kvm-devel, Avi Kivity
Jerone Young wrote:
> On Tue, 2007-10-16 at 09:59 -0500, Anthony Liguori wrote:
>
>> Jerone Young wrote:
>>
>>> On Mon, 2007-10-15 at 15:13 -0500, Anthony Liguori wrote:
>>>
>>>
>>>
>>>>> +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.
>>>
>>>
>> So, instead of doing the funky $qemu_opts thing, why not just do:
>>
>>
>> ${cross_prefix:+"--cross-prefix=${cross_prefix} --cpu=${arch}"}
>
> Well you could but what I need to is satisfy the situation that if you
> have --qemu-cc specified that it not use it. I'm not sure how you do
> this in one line in bash. So I have
>
> if [[ -z $cross_prefix ]]; then
> qemu_opts+=" --cc=$cc"
> else
> qemu_opts+=" --cross-prefix=$cross_prefix"
> fi
>
Unconditionally passing --cc to qemu seems like a bad idea to me. I
think what you really want is:
${cross_prefix:+"--cross-prefix=${cross_prefix} --cpu=${arch}"} \
${qemu_cc:+"--cc=${qemu_cc}"}
QEMU doesn't perform the same checks if you explicitly pass --cc so if
you do this unconditionally, it will do ugly things like try to use gcc4
instead of finding gcc3.2
Regards,
Anthony Liguori
> Also after this options are added to $qemu_opts based on what
> architecture you are compiling for. For now you only see x86-64 & i386.
> But this is about to change .. if I can ever get this patch in :-)
>
> Also it becomes even more complicated with the next version of the patch
> I'll be sending out in out.
>
>
>
>
>> Regards,
>>
>> Anthony Liguori
>>
>>
>> -------------------------------------------------------------------------
>> 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] 14+ messages in thread
end of thread, other threads:[~2007-10-16 20:03 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-15 19:12 [PATCH] Add cross compile to top level configuration file Jerone Young
2007-10-15 20:13 ` Anthony Liguori
[not found] ` <4713C9D5.3070001-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-10-15 20:35 ` Jerone Young
2007-10-15 20:51 ` Anthony Liguori
[not found] ` <4713D2BD.9040202-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-10-16 2:30 ` Jerone Young
2007-10-16 3:08 ` [PATCH] [RESEND] " Jerone Young
2007-10-16 9:59 ` Avi Kivity
[not found] ` <47148B90.2020607-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-16 19:08 ` Jerone Young
2007-10-16 19:58 ` Avi Kivity
2007-10-16 10:30 ` Avi Kivity
2007-10-16 9:37 ` [PATCH] " Avi Kivity
2007-10-16 14:59 ` Anthony Liguori
[not found] ` <4714D1BA.6050504-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-10-16 19:51 ` Jerone Young
2007-10-16 20:03 ` Anthony Liguori
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox