[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC] configure: shorthand for only enabling nati
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH RFC] configure: shorthand for only enabling native softmmu target |
Date: |
Wed, 14 Mar 2018 18:04:57 +0000 |
User-agent: |
mu4e 1.1.0; emacs 26.0.91 |
Daniel P. Berrangé <address@hidden> writes:
> With the huge number of QEMU targets, a default configuration will take
> a very long time to rebuild. When developing most code changes, it is
> sufficient to test compilation with a single target - rebuilding all
> targets just extends compile times while not detecting any new problems.
>
> Developers will often thus specify a single target for configure,
> commonly matching the host architecture. eg
>
> ./configure --target-list=x86_64-softmmu
A while back I messed with a patch that allowed stems in --target-list
so you could quickly select targets with stems:
Subject: [PATCH 0/4] Current Travis queue
Date: Fri, 15 Apr 2016 16:56:57 +0100
Message-Id: <address@hidden>
but if I recall Peter was worried about it breaking existing configure
lines.
>
> This works fine, but is a bit of a verbose thing to type out everytime
> configure is invoked. There are already short-hand args to disable all
> user targets, all softmmu targets, or all tcg targets. This adds one
> further shorthand to disable all non-native architecture targets.
>
> ./configure --native
I'm not sure this is really the case. My history tends to be littered
with things like:
./configure --enable-debug --enable-debug-tcg --extra-cflags="-O0 -g3"
--target-list=aarch64-linux-user
when compile time is an issue although my development box is an x86.
Normally I do compile all targets and rely on ccache to keep the compile
time reasonable.
>
> Signed-off-by: Daniel P. Berrangé <address@hidden>
> ---
>
> Suggestions welcomed for better names than --native, but bear in mind
> the goal is to minimise amount of typing so nothing too verbose, hence
> why I didn't do something like --disable-non-native ...
I would argue it's "almost" equivalent to --disable-tcg as most native
users in my experience aren't looking to run X on X via TCG. I could be
wrong of course.
>
> configure | 24 ++++++++++++++++++++++++
> 1 file changed, 24 insertions(+)
>
> diff --git a/configure b/configure
> index af72fc852e..807af93116 100755
> --- a/configure
> +++ b/configure
> @@ -233,6 +233,22 @@ supported_whpx_target() {
> return 1
> }
>
> +supported_native_target() {
> + glob "$1" "*-softmmu" || return 1
> + case "${1%-softmmu}:$cpu" in
> + arm:arm | aarch64:aarch64 | \
> + i386:i386 | i386:x32 | \
> + x86_64:x86_64 | \
> + mips:mips | mipsel:mips | \
> + ppc:ppc | ppcemb:ppc | \
> + ppc64:ppc64 | \
> + s390x:s390x)
> + return 0
> + ;;
> + esac
> + return 1
> +}
> +
This strikes me as another place to mess about with when doing target
specific changes to configure.
> supported_target() {
> case "$1" in
> *-softmmu)
> @@ -254,6 +270,10 @@ supported_target() {
> return 1
> ;;
> esac
> + if test "$native" = "yes"
> + then
> + supported_native_target "$1" || return 1
> + fi
> test "$tcg" = "yes" && return 0
> supported_kvm_target "$1" && return 0
> supported_xen_target "$1" && return 0
> @@ -390,6 +410,7 @@ cocoa="no"
> softmmu="yes"
> linux_user="no"
> bsd_user="no"
> +native="no"
> blobs="yes"
> pkgversion=""
> pie=""
> @@ -1112,6 +1133,8 @@ for opt do
> cocoa="yes" ;
> audio_drv_list="coreaudio $(echo $audio_drv_list | sed s,coreaudio,,g)"
> ;;
> + --native) native="yes"
> + ;;
> --disable-system) softmmu="no"
> ;;
> --enable-system) softmmu="yes"
> @@ -1540,6 +1563,7 @@ Advanced options (experts only):
> xen pv domain builder
> --enable-debug-stack-usage
> track the maximum stack usage of stacks created
> by qemu_alloc_stack
> + --native only enable the softmmu target matching host
> architecture
>
> Optional features, enabled with --enable-FEATURE and
> disabled with --disable-FEATURE, default is enabled if available:
--
Alex Bennée