* [Qemu-devel] [PATCH v2 0/5] travis: reduce the matrix, add OSX, speed-up builds
@ 2016-03-23 17:20 Alex Bennée
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 1/5] .travis.yml: collapse the test matrix Alex Bennée
` (4 more replies)
0 siblings, 5 replies; 16+ messages in thread
From: Alex Bennée @ 2016-03-23 17:20 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Alex Bennée, david
Here is v2. I've added two new patches, a tweak to configure to accept
stems for target lists and then using that to cut the build time where
it makes sense. There has been a little tweak to the OSX build and
finally I've added r-b tags to the collapse and j3 patches.
Alex Bennée (5):
.travis.yml: collapse the test matrix
.travis.yml: enable OSX builds
.travis.yml: make -j3
./configure: accept stems to match a range of targets
.travis.yml: reduce target list on core configure tweaks
.travis.yml | 82 ++++++++++++++++++-------------------------------------------
configure | 19 ++++++++++++--
2 files changed, 41 insertions(+), 60 deletions(-)
--
2.7.3
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Qemu-devel] [PATCH v2 1/5] .travis.yml: collapse the test matrix
2016-03-23 17:20 [Qemu-devel] [PATCH v2 0/5] travis: reduce the matrix, add OSX, speed-up builds Alex Bennée
@ 2016-03-23 17:20 ` Alex Bennée
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 2/5] .travis.yml: enable OSX builds Alex Bennée
` (3 subsequent siblings)
4 siblings, 0 replies; 16+ messages in thread
From: Alex Bennée @ 2016-03-23 17:20 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Alex Bennée, david
Remove the concept of TARGETS and build the complete target list for
each config combination. Now the matrix is just based on CONFIG stanzas
and we use the additional stuff for:
- things that only work on one compiler (sparse, gcov, gprof)
- combos where "make check" fails
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
---
.travis.yml | 75 +++++++++++++++----------------------------------------------
1 file changed, 18 insertions(+), 57 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 9e5873b..18c04af 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -42,17 +42,13 @@ notifications:
env:
global:
- TEST_CMD="make check"
- - EXTRA_CONFIG=""
matrix:
- # Group major targets together with their linux-user counterparts
- - TARGETS=alpha-softmmu,alpha-linux-user,cris-softmmu,cris-linux-user,m68k-softmmu,m68k-linux-user,microblaze-softmmu,microblazeel-softmmu,microblaze-linux-user,microblazeel-linux-user
- - TARGETS=arm-softmmu,arm-linux-user,armeb-linux-user,aarch64-softmmu,aarch64-linux-user
- - TARGETS=i386-softmmu,i386-linux-user,x86_64-softmmu,x86_64-linux-user
- - TARGETS=mips-softmmu,mips64-softmmu,mips64el-softmmu,mipsel-softmmu,mips-linux-user,mips64-linux-user,mips64el-linux-user,mipsel-linux-user,mipsn32-linux-user,mipsn32el-linux-user
- - TARGETS=or32-softmmu,or32-linux-user,ppc-softmmu,ppc64-softmmu,ppcemb-softmmu,ppc-linux-user,ppc64-linux-user,ppc64abi32-linux-user,ppc64le-linux-user
- - TARGETS=s390x-softmmu,s390x-linux-user,sh4-softmmu,sh4eb-softmmu,sh4-linux-user,sh4eb-linux-user,sparc-softmmu,sparc64-softmmu,sparc-linux-user,sparc32plus-linux-user,sparc64-linux-user,unicore32-softmmu,unicore32-linux-user
- # Group remaining softmmu only targets into one build
- - TARGETS=lm32-softmmu,moxie-softmmu,tricore-softmmu,xtensa-softmmu,xtensaeb-softmmu
+ - 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"
git:
# we want to do this ourselves
submodules: false
@@ -60,65 +56,30 @@ before_install:
- wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
- git submodule update --init --recursive
before_script:
- - ./configure --target-list=${TARGETS} --enable-debug-tcg ${EXTRA_CONFIG}
+ - ./configure ${CONFIG}
script:
- make -j2 && ${TEST_CMD}
matrix:
- # We manually include a number of additional build for non-standard bits
include:
- # Debug related options
- - env: TARGETS=x86_64-softmmu
- EXTRA_CONFIG="--enable-debug"
+ # Sparse is GCC only
+ - env: CONFIG="--enable-sparse"
compiler: gcc
- # We currently disable "make check"
- - env: TARGETS=alpha-softmmu
- EXTRA_CONFIG="--enable-debug --enable-tcg-interpreter"
- TEST_CMD=""
- compiler: gcc
- # Disable a few of the optional features
- - env: TARGETS=x86_64-softmmu
- EXTRA_CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-uuid --disable-libusb"
- compiler: gcc
- # Currently configure doesn't force --disable-pie
- - env: TARGETS=x86_64-softmmu
- EXTRA_CONFIG="--enable-gprof --enable-gcov --disable-pie"
- compiler: gcc
- # Sparse
- - env: TARGETS=x86_64-softmmu
- EXTRA_CONFIG="--enable-sparse"
+ # gprof/gcov are GCC features
+ - env: CONFIG="--enable-gprof --enable-gcov --disable-pie"
compiler: gcc
- # Modules
- - env: TARGETS=arm-softmmu,x86_64-softmmu
- EXTRA_CONFIG="--enable-modules"
- compiler: gcc
- # All the trace backends (apart from dtrace)
- - env: TARGETS=i386-softmmu
- EXTRA_CONFIG="--enable-trace-backends=log"
- compiler: gcc
- # We currently disable "make check" (until 41fc57e44ed regression fixed)
- - env: TARGETS=x86_64-softmmu
- EXTRA_CONFIG="--enable-trace-backends=simple"
+ # We manually include builds which we disable "make check" for
+ - env: CONFIG="--enable-debug --enable-tcg-interpreter"
TEST_CMD=""
compiler: gcc
- # We currently disable "make check"
- - env: TARGETS=x86_64-softmmu
- EXTRA_CONFIG="--enable-trace-backends=ftrace"
+ - env: CONFIG="--enable-trace-backends=simple"
TEST_CMD=""
compiler: gcc
- # We currently disable "make check"
- - env: TARGETS=x86_64-softmmu
- EXTRA_CONFIG="--enable-trace-backends=ust"
+ - env: CONFIG="--enable-trace-backends=ftrace"
TEST_CMD=""
compiler: gcc
- # All the co-routine backends (apart from windows)
- # We currently disable "make check"
- - env: TARGETS=x86_64-softmmu
- EXTRA_CONFIG="--with-coroutine=gthread"
+ - env: CONFIG="--enable-trace-backends=ust"
TEST_CMD=""
compiler: gcc
- - env: TARGETS=x86_64-softmmu
- EXTRA_CONFIG="--with-coroutine=ucontext"
- compiler: gcc
- - env: TARGETS=x86_64-softmmu
- EXTRA_CONFIG="--with-coroutine=sigaltstack"
+ - env: CONFIG="--with-coroutine=gthread"
+ TEST_CMD=""
compiler: gcc
--
2.7.3
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Qemu-devel] [PATCH v2 2/5] .travis.yml: enable OSX builds
2016-03-23 17:20 [Qemu-devel] [PATCH v2 0/5] travis: reduce the matrix, add OSX, speed-up builds Alex Bennée
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 1/5] .travis.yml: collapse the test matrix Alex Bennée
@ 2016-03-23 17:20 ` Alex Bennée
2016-03-31 13:42 ` Alex Bennée
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 3/5] .travis.yml: make -j3 Alex Bennée
` (2 subsequent siblings)
4 siblings, 1 reply; 16+ messages in thread
From: Alex Bennée @ 2016-03-23 17:20 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Alex Bennée, david
Travis has support for OSX builds. Making the setup work cleanly
involves a little hacking about with the .travis.yml file but rather
than make it too messy I've pushed all the "brew" install stuff into a
support script called ./scripts/macosx-brew.sh.
Currently only the default ./configure ${CONFIG} is built as I'm not
sure what extra coverage would come from the other build stanzas.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
v2
- brew directly, use POSIX shell logic
---
.travis.yml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index 18c04af..f02710d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -53,6 +53,8 @@ git:
# we want to do this ourselves
submodules: false
before_install:
+ - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update ; fi
+ - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install libffi gettext glib pixman ; fi
- wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
- git submodule update --init --recursive
before_script:
@@ -83,3 +85,6 @@ matrix:
- env: CONFIG="--with-coroutine=gthread"
TEST_CMD=""
compiler: gcc
+ - env: CONFIG=""
+ os: osx
+ compiler: clang
--
2.7.3
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Qemu-devel] [PATCH v2 3/5] .travis.yml: make -j3
2016-03-23 17:20 [Qemu-devel] [PATCH v2 0/5] travis: reduce the matrix, add OSX, speed-up builds Alex Bennée
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 1/5] .travis.yml: collapse the test matrix Alex Bennée
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 2/5] .travis.yml: enable OSX builds Alex Bennée
@ 2016-03-23 17:20 ` Alex Bennée
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 4/5] ./configure: accept stems to match a range of targets Alex Bennée
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 5/5] .travis.yml: reduce target list on core configure tweaks Alex Bennée
4 siblings, 0 replies; 16+ messages in thread
From: Alex Bennée @ 2016-03-23 17:20 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Alex Bennée, david
The move from Travis VMs to Containers came with a upgrade from 1.5
cores to 2. The received wisdom is -j N+1 means a core can be doing work
while other threads wait for IO to complete. This is hard to test on the
Travis infrastructure but an initial before/after eyeballing seems to
confirm it is an improvement.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
---
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index f02710d..50ac17f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -60,7 +60,7 @@ before_install:
before_script:
- ./configure ${CONFIG}
script:
- - make -j2 && ${TEST_CMD}
+ - make -j3 && ${TEST_CMD}
matrix:
include:
# Sparse is GCC only
--
2.7.3
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Qemu-devel] [PATCH v2 4/5] ./configure: accept stems to match a range of targets
2016-03-23 17:20 [Qemu-devel] [PATCH v2 0/5] travis: reduce the matrix, add OSX, speed-up builds Alex Bennée
` (2 preceding siblings ...)
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 3/5] .travis.yml: make -j3 Alex Bennée
@ 2016-03-23 17:20 ` Alex Bennée
2016-03-24 9:23 ` Sergey Fedorov
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 5/5] .travis.yml: reduce target list on core configure tweaks Alex Bennée
4 siblings, 1 reply; 16+ messages in thread
From: Alex Bennée @ 2016-03-23 17:20 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Alex Bennée, david
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 b88d0db..ebf8a42 100755
--- a/configure
+++ b/configure
@@ -1246,7 +1246,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]
@@ -1639,15 +1640,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.3
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Qemu-devel] [PATCH v2 5/5] .travis.yml: reduce target list on core configure tweaks
2016-03-23 17:20 [Qemu-devel] [PATCH v2 0/5] travis: reduce the matrix, add OSX, speed-up builds Alex Bennée
` (3 preceding siblings ...)
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 4/5] ./configure: accept stems to match a range of targets Alex Bennée
@ 2016-03-23 17:20 ` Alex Bennée
2016-03-24 0:22 ` David Gibson
4 siblings, 1 reply; 16+ messages in thread
From: Alex Bennée @ 2016-03-23 17:20 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Alex Bennée, david
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.3
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] [PATCH v2 5/5] .travis.yml: reduce target list on core configure tweaks
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 5/5] .travis.yml: reduce target list on core configure tweaks Alex Bennée
@ 2016-03-24 0:22 ` David Gibson
0 siblings, 0 replies; 16+ messages in thread
From: David Gibson @ 2016-03-24 0:22 UTC (permalink / raw)
To: Alex Bennée; +Cc: peter.maydell, qemu-devel
[-- Attachment #1: Type: text/plain, Size: 3098 bytes --]
On Wed, Mar 23, 2016 at 05:20:57PM +0000, Alex Bennée 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>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
AFAICT compiling extra targets is very unlikely to detect extra
problems with those config options.
> ---
> .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=""
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] [PATCH v2 4/5] ./configure: accept stems to match a range of targets
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 4/5] ./configure: accept stems to match a range of targets Alex Bennée
@ 2016-03-24 9:23 ` Sergey Fedorov
2016-03-24 12:05 ` Alex Bennée
0 siblings, 1 reply; 16+ messages in thread
From: Sergey Fedorov @ 2016-03-24 9:23 UTC (permalink / raw)
To: Alex Bennée, qemu-devel; +Cc: peter.maydell, david
On 23/03/16 20:20, Alex Bennée wrote:
> diff --git a/configure b/configure
> index b88d0db..ebf8a42 100755
> --- a/configure
> +++ b/configure
> @@ -1246,7 +1246,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]
Maybe we'd better require user to specify the exact glob patterns in
'--target-list' to avoid possible misuse?
Kind regards,
Sergey
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] [PATCH v2 4/5] ./configure: accept stems to match a range of targets
2016-03-24 9:23 ` Sergey Fedorov
@ 2016-03-24 12:05 ` Alex Bennée
2016-03-24 12:16 ` Sergey Fedorov
0 siblings, 1 reply; 16+ messages in thread
From: Alex Bennée @ 2016-03-24 12:05 UTC (permalink / raw)
To: Sergey Fedorov; +Cc: peter.maydell, qemu-devel, david
Sergey Fedorov <serge.fdrv@gmail.com> writes:
> On 23/03/16 20:20, Alex Bennée wrote:
>> diff --git a/configure b/configure
>> index b88d0db..ebf8a42 100755
>> --- a/configure
>> +++ b/configure
>> @@ -1246,7 +1246,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]
>
> Maybe we'd better require user to specify the exact glob patterns in
> '--target-list' to avoid possible misuse?
Don't you run into problems of escaping glob patterns from the shell and
the like? For example if I do:
12:04 alex@zen/x86_64 [qemu.git/mttcg/base-patches-v2] >./configure
--target-list=arm*
ERROR: Unknown target name 'arm-softmmu-config-devices.mak.d'
As the shell picks up file names from the src dir.
>
> Kind regards,
> Sergey
--
Alex Bennée
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] [PATCH v2 4/5] ./configure: accept stems to match a range of targets
2016-03-24 12:05 ` Alex Bennée
@ 2016-03-24 12:16 ` Sergey Fedorov
2016-03-24 16:05 ` Alex Bennée
0 siblings, 1 reply; 16+ messages in thread
From: Sergey Fedorov @ 2016-03-24 12:16 UTC (permalink / raw)
To: Alex Bennée; +Cc: peter.maydell, qemu-devel, david
On 24/03/16 15:05, Alex Bennée wrote:
> Sergey Fedorov <serge.fdrv@gmail.com> writes:
>
>> On 23/03/16 20:20, Alex Bennée wrote:
>>> diff --git a/configure b/configure
>>> index b88d0db..ebf8a42 100755
>>> --- a/configure
>>> +++ b/configure
>>> @@ -1246,7 +1246,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]
>> Maybe we'd better require user to specify the exact glob patterns in
>> '--target-list' to avoid possible misuse?
> Don't you run into problems of escaping glob patterns from the shell and
> the like? For example if I do:
>
> 12:04 alex@zen/x86_64 [qemu.git/mttcg/base-patches-v2] >./configure
> --target-list=arm*
>
> ERROR: Unknown target name 'arm-softmmu-config-devices.mak.d'
>
> As the shell picks up file names from the src dir.
>
Of course, it would be necessary to quote it like this:
./configure --target-list='arm*'
Kind regards,
Sergey
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] [PATCH v2 4/5] ./configure: accept stems to match a range of targets
2016-03-24 12:16 ` Sergey Fedorov
@ 2016-03-24 16:05 ` Alex Bennée
2016-03-24 16:07 ` Sergey Fedorov
0 siblings, 1 reply; 16+ messages in thread
From: Alex Bennée @ 2016-03-24 16:05 UTC (permalink / raw)
To: Sergey Fedorov; +Cc: peter.maydell, qemu-devel, david
Sergey Fedorov <serge.fdrv@gmail.com> writes:
> On 24/03/16 15:05, Alex Bennée wrote:
>> Sergey Fedorov <serge.fdrv@gmail.com> writes:
>>
>>> On 23/03/16 20:20, Alex Bennée wrote:
>>>> diff --git a/configure b/configure
>>>> index b88d0db..ebf8a42 100755
>>>> --- a/configure
>>>> +++ b/configure
>>>> @@ -1246,7 +1246,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]
>>> Maybe we'd better require user to specify the exact glob patterns in
>>> '--target-list' to avoid possible misuse?
>> Don't you run into problems of escaping glob patterns from the shell and
>> the like? For example if I do:
>>
>> 12:04 alex@zen/x86_64 [qemu.git/mttcg/base-patches-v2] >./configure
>> --target-list=arm*
>>
>> ERROR: Unknown target name 'arm-softmmu-config-devices.mak.d'
>>
>> As the shell picks up file names from the src dir.
>>
>
> Of course, it would be necessary to quote it like this:
>
> ./configure --target-list='arm*'
Hmm shell quoting is a black art it seems:
16:04 alex@zen/x86_64 [qemu.git/travis/add-trusty-gce] >./configure --target-list='ar*'
ERROR: Unknown target name 'arch_init.c'
>
> Kind regards,
> Sergey
--
Alex Bennée
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] [PATCH v2 4/5] ./configure: accept stems to match a range of targets
2016-03-24 16:05 ` Alex Bennée
@ 2016-03-24 16:07 ` Sergey Fedorov
2016-03-24 16:20 ` Alex Bennée
0 siblings, 1 reply; 16+ messages in thread
From: Sergey Fedorov @ 2016-03-24 16:07 UTC (permalink / raw)
To: Alex Bennée; +Cc: peter.maydell, qemu-devel, david
On 24/03/16 19:05, Alex Bennée wrote:
> Sergey Fedorov <serge.fdrv@gmail.com> writes:
>
>> On 24/03/16 15:05, Alex Bennée wrote:
>>> Sergey Fedorov <serge.fdrv@gmail.com> writes:
>>>
>>>> On 23/03/16 20:20, Alex Bennée wrote:
>>>>> diff --git a/configure b/configure
>>>>> index b88d0db..ebf8a42 100755
>>>>> --- a/configure
>>>>> +++ b/configure
>>>>> @@ -1246,7 +1246,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]
>>>> Maybe we'd better require user to specify the exact glob patterns in
>>>> '--target-list' to avoid possible misuse?
>>> Don't you run into problems of escaping glob patterns from the shell and
>>> the like? For example if I do:
>>>
>>> 12:04 alex@zen/x86_64 [qemu.git/mttcg/base-patches-v2] >./configure
>>> --target-list=arm*
>>>
>>> ERROR: Unknown target name 'arm-softmmu-config-devices.mak.d'
>>>
>>> As the shell picks up file names from the src dir.
>>>
>> Of course, it would be necessary to quote it like this:
>>
>> ./configure --target-list='arm*'
> Hmm shell quoting is a black art it seems:
>
> 16:04 alex@zen/x86_64 [qemu.git/travis/add-trusty-gce] >./configure --target-list='ar*'
>
> ERROR: Unknown target name 'arch_init.c'
Right, it's inherent problem, I think :)
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] [PATCH v2 4/5] ./configure: accept stems to match a range of targets
2016-03-24 16:07 ` Sergey Fedorov
@ 2016-03-24 16:20 ` Alex Bennée
2016-03-24 16:46 ` Sergey Fedorov
0 siblings, 1 reply; 16+ messages in thread
From: Alex Bennée @ 2016-03-24 16:20 UTC (permalink / raw)
To: Sergey Fedorov; +Cc: peter.maydell, qemu-devel, david
Sergey Fedorov <serge.fdrv@gmail.com> writes:
> On 24/03/16 19:05, Alex Bennée wrote:
>> Sergey Fedorov <serge.fdrv@gmail.com> writes:
>>
>>> On 24/03/16 15:05, Alex Bennée wrote:
>>>> Sergey Fedorov <serge.fdrv@gmail.com> writes:
>>>>
>>>>> On 23/03/16 20:20, Alex Bennée wrote:
>>>>>> diff --git a/configure b/configure
>>>>>> index b88d0db..ebf8a42 100755
>>>>>> --- a/configure
>>>>>> +++ b/configure
>>>>>> @@ -1246,7 +1246,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]
>>>>> Maybe we'd better require user to specify the exact glob patterns in
>>>>> '--target-list' to avoid possible misuse?
>>>> Don't you run into problems of escaping glob patterns from the shell and
>>>> the like? For example if I do:
>>>>
>>>> 12:04 alex@zen/x86_64 [qemu.git/mttcg/base-patches-v2] >./configure
>>>> --target-list=arm*
>>>>
>>>> ERROR: Unknown target name 'arm-softmmu-config-devices.mak.d'
>>>>
>>>> As the shell picks up file names from the src dir.
>>>>
>>> Of course, it would be necessary to quote it like this:
>>>
>>> ./configure --target-list='arm*'
>> Hmm shell quoting is a black art it seems:
>>
>> 16:04 alex@zen/x86_64 [qemu.git/travis/add-trusty-gce] >./configure --target-list='ar*'
>>
>> ERROR: Unknown target name 'arch_init.c'
>
> Right, it's inherent problem, I think :)
Hence my decision to stick with stems ;-)
--
Alex Bennée
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] [PATCH v2 4/5] ./configure: accept stems to match a range of targets
2016-03-24 16:20 ` Alex Bennée
@ 2016-03-24 16:46 ` Sergey Fedorov
0 siblings, 0 replies; 16+ messages in thread
From: Sergey Fedorov @ 2016-03-24 16:46 UTC (permalink / raw)
To: Alex Bennée; +Cc: peter.maydell, QEMU Developers, David Gibson
[-- Attachment #1: Type: text/plain, Size: 2260 bytes --]
24 марта 2016 г. 19:20 "Alex Bennée" <alex.bennee@linaro.org>:
> Sergey Fedorov <serge.fdrv@gmail.com> writes:
> > On 24/03/16 19:05, Alex Bennée wrote:
> >> Sergey Fedorov <serge.fdrv@gmail.com> writes:
> >>
> >>> On 24/03/16 15:05, Alex Bennée wrote:
> >>>> Sergey Fedorov <serge.fdrv@gmail.com> writes:
> >>>>
> >>>>> On 23/03/16 20:20, Alex Bennée wrote:
> >>>>>> diff --git a/configure b/configure
> >>>>>> index b88d0db..ebf8a42 100755
> >>>>>> --- a/configure
> >>>>>> +++ b/configure
> >>>>>> @@ -1246,7 +1246,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]
> >>>>> Maybe we'd better require user to specify the exact glob patterns in
> >>>>> '--target-list' to avoid possible misuse?
> >>>> Don't you run into problems of escaping glob patterns from the shell
and
> >>>> the like? For example if I do:
> >>>>
> >>>> 12:04 alex@zen/x86_64 [qemu.git/mttcg/base-patches-v2] >./configure
> >>>> --target-list=arm*
> >>>>
> >>>> ERROR: Unknown target name 'arm-softmmu-config-devices.mak.d'
> >>>>
> >>>> As the shell picks up file names from the src dir.
> >>>>
> >>> Of course, it would be necessary to quote it like this:
> >>>
> >>> ./configure --target-list='arm*'
> >> Hmm shell quoting is a black art it seems:
> >>
> >> 16:04 alex@zen/x86_64 [qemu.git/travis/add-trusty-gce] >./configure
--target-list='ar*'
> >>
> >> ERROR: Unknown target name 'arch_init.c'
> >
> > Right, it's inherent problem, I think :)
>
> Hence my decision to stick with stems ;-)
That is exactly the same problem as if you would like to do:
find -name '*.[ch]'
It will do the wrong thing if you miss quotes.
Regards,
Sergey
[-- Attachment #2: Type: text/html, Size: 3533 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/5] .travis.yml: enable OSX builds
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 2/5] .travis.yml: enable OSX builds Alex Bennée
@ 2016-03-31 13:42 ` Alex Bennée
2016-04-04 14:47 ` Peter Maydell
0 siblings, 1 reply; 16+ messages in thread
From: Alex Bennée @ 2016-03-31 13:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, david
Alex Bennée <alex.bennee@linaro.org> writes:
> Travis has support for OSX builds. Making the setup work cleanly
> involves a little hacking about with the .travis.yml file but rather
> than make it too messy I've pushed all the "brew" install stuff into a
> support script called ./scripts/macosx-brew.sh.
>
> Currently only the default ./configure ${CONFIG} is built as I'm not
> sure what extra coverage would come from the other build stanzas.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Ping Peter. Does this look OK for you?
>
> ---
> v2
> - brew directly, use POSIX shell logic
> ---
> .travis.yml | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/.travis.yml b/.travis.yml
> index 18c04af..f02710d 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -53,6 +53,8 @@ git:
> # we want to do this ourselves
> submodules: false
> before_install:
> + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update ; fi
> + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install libffi gettext glib pixman ; fi
> - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
> - git submodule update --init --recursive
> before_script:
> @@ -83,3 +85,6 @@ matrix:
> - env: CONFIG="--with-coroutine=gthread"
> TEST_CMD=""
> compiler: gcc
> + - env: CONFIG=""
> + os: osx
> + compiler: clang
--
Alex Bennée
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/5] .travis.yml: enable OSX builds
2016-03-31 13:42 ` Alex Bennée
@ 2016-04-04 14:47 ` Peter Maydell
0 siblings, 0 replies; 16+ messages in thread
From: Peter Maydell @ 2016-04-04 14:47 UTC (permalink / raw)
To: Alex Bennée; +Cc: QEMU Developers, David Gibson
On 31 March 2016 at 14:42, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> Alex Bennée <alex.bennee@linaro.org> writes:
>
>> Travis has support for OSX builds. Making the setup work cleanly
>> involves a little hacking about with the .travis.yml file but rather
>> than make it too messy I've pushed all the "brew" install stuff into a
>> support script called ./scripts/macosx-brew.sh.
>>
>> Currently only the default ./configure ${CONFIG} is built as I'm not
>> sure what extra coverage would come from the other build stanzas.
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>
> Ping Peter. Does this look OK for you?
Acked-by: Peter Maydell <peter.maydell@linaro.org>
-- PMM
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2016-04-04 14:47 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-23 17:20 [Qemu-devel] [PATCH v2 0/5] travis: reduce the matrix, add OSX, speed-up builds Alex Bennée
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 1/5] .travis.yml: collapse the test matrix Alex Bennée
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 2/5] .travis.yml: enable OSX builds Alex Bennée
2016-03-31 13:42 ` Alex Bennée
2016-04-04 14:47 ` Peter Maydell
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 3/5] .travis.yml: make -j3 Alex Bennée
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 4/5] ./configure: accept stems to match a range of targets Alex Bennée
2016-03-24 9:23 ` Sergey Fedorov
2016-03-24 12:05 ` Alex Bennée
2016-03-24 12:16 ` Sergey Fedorov
2016-03-24 16:05 ` Alex Bennée
2016-03-24 16:07 ` Sergey Fedorov
2016-03-24 16:20 ` Alex Bennée
2016-03-24 16:46 ` Sergey Fedorov
2016-03-23 17:20 ` [Qemu-devel] [PATCH v2 5/5] .travis.yml: reduce target list on core configure tweaks Alex Bennée
2016-03-24 0:22 ` David Gibson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).