diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2021-04-08 11:39:53 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2021-04-08 11:39:53 +0100 |
commit | 9692c7b0373677badcf8bb299ab8e2597244d436 (patch) | |
tree | 74c5584b8ed4a610fc5779cc293f8afb7f8ec042 /tests | |
parent | 1b7dabccd0e81e285c700467f1a8f6083c15bc6b (diff) | |
parent | a2e5bbf0c407a572d9b687adaecf9995f66b4cd9 (diff) |
Merge remote-tracking branch 'remotes/stsquad/tags/pull-6.0-rc2-fixes-060421-1' into staging
Testing updates:
- fix x86_64 cross compilers
- don't use registry for non-x86 containers
- add valid host types for given cross compile containers
- clean up i386 code16 test with explicit -no-pie
- relax sha1.py gdbstub test
- add more gdbstub documentation
- remove annoying warning on gitlab
- test dtrace backend in gitlab
# gpg: Signature made Tue 06 Apr 2021 15:55:53 BST
# 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-6.0-rc2-fixes-060421-1:
gitlab-ci.yml: Test the dtrace backend in one of the jobs
gitlab-ci.yml: Fix the filtering for the git submodules
docs/system/gdb.rst: Document how to debug multicore machines
docs/system/gdb.rst: Add some more heading structure
tests/tcg: relax the next step precision of the gdb sha1 test
tests/tcg/i386: force -fno-pie for test-i386
tests/tcg/i386: expand .data sections for system tests
tests/tcg/configure.sh: make sure we pick up x86_64 cross compilers
tests/tcg: add concept of container_hosts
tests/docker: don't set DOCKER_REGISTRY on non-x86_64
tests/tcg: update the defaults for x86 compilers
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/docker/Makefile.include | 5 | ||||
-rw-r--r-- | tests/docker/dockerfiles/centos8.docker | 1 | ||||
-rwxr-xr-x | tests/tcg/configure.sh | 42 | ||||
-rw-r--r-- | tests/tcg/i386/Makefile.target | 16 | ||||
-rw-r--r-- | tests/tcg/i386/system/kernel.ld | 2 | ||||
-rw-r--r-- | tests/tcg/multiarch/gdbstub/sha1.py | 5 |
6 files changed, 61 insertions, 10 deletions
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 7cab761bf5..9f464cb92c 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -16,7 +16,10 @@ DOCKER_IMAGES := $(sort $(notdir $(basename $(wildcard $(DOCKER_FILES_DIR)/*.doc DOCKER_TARGETS := $(patsubst %,docker-image-%,$(DOCKER_IMAGES)) # Use a global constant ccache directory to speed up repetitive builds DOCKER_CCACHE_DIR := $$HOME/.cache/qemu-docker-ccache -DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),registry.gitlab.com/qemu-project/qemu) +ifeq ($(HOST_ARCH),x86_64) +DOCKER_DEFAULT_REGISTRY := registry.gitlab.com/qemu-project/qemu +endif +DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),$(DOCKER_DEFAULT_REGISTRY)) DOCKER_TESTS := $(notdir $(shell \ find $(SRC_PATH)/tests/docker/ -name 'test-*' -type f)) diff --git a/tests/docker/dockerfiles/centos8.docker b/tests/docker/dockerfiles/centos8.docker index a763d55730..a8c6c528b0 100644 --- a/tests/docker/dockerfiles/centos8.docker +++ b/tests/docker/dockerfiles/centos8.docker @@ -29,6 +29,7 @@ ENV PACKAGES \ rdma-core-devel \ spice-glib-devel \ spice-server \ + systemtap-sdt-devel \ tar \ zlib-devel diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh index ce304f4933..fa1a4261a4 100755 --- a/tests/tcg/configure.sh +++ b/tests/tcg/configure.sh @@ -52,7 +52,7 @@ fi : ${cross_cc_hexagon="hexagon-unknown-linux-musl-clang"} : ${cross_cc_cflags_hexagon="-mv67 -O2 -static"} : ${cross_cc_hppa="hppa-linux-gnu-gcc"} -: ${cross_cc_i386="i386-pc-linux-gnu-gcc"} +: ${cross_cc_i386="i686-linux-gnu-gcc"} : ${cross_cc_cflags_i386="-m32"} : ${cross_cc_m68k="m68k-linux-gnu-gcc"} : $(cross_cc_mips64el="mips64el-linux-gnuabi64-gcc") @@ -69,7 +69,7 @@ fi : ${cross_cc_cflags_sparc="-m32 -mv8plus -mcpu=ultrasparc"} : ${cross_cc_sparc64="sparc64-linux-gnu-gcc"} : ${cross_cc_cflags_sparc64="-m64 -mcpu=ultrasparc"} -: ${cross_cc_x86_64="x86_64-pc-linux-gnu-gcc"} +: ${cross_cc_x86_64="x86_64-linux-gnu-gcc"} : ${cross_cc_cflags_x86_64="-m64"} for target in $target_list; do @@ -108,79 +108,103 @@ for target in $target_list; do case $target in aarch64-*) # We don't have any bigendian build tools so we only use this for AArch64 + container_hosts="x86_64 aarch64" container_image=debian-arm64-test-cross container_cross_cc=aarch64-linux-gnu-gcc-10 ;; alpha-*) + container_hosts=x86_64 container_image=debian-alpha-cross container_cross_cc=alpha-linux-gnu-gcc ;; arm-*) # We don't have any bigendian build tools so we only use this for ARM + container_hosts="x86_64 aarch64" container_image=debian-armhf-cross container_cross_cc=arm-linux-gnueabihf-gcc ;; cris-*) + container_hosts=x86_64 container_image=fedora-cris-cross container_cross_cc=cris-linux-gnu-gcc ;; hppa-*) + container_hosts=x86_64 container_image=debian-hppa-cross container_cross_cc=hppa-linux-gnu-gcc ;; i386-*) + container_hosts=x86_64 container_image=fedora-i386-cross container_cross_cc=gcc ;; m68k-*) + container_hosts=x86_64 container_image=debian-m68k-cross container_cross_cc=m68k-linux-gnu-gcc ;; mips64el-*) + container_hosts=x86_64 container_image=debian-mips64el-cross container_cross_cc=mips64el-linux-gnuabi64-gcc ;; mips64-*) + container_hosts=x86_64 container_image=debian-mips64-cross container_cross_cc=mips64-linux-gnuabi64-gcc ;; mipsel-*) + container_hosts=x86_64 container_image=debian-mipsel-cross container_cross_cc=mipsel-linux-gnu-gcc ;; mips-*) + container_hosts=x86_64 container_image=debian-mips-cross container_cross_cc=mips-linux-gnu-gcc ;; ppc-*|ppc64abi32-*) + container_hosts=x86_64 container_image=debian-powerpc-cross container_cross_cc=powerpc-linux-gnu-gcc ;; ppc64-*) + container_hosts=x86_64 container_image=debian-ppc64-cross container_cross_cc=powerpc64-linux-gnu-gcc ;; ppc64le-*) + container_hosts=x86_64 container_image=debian-ppc64el-cross container_cross_cc=powerpc64le-linux-gnu-gcc ;; riscv64-*) + container_hosts=x86_64 container_image=debian-riscv64-cross container_cross_cc=riscv64-linux-gnu-gcc ;; s390x-*) + container_hosts=x86_64 container_image=debian-s390x-cross container_cross_cc=s390x-linux-gnu-gcc ;; sh4-*) + container_hosts=x86_64 container_image=debian-sh4-cross container_cross_cc=sh4-linux-gnu-gcc ;; sparc64-*) + container_hosts=x86_64 container_image=debian-sparc64-cross container_cross_cc=sparc64-linux-gnu-gcc ;; + x86_64-*) + container_hosts="aarch64 ppc64el x86_64" + container_image=debian-amd64-cross + container_cross_cc=x86_64-linux-gnu-gcc + ;; xtensa*-softmmu) + container_hosts=x86_64 container_image=debian-xtensa-cross # default to the dc232b cpu @@ -257,6 +281,12 @@ for target in $target_list; do echo "CROSS_CC_HAS_POWER8_VECTOR=y" >> $config_target_mak fi ;; + i386-linux-user) + if do_compiler "$target_compiler" $target_compiler_cflags \ + -Werror -fno-pie -o $TMPE $TMPC; then + echo "CROSS_CC_HAS_I386_NOPIE=y" >> $config_target_mak + fi + ;; esac enabled_cross_compilers="$enabled_cross_compilers $target_compiler" @@ -265,7 +295,11 @@ for target in $target_list; do done if test $got_cross_cc = no && test "$container" != no && test -n "$container_image"; then - echo "DOCKER_IMAGE=$container_image" >> $config_target_mak - echo "DOCKER_CROSS_CC_GUEST=$container_cross_cc" >> $config_target_mak + for host in $container_hosts; do + if test "$host" = "$ARCH"; then + echo "DOCKER_IMAGE=$container_image" >> $config_target_mak + echo "DOCKER_CROSS_CC_GUEST=$container_cross_cc" >> $config_target_mak + fi + done fi done diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target index c4a6f91966..f7efaab918 100644 --- a/tests/tcg/i386/Makefile.target +++ b/tests/tcg/i386/Makefile.target @@ -27,13 +27,23 @@ run-plugin-test-i386-bmi2-%: QEMU_OPTS += -cpu max hello-i386: CFLAGS+=-ffreestanding hello-i386: LDFLAGS+=-nostdlib -# -# test-386 includes a couple of additional objects that need to be linked together -# +# test-386 includes a couple of additional objects that need to be +# linked together, we also need a no-pie capable compiler due to the +# non-pic calls into 16-bit mode +ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_I386_NOPIE),) +test-i386: CFLAGS += -fno-pie test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S test-i386.h test-i386-shift.h test-i386-muldiv.h $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_CFLAGS) -o $@ \ $(<D)/test-i386.c $(<D)/test-i386-code16.S $(<D)/test-i386-vm86.S -lm +else +test-i386: + $(call skip-test, "BUILD of $@", "missing -no-pie compiler support") +run-test-i386: + $(call skip-test, "RUN of test-i386", "not built") +run-plugin-test-i386-with-%: + $(call skip-test, "RUN of test-i386 ($*)", "not built") +endif ifeq ($(SPEED), slow) diff --git a/tests/tcg/i386/system/kernel.ld b/tests/tcg/i386/system/kernel.ld index 92de525e93..27ea5bbe04 100644 --- a/tests/tcg/i386/system/kernel.ld +++ b/tests/tcg/i386/system/kernel.ld @@ -12,7 +12,7 @@ SECTIONS { } .data : { - *(.data) + *(.data*) __load_en = .; } diff --git a/tests/tcg/multiarch/gdbstub/sha1.py b/tests/tcg/multiarch/gdbstub/sha1.py index 2bfde49633..423b720e6d 100644 --- a/tests/tcg/multiarch/gdbstub/sha1.py +++ b/tests/tcg/multiarch/gdbstub/sha1.py @@ -40,7 +40,10 @@ def run_test(): check_break("SHA1Init") - # check step and inspect values + # Check step and inspect values. We do a double next after the + # breakpoint as depending on the version of gdb we may step the + # preamble and not the first actual line of source. + gdb.execute("next") gdb.execute("next") val_ctx = gdb.parse_and_eval("context->state[0]") exp_ctx = 0x67452301 |