* [Qemu-devel] [PATCH 1/4] ./configure: accept stems to match a range of targets
2016-04-15 15:56 [Qemu-devel] [PATCH 0/4] Current Travis queue Alex Bennée
@ 2016-04-15 15:56 ` Alex Bennée
2016-04-15 15:56 ` [Qemu-devel] [PATCH 2/4] .travis.yml: reduce target list on core configure tweaks Alex Bennée
` (2 subsequent siblings)
3 siblings, 0 replies; 9+ messages in thread
From: Alex Bennée @ 2016-04-15 15:56 UTC (permalink / raw)
To: qemu-devel; +Cc: Alex Bennée
This is useful if you want to build all targets of a given architecture
or type. A simple submatch to an real target will add it to the list.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
configure | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 5db29f0..1e04a4f 100755
--- a/configure
+++ b/configure
@@ -1247,7 +1247,8 @@ Standard options:
--target-list=LIST set target list (default: build everything)
$(echo Available targets: $default_target_list | \
fold -s -w 53 | sed -e 's/^/ /')
-
+ LIST can contain stems to match sets of targets
+ (e.g. softmmu will match all softmmu targets)
Advanced options (experts only):
--source-path=PATH path of source code [$source_path]
--cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]
@@ -1640,15 +1641,29 @@ fi
# Check that we recognised the target name; this allows a more
# friendly error message than if we let it fall through.
+final_target_list=""
for target in $target_list; do
case " $default_target_list " in
*" $target "*)
+ final_target_list="$target $final_target_list"
;;
*)
- error_exit "Unknown target name '$target'"
+ # Maybe we can match to range of targets?
+ exp="no"
+ for match in $default_target_list; do
+ if test "${match#*$target}" != "$match" ; then
+ final_target_list="$match $final_target_list"
+ exp="yes"
+ fi
+ done
+ if test "$exp" = "no"; then
+ error_exit "Unknown target name '$target'"
+ fi
;;
esac
done
+target_list=$final_target_list
+
# see if system emulation was really requested
case " $target_list " in
--
2.7.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Qemu-devel] [PATCH 2/4] .travis.yml: reduce target list on core configure tweaks
2016-04-15 15:56 [Qemu-devel] [PATCH 0/4] Current Travis queue Alex Bennée
2016-04-15 15:56 ` [Qemu-devel] [PATCH 1/4] ./configure: accept stems to match a range of targets Alex Bennée
@ 2016-04-15 15:56 ` Alex Bennée
2016-04-15 16:07 ` Peter Maydell
2016-04-15 15:57 ` [Qemu-devel] [PATCH 3/4] .travis.yml: add libnfs-dev for NFS block driver Alex Bennée
2016-04-15 15:57 ` [Qemu-devel] [PATCH 4/4] .travis.yml: add trusty GCE target Alex Bennée
3 siblings, 1 reply; 9+ messages in thread
From: Alex Bennée @ 2016-04-15 15:56 UTC (permalink / raw)
To: qemu-devel; +Cc: Alex Bennée
A number of configure options only really affect the core code and any
arch specific stuff should be flushed out by other builds:
- trace-backends, log build is all targets, others can be less
- --disable-build, ensuring disabling stuff doesn't break host
- co-routine, default already built with all, common API
- tcg interpreter is front end agnostic
I've used the ./configure --target-list stem support to do all of one
arch type in each reduced build.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
.travis.yml | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 50ac17f..d13bffc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -45,10 +45,10 @@ env:
matrix:
- CONFIG=""
- CONFIG="--enable-debug --enable-debug-tcg --enable-trace-backends=log"
- - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-uuid --disable-libusb"
- - CONFIG="--enable-modules"
- - CONFIG="--with-coroutine=ucontext"
- - CONFIG="--with-coroutine=sigaltstack"
+ - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-uuid --disable-libusb --target-list=86"
+ - CONFIG="--enable-modules --target-list=86"
+ - CONFIG="--with-coroutine=ucontext --target-list=arm"
+ - CONFIG="--with-coroutine=sigaltstack --target-list=ppc"
git:
# we want to do this ourselves
submodules: false
@@ -70,19 +70,19 @@ matrix:
- env: CONFIG="--enable-gprof --enable-gcov --disable-pie"
compiler: gcc
# We manually include builds which we disable "make check" for
- - env: CONFIG="--enable-debug --enable-tcg-interpreter"
+ - env: CONFIG="--enable-debug --enable-tcg-interpreter --target-list=mips"
TEST_CMD=""
compiler: gcc
- - env: CONFIG="--enable-trace-backends=simple"
+ - env: CONFIG="--enable-trace-backends=simple --target-list=alpha"
TEST_CMD=""
compiler: gcc
- - env: CONFIG="--enable-trace-backends=ftrace"
+ - env: CONFIG="--enable-trace-backends=ftrace --target-list=s390"
TEST_CMD=""
compiler: gcc
- - env: CONFIG="--enable-trace-backends=ust"
+ - env: CONFIG="--enable-trace-backends=ust --target-list=sparc"
TEST_CMD=""
compiler: gcc
- - env: CONFIG="--with-coroutine=gthread"
+ - env: CONFIG="--with-coroutine=gthread --target-list=sh4"
TEST_CMD=""
compiler: gcc
- env: CONFIG=""
--
2.7.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH 2/4] .travis.yml: reduce target list on core configure tweaks
2016-04-15 15:56 ` [Qemu-devel] [PATCH 2/4] .travis.yml: reduce target list on core configure tweaks Alex Bennée
@ 2016-04-15 16:07 ` Peter Maydell
2016-04-18 9:15 ` Alex Bennée
0 siblings, 1 reply; 9+ messages in thread
From: Peter Maydell @ 2016-04-15 16:07 UTC (permalink / raw)
To: Alex Bennée; +Cc: QEMU Developers
On 15 April 2016 at 16:56, Alex Bennée <alex.bennee@linaro.org> wrote:
> A number of configure options only really affect the core code and any
> arch specific stuff should be flushed out by other builds:
>
> - trace-backends, log build is all targets, others can be less
> - --disable-build, ensuring disabling stuff doesn't break host
> - co-routine, default already built with all, common API
> - tcg interpreter is front end agnostic
>
> I've used the ./configure --target-list stem support to do all of one
> arch type in each reduced build.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
> .travis.yml | 18 +++++++++---------
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/.travis.yml b/.travis.yml
> index 50ac17f..d13bffc 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -45,10 +45,10 @@ env:
> matrix:
> - CONFIG=""
> - CONFIG="--enable-debug --enable-debug-tcg --enable-trace-backends=log"
> - - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-uuid --disable-libusb"
> - - CONFIG="--enable-modules"
> - - CONFIG="--with-coroutine=ucontext"
> - - CONFIG="--with-coroutine=sigaltstack"
> + - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-uuid --disable-libusb --target-list=86"
> + - CONFIG="--enable-modules --target-list=86"
I'm not really convinced by the wildcarding, and this seems like
a good demonstration of why it's overbroad. "86" ??
The wildcarding gives you a configure command that will
potentially change behaviour as we introduce new targets,
too; that makes me a bit nervous.
thanks
-- PMM
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH 2/4] .travis.yml: reduce target list on core configure tweaks
2016-04-15 16:07 ` Peter Maydell
@ 2016-04-18 9:15 ` Alex Bennée
2016-04-18 9:17 ` Peter Maydell
0 siblings, 1 reply; 9+ messages in thread
From: Alex Bennée @ 2016-04-18 9:15 UTC (permalink / raw)
To: Peter Maydell; +Cc: QEMU Developers
Peter Maydell <peter.maydell@linaro.org> writes:
> On 15 April 2016 at 16:56, Alex Bennée <alex.bennee@linaro.org> wrote:
>> A number of configure options only really affect the core code and any
>> arch specific stuff should be flushed out by other builds:
>>
>> - trace-backends, log build is all targets, others can be less
>> - --disable-build, ensuring disabling stuff doesn't break host
>> - co-routine, default already built with all, common API
>> - tcg interpreter is front end agnostic
>>
>> I've used the ./configure --target-list stem support to do all of one
>> arch type in each reduced build.
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> ---
>> .travis.yml | 18 +++++++++---------
>> 1 file changed, 9 insertions(+), 9 deletions(-)
>>
>> diff --git a/.travis.yml b/.travis.yml
>> index 50ac17f..d13bffc 100644
>> --- a/.travis.yml
>> +++ b/.travis.yml
>> @@ -45,10 +45,10 @@ env:
>> matrix:
>> - CONFIG=""
>> - CONFIG="--enable-debug --enable-debug-tcg --enable-trace-backends=log"
>> - - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-uuid --disable-libusb"
>> - - CONFIG="--enable-modules"
>> - - CONFIG="--with-coroutine=ucontext"
>> - - CONFIG="--with-coroutine=sigaltstack"
>> + - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-uuid --disable-libusb --target-list=86"
>> + - CONFIG="--enable-modules --target-list=86"
>
> I'm not really convinced by the wildcarding, and this seems like
> a good demonstration of why it's overbroad. "86" ??
Blame the x86 naming scheme for that. It works nicely for building all
arm, mips and ppc stuff quite nicely.
> The wildcarding gives you a configure command that will
> potentially change behaviour as we introduce new targets,
> too; that makes me a bit nervous.
Well it doesn't stop you using the full names but I take your point.
What about a different selection flag for selecting by backends?
>
> thanks
> -- PMM
--
Alex Bennée
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH 2/4] .travis.yml: reduce target list on core configure tweaks
2016-04-18 9:15 ` Alex Bennée
@ 2016-04-18 9:17 ` Peter Maydell
2016-04-18 9:50 ` Alex Bennée
0 siblings, 1 reply; 9+ messages in thread
From: Peter Maydell @ 2016-04-18 9:17 UTC (permalink / raw)
To: Alex Bennée; +Cc: QEMU Developers
On 18 April 2016 at 10:15, Alex Bennée <alex.bennee@linaro.org> wrote:
> Peter Maydell <peter.maydell@linaro.org> writes:
>> The wildcarding gives you a configure command that will
>> potentially change behaviour as we introduce new targets,
>> too; that makes me a bit nervous.
>
> Well it doesn't stop you using the full names but I take your point.
> What about a different selection flag for selecting by backends?
Am I right in guessing that the reason you don't want to just
say --target-list=arm-softmmu,arm-linux-user is that that won't
work on non-Linux hosts?
thanks
-- PMM
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH 2/4] .travis.yml: reduce target list on core configure tweaks
2016-04-18 9:17 ` Peter Maydell
@ 2016-04-18 9:50 ` Alex Bennée
0 siblings, 0 replies; 9+ messages in thread
From: Alex Bennée @ 2016-04-18 9:50 UTC (permalink / raw)
To: Peter Maydell; +Cc: QEMU Developers
Peter Maydell <peter.maydell@linaro.org> writes:
> On 18 April 2016 at 10:15, Alex Bennée <alex.bennee@linaro.org> wrote:
>> Peter Maydell <peter.maydell@linaro.org> writes:
>>> The wildcarding gives you a configure command that will
>>> potentially change behaviour as we introduce new targets,
>>> too; that makes me a bit nervous.
>>
>> Well it doesn't stop you using the full names but I take your point.
>> What about a different selection flag for selecting by backends?
>
> Am I right in guessing that the reason you don't want to just
> say --target-list=arm-softmmu,arm-linux-user is that that won't
> work on non-Linux hosts?
Not really. The main use case is for ppc and mips targets which have
lots of variant builds for all the various sizes and endianess.
>
> thanks
> -- PMM
--
Alex Bennée
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Qemu-devel] [PATCH 3/4] .travis.yml: add libnfs-dev for NFS block driver
2016-04-15 15:56 [Qemu-devel] [PATCH 0/4] Current Travis queue Alex Bennée
2016-04-15 15:56 ` [Qemu-devel] [PATCH 1/4] ./configure: accept stems to match a range of targets Alex Bennée
2016-04-15 15:56 ` [Qemu-devel] [PATCH 2/4] .travis.yml: reduce target list on core configure tweaks Alex Bennée
@ 2016-04-15 15:57 ` Alex Bennée
2016-04-15 15:57 ` [Qemu-devel] [PATCH 4/4] .travis.yml: add trusty GCE target Alex Bennée
3 siblings, 0 replies; 9+ messages in thread
From: Alex Bennée @ 2016-04-15 15:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Alex Bennée
From: Stefan Hajnoczi <stefanha@redhat.com>
Let's ensure that block/nfs.o is built in Travis.
This patch depends on the following build fixes:
1. block/nfs: add missing #include "qapi/error.h"
2. block/nfs: add missing #include "qemu/cutils.h"
This patch also depends on Travis adding libnfs-dev to the list of
approved packages. This patch can be safely committed but will not do
anything until the Travis maintainers allow libnfs-dev to be installed.
Please see the GitHub Issue I raised here:
https://github.com/travis-ci/apt-package-whitelist/issues/2788
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
.travis.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.travis.yml b/.travis.yml
index d13bffc..262b5ef 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,6 +17,7 @@ addons:
- libgtk-3-dev
- libiscsi-dev
- liblttng-ust-dev
+ - libnfs-dev
- libncurses5-dev
- libnss3-dev
- libpixman-1-dev
--
2.7.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Qemu-devel] [PATCH 4/4] .travis.yml: add trusty GCE target
2016-04-15 15:56 [Qemu-devel] [PATCH 0/4] Current Travis queue Alex Bennée
` (2 preceding siblings ...)
2016-04-15 15:57 ` [Qemu-devel] [PATCH 3/4] .travis.yml: add libnfs-dev for NFS block driver Alex Bennée
@ 2016-04-15 15:57 ` Alex Bennée
3 siblings, 0 replies; 9+ messages in thread
From: Alex Bennée @ 2016-04-15 15:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Alex Bennée
If we want to run our docker based tests we'll need to do them on a
normal VM with docker support. Lets just enable the build on trusty for
now to check against a newer Ubuntu.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
--
v2
- use custom before_install to apt-get build-dep qemu
- disable addon for trusty build
- add -qq to apt line
---
.travis.yml | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index 262b5ef..ed5a026 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -89,3 +89,13 @@ matrix:
- env: CONFIG=""
os: osx
compiler: clang
+ - env: CONFIG=""
+ sudo: required
+ addons:
+ dist: trusty
+ compiler: gcc
+ before_install:
+ - sudo apt-get update -qq
+ - sudo apt-get build-dep -qq qemu
+ - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
+ - git submodule update --init --recursive
--
2.7.4
^ permalink raw reply related [flat|nested] 9+ messages in thread