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