.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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
© 2016 - 2024 Red Hat, Inc.