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
|
||||
- mkdir 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))
|
||||
|
168
.travis.yml
168
.travis.yml
@ -51,6 +51,8 @@ addons:
|
||||
- sparse
|
||||
- uuid-dev
|
||||
- gcovr
|
||||
# Tests dependencies
|
||||
- genisoimage
|
||||
|
||||
|
||||
# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu
|
||||
@ -69,6 +71,7 @@ env:
|
||||
- SRC_DIR=".."
|
||||
- BUILD_DIR="build"
|
||||
- BASE_CONFIG="--disable-docs --disable-tools"
|
||||
- TEST_BUILD_CMD=""
|
||||
- TEST_CMD="make check V=1"
|
||||
# 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"
|
||||
@ -80,80 +83,110 @@ git:
|
||||
# we want to do this ourselves
|
||||
submodules: false
|
||||
|
||||
|
||||
before_script:
|
||||
# Common first phase for all steps
|
||||
before_install:
|
||||
- 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}
|
||||
- ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
|
||||
|
||||
# Main build & test - rarely overridden - controlled by TEST_CMD
|
||||
script:
|
||||
- BUILD_RC=0 && make -j3 || BUILD_RC=$?
|
||||
- if [ "$BUILD_RC" -eq 0 ] ; then travis_retry ${TEST_CMD} ; else $(exit $BUILD_RC); fi
|
||||
- BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$?
|
||||
- |
|
||||
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:
|
||||
- if command -v ccache ; then ccache --show-stats ; fi
|
||||
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- env:
|
||||
- name: "GCC static (user)"
|
||||
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:
|
||||
- name: "GCC (main-softmmu)"
|
||||
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}"
|
||||
- name: "GCC (other-softmmu)"
|
||||
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
|
||||
- env:
|
||||
- name: "GCC check-softfloat (user)"
|
||||
env:
|
||||
- BASE_CONFIG="--enable-tools"
|
||||
- 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"
|
||||
|
||||
|
||||
# --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}"
|
||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug"
|
||||
|
||||
|
||||
# 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"
|
||||
- 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}"
|
||||
|
||||
|
||||
# Module builds are mostly of interest to major distros
|
||||
- env:
|
||||
- name: "GCC modules (main-softmmu)"
|
||||
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
|
||||
# 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"
|
||||
- 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"
|
||||
- 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)
|
||||
- env:
|
||||
- name: "tools and docs (bionic)"
|
||||
dist: bionic
|
||||
env:
|
||||
- BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.."
|
||||
- BASE_CONFIG="--enable-tools --enable-docs"
|
||||
- CONFIG="--target-list=x86_64-softmmu,aarch64-linux-user"
|
||||
@ -161,19 +194,21 @@ matrix:
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- python-sphinx
|
||||
- python3-sphinx
|
||||
- texinfo
|
||||
- perl
|
||||
|
||||
|
||||
# Test with Clang for compile portability (Travis uses clang-5.0)
|
||||
- env:
|
||||
- name: "Clang (user)"
|
||||
env:
|
||||
- CONFIG="--disable-system"
|
||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
|
||||
compiler: clang
|
||||
|
||||
|
||||
- env:
|
||||
- name: "Clang (main-softmmu)"
|
||||
env:
|
||||
- CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS} "
|
||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-sanitize"
|
||||
compiler: clang
|
||||
@ -182,52 +217,60 @@ matrix:
|
||||
- ${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}"
|
||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
|
||||
compiler: clang
|
||||
|
||||
|
||||
# gprof/gcov are GCC features
|
||||
- env:
|
||||
- name: "GCC gprof/gcov"
|
||||
env:
|
||||
- CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=${MAIN_SOFTMMU_TARGETS}"
|
||||
after_success:
|
||||
- ${SRC_DIR}/scripts/travis/coverage-summary.sh
|
||||
|
||||
|
||||
# We manually include builds which we disable "make check" for
|
||||
- env:
|
||||
- name: "GCC without-default-devices (softmmu)"
|
||||
env:
|
||||
- CONFIG="--without-default-devices --disable-user"
|
||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
||||
- TEST_CMD=""
|
||||
|
||||
|
||||
# Check the TCG interpreter (TCI)
|
||||
- env:
|
||||
- name: "GCC TCI"
|
||||
env:
|
||||
- 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"
|
||||
- TEST_CMD="make check-qtest check-tcg V=1"
|
||||
|
||||
|
||||
# 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"
|
||||
- TEST_CMD=""
|
||||
|
||||
|
||||
- env:
|
||||
- name: "GCC trace ftrace (x86_64-softmmu)"
|
||||
env:
|
||||
- CONFIG="--enable-trace-backends=ftrace --target-list=x86_64-softmmu"
|
||||
- TEST_CMD=""
|
||||
|
||||
|
||||
- env:
|
||||
- name: "GCC trace ust (x86_64-softmmu)"
|
||||
env:
|
||||
- CONFIG="--enable-trace-backends=ust --target-list=x86_64-softmmu"
|
||||
- TEST_CMD=""
|
||||
|
||||
|
||||
# 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"
|
||||
os: osx
|
||||
osx_image: xcode10.3
|
||||
@ -244,13 +287,13 @@ matrix:
|
||||
before_script:
|
||||
- brew link --overwrite python
|
||||
- export PATH="/usr/local/opt/ccache/libexec:$PATH"
|
||||
- if command -v ccache ; then ccache --zero-stats ; fi
|
||||
- mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
|
||||
- ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
|
||||
|
||||
|
||||
# Python builds
|
||||
- env:
|
||||
- name: "GCC Python 3.5 (x86_64-softmmu)"
|
||||
env:
|
||||
- CONFIG="--target-list=x86_64-softmmu"
|
||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
||||
language: python
|
||||
@ -258,7 +301,8 @@ matrix:
|
||||
- "3.5"
|
||||
|
||||
|
||||
- env:
|
||||
- name: "GCC Python 3.6 (x86_64-softmmu)"
|
||||
env:
|
||||
- CONFIG="--target-list=x86_64-softmmu"
|
||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
||||
language: python
|
||||
@ -267,8 +311,9 @@ matrix:
|
||||
|
||||
|
||||
# Acceptance (Functional) tests
|
||||
- env:
|
||||
- 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"
|
||||
- name: "GCC check-acceptance"
|
||||
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"
|
||||
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
|
||||
@ -283,7 +328,8 @@ matrix:
|
||||
|
||||
|
||||
# Using newer GCC with sanitizers
|
||||
- addons:
|
||||
- name: "GCC9 with sanitizers (softmmu)"
|
||||
addons:
|
||||
apt:
|
||||
update: true
|
||||
sources:
|
||||
@ -331,34 +377,44 @@ matrix:
|
||||
|
||||
|
||||
# Run check-tcg against linux-user
|
||||
- env:
|
||||
- name: "GCC check-tcg (user)"
|
||||
env:
|
||||
- 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"
|
||||
|
||||
|
||||
# Run check-tcg against linux-user (with plugins)
|
||||
# we skip sparc64-linux-user until it has been fixed somewhat
|
||||
- env:
|
||||
- CONFIG="--disable-system --enable-plugins --enable-debug-tcg --target-list-exclude=sparc64-linux-user"
|
||||
- TEST_CMD="make -j3 check-tcg V=1"
|
||||
# we skip cris-linux-user as it doesn't use the common run loop
|
||||
- name: "GCC plugins check-tcg (user)"
|
||||
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"
|
||||
|
||||
|
||||
# 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"
|
||||
- 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"
|
||||
|
||||
|
||||
# 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"
|
||||
- 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"
|
||||
|
||||
- arch: arm64
|
||||
- name: "[aarch64] GCC check-tcg"
|
||||
arch: arm64
|
||||
dist: xenial
|
||||
addons:
|
||||
apt_packages:
|
||||
@ -383,11 +439,14 @@ matrix:
|
||||
- libusb-1.0-0-dev
|
||||
- libvdeplug-dev
|
||||
- libvte-2.91-dev
|
||||
# Tests dependencies
|
||||
- genisoimage
|
||||
env:
|
||||
- TEST_CMD="make check check-tcg V=1"
|
||||
- CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS}"
|
||||
|
||||
- arch: ppc64le
|
||||
- name: "[ppc64] GCC check-tcg"
|
||||
arch: ppc64le
|
||||
dist: xenial
|
||||
addons:
|
||||
apt_packages:
|
||||
@ -412,11 +471,14 @@ matrix:
|
||||
- libusb-1.0-0-dev
|
||||
- libvdeplug-dev
|
||||
- libvte-2.91-dev
|
||||
# Tests dependencies
|
||||
- genisoimage
|
||||
env:
|
||||
- TEST_CMD="make check check-tcg V=1"
|
||||
- CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS},ppc64le-linux-user"
|
||||
|
||||
- arch: s390x
|
||||
- name: "[s390x] GCC check-tcg"
|
||||
arch: s390x
|
||||
dist: bionic
|
||||
addons:
|
||||
apt_packages:
|
||||
@ -441,6 +503,8 @@ matrix:
|
||||
- libusb-1.0-0-dev
|
||||
- libvdeplug-dev
|
||||
- libvte-2.91-dev
|
||||
# Tests dependencies
|
||||
- genisoimage
|
||||
env:
|
||||
- TEST_CMD="make check check-tcg V=1"
|
||||
- CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS},s390x-linux-user"
|
||||
@ -448,18 +512,16 @@ matrix:
|
||||
# Release builds
|
||||
# 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.
|
||||
- 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:
|
||||
# We want to build from the release tarball
|
||||
- BUILD_DIR="release/build/dir" SRC_DIR="../../.."
|
||||
- BASE_CONFIG="--prefix=$PWD/dist"
|
||||
- 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}"
|
||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
||||
before_script:
|
||||
- command -v ccache && ccache --zero-stats
|
||||
- mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
|
||||
script:
|
||||
- make -C ${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
|
||||
docker-image-debian9-mxe: docker-image-debian9
|
||||
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
|
||||
else
|
||||
docker-image-debian-amd64-cross: docker-image-debian10
|
||||
DOCKER_PARTIAL_IMAGES += debian-amd64
|
||||
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-win64-cross: docker-image-debian9-mxe
|
||||
|
||||
@ -118,12 +111,19 @@ endif
|
||||
|
||||
docker-image-debian-alpha-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-m68k-cross: docker-image-debian10
|
||||
docker-image-debian-mips-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-ppc64-cross: docker-image-debian10
|
||||
docker-image-debian-ppc64el-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-sparc64-cross: docker-image-debian10
|
||||
|
||||
|
@ -106,18 +106,19 @@ def _get_so_libs(executable):
|
||||
"""Return a list of libraries associated with an executable.
|
||||
|
||||
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 = []
|
||||
ldd_re = re.compile(r"(/.*/)(\S*)")
|
||||
ldd_re = re.compile(r"(?:\S+ => )?(\S*) \(:?0x[0-9a-f]+\)")
|
||||
try:
|
||||
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:
|
||||
so_path = search.groups()[0]
|
||||
so_lib = search.groups()[1]
|
||||
libs.append("%s/%s" % (so_path, so_lib))
|
||||
if search:
|
||||
try:
|
||||
libs.append(s.group(1))
|
||||
except IndexError:
|
||||
pass
|
||||
except subprocess.CalledProcessError:
|
||||
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:
|
||||
for l in libs:
|
||||
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):
|
||||
|
@ -4,7 +4,7 @@
|
||||
# This docker target builds on the debian Stretch base image. Further
|
||||
# libraries which are not widely available are installed by hand.
|
||||
#
|
||||
FROM qemu:debian9
|
||||
FROM qemu:debian10
|
||||
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
|
||||
|
||||
RUN apt update && \
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
# This docker target builds on the debian Stretch base image.
|
||||
#
|
||||
FROM qemu:debian9
|
||||
FROM qemu:debian10
|
||||
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
|
||||
|
||||
# Add the foreign architecture we want and install dependencies
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
# 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
|
||||
RUN dpkg --add-architecture armhf
|
||||
|
@ -4,7 +4,7 @@
|
||||
# This docker target builds on the debian Stretch base image.
|
||||
#
|
||||
|
||||
FROM qemu:debian9
|
||||
FROM qemu:debian10
|
||||
|
||||
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
# This docker target builds on the debian Stretch base image.
|
||||
#
|
||||
FROM qemu:debian9
|
||||
FROM qemu:debian10
|
||||
|
||||
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
# 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
|
||||
RUN dpkg --add-architecture ppc64el && \
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
# This docker target builds on the debian Stretch base image.
|
||||
#
|
||||
FROM qemu:debian9
|
||||
FROM qemu:debian10
|
||||
|
||||
# Add the s390x architecture
|
||||
RUN dpkg --add-architecture s390x
|
||||
|
@ -61,7 +61,13 @@ run-memory-replay: memory-replay run-memory-record
|
||||
$(QEMU_OPTS) memory, \
|
||||
"$< on $(TARGET_NAME)")
|
||||
|
||||
run-pauth-3: pauth-3
|
||||
pauth-3: CFLAGS += -march=armv8.3-a
|
||||
EXTRA_TESTS+=memory-record memory-replay
|
||||
|
||||
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)
|
||||
|
||||
# Pauth Tests
|
||||
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_ARMV8_3),)
|
||||
AARCH64_TESTS += pauth-1 pauth-2 pauth-4
|
||||
run-pauth-%: QEMU_OPTS += -cpu max
|
||||
pauth-%: CFLAGS += -march=armv8.3-a
|
||||
endif
|
||||
|
||||
# Semihosting smoke test for linux-user
|
||||
AARCH64_TESTS += semihosting
|
||||
|
@ -216,6 +216,24 @@ for target in $target_list; do
|
||||
echo "CROSS_CC_GUEST_STATIC=y" >> $config_target_mak
|
||||
fi
|
||||
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"
|
||||
got_cross_cc=yes
|
||||
break
|
||||
|
Loading…
Reference in New Issue
Block a user