[Qemu-devel] [PULL 00/45] testing updates (fixes, upgrades, caching)

Alex Bennée posted 45 patches 4 years, 7 months ago
Only 21 patches received!
There is a newer version of this series
.shippable.yml                                     |   2 +
.travis.yml                                        |  40 +++-
Makefile                                           |   1 +
Makefile.target                                    |   3 -
configure                                          | 168 ++-------------
hw/misc/Makefile.objs                              |  90 ++++----
qemu-doc.texi                                      |   6 +-
tests/Makefile.include                             |  25 ++-
tests/acceptance/boot_linux_console.py             |  25 ++-
tests/acceptance/linux_initrd.py                   |   5 +-
tests/docker/Makefile.include                      |  58 +++--
tests/docker/common.rc                             |   4 +
tests/docker/docker.py                             |  51 +++--
tests/docker/dockerfiles/debian-alpha-cross.docker |   7 +-
tests/docker/dockerfiles/debian-amd64-cross.docker |  22 ++
tests/docker/dockerfiles/debian-arm64-cross.docker |   7 +-
tests/docker/dockerfiles/debian-armel-cross.docker |   3 +-
tests/docker/dockerfiles/debian-armhf-cross.docker |   3 +-
.../dockerfiles/debian-buster-arm64-cross.docker   |  16 --
tests/docker/dockerfiles/debian-hppa-cross.docker  |   5 +-
tests/docker/dockerfiles/debian-m68k-cross.docker  |   5 +-
tests/docker/dockerfiles/debian-mips-cross.docker  |   7 +-
.../docker/dockerfiles/debian-mips64-cross.docker  |   5 +-
.../dockerfiles/debian-mips64el-cross.docker       |   3 +-
.../docker/dockerfiles/debian-mipsel-cross.docker  |   2 +-
.../docker/dockerfiles/debian-powerpc-cross.docker |   8 +-
.../dockerfiles/debian-powerpc-user-cross.docker   |   8 +-
tests/docker/dockerfiles/debian-ppc64-cross.docker |   7 +-
.../docker/dockerfiles/debian-ppc64el-cross.docker |   3 +-
.../docker/dockerfiles/debian-riscv64-cross.docker |   5 +-
tests/docker/dockerfiles/debian-s390x-cross.docker |   3 +-
tests/docker/dockerfiles/debian-sh4-cross.docker   |   5 +-
tests/docker/dockerfiles/debian-sid.docker         |  24 +--
.../docker/dockerfiles/debian-sparc64-cross.docker |   5 +-
tests/docker/dockerfiles/ubuntu1804.docker         |   3 +
tests/docker/run                                   |   4 +-
tests/docker/test-build                            |   1 -
tests/docker/test-mingw                            |   1 -
tests/docker/test-quick                            |   1 -
tests/tcg/.gitignore                               |   5 +
tests/tcg/Makefile.include                         |  88 --------
tests/tcg/Makefile.prereqs                         |  18 ++
tests/tcg/Makefile.probe                           |  31 ---
tests/tcg/Makefile.qemu                            |  95 +++++++++
tests/tcg/{Makefile => Makefile.target}            |  15 +-
tests/tcg/aarch64/Makefile.include                 |   8 -
tests/tcg/aarch64/Makefile.softmmu-target          |   4 +-
tests/tcg/aarch64/Makefile.target                  |  12 +-
tests/tcg/alpha/Makefile.include                   |   2 -
tests/tcg/alpha/Makefile.softmmu-target            |   4 +-
tests/tcg/arm/Makefile.include                     |   8 -
tests/tcg/arm/Makefile.softmmu-target              |   6 +-
tests/tcg/configure.sh                             | 234 +++++++++++++++++++++
tests/tcg/cris/Makefile.include                    |   6 -
tests/tcg/hppa/Makefile.include                    |   2 -
tests/tcg/i386/Makefile.include                    |   9 -
tests/tcg/i386/Makefile.softmmu-target             |  12 +-
tests/tcg/i386/Makefile.target                     |  13 +-
tests/tcg/m68k/Makefile.include                    |   2 -
tests/tcg/minilib/Makefile.target                  |   2 +-
tests/tcg/mips/Makefile.include                    |  20 --
tests/tcg/ppc/Makefile.include                     |  10 -
tests/tcg/riscv/Makefile.include                   |  10 -
tests/tcg/s390x/Makefile.include                   |   2 -
tests/tcg/sh4/Makefile.include                     |   4 -
tests/tcg/sparc64/Makefile.include                 |   2 -
tests/tcg/x86_64/Makefile.softmmu-target           |  36 ++++
tests/tcg/x86_64/Makefile.target                   |   7 +-
tests/tcg/xtensa/Makefile.include                  |  11 -
tests/tcg/xtensa/Makefile.softmmu-target           |   4 +-
tests/vm/fedora                                    |   2 +-
71 files changed, 715 insertions(+), 610 deletions(-)
create mode 100644 tests/docker/dockerfiles/debian-amd64-cross.docker
delete mode 100644 tests/docker/dockerfiles/debian-buster-arm64-cross.docker
create mode 100644 tests/tcg/.gitignore
delete mode 100644 tests/tcg/Makefile.include
create mode 100644 tests/tcg/Makefile.prereqs
delete mode 100644 tests/tcg/Makefile.probe
create mode 100644 tests/tcg/Makefile.qemu
rename tests/tcg/{Makefile => Makefile.target} (90%)
delete mode 100644 tests/tcg/aarch64/Makefile.include
delete mode 100644 tests/tcg/alpha/Makefile.include
delete mode 100644 tests/tcg/arm/Makefile.include
create mode 100755 tests/tcg/configure.sh
delete mode 100644 tests/tcg/cris/Makefile.include
delete mode 100644 tests/tcg/hppa/Makefile.include
delete mode 100644 tests/tcg/i386/Makefile.include
delete mode 100644 tests/tcg/m68k/Makefile.include
delete mode 100644 tests/tcg/mips/Makefile.include
delete mode 100644 tests/tcg/ppc/Makefile.include
delete mode 100644 tests/tcg/riscv/Makefile.include
delete mode 100644 tests/tcg/s390x/Makefile.include
delete mode 100644 tests/tcg/sh4/Makefile.include
delete mode 100644 tests/tcg/sparc64/Makefile.include
create mode 100644 tests/tcg/x86_64/Makefile.softmmu-target
delete mode 100644 tests/tcg/xtensa/Makefile.include
[Qemu-devel] [PULL 00/45] testing updates (fixes, upgrades, caching)
Posted by Alex Bennée 4 years, 7 months ago
The following changes since commit 89ea03a7dc83ca36b670ba7f787802791fcb04b1:

  Merge remote-tracking branch 'remotes/huth-gitlab/tags/m68k-pull-2019-09-07' into staging (2019-09-09 09:48:34 +0100)

are available in the Git repository at:

  https://github.com/stsquad/qemu.git tags/pull-testing-next-100919-1

for you to fetch changes up to 4cf22bac5b22a36adf23dc9ec4628c66bbc6f209:

  travis.yml: Install libcap-dev for testing virito-9p (2019-09-10 09:39:09 +0100)

----------------------------------------------------------------
Testing fixes:

  - podman cleanups
  - docker.py python3 fixes (encode)
  - DEF_TARGET_LIST applied to cross build images
  - move a bunch to Buster based images
  - enable Travis caching
  - more common objs for faster builds
  - stable URLs for acceptance tests
  - additional travis dependencies

----------------------------------------------------------------
Alex Bennée (28):
      configure: clean-up container cross compile detect
      tests/docker: fix "cc" command to work with podman
      tests/docker: handle missing encoding keyword for subprocess.check_output
      tests/docker: fix final missing .encode when parsing solibs
      tests/tcg: add .gitignore for in source builds
      tests/docker: move DEF_TARGET_LIST setting to common.rc
      tests/docker: set DEF_TARGET_LIST for some containers
      tests/docker: add Buster to DOCKER_PARTIAL_IMAGES
      tests/docker: move our arm64 cross compile to Buster
      tests/docker: move our powerpc cross compile to Buster
      tests/docker: move our Alpha cross compile to Buster
      tests/docker: move our HPPA cross compile to Buster
      tests/docker: move our m68k cross compile to Buster
      tests/docker: move our sparc64 cross compile to Buster
      tests/docker: move our sh4 cross compile to Buster
      tests/docker: move our mips64 cross compile to Buster
      tests/docker: move our riscv64 cross compile to Buster
      tests/docker: move our ppc64 cross compile to Buster
      tests/docker: update Debian Sid image
      tests/docker: pin powerpc-user-cross to a snapshot
      tests/docker: add debian-xtensa-cross to DEBIAN_PARTIAL_IMAGES
      tests/docker: add debian9-mxe to DEBIAN_PARTIAL_IMAGES
      tests/docker: avoid $SHELL invoke bash directly
      tests/docker: add debian-amd64-cross for non-x86 hosts
      tests/docker: use --arch-only for installing deps
      tests/docker: add more images to PARTIAL_IMAGES when not on x86_64
      tests/docker: --disable-libssh on ubuntu1804 builds
      configure: check if --no-pie is supported first

Cleber Rosa (1):
      Fedora images: use URLs from stable "archives.fedoraproject.org"

John Snow (1):
      tests/docker: Use --userns=keep-id for podman

Paolo Bonzini (3):
      tests/tcg: use EXTRA_CFLAGS everywhere
      tests/tcg: cleanup Makefile inclusions
      tests/tcg: move configuration to a sub-shell script

Philippe Mathieu-Daudé (10):
      .travis.yml: Enable multiple caching features
      .travis.yml: Increase cache timeout from 3min to 20min
      .travis.yml: Cache Python PIP packages
      .travis.yml: Cache Avocado cache
      .travis.yml: Improve ccache use
      .travis.yml: Enable ccache on OSX
      .travis.yml: Document how the build matrix use caches
      .travis.yml: Cache Linux/GCC 'debug profile' jobs together
      .travis.yml: Cache Linux/GCC 'non-debug profile' jobs together
      .travis.yml: Cache Linux/Clang jobs together

Thomas Huth (2):
      hw/misc: Mark most objects as "common" code to speed up compilation a litte bit
      travis.yml: Install libcap-dev for testing virito-9p

 .shippable.yml                                     |   2 +
 .travis.yml                                        |  40 +++-
 Makefile                                           |   1 +
 Makefile.target                                    |   3 -
 configure                                          | 168 ++-------------
 hw/misc/Makefile.objs                              |  90 ++++----
 qemu-doc.texi                                      |   6 +-
 tests/Makefile.include                             |  25 ++-
 tests/acceptance/boot_linux_console.py             |  25 ++-
 tests/acceptance/linux_initrd.py                   |   5 +-
 tests/docker/Makefile.include                      |  58 +++--
 tests/docker/common.rc                             |   4 +
 tests/docker/docker.py                             |  51 +++--
 tests/docker/dockerfiles/debian-alpha-cross.docker |   7 +-
 tests/docker/dockerfiles/debian-amd64-cross.docker |  22 ++
 tests/docker/dockerfiles/debian-arm64-cross.docker |   7 +-
 tests/docker/dockerfiles/debian-armel-cross.docker |   3 +-
 tests/docker/dockerfiles/debian-armhf-cross.docker |   3 +-
 .../dockerfiles/debian-buster-arm64-cross.docker   |  16 --
 tests/docker/dockerfiles/debian-hppa-cross.docker  |   5 +-
 tests/docker/dockerfiles/debian-m68k-cross.docker  |   5 +-
 tests/docker/dockerfiles/debian-mips-cross.docker  |   7 +-
 .../docker/dockerfiles/debian-mips64-cross.docker  |   5 +-
 .../dockerfiles/debian-mips64el-cross.docker       |   3 +-
 .../docker/dockerfiles/debian-mipsel-cross.docker  |   2 +-
 .../docker/dockerfiles/debian-powerpc-cross.docker |   8 +-
 .../dockerfiles/debian-powerpc-user-cross.docker   |   8 +-
 tests/docker/dockerfiles/debian-ppc64-cross.docker |   7 +-
 .../docker/dockerfiles/debian-ppc64el-cross.docker |   3 +-
 .../docker/dockerfiles/debian-riscv64-cross.docker |   5 +-
 tests/docker/dockerfiles/debian-s390x-cross.docker |   3 +-
 tests/docker/dockerfiles/debian-sh4-cross.docker   |   5 +-
 tests/docker/dockerfiles/debian-sid.docker         |  24 +--
 .../docker/dockerfiles/debian-sparc64-cross.docker |   5 +-
 tests/docker/dockerfiles/ubuntu1804.docker         |   3 +
 tests/docker/run                                   |   4 +-
 tests/docker/test-build                            |   1 -
 tests/docker/test-mingw                            |   1 -
 tests/docker/test-quick                            |   1 -
 tests/tcg/.gitignore                               |   5 +
 tests/tcg/Makefile.include                         |  88 --------
 tests/tcg/Makefile.prereqs                         |  18 ++
 tests/tcg/Makefile.probe                           |  31 ---
 tests/tcg/Makefile.qemu                            |  95 +++++++++
 tests/tcg/{Makefile => Makefile.target}            |  15 +-
 tests/tcg/aarch64/Makefile.include                 |   8 -
 tests/tcg/aarch64/Makefile.softmmu-target          |   4 +-
 tests/tcg/aarch64/Makefile.target                  |  12 +-
 tests/tcg/alpha/Makefile.include                   |   2 -
 tests/tcg/alpha/Makefile.softmmu-target            |   4 +-
 tests/tcg/arm/Makefile.include                     |   8 -
 tests/tcg/arm/Makefile.softmmu-target              |   6 +-
 tests/tcg/configure.sh                             | 234 +++++++++++++++++++++
 tests/tcg/cris/Makefile.include                    |   6 -
 tests/tcg/hppa/Makefile.include                    |   2 -
 tests/tcg/i386/Makefile.include                    |   9 -
 tests/tcg/i386/Makefile.softmmu-target             |  12 +-
 tests/tcg/i386/Makefile.target                     |  13 +-
 tests/tcg/m68k/Makefile.include                    |   2 -
 tests/tcg/minilib/Makefile.target                  |   2 +-
 tests/tcg/mips/Makefile.include                    |  20 --
 tests/tcg/ppc/Makefile.include                     |  10 -
 tests/tcg/riscv/Makefile.include                   |  10 -
 tests/tcg/s390x/Makefile.include                   |   2 -
 tests/tcg/sh4/Makefile.include                     |   4 -
 tests/tcg/sparc64/Makefile.include                 |   2 -
 tests/tcg/x86_64/Makefile.softmmu-target           |  36 ++++
 tests/tcg/x86_64/Makefile.target                   |   7 +-
 tests/tcg/xtensa/Makefile.include                  |  11 -
 tests/tcg/xtensa/Makefile.softmmu-target           |   4 +-
 tests/vm/fedora                                    |   2 +-
 71 files changed, 715 insertions(+), 610 deletions(-)
 create mode 100644 tests/docker/dockerfiles/debian-amd64-cross.docker
 delete mode 100644 tests/docker/dockerfiles/debian-buster-arm64-cross.docker
 create mode 100644 tests/tcg/.gitignore
 delete mode 100644 tests/tcg/Makefile.include
 create mode 100644 tests/tcg/Makefile.prereqs
 delete mode 100644 tests/tcg/Makefile.probe
 create mode 100644 tests/tcg/Makefile.qemu
 rename tests/tcg/{Makefile => Makefile.target} (90%)
 delete mode 100644 tests/tcg/aarch64/Makefile.include
 delete mode 100644 tests/tcg/alpha/Makefile.include
 delete mode 100644 tests/tcg/arm/Makefile.include
 create mode 100755 tests/tcg/configure.sh
 delete mode 100644 tests/tcg/cris/Makefile.include
 delete mode 100644 tests/tcg/hppa/Makefile.include
 delete mode 100644 tests/tcg/i386/Makefile.include
 delete mode 100644 tests/tcg/m68k/Makefile.include
 delete mode 100644 tests/tcg/mips/Makefile.include
 delete mode 100644 tests/tcg/ppc/Makefile.include
 delete mode 100644 tests/tcg/riscv/Makefile.include
 delete mode 100644 tests/tcg/s390x/Makefile.include
 delete mode 100644 tests/tcg/sh4/Makefile.include
 delete mode 100644 tests/tcg/sparc64/Makefile.include
 create mode 100644 tests/tcg/x86_64/Makefile.softmmu-target
 delete mode 100644 tests/tcg/xtensa/Makefile.include

--
2.20.1


Re: [Qemu-devel] [PULL 00/45] testing updates (fixes, upgrades, caching)
Posted by Peter Maydell 4 years, 7 months ago
On Tue, 10 Sep 2019 at 09:43, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> The following changes since commit 89ea03a7dc83ca36b670ba7f787802791fcb04b1:
>
>   Merge remote-tracking branch 'remotes/huth-gitlab/tags/m68k-pull-2019-09-07' into staging (2019-09-09 09:48:34 +0100)
>
> are available in the Git repository at:
>
>   https://github.com/stsquad/qemu.git tags/pull-testing-next-100919-1
>
> for you to fetch changes up to 4cf22bac5b22a36adf23dc9ec4628c66bbc6f209:
>
>   travis.yml: Install libcap-dev for testing virito-9p (2019-09-10 09:39:09 +0100)
>
> ----------------------------------------------------------------
> Testing fixes:
>
>   - podman cleanups
>   - docker.py python3 fixes (encode)
>   - DEF_TARGET_LIST applied to cross build images
>   - move a bunch to Buster based images
>   - enable Travis caching
>   - more common objs for faster builds
>   - stable URLs for acceptance tests
>   - additional travis dependencies

Hi; this seems to break 'check-tcg' (for a linux-user static config):

[...]
  CHECK   debian-ppc64-cross
  BUILD   ppc64-linux-user guest-tests with docker qemu:debian-ppc64-cross
  RUN     tests for ppc64
  TEST    test-mmap (default) on ppc64
  TEST    sha1 on ppc64
  TEST    linux-test on ppc64
  TEST    testthread on ppc64
  BUILD   TCG tests for ppc64abi32-linux-user
  BUILD   ppc64abi32-linux-user guest-tests with powerpc-linux-gnu-gcc
  RUN     TCG tests for ppc64abi32-linux-user
  BUILD   ppc64abi32-linux-user guest-tests with powerpc-linux-gnu-gcc
  RUN     tests for ppc64abi32
  TEST    test-mmap (default) on ppc64abi32
  TEST    sha1 on ppc64abi32
  TEST    linux-test on ppc64abi32
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
timeout: the monitored command dumped core
Segmentation fault
../Makefile.target:116: recipe for target 'run-linux-test' failed


thanks
-- PMM

Re: [Qemu-devel] [PULL 00/45] testing updates (fixes, upgrades, caching)
Posted by Alex Bennée 4 years, 7 months ago
Peter Maydell <peter.maydell@linaro.org> writes:

> On Tue, 10 Sep 2019 at 09:43, Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>> The following changes since commit 89ea03a7dc83ca36b670ba7f787802791fcb04b1:
>>
>>   Merge remote-tracking branch 'remotes/huth-gitlab/tags/m68k-pull-2019-09-07' into staging (2019-09-09 09:48:34 +0100)
>>
>> are available in the Git repository at:
>>
>>   https://github.com/stsquad/qemu.git tags/pull-testing-next-100919-1
>>
>> for you to fetch changes up to 4cf22bac5b22a36adf23dc9ec4628c66bbc6f209:
>>
>>   travis.yml: Install libcap-dev for testing virito-9p (2019-09-10 09:39:09 +0100)
>>
>> ----------------------------------------------------------------
>> Testing fixes:
>>
>>   - podman cleanups
>>   - docker.py python3 fixes (encode)
>>   - DEF_TARGET_LIST applied to cross build images
>>   - move a bunch to Buster based images
>>   - enable Travis caching
>>   - more common objs for faster builds
>>   - stable URLs for acceptance tests
>>   - additional travis dependencies
>
> Hi; this seems to break 'check-tcg' (for a linux-user static config):
>
> [...]
>   CHECK   debian-ppc64-cross
>   BUILD   ppc64-linux-user guest-tests with docker qemu:debian-ppc64-cross
>   RUN     tests for ppc64
>   TEST    test-mmap (default) on ppc64
>   TEST    sha1 on ppc64
>   TEST    linux-test on ppc64
>   TEST    testthread on ppc64
>   BUILD   TCG tests for ppc64abi32-linux-user
>   BUILD   ppc64abi32-linux-user guest-tests with powerpc-linux-gnu-gcc
>   RUN     TCG tests for ppc64abi32-linux-user
>   BUILD   ppc64abi32-linux-user guest-tests with powerpc-linux-gnu-gcc
>   RUN     tests for ppc64abi32
>   TEST    test-mmap (default) on ppc64abi32
>   TEST    sha1 on ppc64abi32
>   TEST    linux-test on ppc64abi32
> qemu: uncaught target signal 11 (Segmentation fault) - core dumped
> timeout: the monitored command dumped core
> Segmentation fault
> ../Makefile.target:116: recipe for target 'run-linux-test' failed

What host are you running on? Mine doesn't run because it has no way of
building those tests.

>
>
> thanks
> -- PMM


--
Alex Bennée

Re: [Qemu-devel] [PULL 00/45] testing updates (fixes, upgrades, caching)
Posted by Peter Maydell 4 years, 7 months ago
On Tue, 10 Sep 2019 at 12:28, Alex Bennée <alex.bennee@linaro.org> wrote:
> Peter Maydell <peter.maydell@linaro.org> writes:
> > Hi; this seems to break 'check-tcg' (for a linux-user static config):
> >
> > [...]
> >   CHECK   debian-ppc64-cross
> >   BUILD   ppc64-linux-user guest-tests with docker qemu:debian-ppc64-cross
> >   RUN     tests for ppc64
> >   TEST    test-mmap (default) on ppc64
> >   TEST    sha1 on ppc64
> >   TEST    linux-test on ppc64
> >   TEST    testthread on ppc64
> >   BUILD   TCG tests for ppc64abi32-linux-user
> >   BUILD   ppc64abi32-linux-user guest-tests with powerpc-linux-gnu-gcc
> >   RUN     TCG tests for ppc64abi32-linux-user
> >   BUILD   ppc64abi32-linux-user guest-tests with powerpc-linux-gnu-gcc
> >   RUN     tests for ppc64abi32
> >   TEST    test-mmap (default) on ppc64abi32
> >   TEST    sha1 on ppc64abi32
> >   TEST    linux-test on ppc64abi32
> > qemu: uncaught target signal 11 (Segmentation fault) - core dumped
> > timeout: the monitored command dumped core
> > Segmentation fault
> > ../Makefile.target:116: recipe for target 'run-linux-test' failed
>
> What host are you running on? Mine doesn't run because it has no way of
> building those tests.

x86-64 Ubuntu 18.04.3 LTS (bionic).

thanks
-- PMM

[Qemu-devel] [PULL 01/45] hw/misc: Mark most objects as "common" code to speed up compilation a litte bit
Posted by Alex Bennée 4 years, 7 months ago
From: Thomas Huth <thuth@redhat.com>

Most of the code in hw/misc/ does not directly depend on CPU-specific
code. Mark it as "common" so that the code can be shared between e.g.
qemu-system-arm and qemu-system-aarch64, or between the various mips
flavours, instead of recompiling it for each and every target again
and again.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190902162638.28142-1-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/hw/misc/Makefile.objs b/hw/misc/Makefile.objs
index e4aad707fb4..a1506809660 100644
--- a/hw/misc/Makefile.objs
+++ b/hw/misc/Makefile.objs
@@ -26,57 +26,57 @@ common-obj-$(CONFIG_PUV3) += puv3_pm.o
 
 common-obj-$(CONFIG_MACIO) += macio/
 
-obj-$(CONFIG_IVSHMEM_DEVICE) += ivshmem.o
+common-obj-$(CONFIG_IVSHMEM_DEVICE) += ivshmem.o
 
-obj-$(CONFIG_REALVIEW) += arm_sysctl.o
-obj-$(CONFIG_NSERIES) += cbus.o
-obj-$(CONFIG_ECCMEMCTL) += eccmemctl.o
-obj-$(CONFIG_EXYNOS4) += exynos4210_pmu.o exynos4210_clk.o exynos4210_rng.o
-obj-$(CONFIG_IMX) += imx_ccm.o
-obj-$(CONFIG_IMX) += imx31_ccm.o
-obj-$(CONFIG_IMX) += imx25_ccm.o
-obj-$(CONFIG_IMX) += imx6_ccm.o
-obj-$(CONFIG_IMX) += imx6ul_ccm.o
+common-obj-$(CONFIG_REALVIEW) += arm_sysctl.o
+common-obj-$(CONFIG_NSERIES) += cbus.o
+common-obj-$(CONFIG_ECCMEMCTL) += eccmemctl.o
+common-obj-$(CONFIG_EXYNOS4) += exynos4210_pmu.o exynos4210_clk.o exynos4210_rng.o
+common-obj-$(CONFIG_IMX) += imx_ccm.o
+common-obj-$(CONFIG_IMX) += imx31_ccm.o
+common-obj-$(CONFIG_IMX) += imx25_ccm.o
+common-obj-$(CONFIG_IMX) += imx6_ccm.o
+common-obj-$(CONFIG_IMX) += imx6ul_ccm.o
 obj-$(CONFIG_IMX) += imx6_src.o
-obj-$(CONFIG_IMX) += imx7_ccm.o
-obj-$(CONFIG_IMX) += imx2_wdt.o
-obj-$(CONFIG_IMX) += imx7_snvs.o
-obj-$(CONFIG_IMX) += imx7_gpr.o
-obj-$(CONFIG_MILKYMIST) += milkymist-hpdmc.o
-obj-$(CONFIG_MILKYMIST) += milkymist-pfpu.o
-obj-$(CONFIG_MAINSTONE) += mst_fpga.o
-obj-$(CONFIG_OMAP) += omap_clk.o
-obj-$(CONFIG_OMAP) += omap_gpmc.o
-obj-$(CONFIG_OMAP) += omap_l4.o
-obj-$(CONFIG_OMAP) += omap_sdrc.o
-obj-$(CONFIG_OMAP) += omap_tap.o
-obj-$(CONFIG_RASPI) += bcm2835_mbox.o
-obj-$(CONFIG_RASPI) += bcm2835_property.o
-obj-$(CONFIG_RASPI) += bcm2835_rng.o
-obj-$(CONFIG_SLAVIO) += slavio_misc.o
-obj-$(CONFIG_ZYNQ) += zynq_slcr.o
-obj-$(CONFIG_ZYNQ) += zynq-xadc.o
-obj-$(CONFIG_STM32F2XX_SYSCFG) += stm32f2xx_syscfg.o
+common-obj-$(CONFIG_IMX) += imx7_ccm.o
+common-obj-$(CONFIG_IMX) += imx2_wdt.o
+common-obj-$(CONFIG_IMX) += imx7_snvs.o
+common-obj-$(CONFIG_IMX) += imx7_gpr.o
+common-obj-$(CONFIG_MILKYMIST) += milkymist-hpdmc.o
+common-obj-$(CONFIG_MILKYMIST) += milkymist-pfpu.o
+common-obj-$(CONFIG_MAINSTONE) += mst_fpga.o
+common-obj-$(CONFIG_OMAP) += omap_clk.o
+common-obj-$(CONFIG_OMAP) += omap_gpmc.o
+common-obj-$(CONFIG_OMAP) += omap_l4.o
+common-obj-$(CONFIG_OMAP) += omap_sdrc.o
+common-obj-$(CONFIG_OMAP) += omap_tap.o
+common-obj-$(CONFIG_RASPI) += bcm2835_mbox.o
+common-obj-$(CONFIG_RASPI) += bcm2835_property.o
+common-obj-$(CONFIG_RASPI) += bcm2835_rng.o
+common-obj-$(CONFIG_SLAVIO) += slavio_misc.o
+common-obj-$(CONFIG_ZYNQ) += zynq_slcr.o
+common-obj-$(CONFIG_ZYNQ) += zynq-xadc.o
+common-obj-$(CONFIG_STM32F2XX_SYSCFG) += stm32f2xx_syscfg.o
 obj-$(CONFIG_MIPS_CPS) += mips_cmgcr.o
 obj-$(CONFIG_MIPS_CPS) += mips_cpc.o
 obj-$(CONFIG_MIPS_ITU) += mips_itu.o
-obj-$(CONFIG_MPS2_FPGAIO) += mps2-fpgaio.o
-obj-$(CONFIG_MPS2_SCC) += mps2-scc.o
+common-obj-$(CONFIG_MPS2_FPGAIO) += mps2-fpgaio.o
+common-obj-$(CONFIG_MPS2_SCC) += mps2-scc.o
 
-obj-$(CONFIG_TZ_MPC) += tz-mpc.o
-obj-$(CONFIG_TZ_MSC) += tz-msc.o
-obj-$(CONFIG_TZ_PPC) += tz-ppc.o
-obj-$(CONFIG_IOTKIT_SECCTL) += iotkit-secctl.o
+common-obj-$(CONFIG_TZ_MPC) += tz-mpc.o
+common-obj-$(CONFIG_TZ_MSC) += tz-msc.o
+common-obj-$(CONFIG_TZ_PPC) += tz-ppc.o
+common-obj-$(CONFIG_IOTKIT_SECCTL) += iotkit-secctl.o
 obj-$(CONFIG_IOTKIT_SYSCTL) += iotkit-sysctl.o
-obj-$(CONFIG_IOTKIT_SYSINFO) += iotkit-sysinfo.o
-obj-$(CONFIG_ARMSSE_CPUID) += armsse-cpuid.o
-obj-$(CONFIG_ARMSSE_MHU) += armsse-mhu.o
+common-obj-$(CONFIG_IOTKIT_SYSINFO) += iotkit-sysinfo.o
+common-obj-$(CONFIG_ARMSSE_CPUID) += armsse-cpuid.o
+common-obj-$(CONFIG_ARMSSE_MHU) += armsse-mhu.o
 
-obj-$(CONFIG_PVPANIC) += pvpanic.o
-obj-$(CONFIG_AUX) += auxbus.o
-obj-$(CONFIG_ASPEED_SOC) += aspeed_xdma.o
-obj-$(CONFIG_ASPEED_SOC) += aspeed_scu.o aspeed_sdmc.o
-obj-$(CONFIG_MSF2) += msf2-sysreg.o
-obj-$(CONFIG_NRF51_SOC) += nrf51_rng.o
+common-obj-$(CONFIG_PVPANIC) += pvpanic.o
+common-obj-$(CONFIG_AUX) += auxbus.o
+common-obj-$(CONFIG_ASPEED_SOC) += aspeed_xdma.o
+common-obj-$(CONFIG_ASPEED_SOC) += aspeed_scu.o aspeed_sdmc.o
+common-obj-$(CONFIG_MSF2) += msf2-sysreg.o
+common-obj-$(CONFIG_NRF51_SOC) += nrf51_rng.o
 
-obj-$(CONFIG_GRLIB) += grlib_ahb_apb_pnp.o
+common-obj-$(CONFIG_GRLIB) += grlib_ahb_apb_pnp.o
-- 
2.20.1


[Qemu-devel] [PULL 03/45] tests/docker: Use --userns=keep-id for podman
Posted by Alex Bennée 4 years, 7 months ago
From: John Snow <jsnow@redhat.com>

The workaround that attempts to accomplish the same result as --userns=keep-id
does not appear to work well with UIDs much above 1000 (like mine, which is
above 20000.)

Since we have official support for this "trick" now, use the supported method.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-Id: <20190904232451.26466-1-jsnow@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index e23209f71ee..064026c8af8 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -369,9 +369,7 @@ class RunCommand(SubCommand):
             argv = [ "-u", str(uid) ] + argv
             docker = Docker()
             if docker._command[0] == "podman":
-                argv = [ "--uidmap", "%d:0:1" % uid,
-                         "--uidmap", "0:1:%d" % uid,
-                         "--uidmap", "%d:%d:64536" % (uid + 1, uid + 1)] + argv
+                argv.insert(0, '--userns=keep-id')
         return Docker().run(argv, args.keep, quiet=args.quiet)
 
 
-- 
2.20.1


[Qemu-devel] [PULL 05/45] tests/docker: handle missing encoding keyword for subprocess.check_output
Posted by Alex Bennée 4 years, 7 months ago
This was only added in Python 3.6 and not all the build hosts have
that recent a python3. However we still need to ensure everything is
returns as a unicode string so checks higher up the call chain don't
barf.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

fixup! tests/docker: handle missing encoding keyword for subprocess.check_output

diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index 1620293ac84..417b0cdce13 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -258,10 +258,16 @@ class Docker(object):
         return self._do_kill_instances(True)
 
     def _output(self, cmd, **kwargs):
-        return subprocess.check_output(self._command + cmd,
-                                       stderr=subprocess.STDOUT,
-                                       encoding='utf-8',
-                                       **kwargs)
+        if sys.version_info[1] >= 6:
+            return subprocess.check_output(self._command + cmd,
+                                           stderr=subprocess.STDOUT,
+                                           encoding='utf-8',
+                                           **kwargs)
+        else:
+            return subprocess.check_output(self._command + cmd,
+                                           stderr=subprocess.STDOUT,
+                                           **kwargs).decode('utf-8')
+
 
     def inspect_tag(self, tag):
         try:
-- 
2.20.1


[Qemu-devel] [PULL 06/45] tests/docker: fix final missing .encode when parsing solibs
Posted by Alex Bennée 4 years, 7 months ago
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index 417b0cdce13..29613afd489 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -111,7 +111,7 @@ def _get_so_libs(executable):
     libs = []
     ldd_re = re.compile(r"(/.*/)(\S*)")
     try:
-        ldd_output = subprocess.check_output(["ldd", executable])
+        ldd_output = subprocess.check_output(["ldd", executable]).decode('utf-8')
         for line in ldd_output.split("\n"):
             search = ldd_re.search(line)
             if search and len(search.groups()) == 2:
-- 
2.20.1


[Qemu-devel] [PULL 10/45] tests/tcg: add .gitignore for in source builds
Posted by Alex Bennée 4 years, 7 months ago
This hides the new build artefacts from the re-organised TCG tests when
you are doing an in-source build.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/tests/tcg/.gitignore b/tests/tcg/.gitignore
new file mode 100644
index 00000000000..84d7541b286
--- /dev/null
+++ b/tests/tcg/.gitignore
@@ -0,0 +1,5 @@
+# These are build artefacts which only appear when you are doing
+# builds directly in the source tree.
+config-*.mak
+*-softmmu/
+*-linux-user/
-- 
2.20.1


[Qemu-devel] [PULL 13/45] tests/docker: add Buster to DOCKER_PARTIAL_IMAGES
Posted by Alex Bennée 4 years, 7 months ago
We need to add additional packages to the base images to be able to
build QEMU so lets avoid building with it.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index cf535cbd196..89881fb5f5d 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -6,7 +6,7 @@ DOCKER_SUFFIX := .docker
 DOCKER_FILES_DIR := $(SRC_PATH)/tests/docker/dockerfiles
 DOCKER_DEPRECATED_IMAGES := debian
 # we don't run tests on intermediate images (used as base by another image)
-DOCKER_PARTIAL_IMAGES := debian debian8 debian9 debian8-mxe debian-ports debian-sid debian-bootstrap
+DOCKER_PARTIAL_IMAGES := debian debian8 debian9 debian10 debian8-mxe debian-ports debian-sid debian-bootstrap
 DOCKER_IMAGES := $(filter-out $(DOCKER_DEPRECATED_IMAGES),$(sort $(notdir $(basename $(wildcard $(DOCKER_FILES_DIR)/*.docker)))))
 DOCKER_TARGETS := $(patsubst %,docker-image-%,$(DOCKER_IMAGES))
 # Use a global constant ccache directory to speed up repetitive builds
-- 
2.20.1


[Qemu-devel] [PULL 24/45] tests/docker: update Debian Sid image
Posted by Alex Bennée 4 years, 7 months ago
While we are not currently using it we might as well keep the image
for later usage. So:

  - update to a more recent snapshot
  - clean up verbiage in commentary
  - remove duplicate shell from a merge failure

Suggested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>

diff --git a/tests/docker/dockerfiles/debian-sid.docker b/tests/docker/dockerfiles/debian-sid.docker
index 513459ca7f8..2a1bcc33b24 100644
--- a/tests/docker/dockerfiles/debian-sid.docker
+++ b/tests/docker/dockerfiles/debian-sid.docker
@@ -1,25 +1,19 @@
 #
 # Debian Sid Base
 #
-# A number of our guests exist as ports only. We can either use the
-# ports repo or get everything from Sid. However Sid is a rolling
-# distro which may be broken at any particular time. If you are
-# unlucky and try and build your images while gcc is in the process of
-# being uploaded this can fail. Your only recourse is to try again in
-# a few hours when the repos have re-synced. Once built however you
-# won't be affected by repo changes unless the docker recipies are
-# updated and trigger a re-build.
+# Currently we can build all our guests with cross-compilers in the
+# latest Debian release (Buster). However new compilers will first
+# arrive in Sid. However Sid is a rolling distro which may be broken
+# at any particular time. To try and mitigate this we use Debian's
+# snapshot archive which provides a "stable" view of what state Sid
+# was in.
 #
 
 # This must be earlier than the snapshot date we are aiming for
-FROM debian:sid-20181011-slim
+FROM debian:sid-20190812-slim
 
-# Use a snapshot known to work (see http://snapshot.debian.org/#Usage)
-ENV DEBIAN_SNAPSHOT_DATE "20181030"
-RUN sed -i "s%^deb \(https\?://\)deb.debian.org/debian/\? \(.*\)%deb [check-valid-until=no] \1snapshot.debian.org/archive/debian/${DEBIAN_SNAPSHOT_DATE} \2%" /etc/apt/sources.list
-
-# Use a snapshot known to work (see http://snapshot.debian.org/#Usage)
-ENV DEBIAN_SNAPSHOT_DATE "20181030"
+ # Use a snapshot known to work (see http://snapshot.debian.org/#Usage)
+ENV DEBIAN_SNAPSHOT_DATE "20190820"
 RUN sed -i "s%^deb \(https\?://\)deb.debian.org/debian/\? \(.*\)%deb [check-valid-until=no] \1snapshot.debian.org/archive/debian/${DEBIAN_SNAPSHOT_DATE} \2%" /etc/apt/sources.list
 
 # Duplicate deb line as deb-src
-- 
2.20.1


[Qemu-devel] [PULL 26/45] tests/docker: add debian-xtensa-cross to DEBIAN_PARTIAL_IMAGES
Posted by Alex Bennée 4 years, 7 months ago
This should have been marked when the docker recipe was added to
prevent it being used for cross compiling QEMU. Sort the
DEBIAN_PARTIAL_IMAGE list while we are at it.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index b06716ff71c..c57b74903e6 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -116,10 +116,15 @@ docker-image-travis: NOUSER=1
 docker-image-tricore-cross: docker-image-debian9
 
 # These images may be good enough for building tests but not for test builds
-DOCKER_PARTIAL_IMAGES += debian-alpha-cross debian-hppa-cross debian-m68k-cross debian-sh4-cross
-DOCKER_PARTIAL_IMAGES += debian-sparc64-cross debian-mips64-cross debian-riscv64-cross
-DOCKER_PARTIAL_IMAGES += debian-tricore-cross debian-powerpc-cross debian-ppc64-cross fedora-i386-cross
-DOCKER_PARTIAL_IMAGES += fedora-cris-cross
+DOCKER_PARTIAL_IMAGES += debian-alpha-cross
+DOCKER_PARTIAL_IMAGES += debian-hppa-cross
+DOCKER_PARTIAL_IMAGES += debian-m68k-cross debian-mips64-cross
+DOCKER_PARTIAL_IMAGES += debian-powerpc-cross debian-ppc64-cross
+DOCKER_PARTIAL_IMAGES += debian-riscv64-cross
+DOCKER_PARTIAL_IMAGES += debian-sh4-cross debian-sparc64-cross
+DOCKER_PARTIAL_IMAGES += debian-tricore-cross
+DOCKER_PARTIAL_IMAGES += debian-xtensa-cross
+DOCKER_PARTIAL_IMAGES += fedora-i386-cross fedora-cris-cross
 
 # Rules for building linux-user powered images
 #
-- 
2.20.1


[Qemu-devel] [PULL 27/45] tests/docker: add debian9-mxe to DEBIAN_PARTIAL_IMAGES
Posted by Alex Bennée 4 years, 7 months ago
Another image that can't be used directly to build QEMU.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index c57b74903e6..27a1cc0d833 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -6,7 +6,8 @@ DOCKER_SUFFIX := .docker
 DOCKER_FILES_DIR := $(SRC_PATH)/tests/docker/dockerfiles
 DOCKER_DEPRECATED_IMAGES := debian
 # we don't run tests on intermediate images (used as base by another image)
-DOCKER_PARTIAL_IMAGES := debian debian8 debian9 debian10 debian8-mxe debian-ports debian-sid debian-bootstrap
+DOCKER_PARTIAL_IMAGES := debian debian8 debian9 debian10 debian-sid
+DEBIAN_PARTIAL_IMAGES += debian8-mxe debian-9-mxe debian-ports debian-bootstrap
 DOCKER_IMAGES := $(filter-out $(DOCKER_DEPRECATED_IMAGES),$(sort $(notdir $(basename $(wildcard $(DOCKER_FILES_DIR)/*.docker)))))
 DOCKER_TARGETS := $(patsubst %,docker-image-%,$(DOCKER_IMAGES))
 # Use a global constant ccache directory to speed up repetitive builds
-- 
2.20.1


[Qemu-devel] [PULL 28/45] tests/docker: avoid $SHELL invoke bash directly
Posted by Alex Bennée 4 years, 7 months ago
On some images SHELL is pointing at a limited /bin/sh which doesn't
understand noprofile/norc. Given the run script is running bash just
invoke it directly.

This fixes:

  $ make docker-test-build@IMAGE DEBUG=1
  [...]
  + echo '  ./test-build'
  ./test-build
  + echo '* Hit Ctrl-D to continue, or type '\''exit 1'\'' to abort'
  * Hit Ctrl-D to continue, or type 'exit 1' to abort
  + echo
  + /bin/sh --noprofile --norc
  /bin/sh: 0: Illegal option --

Fixes: 2b0c4fa13f3
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>

diff --git a/tests/docker/run b/tests/docker/run
index 1014871fec0..8edc7026ee3 100755
--- a/tests/docker/run
+++ b/tests/docker/run
@@ -62,7 +62,7 @@ echo "* Prepared to run command:"
 echo "  $CMD"
 echo "* Hit Ctrl-D to continue, or type 'exit 1' to abort"
 echo
-$SHELL --noprofile --norc
+env bash --noprofile --norc
 
 if "$CMD"; then
     exit 0
@@ -72,7 +72,7 @@ elif test -n "$DEBUG"; then
     echo "* Hit Ctrl-D to exit"
     echo
     # Force error after shell exits
-    $SHELL --noprofile --norc && exit 1
+    env bash --noprofile --norc && exit 1
 else
     exit 1
 fi
-- 
2.20.1


[Qemu-devel] [PULL 31/45] tests/docker: add more images to PARTIAL_IMAGES when not on x86_64
Posted by Alex Bennée 4 years, 7 months ago
This prevents us trying to do builds which we can't complete.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 7df8dbe1a17..50a400b573a 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -106,6 +106,15 @@ docker-image-debian-s390x-cross: docker-image-debian9
 docker-image-debian-win32-cross: docker-image-debian9-mxe
 docker-image-debian-win64-cross: docker-image-debian9-mxe
 
+# For non-x86 hosts not all cross-compilers have been packaged
+ifneq ($(ARCH),x86_64)
+DOCKER_PARTIAL_IMAGES += debian-mips-cross debian-mipsel-cross debian-mips64el-cross
+DOCKER_PARTIAL_IMAGES += debian-ppc64el-cross
+DOCKER_PARTIAL_IMAGES += debian-s390x-cross
+DOCKER_PARTIAL_IMAGES += debian-win32-cross debian-win64-cross
+DOCKER_PARTIAL_IMAGES += fedora travis
+endif
+
 docker-image-debian-alpha-cross: docker-image-debian10
 docker-image-debian-arm64-cross: docker-image-debian10
 docker-image-debian-hppa-cross: docker-image-debian10
-- 
2.20.1


Re: [PULL 31/45] tests/docker: add more images to PARTIAL_IMAGES when not on x86_64
Posted by Philippe Mathieu-Daudé 4 years, 7 months ago
Hi Alex,

On 9/10/19 10:43 AM, Alex Bennée wrote:
> This prevents us trying to do builds which we can't complete.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> 
> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
> index 7df8dbe1a17..50a400b573a 100644
> --- a/tests/docker/Makefile.include
> +++ b/tests/docker/Makefile.include
> @@ -106,6 +106,15 @@ docker-image-debian-s390x-cross: docker-image-debian9
>  docker-image-debian-win32-cross: docker-image-debian9-mxe
>  docker-image-debian-win64-cross: docker-image-debian9-mxe
>  
> +# For non-x86 hosts not all cross-compilers have been packaged
> +ifneq ($(ARCH),x86_64)
> +DOCKER_PARTIAL_IMAGES += debian-mips-cross debian-mipsel-cross debian-mips64el-cross
> +DOCKER_PARTIAL_IMAGES += debian-ppc64el-cross
> +DOCKER_PARTIAL_IMAGES += debian-s390x-cross
> +DOCKER_PARTIAL_IMAGES += debian-win32-cross debian-win64-cross
> +DOCKER_PARTIAL_IMAGES += fedora travis
> +endif
> +
>  docker-image-debian-alpha-cross: docker-image-debian10
>  docker-image-debian-arm64-cross: docker-image-debian10
>  docker-image-debian-hppa-cross: docker-image-debian10
> 

I wanted to run the Travis tests locally (per
docs/devel/testing.rst:364) but I got:

$ make docker-travis@travis
  LD      docker-travis@travis.mo
cc: fatal error: no input files
compilation terminated.
make: *** [rules.mak:118: docker-travis@travis.mo] Error 1

Bisected to this patch:

e5389e44147e4c8d652006ed086c48f74684726a is the first bad commit
commit e5389e44147e4c8d652006ed086c48f74684726a
Author: Alex Bennée <alex.bennee@linaro.org>
Date:   Thu Aug 15 19:40:48 2019 +0000

    tests/docker: add more images to PARTIAL_IMAGES when not on x86_64

    This prevents us trying to do builds which we can't complete.

Removing 'travis' from this list we get it working again.

Regards,

Phil.

Re: [PULL 31/45] tests/docker: add more images to PARTIAL_IMAGES when not on x86_64
Posted by Alex Bennée 4 years, 7 months ago
Philippe Mathieu-Daudé <philmd@redhat.com> writes:

> Hi Alex,
>
> On 9/10/19 10:43 AM, Alex Bennée wrote:
>> This prevents us trying to do builds which we can't complete.
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>>
>> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
>> index 7df8dbe1a17..50a400b573a 100644
>> --- a/tests/docker/Makefile.include
>> +++ b/tests/docker/Makefile.include
>> @@ -106,6 +106,15 @@ docker-image-debian-s390x-cross: docker-image-debian9
>>  docker-image-debian-win32-cross: docker-image-debian9-mxe
>>  docker-image-debian-win64-cross: docker-image-debian9-mxe
>>
>> +# For non-x86 hosts not all cross-compilers have been packaged
>> +ifneq ($(ARCH),x86_64)
>> +DOCKER_PARTIAL_IMAGES += debian-mips-cross debian-mipsel-cross debian-mips64el-cross
>> +DOCKER_PARTIAL_IMAGES += debian-ppc64el-cross
>> +DOCKER_PARTIAL_IMAGES += debian-s390x-cross
>> +DOCKER_PARTIAL_IMAGES += debian-win32-cross debian-win64-cross
>> +DOCKER_PARTIAL_IMAGES += fedora travis
>> +endif
>> +
>>  docker-image-debian-alpha-cross: docker-image-debian10
>>  docker-image-debian-arm64-cross: docker-image-debian10
>>  docker-image-debian-hppa-cross: docker-image-debian10
>>
>
> I wanted to run the Travis tests locally (per
> docs/devel/testing.rst:364) but I got:
>
> $ make docker-travis@travis
>   LD      docker-travis@travis.mo
> cc: fatal error: no input files
> compilation terminated.
> make: *** [rules.mak:118: docker-travis@travis.mo] Error 1
>
> Bisected to this patch:
>
> e5389e44147e4c8d652006ed086c48f74684726a is the first bad commit
> commit e5389e44147e4c8d652006ed086c48f74684726a
> Author: Alex Bennée <alex.bennee@linaro.org>
> Date:   Thu Aug 15 19:40:48 2019 +0000
>
>     tests/docker: add more images to PARTIAL_IMAGES when not on x86_64
>
>     This prevents us trying to do builds which we can't complete.
>
> Removing 'travis' from this list we get it working again.

Have you run configure? I had to work around this in shippable:

    # usually host ARCH is set by configure
    - echo "ARCH=$(uname -m)" > config-host.mak

I guess more logic could be put in if the ARCH is empty

>
> Regards,
>
> Phil.


--
Alex Bennée

[Qemu-devel] [PULL 32/45] tests/docker: --disable-libssh on ubuntu1804 builds
Posted by Alex Bennée 4 years, 7 months ago
Currently this stops the mega:

  make docker-test-build

from working. Once the source is patched to deal with the case this
workaround can be removed.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

diff --git a/tests/docker/dockerfiles/ubuntu1804.docker b/tests/docker/dockerfiles/ubuntu1804.docker
index 44bbf0f77ae..883f9bcf31c 100644
--- a/tests/docker/dockerfiles/ubuntu1804.docker
+++ b/tests/docker/dockerfiles/ubuntu1804.docker
@@ -56,3 +56,6 @@ RUN apt-get update && \
     DEBIAN_FRONTEND=noninteractive apt-get -y install $PACKAGES
 RUN dpkg -l $PACKAGES | sort > /packages.txt
 ENV FEATURES clang pyyaml sdl2
+
+# https://bugs.launchpad.net/qemu/+bug/1838763
+ENV QEMU_CONFIGURE_OPTS --disable-libssh
-- 
2.20.1


[Qemu-devel] [PULL 33/45] configure: check if --no-pie is supported first
Posted by Alex Bennée 4 years, 7 months ago
For whatever reason this doesn't trigger normally but because
compile_prog uses QEMU_CFLAGS we end up trying to build a -pie
--no-pie build which confuses compilers on some non-x86 hosts.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/configure b/configure
index 7860bbc3121..30aad233d17 100755
--- a/configure
+++ b/configure
@@ -2021,6 +2021,12 @@ static THREAD int tls_var;
 int main(void) { return tls_var; }
 
 EOF
+  # check we support --no-pie first...
+  if compile_prog "-Werror -fno-pie" "-no-pie"; then
+    CFLAGS_NOPIE="-fno-pie"
+    LDFLAGS_NOPIE="-nopie"
+  fi
+
   if compile_prog "-fPIE -DPIE" "-pie"; then
     QEMU_CFLAGS="-fPIE -DPIE $QEMU_CFLAGS"
     LDFLAGS="-pie $LDFLAGS"
@@ -2036,11 +2042,6 @@ EOF
       pie="no"
     fi
   fi
-
-  if compile_prog "-Werror -fno-pie" "-nopie"; then
-    CFLAGS_NOPIE="-fno-pie"
-    LDFLAGS_NOPIE="-nopie"
-  fi
 fi
 
 ##########################################
-- 
2.20.1


[Qemu-devel] [PULL 34/45] .travis.yml: Enable multiple caching features
Posted by Alex Bennée 4 years, 7 months ago
From: Philippe Mathieu-Daudé <f4bug@amsat.org>

Using the 'multiple caching features' means explode the YAML array,
thus it eases the git workflow (it is easier to move patches around).

See https://docs.travis-ci.com/user/caching#enabling-multiple-caching-features

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20170809202712.6951-4-f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/.travis.yml b/.travis.yml
index 106f9b5d01e..c60cf2ec135 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,7 +5,8 @@ dist: xenial
 language: c
 compiler:
   - gcc
-cache: ccache
+cache:
+  ccache: true
 
 
 addons:
-- 
2.20.1


[Qemu-devel] [PULL 35/45] .travis.yml: Increase cache timeout from 3min to 20min
Posted by Alex Bennée 4 years, 7 months ago
From: Philippe Mathieu-Daudé <philmd@redhat.com>

We are going to cache few gigabytes, increase the cache timeout
to avoid build failures when uploading our cache.

See https://docs.travis-ci.com/user/caching/#setting-the-timeout

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/.travis.yml b/.travis.yml
index c60cf2ec135..7ae55dc41d9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,6 +6,7 @@ language: c
 compiler:
   - gcc
 cache:
+  timeout: 1200
   ccache: true
 
 
-- 
2.20.1


[Qemu-devel] [PULL 36/45] .travis.yml: Cache Python PIP packages
Posted by Alex Bennée 4 years, 7 months ago
From: Philippe Mathieu-Daudé <philmd@redhat.com>

We always install the same packages ever and ever, cache them.

See https://docs.travis-ci.com/user/caching/#pip-cache

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/.travis.yml b/.travis.yml
index 7ae55dc41d9..0e3c2b0021c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,6 +8,7 @@ compiler:
 cache:
   timeout: 1200
   ccache: true
+  pip: true
 
 
 addons:
-- 
2.20.1


[Qemu-devel] [PULL 37/45] .travis.yml: Cache Avocado cache
Posted by Alex Bennée 4 years, 7 months ago
From: Philippe Mathieu-Daudé <philmd@redhat.com>

Avocado tests download artifacts from various sources.
These sources sometime have network issues resulting in build
failures. Cache Avocado cache to reduce build failure.

See https://docs.travis-ci.com/user/caching/#arbitrary-directories

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/.travis.yml b/.travis.yml
index 0e3c2b0021c..097a844d68b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,6 +9,8 @@ cache:
   timeout: 1200
   ccache: true
   pip: true
+  directories:
+  - $HOME/avocado/data/cache
 
 
 addons:
-- 
2.20.1


[Qemu-devel] [PULL 38/45] .travis.yml: Improve ccache use
Posted by Alex Bennée 4 years, 7 months ago
From: Philippe Mathieu-Daudé <f4bug@amsat.org>

Per https://ccache.dev/manual/latest.html:

  By default, ccache tries to give as few false cache hits as
  possible. However, in certain situations it’s possible that
  you know things that ccache can’t take for granted.

  [The CCACHE_SLOPINESS environment variable] makes it possible
  to tell ccache to relax some checks in order to increase the
  hit rate.

We can relax the ctime/mtime header checks:

  - include_file_ctime

    By default, ccache also will not cache a file if it
    includes a header whose ctime is too new. This option
    disables that check.

  - include_file_mtime

    By default, ccache will not cache a file if it includes
    a header whose mtime is too new. This option disables
    that check.

We also add a call to clear the cache statistics before running
the build, and display them when the build finishes.

See https://docs.travis-ci.com/user/caching/#ccache-cache

Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/.travis.yml b/.travis.yml
index 097a844d68b..7d6c63a2803 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -70,6 +70,9 @@ env:
     - TEST_CMD="make check -j3 V=1"
     # This is broadly a list of "mainline" softmmu targets which have support across the major distros
     - MAIN_SOFTMMU_TARGETS="aarch64-softmmu,arm-softmmu,i386-softmmu,mips-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
+    - CCACHE_SLOPPINESS="include_file_ctime,include_file_mtime"
+    - CCACHE_MAXSIZE=1G
+
 
 git:
   # we want to do this ourselves
@@ -77,10 +80,13 @@ git:
 
 
 before_script:
+  - command -v ccache && ccache --zero-stats
   - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
   - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
 script:
   - make -j3 && travis_retry ${TEST_CMD}
+after_script:
+  - command -v ccache && ccache --show-stats
 
 
 matrix:
-- 
2.20.1


[Qemu-devel] [PULL 39/45] .travis.yml: Enable ccache on OSX
Posted by Alex Bennée 4 years, 7 months ago
From: Philippe Mathieu-Daudé <philmd@redhat.com>

By default, ccache is not installed on macOS environments.

See https://docs.travis-ci.com/user/caching/#ccache-on-macos

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/.travis.yml b/.travis.yml
index 7d6c63a2803..3d1c7f0d7e0 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -45,6 +45,7 @@ addons:
       - gcovr
   homebrew:
     packages:
+      - ccache
       - glib
       - pixman
       - gnu-sed
@@ -80,6 +81,7 @@ git:
 
 
 before_script:
+  - if [ "$TRAVIS_OS_NAME" == "osx" ] ; then export PATH="/usr/local/opt/ccache/libexec:$PATH" ; fi
   - command -v ccache && ccache --zero-stats
   - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
   - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
-- 
2.20.1


[Qemu-devel] [PULL 40/45] .travis.yml: Document how the build matrix use caches
Posted by Alex Bennée 4 years, 7 months ago
From: Philippe Mathieu-Daudé <philmd@redhat.com>

We will set the CACHE_NAME variable to improve the caching
of various jobs using the same characteristics. Document it
first.

See https://docs.travis-ci.com/user/caching/#caches-and-build-matrices

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/.travis.yml b/.travis.yml
index 3d1c7f0d7e0..51c7d19c071 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,6 +6,12 @@ language: c
 compiler:
   - gcc
 cache:
+  # There is one cache per branch and compiler version.
+  # characteristics of each job are used to identify the cache:
+  # - OS name (currently, linux, osx, or windows)
+  # - OS distribution (for Linux, xenial, trusty, or precise)
+  # - macOS image name (e.g., xcode7.2)
+  # - Names and values of visible environment variables set in .travis.yml or Settings panel
   timeout: 1200
   ccache: true
   pip: true
-- 
2.20.1


[Qemu-devel] [PULL 41/45] .travis.yml: Cache Linux/GCC 'debug profile' jobs together
Posted by Alex Bennée 4 years, 7 months ago
From: Philippe Mathieu-Daudé <philmd@redhat.com>

These jobs build different components but use the same
host features. Put them in the same cache bucket.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/.travis.yml b/.travis.yml
index 51c7d19c071..d2da12580f3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -120,11 +120,13 @@ matrix:
 
     - env:
         - CONFIG="--enable-debug --enable-debug-tcg --disable-user"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug"
 
 
     # TCG debug can be run just on it's own and is mostly agnostic to user/softmmu distinctions
     - env:
         - CONFIG="--enable-debug-tcg --disable-system"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug"
 
 
     - env:
-- 
2.20.1


[Qemu-devel] [PULL 42/45] .travis.yml: Cache Linux/GCC 'non-debug profile' jobs together
Posted by Alex Bennée 4 years, 7 months ago
From: Philippe Mathieu-Daudé <philmd@redhat.com>

These jobs build different components but use the same
host features. Put them in the same cache bucket.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/.travis.yml b/.travis.yml
index d2da12580f3..74f10d352fe 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -101,15 +101,18 @@ matrix:
   include:
     - env:
         - CONFIG="--disable-system --static"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
 
 
     # we split the system builds as it takes a while to build them all
     - env:
         - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
 
 
     - env:
         - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
 
 
     # Just build tools and run minimal unit and softfloat checks
@@ -117,6 +120,8 @@ matrix:
         - BASE_CONFIG="--enable-tools"
         - CONFIG="--disable-user --disable-system"
         - TEST_CMD="make check-unit check-softfloat -j3"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
+
 
     - env:
         - CONFIG="--enable-debug --enable-debug-tcg --disable-user"
@@ -136,6 +141,7 @@ matrix:
     # Module builds are mostly of interest to major distros
     - env:
         - CONFIG="--enable-modules --target-list=${MAIN_SOFTMMU_TARGETS}"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
 
 
     # Alternate coroutines implementations are only really of interest to KVM users
@@ -155,6 +161,7 @@ matrix:
         - BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.."
         - BASE_CONFIG="--enable-tools --enable-docs"
         - CONFIG="--target-list=x86_64-softmmu,aarch64-linux-user"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
       addons:
         apt:
           packages:
@@ -196,6 +203,7 @@ matrix:
     # We manually include builds which we disable "make check" for
     - env:
         - CONFIG="--without-default-devices --disable-user"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
         - TEST_CMD=""
 
 
@@ -239,6 +247,7 @@ matrix:
     # Python builds
     - env:
         - CONFIG="--target-list=x86_64-softmmu"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
       language: python
       python:
         - "3.4"
@@ -246,6 +255,7 @@ matrix:
 
     - env:
         - CONFIG="--target-list=x86_64-softmmu"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
       language: python
       python:
         - "3.6"
@@ -317,8 +327,11 @@ matrix:
     - env:
         - CONFIG="--disable-system"
         - TEST_CMD="make -j3 check-tcg V=1"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
+
 
     # Run check-tcg against softmmu targets
     - env:
         - CONFIG="--target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu"
         - TEST_CMD="make -j3 check-tcg V=1"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
-- 
2.20.1


[Qemu-devel] [PULL 43/45] .travis.yml: Cache Linux/Clang jobs together
Posted by Alex Bennée 4 years, 7 months ago
From: Philippe Mathieu-Daudé <philmd@redhat.com>

These jobs build different components but use the same
host features. Put them in the same cache bucket.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/.travis.yml b/.travis.yml
index 74f10d352fe..1ff26205795 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -173,11 +173,13 @@ matrix:
     # Test with Clang for compile portability (Travis uses clang-5.0)
     - env:
         - CONFIG="--disable-system"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
       compiler: clang
 
 
     - env:
         - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
       compiler: clang
 
 
@@ -190,6 +192,7 @@ matrix:
 
     - env:
         - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"
+        - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
       compiler: clang
 
 
-- 
2.20.1


[Qemu-devel] [PULL 45/45] travis.yml: Install libcap-dev for testing virito-9p
Posted by Alex Bennée 4 years, 7 months ago
From: Thomas Huth <thuth@redhat.com>

So far we were not testing virtio-9p in Travis yet, since we forgot to
install libcap-devel. Do it now to get some more test coverage.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Acked-by: Greg Kurz <groug@kaod.org>
Tested-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20190905113346.2473-1-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/.travis.yml b/.travis.yml
index 1ff26205795..d0b9e099b9c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,6 +26,7 @@ addons:
       - libaio-dev
       - libattr1-dev
       - libbrlapi-dev
+      - libcap-dev
       - libcap-ng-dev
       - libgcc-4.8-dev
       - libgnutls-dev
-- 
2.20.1