mirror of https://github.com/xemu-project/xemu.git
Testing updates and build fixes:
- move more cross compilers to buster - fix build breakage (hppa Kconfig) - disable docs on shippable - build docs under bionic with python3 - travis.yml re-factoring - check capabilities of non-docker compilers - smarter make -j parallelism -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAl45pvgACgkQ+9DbCVqe KkQulAf/W+nrxv+7Q+xwyZOv6d1V2cfJRmgxUrH3fXePBGVGmhoCF9zDRfUeidUH Ab9Les0O9E3XTRcobiwOCEG0iTUT3yFiO76V0D+hY9GH41SvrB943LVAsAVnM/eM PRFeUM1BqE+hs6b/ByIfqdkrcnSS9xgIdYEF2MryR4azemR0R901rBlS+jsk8yAV Nv9SAmNZv3oG/oWVXLk9+5dNjw6OqVvmEFPO1pr5AFyt7k2wvxoYD2iVMLYPvJX9 jfx1YP2UlqnMQ7VNOVuAtv8ROw2IZoQpoCtXP+1cs9N5n4VtQo7QxCNn6WVT0UpA DY4DuDyK75ZgHhhEiJBbZfavona6fQ== =P3ap -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/stsquad/tags/pull-testing-040220-1' into staging Testing updates and build fixes: - move more cross compilers to buster - fix build breakage (hppa Kconfig) - disable docs on shippable - build docs under bionic with python3 - travis.yml re-factoring - check capabilities of non-docker compilers - smarter make -j parallelism # gpg: Signature made Tue 04 Feb 2020 17:16:40 GMT # gpg: using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44 # gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" [full] # Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44 * remotes/stsquad/tags/pull-testing-040220-1: .travis.yml: ensure python3-sphinx installed for docs .travis.yml: single thread build-tcg .travis.yml: drop cris-linux-user from the plugins test .travis.yml: drop the travis_retry from tests .travis.yml: introduce TEST_BUILD_CMD and use it for check-tcg tests/tcg: gate pauth-% tests on having compiler support tests/tcg: add a configure compiler check for ARMv8.1 and SVE .travis.yml: probe for number of available processors .travis.yml: move cache flushing to early common phase .travis.yml: build documents under bionic .travis.yml: Add description to each job .travis.yml: Drop superfluous use of --python=python3 parameter .shippable: --disable-docs for cross-compile tests travis.yml: Install genisoimage package tests/docker: better handle symlinked libs tests/docker: move most cross compilers to buster base Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
418fa86dd4
|
@ -37,5 +37,5 @@ build:
|
||||||
- unset CC
|
- unset CC
|
||||||
- mkdir build
|
- mkdir build
|
||||||
- cd build
|
- cd build
|
||||||
- ../configure ${QEMU_CONFIGURE_OPTS} --target-list=${TARGET_LIST}
|
- ../configure --disable-docs ${QEMU_CONFIGURE_OPTS} --target-list=${TARGET_LIST}
|
||||||
- make -j$(($(getconf _NPROCESSORS_ONLN) + 1))
|
- make -j$(($(getconf _NPROCESSORS_ONLN) + 1))
|
||||||
|
|
166
.travis.yml
166
.travis.yml
|
@ -51,6 +51,8 @@ addons:
|
||||||
- sparse
|
- sparse
|
||||||
- uuid-dev
|
- uuid-dev
|
||||||
- gcovr
|
- gcovr
|
||||||
|
# Tests dependencies
|
||||||
|
- genisoimage
|
||||||
|
|
||||||
|
|
||||||
# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu
|
# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu
|
||||||
|
@ -69,6 +71,7 @@ env:
|
||||||
- SRC_DIR=".."
|
- SRC_DIR=".."
|
||||||
- BUILD_DIR="build"
|
- BUILD_DIR="build"
|
||||||
- BASE_CONFIG="--disable-docs --disable-tools"
|
- BASE_CONFIG="--disable-docs --disable-tools"
|
||||||
|
- TEST_BUILD_CMD=""
|
||||||
- TEST_CMD="make check V=1"
|
- TEST_CMD="make check V=1"
|
||||||
# This is broadly a list of "mainline" softmmu targets which have support across the major distros
|
# This is broadly a list of "mainline" softmmu targets which have support across the major distros
|
||||||
- MAIN_SOFTMMU_TARGETS="aarch64-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
|
- MAIN_SOFTMMU_TARGETS="aarch64-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
|
||||||
|
@ -80,80 +83,110 @@ git:
|
||||||
# we want to do this ourselves
|
# we want to do this ourselves
|
||||||
submodules: false
|
submodules: false
|
||||||
|
|
||||||
|
# Common first phase for all steps
|
||||||
before_script:
|
before_install:
|
||||||
- if command -v ccache ; then ccache --zero-stats ; fi
|
- if command -v ccache ; then ccache --zero-stats ; fi
|
||||||
|
- export JOBS=$(($(getconf _NPROCESSORS_ONLN) + 1))
|
||||||
|
- echo "=== Using ${JOBS} simultaneous jobs ==="
|
||||||
|
|
||||||
|
# Configure step - may be overridden
|
||||||
|
before_script:
|
||||||
- mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
|
- mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
|
||||||
- ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
|
- ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
|
||||||
|
|
||||||
|
# Main build & test - rarely overridden - controlled by TEST_CMD
|
||||||
script:
|
script:
|
||||||
- BUILD_RC=0 && make -j3 || BUILD_RC=$?
|
- BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$?
|
||||||
- if [ "$BUILD_RC" -eq 0 ] ; then travis_retry ${TEST_CMD} ; else $(exit $BUILD_RC); fi
|
- |
|
||||||
|
if [ "$BUILD_RC" -eq 0 ] && [ -n "$TEST_BUILD_CMD" ]; then
|
||||||
|
${TEST_BUILD_CMD} || BUILD_RC=$?
|
||||||
|
else
|
||||||
|
$(exit $BUILD_RC);
|
||||||
|
fi
|
||||||
|
- |
|
||||||
|
if [ "$BUILD_RC" -eq 0 ] ; then
|
||||||
|
${TEST_CMD} ;
|
||||||
|
else
|
||||||
|
$(exit $BUILD_RC);
|
||||||
|
fi
|
||||||
after_script:
|
after_script:
|
||||||
- if command -v ccache ; then ccache --show-stats ; fi
|
- if command -v ccache ; then ccache --show-stats ; fi
|
||||||
|
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- env:
|
- name: "GCC static (user)"
|
||||||
|
env:
|
||||||
- CONFIG="--disable-system --static"
|
- CONFIG="--disable-system --static"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
||||||
|
|
||||||
|
|
||||||
# we split the system builds as it takes a while to build them all
|
# we split the system builds as it takes a while to build them all
|
||||||
- env:
|
- name: "GCC (main-softmmu)"
|
||||||
|
env:
|
||||||
- CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}"
|
- CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
||||||
|
|
||||||
|
|
||||||
- env:
|
- name: "GCC (other-softmmu)"
|
||||||
|
env:
|
||||||
- CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"
|
- CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
||||||
|
|
||||||
|
|
||||||
# Just build tools and run minimal unit and softfloat checks
|
# Just build tools and run minimal unit and softfloat checks
|
||||||
- env:
|
- name: "GCC check-softfloat (user)"
|
||||||
|
env:
|
||||||
- BASE_CONFIG="--enable-tools"
|
- BASE_CONFIG="--enable-tools"
|
||||||
- CONFIG="--disable-user --disable-system"
|
- CONFIG="--disable-user --disable-system"
|
||||||
- TEST_CMD="make check-unit check-softfloat -j3"
|
- TEST_CMD="make check-unit check-softfloat -j${JOBS}"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
||||||
|
|
||||||
|
|
||||||
# --enable-debug implies --enable-debug-tcg, also runs quite a bit slower
|
# --enable-debug implies --enable-debug-tcg, also runs quite a bit slower
|
||||||
- env:
|
- name: "GCC debug (main-softmmu)"
|
||||||
|
env:
|
||||||
- CONFIG="--enable-debug --target-list=${MAIN_SOFTMMU_TARGETS}"
|
- CONFIG="--enable-debug --target-list=${MAIN_SOFTMMU_TARGETS}"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug"
|
||||||
|
|
||||||
|
|
||||||
# TCG debug can be run just on its own and is mostly agnostic to user/softmmu distinctions
|
# TCG debug can be run just on its own and is mostly agnostic to user/softmmu distinctions
|
||||||
- env:
|
- name: "GCC debug (user)"
|
||||||
|
env:
|
||||||
- CONFIG="--enable-debug-tcg --disable-system"
|
- CONFIG="--enable-debug-tcg --disable-system"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg"
|
||||||
|
|
||||||
|
|
||||||
- env:
|
- name: "GCC some libs disabled (main-softmmu)"
|
||||||
|
env:
|
||||||
- CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-libusb --disable-replication --target-list=${MAIN_SOFTMMU_TARGETS}"
|
- CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-libusb --disable-replication --target-list=${MAIN_SOFTMMU_TARGETS}"
|
||||||
|
|
||||||
|
|
||||||
# Module builds are mostly of interest to major distros
|
# Module builds are mostly of interest to major distros
|
||||||
- env:
|
- name: "GCC modules (main-softmmu)"
|
||||||
|
env:
|
||||||
- CONFIG="--enable-modules --target-list=${MAIN_SOFTMMU_TARGETS}"
|
- CONFIG="--enable-modules --target-list=${MAIN_SOFTMMU_TARGETS}"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
||||||
|
|
||||||
|
|
||||||
# Alternate coroutines implementations are only really of interest to KVM users
|
# Alternate coroutines implementations are only really of interest to KVM users
|
||||||
# However we can't test against KVM on Travis so we can only run unit tests
|
# However we can't test against KVM on Travis so we can only run unit tests
|
||||||
- env:
|
- name: "check-unit coroutine=ucontext"
|
||||||
|
env:
|
||||||
- CONFIG="--with-coroutine=ucontext --disable-tcg"
|
- CONFIG="--with-coroutine=ucontext --disable-tcg"
|
||||||
- TEST_CMD="make check-unit -j3 V=1"
|
- TEST_CMD="make check-unit -j${JOBS} V=1"
|
||||||
|
|
||||||
|
|
||||||
- env:
|
- name: "check-unit coroutine=sigaltstack"
|
||||||
|
env:
|
||||||
- CONFIG="--with-coroutine=sigaltstack --disable-tcg"
|
- CONFIG="--with-coroutine=sigaltstack --disable-tcg"
|
||||||
- TEST_CMD="make check-unit -j3 V=1"
|
- TEST_CMD="make check-unit -j${JOBS} V=1"
|
||||||
|
|
||||||
|
|
||||||
# Check we can build docs and tools (out of tree)
|
# Check we can build docs and tools (out of tree)
|
||||||
- env:
|
- name: "tools and docs (bionic)"
|
||||||
|
dist: bionic
|
||||||
|
env:
|
||||||
- BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.."
|
- BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.."
|
||||||
- BASE_CONFIG="--enable-tools --enable-docs"
|
- BASE_CONFIG="--enable-tools --enable-docs"
|
||||||
- CONFIG="--target-list=x86_64-softmmu,aarch64-linux-user"
|
- CONFIG="--target-list=x86_64-softmmu,aarch64-linux-user"
|
||||||
|
@ -161,19 +194,21 @@ matrix:
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
packages:
|
packages:
|
||||||
- python-sphinx
|
- python3-sphinx
|
||||||
- texinfo
|
- texinfo
|
||||||
- perl
|
- perl
|
||||||
|
|
||||||
|
|
||||||
# Test with Clang for compile portability (Travis uses clang-5.0)
|
# Test with Clang for compile portability (Travis uses clang-5.0)
|
||||||
- env:
|
- name: "Clang (user)"
|
||||||
|
env:
|
||||||
- CONFIG="--disable-system"
|
- CONFIG="--disable-system"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
|
||||||
compiler: clang
|
compiler: clang
|
||||||
|
|
||||||
|
|
||||||
- env:
|
- name: "Clang (main-softmmu)"
|
||||||
|
env:
|
||||||
- CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS} "
|
- CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS} "
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-sanitize"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-sanitize"
|
||||||
compiler: clang
|
compiler: clang
|
||||||
|
@ -182,52 +217,60 @@ matrix:
|
||||||
- ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-fsanitize=undefined -Werror" || { cat config.log && exit 1; }
|
- ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-fsanitize=undefined -Werror" || { cat config.log && exit 1; }
|
||||||
|
|
||||||
|
|
||||||
- env:
|
- name: "Clang (other-softmmu)"
|
||||||
|
env:
|
||||||
- CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"
|
- CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
|
||||||
compiler: clang
|
compiler: clang
|
||||||
|
|
||||||
|
|
||||||
# gprof/gcov are GCC features
|
# gprof/gcov are GCC features
|
||||||
- env:
|
- name: "GCC gprof/gcov"
|
||||||
|
env:
|
||||||
- CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=${MAIN_SOFTMMU_TARGETS}"
|
- CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=${MAIN_SOFTMMU_TARGETS}"
|
||||||
after_success:
|
after_success:
|
||||||
- ${SRC_DIR}/scripts/travis/coverage-summary.sh
|
- ${SRC_DIR}/scripts/travis/coverage-summary.sh
|
||||||
|
|
||||||
|
|
||||||
# We manually include builds which we disable "make check" for
|
# We manually include builds which we disable "make check" for
|
||||||
- env:
|
- name: "GCC without-default-devices (softmmu)"
|
||||||
|
env:
|
||||||
- CONFIG="--without-default-devices --disable-user"
|
- CONFIG="--without-default-devices --disable-user"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
||||||
- TEST_CMD=""
|
- TEST_CMD=""
|
||||||
|
|
||||||
|
|
||||||
# Check the TCG interpreter (TCI)
|
# Check the TCG interpreter (TCI)
|
||||||
- env:
|
- name: "GCC TCI"
|
||||||
|
env:
|
||||||
- CONFIG="--enable-debug-tcg --enable-tcg-interpreter --disable-kvm --disable-containers
|
- CONFIG="--enable-debug-tcg --enable-tcg-interpreter --disable-kvm --disable-containers
|
||||||
--target-list=alpha-softmmu,arm-softmmu,hppa-softmmu,m68k-softmmu,microblaze-softmmu,moxie-softmmu,ppc-softmmu,s390x-softmmu,x86_64-softmmu"
|
--target-list=alpha-softmmu,arm-softmmu,hppa-softmmu,m68k-softmmu,microblaze-softmmu,moxie-softmmu,ppc-softmmu,s390x-softmmu,x86_64-softmmu"
|
||||||
- TEST_CMD="make check-qtest check-tcg V=1"
|
- TEST_CMD="make check-qtest check-tcg V=1"
|
||||||
|
|
||||||
|
|
||||||
# We don't need to exercise every backend with every front-end
|
# We don't need to exercise every backend with every front-end
|
||||||
- env:
|
- name: "GCC trace log,simple,syslog (user)"
|
||||||
|
env:
|
||||||
- CONFIG="--enable-trace-backends=log,simple,syslog --disable-system"
|
- CONFIG="--enable-trace-backends=log,simple,syslog --disable-system"
|
||||||
- TEST_CMD=""
|
- TEST_CMD=""
|
||||||
|
|
||||||
|
|
||||||
- env:
|
- name: "GCC trace ftrace (x86_64-softmmu)"
|
||||||
|
env:
|
||||||
- CONFIG="--enable-trace-backends=ftrace --target-list=x86_64-softmmu"
|
- CONFIG="--enable-trace-backends=ftrace --target-list=x86_64-softmmu"
|
||||||
- TEST_CMD=""
|
- TEST_CMD=""
|
||||||
|
|
||||||
|
|
||||||
- env:
|
- name: "GCC trace ust (x86_64-softmmu)"
|
||||||
|
env:
|
||||||
- CONFIG="--enable-trace-backends=ust --target-list=x86_64-softmmu"
|
- CONFIG="--enable-trace-backends=ust --target-list=x86_64-softmmu"
|
||||||
- TEST_CMD=""
|
- TEST_CMD=""
|
||||||
|
|
||||||
|
|
||||||
# MacOSX builds - cirrus.yml also tests some MacOS builds including latest Xcode
|
# MacOSX builds - cirrus.yml also tests some MacOS builds including latest Xcode
|
||||||
|
|
||||||
- env:
|
- name: "OSX Xcode 10.3"
|
||||||
|
env:
|
||||||
- CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu"
|
- CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode10.3
|
osx_image: xcode10.3
|
||||||
|
@ -244,13 +287,13 @@ matrix:
|
||||||
before_script:
|
before_script:
|
||||||
- brew link --overwrite python
|
- brew link --overwrite python
|
||||||
- export PATH="/usr/local/opt/ccache/libexec:$PATH"
|
- export PATH="/usr/local/opt/ccache/libexec:$PATH"
|
||||||
- if command -v ccache ; then ccache --zero-stats ; fi
|
|
||||||
- mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
|
- mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
|
||||||
- ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
|
- ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
|
||||||
|
|
||||||
|
|
||||||
# Python builds
|
# Python builds
|
||||||
- env:
|
- name: "GCC Python 3.5 (x86_64-softmmu)"
|
||||||
|
env:
|
||||||
- CONFIG="--target-list=x86_64-softmmu"
|
- CONFIG="--target-list=x86_64-softmmu"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
||||||
language: python
|
language: python
|
||||||
|
@ -258,7 +301,8 @@ matrix:
|
||||||
- "3.5"
|
- "3.5"
|
||||||
|
|
||||||
|
|
||||||
- env:
|
- name: "GCC Python 3.6 (x86_64-softmmu)"
|
||||||
|
env:
|
||||||
- CONFIG="--target-list=x86_64-softmmu"
|
- CONFIG="--target-list=x86_64-softmmu"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
||||||
language: python
|
language: python
|
||||||
|
@ -267,8 +311,9 @@ matrix:
|
||||||
|
|
||||||
|
|
||||||
# Acceptance (Functional) tests
|
# Acceptance (Functional) tests
|
||||||
- env:
|
- name: "GCC check-acceptance"
|
||||||
- CONFIG="--python=/usr/bin/python3 --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,sparc-softmmu"
|
env:
|
||||||
|
- CONFIG="--target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,sparc-softmmu"
|
||||||
- TEST_CMD="make check-acceptance"
|
- TEST_CMD="make check-acceptance"
|
||||||
after_script:
|
after_script:
|
||||||
- python3 -c 'import json; r = json.load(open("tests/results/latest/results.json")); [print(t["logfile"]) for t in r["tests"] if t["status"] not in ("PASS", "SKIP")]' | xargs cat
|
- python3 -c 'import json; r = json.load(open("tests/results/latest/results.json")); [print(t["logfile"]) for t in r["tests"] if t["status"] not in ("PASS", "SKIP")]' | xargs cat
|
||||||
|
@ -283,7 +328,8 @@ matrix:
|
||||||
|
|
||||||
|
|
||||||
# Using newer GCC with sanitizers
|
# Using newer GCC with sanitizers
|
||||||
- addons:
|
- name: "GCC9 with sanitizers (softmmu)"
|
||||||
|
addons:
|
||||||
apt:
|
apt:
|
||||||
update: true
|
update: true
|
||||||
sources:
|
sources:
|
||||||
|
@ -331,34 +377,44 @@ matrix:
|
||||||
|
|
||||||
|
|
||||||
# Run check-tcg against linux-user
|
# Run check-tcg against linux-user
|
||||||
- env:
|
- name: "GCC check-tcg (user)"
|
||||||
|
env:
|
||||||
- CONFIG="--disable-system --enable-debug-tcg"
|
- CONFIG="--disable-system --enable-debug-tcg"
|
||||||
- TEST_CMD="make -j3 check-tcg V=1"
|
- TEST_BUILD_CMD="make build-tcg"
|
||||||
|
- TEST_CMD="make check-tcg"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg"
|
||||||
|
|
||||||
|
|
||||||
# Run check-tcg against linux-user (with plugins)
|
# Run check-tcg against linux-user (with plugins)
|
||||||
# we skip sparc64-linux-user until it has been fixed somewhat
|
# we skip sparc64-linux-user until it has been fixed somewhat
|
||||||
- env:
|
# we skip cris-linux-user as it doesn't use the common run loop
|
||||||
- CONFIG="--disable-system --enable-plugins --enable-debug-tcg --target-list-exclude=sparc64-linux-user"
|
- name: "GCC plugins check-tcg (user)"
|
||||||
- TEST_CMD="make -j3 check-tcg V=1"
|
env:
|
||||||
|
- CONFIG="--disable-system --enable-plugins --enable-debug-tcg --target-list-exclude=sparc64-linux-user,cris-linux-user"
|
||||||
|
- TEST_BUILD_CMD="make build-tcg"
|
||||||
|
- TEST_CMD="make check-tcg"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg"
|
||||||
|
|
||||||
|
|
||||||
# Run check-tcg against softmmu targets
|
# Run check-tcg against softmmu targets
|
||||||
- env:
|
- name: "GCC check-tcg (some-softmmu)"
|
||||||
|
env:
|
||||||
- CONFIG="--enable-debug-tcg --target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu"
|
- CONFIG="--enable-debug-tcg --target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu"
|
||||||
- TEST_CMD="make -j3 check-tcg V=1"
|
- TEST_BUILD_CMD="make -j${JOBS} build-tcg"
|
||||||
|
- TEST_CMD="make check-tcg"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg"
|
||||||
|
|
||||||
|
|
||||||
# Run check-tcg against softmmu targets (with plugins)
|
# Run check-tcg against softmmu targets (with plugins)
|
||||||
- env:
|
- name: "GCC plugins check-tcg (some-softmmu)"
|
||||||
|
env:
|
||||||
- CONFIG="--enable-plugins --enable-debug-tcg --target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu"
|
- CONFIG="--enable-plugins --enable-debug-tcg --target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu"
|
||||||
- TEST_CMD="make -j3 check-tcg V=1"
|
- TEST_BUILD_CMD="make -j${JOBS} build-tcg"
|
||||||
|
- TEST_CMD="make check-tcg"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg"
|
||||||
|
|
||||||
- arch: arm64
|
- name: "[aarch64] GCC check-tcg"
|
||||||
|
arch: arm64
|
||||||
dist: xenial
|
dist: xenial
|
||||||
addons:
|
addons:
|
||||||
apt_packages:
|
apt_packages:
|
||||||
|
@ -383,11 +439,14 @@ matrix:
|
||||||
- libusb-1.0-0-dev
|
- libusb-1.0-0-dev
|
||||||
- libvdeplug-dev
|
- libvdeplug-dev
|
||||||
- libvte-2.91-dev
|
- libvte-2.91-dev
|
||||||
|
# Tests dependencies
|
||||||
|
- genisoimage
|
||||||
env:
|
env:
|
||||||
- TEST_CMD="make check check-tcg V=1"
|
- TEST_CMD="make check check-tcg V=1"
|
||||||
- CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS}"
|
- CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS}"
|
||||||
|
|
||||||
- arch: ppc64le
|
- name: "[ppc64] GCC check-tcg"
|
||||||
|
arch: ppc64le
|
||||||
dist: xenial
|
dist: xenial
|
||||||
addons:
|
addons:
|
||||||
apt_packages:
|
apt_packages:
|
||||||
|
@ -412,11 +471,14 @@ matrix:
|
||||||
- libusb-1.0-0-dev
|
- libusb-1.0-0-dev
|
||||||
- libvdeplug-dev
|
- libvdeplug-dev
|
||||||
- libvte-2.91-dev
|
- libvte-2.91-dev
|
||||||
|
# Tests dependencies
|
||||||
|
- genisoimage
|
||||||
env:
|
env:
|
||||||
- TEST_CMD="make check check-tcg V=1"
|
- TEST_CMD="make check check-tcg V=1"
|
||||||
- CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS},ppc64le-linux-user"
|
- CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS},ppc64le-linux-user"
|
||||||
|
|
||||||
- arch: s390x
|
- name: "[s390x] GCC check-tcg"
|
||||||
|
arch: s390x
|
||||||
dist: bionic
|
dist: bionic
|
||||||
addons:
|
addons:
|
||||||
apt_packages:
|
apt_packages:
|
||||||
|
@ -441,6 +503,8 @@ matrix:
|
||||||
- libusb-1.0-0-dev
|
- libusb-1.0-0-dev
|
||||||
- libvdeplug-dev
|
- libvdeplug-dev
|
||||||
- libvte-2.91-dev
|
- libvte-2.91-dev
|
||||||
|
# Tests dependencies
|
||||||
|
- genisoimage
|
||||||
env:
|
env:
|
||||||
- TEST_CMD="make check check-tcg V=1"
|
- TEST_CMD="make check check-tcg V=1"
|
||||||
- CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS},s390x-linux-user"
|
- CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS},s390x-linux-user"
|
||||||
|
@ -448,18 +512,16 @@ matrix:
|
||||||
# Release builds
|
# Release builds
|
||||||
# The make-release script expect a QEMU version, so our tag must start with a 'v'.
|
# The make-release script expect a QEMU version, so our tag must start with a 'v'.
|
||||||
# This is the case when release candidate tags are created.
|
# This is the case when release candidate tags are created.
|
||||||
- if: tag IS present AND tag =~ /^v\d+\.\d+(\.\d+)?(-\S*)?$/
|
- name: "Release tarball"
|
||||||
|
if: tag IS present AND tag =~ /^v\d+\.\d+(\.\d+)?(-\S*)?$/
|
||||||
env:
|
env:
|
||||||
# We want to build from the release tarball
|
# We want to build from the release tarball
|
||||||
- BUILD_DIR="release/build/dir" SRC_DIR="../../.."
|
- BUILD_DIR="release/build/dir" SRC_DIR="../../.."
|
||||||
- BASE_CONFIG="--prefix=$PWD/dist"
|
- BASE_CONFIG="--prefix=$PWD/dist"
|
||||||
- CONFIG="--target-list=x86_64-softmmu,aarch64-softmmu,armeb-linux-user,ppc-linux-user"
|
- CONFIG="--target-list=x86_64-softmmu,aarch64-softmmu,armeb-linux-user,ppc-linux-user"
|
||||||
- TEST_CMD="make install -j3"
|
- TEST_CMD="make install -j${JOBS}"
|
||||||
- QEMU_VERSION="${TRAVIS_TAG:1}"
|
- QEMU_VERSION="${TRAVIS_TAG:1}"
|
||||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
||||||
before_script:
|
|
||||||
- command -v ccache && ccache --zero-stats
|
|
||||||
- mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
|
|
||||||
script:
|
script:
|
||||||
- make -C ${SRC_DIR} qemu-${QEMU_VERSION}.tar.bz2
|
- make -C ${SRC_DIR} qemu-${QEMU_VERSION}.tar.bz2
|
||||||
- ls -l ${SRC_DIR}/qemu-${QEMU_VERSION}.tar.bz2
|
- ls -l ${SRC_DIR}/qemu-${QEMU_VERSION}.tar.bz2
|
||||||
|
|
|
@ -91,19 +91,12 @@ endif
|
||||||
# Enforce dependencies for composite images
|
# Enforce dependencies for composite images
|
||||||
docker-image-debian9-mxe: docker-image-debian9
|
docker-image-debian9-mxe: docker-image-debian9
|
||||||
ifeq ($(HOST_ARCH),x86_64)
|
ifeq ($(HOST_ARCH),x86_64)
|
||||||
docker-image-debian-amd64: docker-image-debian9
|
docker-image-debian-amd64: docker-image-debian10
|
||||||
DOCKER_PARTIAL_IMAGES += debian-amd64-cross
|
DOCKER_PARTIAL_IMAGES += debian-amd64-cross
|
||||||
else
|
else
|
||||||
docker-image-debian-amd64-cross: docker-image-debian10
|
docker-image-debian-amd64-cross: docker-image-debian10
|
||||||
DOCKER_PARTIAL_IMAGES += debian-amd64
|
DOCKER_PARTIAL_IMAGES += debian-amd64
|
||||||
endif
|
endif
|
||||||
docker-image-debian-armel-cross: docker-image-debian9
|
|
||||||
docker-image-debian-armhf-cross: docker-image-debian9
|
|
||||||
docker-image-debian-mips-cross: docker-image-debian9
|
|
||||||
docker-image-debian-mipsel-cross: docker-image-debian9
|
|
||||||
docker-image-debian-mips64el-cross: docker-image-debian9
|
|
||||||
docker-image-debian-ppc64el-cross: docker-image-debian9
|
|
||||||
docker-image-debian-s390x-cross: docker-image-debian9
|
|
||||||
docker-image-debian-win32-cross: docker-image-debian9-mxe
|
docker-image-debian-win32-cross: docker-image-debian9-mxe
|
||||||
docker-image-debian-win64-cross: docker-image-debian9-mxe
|
docker-image-debian-win64-cross: docker-image-debian9-mxe
|
||||||
|
|
||||||
|
@ -118,12 +111,19 @@ endif
|
||||||
|
|
||||||
docker-image-debian-alpha-cross: docker-image-debian10
|
docker-image-debian-alpha-cross: docker-image-debian10
|
||||||
docker-image-debian-arm64-cross: docker-image-debian10
|
docker-image-debian-arm64-cross: docker-image-debian10
|
||||||
|
docker-image-debian-armel-cross: docker-image-debian10
|
||||||
|
docker-image-debian-armhf-cross: docker-image-debian10
|
||||||
docker-image-debian-hppa-cross: docker-image-debian10
|
docker-image-debian-hppa-cross: docker-image-debian10
|
||||||
docker-image-debian-m68k-cross: docker-image-debian10
|
docker-image-debian-m68k-cross: docker-image-debian10
|
||||||
|
docker-image-debian-mips-cross: docker-image-debian10
|
||||||
docker-image-debian-mips64-cross: docker-image-debian10
|
docker-image-debian-mips64-cross: docker-image-debian10
|
||||||
|
docker-image-debian-mips64el-cross: docker-image-debian10
|
||||||
|
docker-image-debian-mipsel-cross: docker-image-debian10
|
||||||
docker-image-debian-powerpc-cross: docker-image-debian10
|
docker-image-debian-powerpc-cross: docker-image-debian10
|
||||||
docker-image-debian-ppc64-cross: docker-image-debian10
|
docker-image-debian-ppc64-cross: docker-image-debian10
|
||||||
|
docker-image-debian-ppc64el-cross: docker-image-debian10
|
||||||
docker-image-debian-riscv64-cross: docker-image-debian10
|
docker-image-debian-riscv64-cross: docker-image-debian10
|
||||||
|
docker-image-debian-s390x-cross: docker-image-debian10
|
||||||
docker-image-debian-sh4-cross: docker-image-debian10
|
docker-image-debian-sh4-cross: docker-image-debian10
|
||||||
docker-image-debian-sparc64-cross: docker-image-debian10
|
docker-image-debian-sparc64-cross: docker-image-debian10
|
||||||
|
|
||||||
|
|
|
@ -106,18 +106,19 @@ def _get_so_libs(executable):
|
||||||
"""Return a list of libraries associated with an executable.
|
"""Return a list of libraries associated with an executable.
|
||||||
|
|
||||||
The paths may be symbolic links which would need to be resolved to
|
The paths may be symbolic links which would need to be resolved to
|
||||||
ensure theright data is copied."""
|
ensure the right data is copied."""
|
||||||
|
|
||||||
libs = []
|
libs = []
|
||||||
ldd_re = re.compile(r"(/.*/)(\S*)")
|
ldd_re = re.compile(r"(?:\S+ => )?(\S*) \(:?0x[0-9a-f]+\)")
|
||||||
try:
|
try:
|
||||||
ldd_output = subprocess.check_output(["ldd", executable]).decode('utf-8')
|
ldd_output = subprocess.check_output(["ldd", executable]).decode('utf-8')
|
||||||
for line in ldd_output.split("\n"):
|
for line in ldd_output.split("\n"):
|
||||||
search = ldd_re.search(line)
|
search = ldd_re.search(line)
|
||||||
if search and len(search.groups()) == 2:
|
if search:
|
||||||
so_path = search.groups()[0]
|
try:
|
||||||
so_lib = search.groups()[1]
|
libs.append(s.group(1))
|
||||||
libs.append("%s/%s" % (so_path, so_lib))
|
except IndexError:
|
||||||
|
pass
|
||||||
except subprocess.CalledProcessError:
|
except subprocess.CalledProcessError:
|
||||||
print("%s had no associated libraries (static build?)" % (executable))
|
print("%s had no associated libraries (static build?)" % (executable))
|
||||||
|
|
||||||
|
@ -145,7 +146,8 @@ def _copy_binary_with_libs(src, bin_dest, dest_dir):
|
||||||
if libs:
|
if libs:
|
||||||
for l in libs:
|
for l in libs:
|
||||||
so_path = os.path.dirname(l)
|
so_path = os.path.dirname(l)
|
||||||
_copy_with_mkdir(l, dest_dir, so_path)
|
real_l = os.path.realpath(l)
|
||||||
|
_copy_with_mkdir(real_l, dest_dir, so_path)
|
||||||
|
|
||||||
|
|
||||||
def _check_binfmt_misc(executable):
|
def _check_binfmt_misc(executable):
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
# This docker target builds on the debian Stretch base image. Further
|
# This docker target builds on the debian Stretch base image. Further
|
||||||
# libraries which are not widely available are installed by hand.
|
# libraries which are not widely available are installed by hand.
|
||||||
#
|
#
|
||||||
FROM qemu:debian9
|
FROM qemu:debian10
|
||||||
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
|
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
|
||||||
|
|
||||||
RUN apt update && \
|
RUN apt update && \
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
# This docker target builds on the debian Stretch base image.
|
# This docker target builds on the debian Stretch base image.
|
||||||
#
|
#
|
||||||
FROM qemu:debian9
|
FROM qemu:debian10
|
||||||
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
|
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
|
||||||
|
|
||||||
# Add the foreign architecture we want and install dependencies
|
# Add the foreign architecture we want and install dependencies
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
# This docker target builds on the debian Stretch base image.
|
# This docker target builds on the debian Stretch base image.
|
||||||
#
|
#
|
||||||
FROM qemu:debian9
|
FROM qemu:debian10
|
||||||
|
|
||||||
# Add the foreign architecture we want and install dependencies
|
# Add the foreign architecture we want and install dependencies
|
||||||
RUN dpkg --add-architecture armhf
|
RUN dpkg --add-architecture armhf
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
# This docker target builds on the debian Stretch base image.
|
# This docker target builds on the debian Stretch base image.
|
||||||
#
|
#
|
||||||
|
|
||||||
FROM qemu:debian9
|
FROM qemu:debian10
|
||||||
|
|
||||||
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
|
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
# This docker target builds on the debian Stretch base image.
|
# This docker target builds on the debian Stretch base image.
|
||||||
#
|
#
|
||||||
FROM qemu:debian9
|
FROM qemu:debian10
|
||||||
|
|
||||||
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
|
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
# This docker target builds on the debian Stretch base image.
|
# This docker target builds on the debian Stretch base image.
|
||||||
#
|
#
|
||||||
FROM qemu:debian9
|
FROM qemu:debian10
|
||||||
|
|
||||||
# Add the foreign architecture we want and install dependencies
|
# Add the foreign architecture we want and install dependencies
|
||||||
RUN dpkg --add-architecture ppc64el && \
|
RUN dpkg --add-architecture ppc64el && \
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
# This docker target builds on the debian Stretch base image.
|
# This docker target builds on the debian Stretch base image.
|
||||||
#
|
#
|
||||||
FROM qemu:debian9
|
FROM qemu:debian10
|
||||||
|
|
||||||
# Add the s390x architecture
|
# Add the s390x architecture
|
||||||
RUN dpkg --add-architecture s390x
|
RUN dpkg --add-architecture s390x
|
||||||
|
|
|
@ -61,7 +61,13 @@ run-memory-replay: memory-replay run-memory-record
|
||||||
$(QEMU_OPTS) memory, \
|
$(QEMU_OPTS) memory, \
|
||||||
"$< on $(TARGET_NAME)")
|
"$< on $(TARGET_NAME)")
|
||||||
|
|
||||||
run-pauth-3: pauth-3
|
EXTRA_TESTS+=memory-record memory-replay
|
||||||
pauth-3: CFLAGS += -march=armv8.3-a
|
|
||||||
|
|
||||||
EXTRA_TESTS+=memory-record memory-replay pauth-3
|
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_ARMV8_3),)
|
||||||
|
pauth-3: CFLAGS += -march=armv8.3-a
|
||||||
|
else
|
||||||
|
pauth-3:
|
||||||
|
$(call skip-test, "BUILD of $@", "missing compiler support")
|
||||||
|
run-pauth-3:
|
||||||
|
$(call skip-test, "RUN of pauth-3", "not built")
|
||||||
|
endif
|
||||||
|
|
|
@ -18,9 +18,11 @@ run-fcvt: fcvt
|
||||||
$(call diff-out,$<,$(AARCH64_SRC)/fcvt.ref)
|
$(call diff-out,$<,$(AARCH64_SRC)/fcvt.ref)
|
||||||
|
|
||||||
# Pauth Tests
|
# Pauth Tests
|
||||||
|
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_ARMV8_3),)
|
||||||
AARCH64_TESTS += pauth-1 pauth-2 pauth-4
|
AARCH64_TESTS += pauth-1 pauth-2 pauth-4
|
||||||
run-pauth-%: QEMU_OPTS += -cpu max
|
run-pauth-%: QEMU_OPTS += -cpu max
|
||||||
pauth-%: CFLAGS += -march=armv8.3-a
|
pauth-%: CFLAGS += -march=armv8.3-a
|
||||||
|
endif
|
||||||
|
|
||||||
# Semihosting smoke test for linux-user
|
# Semihosting smoke test for linux-user
|
||||||
AARCH64_TESTS += semihosting
|
AARCH64_TESTS += semihosting
|
||||||
|
|
|
@ -216,6 +216,24 @@ for target in $target_list; do
|
||||||
echo "CROSS_CC_GUEST_STATIC=y" >> $config_target_mak
|
echo "CROSS_CC_GUEST_STATIC=y" >> $config_target_mak
|
||||||
fi
|
fi
|
||||||
echo "CROSS_CC_GUEST=$target_compiler" >> $config_target_mak
|
echo "CROSS_CC_GUEST=$target_compiler" >> $config_target_mak
|
||||||
|
|
||||||
|
# Test for compiler features for optional tests. We only do this
|
||||||
|
# for cross compilers because ensuring the docker containers based
|
||||||
|
# compilers is a requirememt for adding a new test that needs a
|
||||||
|
# compiler feature.
|
||||||
|
case $target in
|
||||||
|
aarch64-*)
|
||||||
|
if do_compiler "$target_compiler" $target_compiler_cflags \
|
||||||
|
-march=armv8.1-a+sve -o $TMPE $TMPC; then
|
||||||
|
echo "CROSS_CC_HAS_SVE=y" >> $config_target_mak
|
||||||
|
fi
|
||||||
|
if do_compiler "$target_compiler" $target_compiler_cflags \
|
||||||
|
-march=-march=armv8.3-a -o $TMPE $TMPC; then
|
||||||
|
echo "CROSS_CC_HAS_ARMV8_3=y" >> $config_target_mak
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
enabled_cross_compilers="$enabled_cross_compilers $target_compiler"
|
enabled_cross_compilers="$enabled_cross_compilers $target_compiler"
|
||||||
got_cross_cc=yes
|
got_cross_cc=yes
|
||||||
break
|
break
|
||||||
|
|
Loading…
Reference in New Issue