aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2019-08-07 16:35:23 +0200
committerAlex Bennée <alex.bennee@linaro.org>2019-09-10 14:09:00 +0100
commit2038f8c8775cf1a4eb190ab12f0c496e1ff79c88 (patch)
treebe79ba4fbfc977ea446e9087a65599e0d1c7fa7b /tests
parentfc76c56d3f47e7b09eb0fd447f1b4dcc5d3ee717 (diff)
tests/tcg: move configuration to a sub-shell script
Avoid the repeated inclusions of config-target.mak, which have risks of namespace pollution, and instead build minimal configuration files in a configuration script. The same configuration files can also be included in Makefile and Makefile.qemu [AJB 10/09/19] In the original PR this had inadvertently enabled tests for ppc64abi32. However as the rest of the multiarch tests work rather than disabling the otherwise correctly functioning build I've just skipped the failing linux-test test. For some reason I can't debug it with TCG so I'm leaving that to the PPC maintainers to look at. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20190807143523.15917-4-pbonzini@redhat.com> [AJB: s/docker/container/, rm last bits from configure, ppc6432abi hack] Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Cc: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.include8
-rw-r--r--tests/tcg/Makefile.prereqs18
-rw-r--r--tests/tcg/Makefile.qemu51
-rw-r--r--tests/tcg/Makefile.target8
-rw-r--r--tests/tcg/aarch64/Makefile.include8
-rw-r--r--tests/tcg/alpha/Makefile.include2
-rw-r--r--tests/tcg/arm/Makefile.include8
-rwxr-xr-xtests/tcg/configure.sh234
-rw-r--r--tests/tcg/cris/Makefile.include6
-rw-r--r--tests/tcg/hppa/Makefile.include2
-rw-r--r--tests/tcg/i386/Makefile.include9
-rw-r--r--tests/tcg/m68k/Makefile.include2
-rw-r--r--tests/tcg/mips/Makefile.include20
-rw-r--r--tests/tcg/multiarch/Makefile.target7
-rw-r--r--tests/tcg/ppc/Makefile.include10
-rw-r--r--tests/tcg/riscv/Makefile.include10
-rw-r--r--tests/tcg/s390x/Makefile.include2
-rw-r--r--tests/tcg/sh4/Makefile.include4
-rw-r--r--tests/tcg/sparc64/Makefile.include2
-rw-r--r--tests/tcg/xtensa/Makefile.include11
20 files changed, 272 insertions, 150 deletions
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 8400656b9d..9380b9eb66 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -1059,30 +1059,28 @@ BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(TARGET_DIRS))
CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(TARGET_DIRS))
RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(TARGET_DIRS))
-ifeq ($(HAVE_USER_DOCKER),y)
# Probe for the Docker Builds needed for each build
$(foreach PROBE_TARGET,$(TARGET_DIRS), \
$(eval -include $(SRC_PATH)/tests/tcg/Makefile.prereqs))
-endif
build-tcg-tests-%:
$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) \
-f $(SRC_PATH)/tests/tcg/Makefile.qemu \
SRC_PATH=$(SRC_PATH) \
- V="$(V)" TARGET_DIR="$*/" guest-tests, \
+ V="$(V)" TARGET="$*" guest-tests, \
"BUILD", "TCG tests for $*")
run-tcg-tests-%: build-tcg-tests-% %/all
$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) \
-f $(SRC_PATH)/tests/tcg/Makefile.qemu \
SRC_PATH=$(SRC_PATH) SPEED="$(SPEED)" \
- V="$(V)" TARGET_DIR="$*/" run-guest-tests, \
+ V="$(V)" TARGET="$*" run-guest-tests, \
"RUN", "TCG tests for $*")
clean-tcg-tests-%:
$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) \
-f $(SRC_PATH)/tests/tcg/Makefile.qemu \
- SRC_PATH=$(SRC_PATH) TARGET_DIR="$*/" clean-guest-tests, \
+ SRC_PATH=$(SRC_PATH) TARGET="$*" clean-guest-tests, \
"RUN", "TCG tests for $*")
.PHONY: build-tcg
diff --git a/tests/tcg/Makefile.prereqs b/tests/tcg/Makefile.prereqs
index 53b01962e1..7494b31b95 100644
--- a/tests/tcg/Makefile.prereqs
+++ b/tests/tcg/Makefile.prereqs
@@ -7,24 +7,12 @@
# selection of required docker targets before we invoke a sub-make for
# each target.
-# First we need the target makefile which tells us the target architecture
-CROSS_CC_GUEST:=
--include $(BUILD_DIR)/$(PROBE_TARGET)/config-target.mak
-
-# Then we load up the target architecture makefiles which tell us
-# about the compilers
DOCKER_IMAGE:=
--include $(SRC_PATH)/tests/tcg/$(TARGET_BASE_ARCH)/Makefile.include
--include $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.include
+-include $(BUILD_DIR)/tests/tcg/config-$(PROBE_TARGET).mak
-ifndef CROSS_CC_GUEST
ifneq ($(DOCKER_IMAGE),)
build-tcg-tests-$(PROBE_TARGET): docker-image-$(DOCKER_IMAGE)
+$(BUILD_DIR)/tests/tcg/config_$(PROBE_TARGET).mak: config-host.mak
+config-host.mak: $(SRC_PATH)/tests/tcg/configure.sh
endif
-endif
-
-# Clean-up
-# undefine TARGET_NAME
-# undefine TARGET_BASE_ARCH
-# undefine TARGET_ABI_DIR
diff --git a/tests/tcg/Makefile.qemu b/tests/tcg/Makefile.qemu
index 7eff11d434..9c23aeaa2a 100644
--- a/tests/tcg/Makefile.qemu
+++ b/tests/tcg/Makefile.qemu
@@ -8,17 +8,22 @@
# to do it for us.
#
-# The per ARCH makefile, if it exists, holds extra information about
+include $(SRC_PATH)/rules.mak
+
+# The configure script fills in extra information about
# useful docker images or alternative compiler flags.
-include $(TARGET_DIR)config-target.mak
-include $(SRC_PATH)/rules.mak
-include $(wildcard \
- $(SRC_PATH)/tests/tcg/$(TARGET_BASE_ARCH)/Makefile.include \
- $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.include)
+CROSS_CC_GUEST:=
+DOCKER_IMAGE:=
+-include $(BUILD_DIR)/tests/tcg/config-$(TARGET).mak
GUEST_BUILD=
TCG_MAKE=../Makefile.target
+
+# We also need the Docker make rules to depend on
+SKIP_DOCKER_BUILD=1
+include $(SRC_PATH)/tests/docker/Makefile.include
+
# Support installed Cross Compilers
ifdef CROSS_CC_GUEST
@@ -26,11 +31,11 @@ ifdef CROSS_CC_GUEST
.PHONY: cross-build-guest-tests
cross-build-guest-tests:
$(call quiet-command, \
- (mkdir -p tests/tcg/$(TARGET_DIR) && cd tests/tcg/$(TARGET_DIR) && \
- $(MAKE) -f $(TCG_MAKE) TARGET_DIR="$(TARGET_DIR)" CC="$(CROSS_CC_GUEST)" \
+ (mkdir -p tests/tcg/$(TARGET) && cd tests/tcg/$(TARGET) && \
+ $(MAKE) -f $(TCG_MAKE) TARGET="$(TARGET)" CC="$(CROSS_CC_GUEST)" \
SRC_PATH="$(SRC_PATH)" BUILD_STATIC=$(CROSS_CC_GUEST_STATIC) \
- EXTRA_CFLAGS=$(CROSS_CC_GUEST_CFLAGS)), \
- "BUILD","$(TARGET_NAME) guest-tests with $(CROSS_CC_GUEST)")
+ EXTRA_CFLAGS="$(CROSS_CC_GUEST_CFLAGS)"), \
+ "BUILD","$(TARGET) guest-tests with $(CROSS_CC_GUEST)")
GUEST_BUILD=cross-build-guest-tests
@@ -38,31 +43,25 @@ endif
# Support building with Docker
-ifeq ($(HAVE_USER_DOCKER)$(GUEST_BUILD),y)
ifneq ($(DOCKER_IMAGE),)
-# We also need the Docker make rules to depend on
-SKIP_DOCKER_BUILD=1
-include $(SRC_PATH)/tests/docker/Makefile.include
-
DOCKER_COMPILE_CMD="$(DOCKER_SCRIPT) cc \
- --cc $(DOCKER_CROSS_COMPILER) \
+ --cc $(DOCKER_CROSS_CC_GUEST) \
-i qemu:$(DOCKER_IMAGE) \
-s $(SRC_PATH) -- "
.PHONY: docker-build-guest-tests
docker-build-guest-tests: docker-image-$(DOCKER_IMAGE)
$(call quiet-command, \
- (mkdir -p tests/tcg/$(TARGET_DIR) && cd tests/tcg/$(TARGET_DIR) && \
- $(MAKE) -f $(TCG_MAKE) TARGET_DIR="$(TARGET_DIR)" CC=$(DOCKER_COMPILE_CMD) \
+ (mkdir -p tests/tcg/$(TARGET) && cd tests/tcg/$(TARGET) && \
+ $(MAKE) -f $(TCG_MAKE) TARGET="$(TARGET)" CC=$(DOCKER_COMPILE_CMD) \
SRC_PATH="$(SRC_PATH)" BUILD_STATIC=y \
- EXTRA_CFLAGS=$(DOCKER_CROSS_COMPILER_CFLAGS)), \
- "BUILD","$(TARGET_NAME) guest-tests with docker qemu:$(DOCKER_IMAGE)")
+ EXTRA_CFLAGS="$(CROSS_CC_GUEST_CFLAGS)"), \
+ "BUILD","$(TARGET) guest-tests with docker qemu:$(DOCKER_IMAGE)")
GUEST_BUILD=docker-build-guest-tests
endif
-endif
# Final targets
all:
@@ -75,22 +74,22 @@ guest-tests: $(GUEST_BUILD)
run-guest-tests: guest-tests
$(call quiet-command, \
- (cd tests/tcg/$(TARGET_DIR) && \
- $(MAKE) -f $(TCG_MAKE) TARGET_DIR="$(TARGET_DIR)" \
+ (cd tests/tcg/$(TARGET) && \
+ $(MAKE) -f $(TCG_MAKE) TARGET="$(TARGET)" \
SRC_PATH="$(SRC_PATH)" SPEED=$(SPEED) run), \
"RUN", "tests for $(TARGET_NAME)")
else
guest-tests:
$(call quiet-command, /bin/true, "BUILD", \
- "$(TARGET_DIR) guest-tests SKIPPED")
+ "$(TARGET) guest-tests SKIPPED")
run-guest-tests:
$(call quiet-command, /bin/true, "RUN", \
- "tests for $(TARGET_DIR) SKIPPED")
+ "tests for $(TARGET) SKIPPED")
endif
# It doesn't matter if these don't exits
.PHONY: clean-guest-tests
clean-guest-tests:
- rm -rf tests/tcg/$(TARGET_DIR)
+ rm -rf tests/tcg/$(TARGET)
diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target
index 8dbcba4474..8808beaf74 100644
--- a/tests/tcg/Makefile.target
+++ b/tests/tcg/Makefile.target
@@ -31,7 +31,7 @@
all:
-include ../../config-host.mak
--include ../../../$(TARGET_DIR)/config-target.mak
+-include ../config-$(TARGET).mak
# for including , in command strings
COMMA := ,
@@ -63,12 +63,6 @@ CFLAGS=
QEMU_CFLAGS=
LDFLAGS=
-# The QEMU for this TARGET
-ifdef CONFIG_USER_ONLY
-QEMU=../../../$(TARGET_DIR)/qemu-$(TARGET_NAME)
-else
-QEMU=../../../$(TARGET_DIR)/qemu-system-$(TARGET_NAME)
-endif
QEMU_OPTS=
diff --git a/tests/tcg/aarch64/Makefile.include b/tests/tcg/aarch64/Makefile.include
deleted file mode 100644
index 5d4e4c6f99..0000000000
--- a/tests/tcg/aarch64/Makefile.include
+++ /dev/null
@@ -1,8 +0,0 @@
-# Makefile.include for AArch64 targets
-#
-# We don't have any bigendian build tools so we only use this for AArch64
-
-ifeq ($(TARGET_NAME),aarch64)
-DOCKER_IMAGE=debian-buster-arm64-cross
-DOCKER_CROSS_COMPILER=aarch64-linux-gnu-gcc
-endif
diff --git a/tests/tcg/alpha/Makefile.include b/tests/tcg/alpha/Makefile.include
deleted file mode 100644
index c7dc48eadb..0000000000
--- a/tests/tcg/alpha/Makefile.include
+++ /dev/null
@@ -1,2 +0,0 @@
-DOCKER_IMAGE=debian-alpha-cross
-DOCKER_CROSS_COMPILER=alpha-linux-gnu-gcc
diff --git a/tests/tcg/arm/Makefile.include b/tests/tcg/arm/Makefile.include
deleted file mode 100644
index 8e7eac008f..0000000000
--- a/tests/tcg/arm/Makefile.include
+++ /dev/null
@@ -1,8 +0,0 @@
-# Makefile.include for all ARM targets
-#
-# We don't have any bigendian build tools so we only use this for armhf
-
-ifeq ($(TARGET_NAME),arm)
-DOCKER_IMAGE=debian-armhf-cross
-DOCKER_CROSS_COMPILER=arm-linux-gnueabihf-gcc
-endif
diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
new file mode 100755
index 0000000000..064304e0bb
--- /dev/null
+++ b/tests/tcg/configure.sh
@@ -0,0 +1,234 @@
+#! /bin/sh
+
+if test -z "$source_path"; then
+ echo Do not invoke this script directly. It is called
+ echo automatically by configure.
+ exit 1
+fi
+
+write_c_skeleton() {
+ cat > $TMPC <<EOF
+int main(void) { return 0; }
+EOF
+}
+
+has() {
+ command -v "$1" >/dev/null 2>&1
+}
+
+do_compiler() {
+ # Run the compiler, capturing its output to the log. First argument
+ # is compiler binary to execute.
+ local compiler="$1"
+ shift
+ if test -n "$BASH_VERSION"; then eval '
+ echo >>config.log "
+funcs: ${FUNCNAME[*]}
+lines: ${BASH_LINENO[*]}"
+ '; fi
+ echo $compiler "$@" >> config.log
+ $compiler "$@" >> config.log 2>&1 || return $?
+}
+
+
+TMPDIR1="config-temp"
+TMPC="${TMPDIR1}/qemu-conf.c"
+TMPE="${TMPDIR1}/qemu-conf.exe"
+
+container="no"
+if has "docker" || has "podman"; then
+ container=$($python $source_path/tests/docker/docker.py probe)
+fi
+
+# cross compilers defaults, can be overridden with --cross-cc-ARCH
+: ${cross_cc_aarch64="aarch64-linux-gnu-gcc"}
+: ${cross_cc_aarch64_be="$cross_cc_aarch64"}
+: ${cross_cc_cflags_aarch64_be="-mbig-endian"}
+: ${cross_cc_arm="arm-linux-gnueabihf-gcc"}
+: ${cross_cc_cflags_armeb="-mbig-endian"}
+: ${cross_cc_i386="i386-pc-linux-gnu-gcc"}
+: ${cross_cc_cflags_i386="-m32"}
+: ${cross_cc_x86_64="x86_64-pc-linux-gnu-gcc"}
+: ${cross_cc_cflags_x86_64="-m64"}
+: ${cross_cc_ppc="powerpc-linux-gnu-gcc"}
+: ${cross_cc_cflags_ppc="-m32"}
+: ${cross_cc_ppc64="powerpc-linux-gnu-gcc"}
+: ${cross_cc_cflags_ppc64="-m64"}
+: ${cross_cc_ppc64le="powerpc64le-linux-gnu-gcc"}
+: ${cross_cc_cflags_s390x="-m64"}
+: ${cross_cc_cflags_sparc="-m32 -mv8plus -mcpu=ultrasparc"}
+: ${cross_cc_cflags_sparc64="-m64 -mcpu=ultrasparc"}
+
+for target in $target_list; do
+ arch=${target%%-*}
+ case $arch in
+ arm|armeb)
+ arches=arm
+ ;;
+ aarch64|aarch64_be)
+ arches="aarch64 arm"
+ ;;
+ mips*)
+ arches=mips
+ ;;
+ ppc*)
+ arches=ppc
+ ;;
+ sh4|sh4eb)
+ arches=sh4
+ ;;
+ x86_64)
+ arches="x86_64 i386"
+ ;;
+ xtensa|xtensaeb)
+ arches=xtensa
+ ;;
+ alpha|cris|hppa|i386|lm32|m68k|openrisc|riscv64|s390x|sh4|sparc64)
+ arches=$target
+ ;;
+ *)
+ continue
+ ;;
+ esac
+
+ container_image=
+ case $target in
+ aarch64-*)
+ # We don't have any bigendian build tools so we only use this for AArch64
+ container_image=debian-buster-arm64-cross
+ container_cross_cc=aarch64-linux-gnu-gcc
+ ;;
+ alpha-*)
+ 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_image=debian-armhf-cross
+ container_cross_cc=arm-linux-gnueabihf-gcc
+ ;;
+ cris-*)
+ container_image=fedora-cris-cross
+ container_cross_cc=cris-linux-gnu-gcc
+ ;;
+ hppa-*)
+ container_image=debian-hppa-cross
+ container_cross_cc=hppa-linux-gnu-gcc
+ ;;
+ i386-*)
+ container_image=fedora-i386-cross
+ container_cross_cc=gcc
+ ;;
+ m68k-*)
+ container_image=debian-m68k-cross
+ container_cross_cc=m68k-linux-gnu-gcc
+ ;;
+ mips64el-*)
+ container_image=debian-mips64el-cross
+ container_cross_cc=mips64el-linux-gnuabi64-gcc
+ ;;
+ mips64-*)
+ container_image=debian-mips64-cross
+ container_cross_cc=mips64-linux-gnuabi64-gcc
+ ;;
+ mipsel-*)
+ container_image=debian-mipsel-cross
+ container_cross_cc=mipsel-linux-gnu-gcc
+ ;;
+ mips-*)
+ container_image=debian-mips-cross
+ container_cross_cc=mips-linux-gnu-gcc
+ ;;
+ ppc-*|ppc64abi32-*)
+ container_image=debian-powerpc-cross
+ container_cross_cc=powerpc-linux-gnu-gcc
+ ;;
+ ppc64-*)
+ container_image=debian-ppc64-cross
+ container_cross_cc=powerpc64-linux-gnu-gcc
+ ;;
+ ppc64le-*)
+ container_image=debian-ppc64el-cross
+ container_cross_cc=powerpc64le-linux-gnu-gcc
+ ;;
+ riscv64-*)
+ container_image=debian-riscv64-cross
+ container_cross_cc=riscv64-linux-gnu-gcc
+ ;;
+ s390x-*)
+ container_image=debian-s390x-cross
+ container_cross_cc=s390x-linux-gnu-gcc
+ ;;
+ sh4-*)
+ container_image=debian-sh4-cross
+ container_cross_cc=sh4-linux-gnu-gcc
+ ;;
+ sparc64-*)
+ container_image=debian-sparc64-cross
+ container_cross_cc=sparc64-linux-gnu-gcc
+ ;;
+ xtensa*-softmmu)
+ container_image=debian-xtensa-cross
+
+ # default to the dc232b cpu
+ container_cross_cc=/opt/2018.02/xtensa-dc232b-elf/bin/xtensa-dc232b-elf-gcc
+ ;;
+ esac
+
+ config_target_mak=tests/tcg/config-$target.mak
+
+ echo "# Automatically generated by configure - do not modify" > $config_target_mak
+ echo "TARGET_NAME=$arch" >> $config_target_mak
+ case $target in
+ *-linux-user | *-bsd-user)
+ echo "CONFIG_USER_ONLY=y" >> $config_target_mak
+ echo "QEMU=\$(BUILD_DIR)/$target/qemu-$arch" >> $config_target_mak
+ ;;
+ *-softmmu)
+ echo "CONFIG_SOFTMMU=y" >> $config_target_mak
+ echo "QEMU=\$(BUILD_DIR)/$target/qemu-system-$arch" >> $config_target_mak
+ ;;
+ esac
+
+ eval "target_compiler_cflags=\${cross_cc_cflags_$arch}"
+ echo "CROSS_CC_GUEST_CFLAGS=$target_compiler_cflags" >> $config_target_mak
+
+ got_cross_cc=no
+ for i in $arch $arches; do
+ if eval test "x\${cross_cc_$i+yes}" != xyes; then
+ continue
+ fi
+
+ eval "target_compiler=\${cross_cc_$i}"
+ if ! has $target_compiler; then
+ continue
+ fi
+ write_c_skeleton
+ if ! do_compiler "$target_compiler" $target_compiler_cflags -o $TMPE $TMPC -static ; then
+ # For host systems we might get away with building without -static
+ if ! do_compiler "$target_compiler" $target_compiler_cflags -o $TMPE $TMPC ; then
+ continue
+ fi
+ echo "CROSS_CC_GUEST_STATIC=y" >> $config_target_mak
+ else
+ echo "CROSS_CC_GUEST_STATIC=y" >> $config_target_mak
+ fi
+ echo "CROSS_CC_GUEST=$target_compiler" >> $config_target_mak
+ enabled_cross_compilers="$enabled_cross_compilers $target_compiler"
+ got_cross_cc=yes
+ break
+ 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
+ fi
+done
+
+# report container support state
+echo "cross containers $container"
+
+if test -n "$enabled_cross_compilers"; then
+ echo
+ echo "NOTE: guest cross-compilers enabled:$enabled_cross_compilers"
+fi
diff --git a/tests/tcg/cris/Makefile.include b/tests/tcg/cris/Makefile.include
deleted file mode 100644
index 1c037824bf..0000000000
--- a/tests/tcg/cris/Makefile.include
+++ /dev/null
@@ -1,6 +0,0 @@
-#
-# Makefile.include for all CRIS targets
-#
-
-DOCKER_IMAGE=fedora-cris-cross
-DOCKER_CROSS_COMPILER=cris-linux-gnu-gcc
diff --git a/tests/tcg/hppa/Makefile.include b/tests/tcg/hppa/Makefile.include
deleted file mode 100644
index da2353430e..0000000000
--- a/tests/tcg/hppa/Makefile.include
+++ /dev/null
@@ -1,2 +0,0 @@
-DOCKER_IMAGE=debian-hppa-cross
-DOCKER_CROSS_COMPILER=hppa-linux-gnu-gcc
diff --git a/tests/tcg/i386/Makefile.include b/tests/tcg/i386/Makefile.include
deleted file mode 100644
index be1c3008dd..0000000000
--- a/tests/tcg/i386/Makefile.include
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-# Makefile.include for all i386
-#
-# There is enough brokeness in x86_64 compilers that we don't default
-# to using the x86_64 system compiler for i386 binaries.
-#
-
-DOCKER_IMAGE=fedora-i386-cross
-DOCKER_CROSS_COMPILER=gcc
diff --git a/tests/tcg/m68k/Makefile.include b/tests/tcg/m68k/Makefile.include
deleted file mode 100644
index cd7c6bf50d..0000000000
--- a/tests/tcg/m68k/Makefile.include
+++ /dev/null
@@ -1,2 +0,0 @@
-DOCKER_IMAGE=debian-m68k-cross
-DOCKER_CROSS_COMPILER=m68k-linux-gnu-gcc
diff --git a/tests/tcg/mips/Makefile.include b/tests/tcg/mips/Makefile.include
deleted file mode 100644
index 4a14fc078d..0000000000
--- a/tests/tcg/mips/Makefile.include
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# Makefile.include for all MIPs targets
-#
-# As Debian doesn't support mip64 in big endian mode the only way to
-# build BE is to pass a working cross compiler to ./configure
-#
-
-ifeq ($(TARGET_NAME),mips64el)
-DOCKER_IMAGE=debian-mips64el-cross
-DOCKER_CROSS_COMPILER=mips64el-linux-gnuabi64-gcc
-else ifeq ($(TARGET_NAME),mips64)
-DOCKER_IMAGE=debian-mips64-cross
-DOCKER_CROSS_COMPILER=mips64-linux-gnuabi64-gcc
-else ifeq ($(TARGET_NAME),mipsel)
-DOCKER_IMAGE=debian-mipsel-cross
-DOCKER_CROSS_COMPILER=mipsel-linux-gnu-gcc
-else ifeq ($(TARGET_NAME),mips)
-DOCKER_IMAGE=debian-mips-cross
-DOCKER_CROSS_COMPILER=mips-linux-gnu-gcc
-endif
diff --git a/tests/tcg/multiarch/Makefile.target b/tests/tcg/multiarch/Makefile.target
index b77084c146..6b1e30e2fe 100644
--- a/tests/tcg/multiarch/Makefile.target
+++ b/tests/tcg/multiarch/Makefile.target
@@ -12,8 +12,13 @@ VPATH += $(MULTIARCH_SRC)
MULTIARCH_SRCS =$(notdir $(wildcard $(MULTIARCH_SRC)/*.c))
MULTIARCH_TESTS =$(MULTIARCH_SRCS:.c=)
+# FIXME: ppc64abi32 linux-test seems to have issues but the other basic tests work
+ifeq ($(TARGET_NAME),ppc64abi32)
+BROKEN_TESTS = linux-test
+endif
+
# Update TESTS
-TESTS +=$(MULTIARCH_TESTS)
+TESTS += $(filter-out $(BROKEN_TESTS), $(MULTIARCH_TESTS))
#
# The following are any additional rules needed to build things
diff --git a/tests/tcg/ppc/Makefile.include b/tests/tcg/ppc/Makefile.include
deleted file mode 100644
index ae01fb8fad..0000000000
--- a/tests/tcg/ppc/Makefile.include
+++ /dev/null
@@ -1,10 +0,0 @@
-ifeq ($(TARGET_NAME),ppc)
-DOCKER_IMAGE=debian-powerpc-cross
-DOCKER_CROSS_COMPILER=powerpc-linux-gnu-gcc
-else ifeq ($(TARGET_NAME),ppc64)
-DOCKER_IMAGE=debian-ppc64-cross
-DOCKER_CROSS_COMPILER=powerpc64-linux-gnu-gcc
-else ifeq ($(TARGET_NAME),ppc64le)
-DOCKER_IMAGE=debian-ppc64el-cross
-DOCKER_CROSS_COMPILER=powerpc64le-linux-gnu-gcc
-endif
diff --git a/tests/tcg/riscv/Makefile.include b/tests/tcg/riscv/Makefile.include
deleted file mode 100644
index d92ac6c89f..0000000000
--- a/tests/tcg/riscv/Makefile.include
+++ /dev/null
@@ -1,10 +0,0 @@
-#
-# Makefile.include for all RISCV targets
-#
-# Debian only really cares about 64 bit going forward
-#
-
-ifeq ($(TARGET_NAME),riscv64)
-DOCKER_IMAGE=debian-riscv64-cross
-DOCKER_CROSS_COMPILER=riscv64-linux-gnu-gcc
-endif
diff --git a/tests/tcg/s390x/Makefile.include b/tests/tcg/s390x/Makefile.include
deleted file mode 100644
index 1f58115d96..0000000000
--- a/tests/tcg/s390x/Makefile.include
+++ /dev/null
@@ -1,2 +0,0 @@
-DOCKER_IMAGE=debian-s390x-cross
-DOCKER_CROSS_COMPILER=s390x-linux-gnu-gcc
diff --git a/tests/tcg/sh4/Makefile.include b/tests/tcg/sh4/Makefile.include
deleted file mode 100644
index ad21594d9d..0000000000
--- a/tests/tcg/sh4/Makefile.include
+++ /dev/null
@@ -1,4 +0,0 @@
-ifneq ($(TARGET_NAME), sh4eb)
-DOCKER_IMAGE=debian-sh4-cross
-DOCKER_CROSS_COMPILER=sh4-linux-gnu-gcc
-endif
diff --git a/tests/tcg/sparc64/Makefile.include b/tests/tcg/sparc64/Makefile.include
deleted file mode 100644
index 95fc8dee9f..0000000000
--- a/tests/tcg/sparc64/Makefile.include
+++ /dev/null
@@ -1,2 +0,0 @@
-DOCKER_IMAGE=debian-sparc64-cross
-DOCKER_CROSS_COMPILER=sparc64-linux-gnu-gcc
diff --git a/tests/tcg/xtensa/Makefile.include b/tests/tcg/xtensa/Makefile.include
deleted file mode 100644
index 423c00a5d3..0000000000
--- a/tests/tcg/xtensa/Makefile.include
+++ /dev/null
@@ -1,11 +0,0 @@
-# Makefile.include for xtensa targets
-#
-# The compilers can only be used for building system tests
-
-ifeq ($(CONFIG_SOFTMMU),y)
-DOCKER_IMAGE=debian-xtensa-cross
-
-# default to the dc232b cpu
-DOCKER_CROSS_COMPILER=/opt/2018.02/xtensa-dc232b-elf/bin/xtensa-dc232b-elf-gcc
-DOCKER_CROSS_LINKER=/opt/2018.02/xtensa-dc232b-elf/bin/xtensa-dc232b-elf-ld
-endif