Philippe Mathieu-Daudé <f4...@amsat.org> writes:
> We used to run the TCG tests for various QEMU targets, but at > some points it got restricted to base directories in tests/tcg/. > For example, armeb/mipsel/mips64/... targets are currently skipped. > > The configuration Makefiles in default-configs/targets/ provide all > the required information, in particular TARGET_BASE_ARCH. > > Source the target default-configs.mak and optionally process the > TARGET_ARCH / TARGET_BASE_ARCH Makefiles (if these variables differ > from TARGET_NAME). > > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> > --- > tests/tcg/Makefile.target | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target > index 24d75a5801f..677b247328f 100644 > --- a/tests/tcg/Makefile.target > +++ b/tests/tcg/Makefile.target > @@ -85,6 +85,10 @@ TIMEOUT=15 > endif > > ifdef CONFIG_USER_ONLY > + > +# FIXME bsd-user? > +include $(SRC_PATH)/default-configs/targets/$(TARGET_NAME)-linux-user.mak > + > # The order we include is important. We include multiarch first and > # then the target. If there are common tests shared between > # sub-targets (e.g. ARM & AArch64) then it is up to > @@ -92,6 +96,16 @@ ifdef CONFIG_USER_ONLY > # architecture in its VPATH. > -include $(SRC_PATH)/tests/tcg/multiarch/Makefile.target > -include $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.target > +ifneq ($(TARGET_ARCH),) > +ifneq ($(TARGET_ARCH),$(TARGET_NAME)) > +-include $(SRC_PATH)/tests/tcg/$(TARGET_ARCH)/Makefile.target > +endif > +endif > +ifneq ($(TARGET_BASE_ARCH),) > +ifneq ($(TARGET_BASE_ARCH),$(TARGET_ARCH)) > +-include $(SRC_PATH)/tests/tcg/$(TARGET_BASE_ARCH)/Makefile.target > +endif > +endif This then breaks things like aarch64-linux-user semihosting tests because we end up overriding semihosting CFLAGS: subprocess.CalledProcessError: Command '['docker', 'run', '--rm', '--label', 'com.qemu.instance.uuid=34c4dca59b4f4f368fcc75f25e6b79d8', '-u', '1000', '-w', '/home/alex/lsrc/qemu.git/builds/user.static/tests/tcg/aarch64-linux-user', '-v', '/home/alex/lsrc/qemu.git/builds/user.static/tests/tcg/aarch64-linux-user:/home/alex/lsrc/qemu.git/builds/user.static/tests/tcg/aarch64-linux-user:rw', '-v', '/home/alex/lsrc/qemu.git:/home/alex/lsrc/qemu.git:ro,z', 'qemu/debian-arm64-test-cross', 'aarch64-linux-gnu-gcc-10', '-Wall', '-Werror', '-O0', '-g', '-fno-strict-aliasing', '-I/home/alex/lsrc/qemu.git/tests/tcg/aarch64', '-mthumb', '/home/alex/lsrc/qemu.git/tests/tcg/multiarch/arm-compat-semi/semihosting.c', '-o', 'semihosting', '-static']' returned non-zero exit status 1. filter=--filter=label=com.qemu.instance.uuid=34c4dca59b4f4f368fcc75f25e6b79d8 make[2]: *** [../Makefile.target:120: semihosting] Error 1 make[1]: *** [/home/alex/lsrc/qemu.git/tests/tcg/Makefile.qemu:64: docker-build-guest-tests] Error 2 make: *** [/home/alex/lsrc/qemu.git/tests/Makefile.include:56: build-tcg-tests-aarch64-linux-user] Error 2 We should at least be able to run multiarch tests for all these other arches if we have the right compilers for them. I'm untangling configure.sh at the moment because I'm not quite sure what the current "arches" variable in there is trying to achieve. -- Alex Bennée