On 7/8/2026 11:56 AM, Thomas Huth wrote: > On 08/07/2026 18.25, Pierrick Bouvier wrote: >> On 7/8/2026 5:09 AM, Ilya Leoshkevich wrote: >>> >>> >>> On 7/7/26 00:32, Pierrick Bouvier wrote: >>>> This series replaces TCG tests makefiles with meson, with the >>>> goal of having something more readable and maintainable in the long >>>> term. >>>> Also it closes the gap that tcg tests had with the rest of tests, by >>>> integrating >>>> them with meson directly. >>>> >>>> It covers all existing tests for all architectures, including >>>> user/system/multiarch-user/multiarch-system. It implements all >>>> requirements >>>> listed on original thread [1]. >>>> >>>> [1] https://lore.kernel.org/qemu-devel/[email protected]/ >>>> >>>> We also have for free: >>>> - correct and complete dependencies for any test, including: >>>> scripts, c.inc, headers, reference files and binaries/plugins. >>>> - catch test declaration issues at configure time vs test time. >>>> - proper data types for variables instead of string expansion with >>>> make. >>>> >>>> Series first introduce the meson machinery needed in tests/tcg/ >>>> meson.build, step >>>> by step. Then it adds support for all existing archs. Finally, we >>>> remove >>>> Makefiles and configure bits. >>>> >>>> Usage: >>>> >>>> ``` >>>> make check-tcg >>>> make check-tcg-aarch64-linux-user >>>> make check-tcg-aarch64-softmmu >>>> >>>> make tcg-tests >>>> >>>> ninja clean >>>> ./pyvenv/bin/meson test aarch64-softmmu-asid2 --verbose >>>> ``` >>>> >>>> A few items were left for further work (out of scope for this series): >>>> - xtensaeb: didn't find how to cross compile for this architecture >>>> with what we >>>> have now in container debian-xtensa-cross. Tips are welcome. >>>> - tricore: implemented but reverted as all tests seem to hang. To be >>>> investigated. >>>> - riscv64/interruptedmemory.S is hanging. To be investigated. >>>> - i386/test-i386-fprem.c is deactivated for now. It's broken (output >>>> does not >>>> match bare metal result) and is the slowest test we have. To be >>>> refactored and >>>> fixed. >>>> >>>> v3 >>>> -- >>>> >>>> - add all architectures >>>> - reduce number of plugins tests (only add one test for each plugin >>>> from >>>> multiarch pool) >>>> - add depends for executable - allow to depend on a custom target for >>>> generated >>>> headers (x86_64 mmx, avx) >>>> - add new tests added since last version for aarch64 (mte + gpc) >>>> - refactor series to keep all arch files at end >>>> - add docker host architecture selection >>>> >>>> v2 >>>> -- >>>> >>>> - s/mispell/misspell >>>> - moved comment about why we remove 'lib' prefix for plugins >>>> - if user declare a wrong entry in a dictionary, list possible keys >>>> - build tests by default (with 'all' target), as long as cross >>>> compiler is >>>> natively installed, to avoid triggering a container build. >>>> - reword some comments based on reviewers feedback >>>> - always declare all tests and avoid "per config" errors (no 'if' in >>>> arch files) >>>> - move compiler feature and gdb version checks directly in tests/tcg/ >>>> meson.build >>>> - add support for cross containers >>>> - add top target 'tcg-tests' to rebuild all tests >>>> >>>> Pierrick Bouvier (91): >>>> tests/tcg/multiarch/system/memory.c: remove unused variable >>>> tests/tcg/multiarch/plugin/check-plugin-output.sh: take test >>>> output as >>>> input >>>> tests/tcg/multiarch/plugin: rename check-plugin-output to >>>> regex-compare >>>> tests/tcg: introduce meson.build >>>> tests/tcg/meson.build: introduce exe_name >>>> tests/tcg/meson.build: introduce test_name >>>> tests/tcg/meson.build: introduce cflags >>>> tests/tcg/meson.build: introduce qemu_args >>>> tests/tcg/meson.build: introduce env_var >>>> tests/tcg/plugins: build list of test_plugins >>>> tests/tcg/meson.build: introduce plugin_test >>>> tests/tcg/meson.build: test gdb support and introduce gdb_arch >>>> tests/tcg/meson.build: introduce gdb_test >>>> tests/tcg/meson.build: add default flag for testing compiler >>>> support >>>> tests/tcg/meson.build: introduce wrapper >>>> tests/tcg/meson.build: introduce expected_output >>>> tests/tcg/meson.build: add wrapper run_and_check_forbidden_output >>>> tests/tcg/meson.build: add wrapper run_with_input >>>> tests/tcg/meson.build: add wrapper record_replay >>>> tests/tcg/meson.build: add wrapper check_plugin_output >>>> tests/tcg/meson.build: add logic to skip tests >>>> tests/tcg/meson.build: introduce cc_feat and cc_feat_cflags >>>> tests/tcg/meson.build: introduce gdb_feat and gdb_feat_version >>>> tests/tcg/meson.build: move gdb_arch support check >>>> tests/tcg/meson.build: let test infrastructure detect compiler >>>> tests/docker/docker.py: return error code if probe fails >>>> tests/docker/docker.py: remove "Image is up to date" info >>>> tests/tcg/meson.build: introduce cc_dockerfile and cc_docker_arch >>>> tests/tcg/meson.build: introduce depends >>>> tests/tcg/meson.build: add top-level 'tcg-tests' target >>>> tests/tcg/multiarch: declare user tests >>>> tests/tcg/multiarch: declare system tests >>>> tests/tcg/meson.build: add generic plugin tests >>>> tests/tcg/aarch64: user tests >>>> tests/tcg/aarch64/system/gpc-test.c: remove unused variables >>>> tests/tcg/aarch64: system tests >>>> tests/tcg/aarch64_be: user tests >>>> tests/tcg/alpha: add float reference files >>>> tests/tcg/alpha: user tests >>>> tests/tcg/alpha: system tests >>>> tests/tcg/arm: user tests >>>> tests/tcg/arm: system tests >>>> tests/tcg/hexagon/overflow.c: add missing include >>>> tests/tcg/hexagon: user tests >>>> tests/tcg/multiarch/sha1.c: fix big endian implementation >>>> tests/tcg/hppa: add float reference files >>>> tests/tcg/hppa: user tests >>>> tests/tcg/i386: add missing float reference files >>>> tests/tcg/i386: user tests >>>> tests/tcg/i386: system tests >>>> tests/tcg/loongarch64: user tests >>>> tests/tcg/loongarch64: system tests >>>> tests/tcg/m68k: add float reference files >>>> tests/tcg/m68k: user tests >>>> scripts/probe-gdb-support.py: add mapping for mips architecture >>>> tests/tcg/mips: add float reference files >>>> test/tcg/mips: user tests >>>> tests/tcg/mips64: add float reference files >>>> tests/tcg/mips64: user tests >>>> tests/tcg/mips64el: add float reference files >>>> tests/tcg/mips64el: user tests >>>> tests/docker/dockerfiles/debian-all-test-cross.docker: add or1k >>>> toolchain >>>> tests/tcg/or1k/test_addic.c: remove unused variables >>>> tests/tcg/or1k/test_muli.c: remove set but unused variable >>>> tests/tcg/or1k: add float reference files >>>> plugins/api.c: identify or1k pc register and mark it as read only >>>> tests/tcg/or1k: user tests >>>> tests/tcg/ppc64: add float reference files >>>> tests/tcg/ppc64: remove dependency on qemu/compiler.h >>>> tests/tcg/ppc64: user tests >>>> tests/tcg/ppc64le: add missing float reference file >>>> tests/tcg/ppc64le: user tests >>>> tests/tcg/riscv64: add float reference files >>>> tests/tcg/riscv64: user tests >>>> tests/tcg/riscv64: system tests >>>> tests/tcg/s390x/head64.S: declare _exit symbol after main >>>> tests/tcg/s390x: add float reference files >>>> tests/tcg/s390x: user tests >>>> tests/tcg/s390x: system tests >>>> tests/tcg/sh4: add float reference files >>>> tests/tcg/sh4: user tests >>>> tests/tcg/tricore: system tests >>>> Revert "tests/tcg/tricore: system tests" >>>> tests/tcg/x86_64: add missing float reference file >>>> tests/tcg/x86_64: user tests >>>> tests/tcg/x86_64: system tests >>>> tests/tcg/xtensa/crt.S: align .text section >>>> tests/tcg/xtensa: system tests >>>> tests: remove tcg tests machinery >>>> tests/tcg: remove Makefiles >>>> configure: remove --cross-cc* options >>>> >>>> configure | 473 --------- >>>> docs/devel/testing/main.rst | 22 +- >>>> plugins/api.c | 2 + >>>> scripts/probe-gdb-support.py | 1 + >>>> tests/Makefile.include | 68 +- >>>> tests/docker/docker.py | 4 +- >>>> .../dockerfiles/debian-all-test-cross.docker | 16 +- >>>> tests/lcitool/refresh | 107 +- >>>> tests/meson.build | 2 +- >>>> tests/tcg/Makefile.target | 281 ----- >>>> tests/tcg/aarch64/Makefile.softmmu-target | 147 --- >>>> tests/tcg/aarch64/Makefile.target | 198 ---- >>>> tests/tcg/aarch64/meson.build | 195 ++++ >>>> tests/tcg/aarch64/system/gpc-test.c | 5 - >>>> tests/tcg/aarch64/system/meson.build | 108 ++ >>>> tests/tcg/aarch64_be/Makefile.target | 17 - >>>> tests/tcg/aarch64_be/meson.build | 22 + >>>> tests/tcg/alpha/Makefile.softmmu-target | 34 - >>>> tests/tcg/alpha/Makefile.target | 18 - >>>> tests/tcg/alpha/float_convd.ref | 988 +++++++++++++ >>>> +++++ >>>> tests/tcg/alpha/float_convs.ref | 748 +++++++++++++ >>>> tests/tcg/alpha/float_madds.ref | 768 ++++++++++++++ >>>> tests/tcg/alpha/meson.build | 55 + >>>> tests/tcg/alpha/system/meson.build | 46 + >>>> tests/tcg/arm/Makefile.softmmu-target | 80 -- >>>> tests/tcg/arm/Makefile.target | 87 -- >>>> tests/tcg/arm/meson.build | 80 ++ >>>> tests/tcg/arm/system/meson.build | 66 ++ >>>> tests/tcg/hexagon/Makefile.target | 146 --- >>>> tests/tcg/hexagon/meson.build | 111 ++ >>>> tests/tcg/hexagon/overflow.c | 1 + >>>> tests/tcg/hppa/Makefile.target | 14 - >>>> tests/tcg/hppa/float_convd.ref | 988 +++++++++++++ >>>> +++++ >>>> tests/tcg/hppa/float_convs.ref | 748 +++++++++++++ >>>> tests/tcg/hppa/float_madds.ref | 768 ++++++++++++++ >>>> tests/tcg/hppa/meson.build | 22 + >>>> tests/tcg/i386/Makefile.softmmu-target | 37 - >>>> tests/tcg/i386/Makefile.target | 102 -- >>>> tests/tcg/i386/float_convd.conf | 988 >>>> ------------------ >>>> tests/tcg/i386/float_convd.ref | 988 +++++++++++++ >>>> +++++ >>>> tests/tcg/i386/float_madds.ref | 768 ++++++++++++++ >>>> tests/tcg/i386/meson.build | 58 + >>>> tests/tcg/i386/system/meson.build | 48 + >>>> tests/tcg/loongarch64/Makefile.softmmu-target | 33 - >>>> tests/tcg/loongarch64/Makefile.target | 20 - >>>> tests/tcg/loongarch64/meson.build | 32 + >>>> tests/tcg/loongarch64/system/meson.build | 47 + >>>> tests/tcg/m68k/Makefile.target | 7 - >>>> tests/tcg/m68k/float_convd.ref | 988 +++++++++++++ >>>> +++++ >>>> tests/tcg/m68k/float_convs.ref | 748 +++++++++++++ >>>> tests/tcg/m68k/float_madds.ref | 768 ++++++++++++++ >>>> tests/tcg/m68k/meson.build | 23 + >>>> tests/tcg/meson.build | 447 ++++++++ >>>> tests/tcg/minilib/Makefile.target | 21 - >>>> tests/tcg/mips/Makefile.target | 19 - >>>> tests/tcg/mips/float_convd.ref | 988 +++++++++++++ >>>> +++++ >>>> tests/tcg/mips/float_convs.ref | 748 +++++++++++++ >>>> tests/tcg/mips/float_madds.ref | 768 ++++++++++++++ >>>> tests/tcg/mips/meson.build | 25 + >>>> tests/tcg/mips/user/ase/dsp/Makefile | 184 ---- >>>> tests/tcg/mips/user/isa/mips64r6/crc/Makefile | 40 - >>>> tests/tcg/mips/user/isa/r5900/Makefile | 32 - >>>> tests/tcg/mips64/Makefile.target | 20 - >>>> tests/tcg/mips64/float_convd.ref | 988 +++++++++++++ >>>> +++++ >>>> tests/tcg/mips64/float_convs.ref | 748 +++++++++++++ >>>> tests/tcg/mips64/float_madds.ref | 768 ++++++++++++++ >>>> tests/tcg/mips64/meson.build | 27 + >>>> tests/tcg/mips64el/Makefile.target | 8 - >>>> tests/tcg/mips64el/float_convd.ref | 988 +++++++++++++ >>>> +++++ >>>> tests/tcg/mips64el/float_convs.ref | 748 +++++++++++++ >>>> tests/tcg/mips64el/float_madds.ref | 768 ++++++++++++++ >>>> tests/tcg/mips64el/meson.build | 14 + >>>> tests/tcg/multiarch/Makefile.target | 233 ----- >>>> tests/tcg/multiarch/meson.build | 149 +++ >>>> .../multiarch/plugin/check-plugin-output.sh | 36 - >>>> tests/tcg/multiarch/plugin/regex-compare.sh | 28 + >>>> tests/tcg/multiarch/sha1.c | 4 +- >>>> tests/tcg/multiarch/sha1.ref | 1 + >>>> .../multiarch/system/Makefile.softmmu-target | 81 -- >>>> tests/tcg/multiarch/system/memory.c | 3 +- >>>> tests/tcg/multiarch/system/meson.build | 53 + >>>> tests/tcg/or1k/Makefile | 71 -- >>>> tests/tcg/or1k/float_convd.ref | 247 +++++ >>>> tests/tcg/or1k/float_convs.ref | 187 ++++ >>>> tests/tcg/or1k/float_madds.ref | 192 ++++ >>>> tests/tcg/or1k/meson.build | 72 ++ >>>> tests/tcg/or1k/test_addic.c | 2 +- >>>> tests/tcg/or1k/test_muli.c | 5 +- >>>> tests/tcg/plugins/meson.build | 11 +- >>>> tests/tcg/ppc64/Makefile.target | 63 -- >>>> tests/tcg/ppc64/float_convd.ref | 988 +++++++++++++ >>>> +++++ >>>> tests/tcg/ppc64/float_convs.ref | 748 +++++++++++++ >>>> tests/tcg/ppc64/float_madds.ref | 768 ++++++++++++++ >>>> tests/tcg/ppc64/meson.build | 56 + >>>> tests/tcg/ppc64/vector.c | 11 +- >>>> tests/tcg/ppc64/vsx_f2i_nan.c | 7 +- >>>> tests/tcg/ppc64le/Makefile.target | 7 - >>>> tests/tcg/ppc64le/float_convd.ref | 988 +++++++++++++ >>>> +++++ >>>> tests/tcg/ppc64le/meson.build | 14 + >>>> tests/tcg/riscv64/Makefile.softmmu-target | 45 - >>>> tests/tcg/riscv64/Makefile.target | 20 - >>>> tests/tcg/riscv64/float_convd.ref | 988 +++++++++++++ >>>> +++++ >>>> tests/tcg/riscv64/float_convs.ref | 748 +++++++++++++ >>>> tests/tcg/riscv64/float_madds.ref | 768 ++++++++++++++ >>>> tests/tcg/riscv64/meson.build | 38 + >>>> tests/tcg/riscv64/system/meson.build | 38 + >>>> tests/tcg/s390x/Makefile.softmmu-target | 57 - >>>> tests/tcg/s390x/Makefile.target | 127 --- >>>> tests/tcg/s390x/float_convd.ref | 988 +++++++++++++ >>>> +++++ >>>> tests/tcg/s390x/float_convs.ref | 748 +++++++++++++ >>>> tests/tcg/s390x/float_madds.ref | 768 ++++++++++++++ >>>> tests/tcg/s390x/head64.S | 2 + >>>> tests/tcg/s390x/meson.build | 140 +++ >>>> tests/tcg/s390x/system/meson.build | 92 ++ >>>> tests/tcg/scripts/check_plugin_output.sh | 25 + >>>> tests/tcg/scripts/record_replay.sh | 16 + >>>> .../scripts/run_and_check_forbidden_output.sh | 19 + >>>> tests/tcg/scripts/run_and_diff.sh | 15 + >>>> tests/tcg/scripts/run_with_input.sh | 12 + >>>> tests/tcg/sh4/Makefile.target | 18 - >>>> tests/tcg/sh4/float_convd.ref | 494 +++++++++ >>>> tests/tcg/sh4/float_convs.ref | 374 +++++++ >>>> tests/tcg/sh4/float_madds.ref | 384 +++++++ >>>> tests/tcg/sh4/meson.build | 25 + >>>> tests/tcg/tricore/Makefile.softmmu-target | 53 - >>>> tests/tcg/x86_64/Makefile.softmmu-target | 44 - >>>> tests/tcg/x86_64/Makefile.target | 40 - >>>> tests/tcg/x86_64/float_madds.ref | 768 ++++++++++++++ >>>> tests/tcg/x86_64/meson.build | 83 ++ >>>> tests/tcg/x86_64/system/meson.build | 62 ++ >>>> tests/tcg/xtensa/Makefile.softmmu-target | 46 - >>>> tests/tcg/xtensa/crt.S | 1 + >>>> tests/tcg/xtensa/meson.build | 89 ++ >>>> tests/tcg/xtensaeb/Makefile.softmmu-target | 5 - >>>> 134 files changed, 30491 insertions(+), 4114 deletions(-) >>>> delete mode 100644 tests/tcg/Makefile.target >>>> delete mode 100644 tests/tcg/aarch64/Makefile.softmmu-target >>>> delete mode 100644 tests/tcg/aarch64/Makefile.target >>>> create mode 100644 tests/tcg/aarch64/meson.build >>>> create mode 100644 tests/tcg/aarch64/system/meson.build >>>> delete mode 100644 tests/tcg/aarch64_be/Makefile.target >>>> create mode 100644 tests/tcg/aarch64_be/meson.build >>>> delete mode 100644 tests/tcg/alpha/Makefile.softmmu-target >>>> delete mode 100644 tests/tcg/alpha/Makefile.target >>>> create mode 100644 tests/tcg/alpha/float_convd.ref >>>> create mode 100644 tests/tcg/alpha/float_convs.ref >>>> create mode 100644 tests/tcg/alpha/float_madds.ref >>>> create mode 100644 tests/tcg/alpha/meson.build >>>> create mode 100644 tests/tcg/alpha/system/meson.build >>>> delete mode 100644 tests/tcg/arm/Makefile.softmmu-target >>>> delete mode 100644 tests/tcg/arm/Makefile.target >>>> create mode 100644 tests/tcg/arm/meson.build >>>> create mode 100644 tests/tcg/arm/system/meson.build >>>> delete mode 100644 tests/tcg/hexagon/Makefile.target >>>> create mode 100644 tests/tcg/hexagon/meson.build >>>> delete mode 100644 tests/tcg/hppa/Makefile.target >>>> create mode 100644 tests/tcg/hppa/float_convd.ref >>>> create mode 100644 tests/tcg/hppa/float_convs.ref >>>> create mode 100644 tests/tcg/hppa/float_madds.ref >>>> create mode 100644 tests/tcg/hppa/meson.build >>>> delete mode 100644 tests/tcg/i386/Makefile.softmmu-target >>>> delete mode 100644 tests/tcg/i386/Makefile.target >>>> delete mode 100644 tests/tcg/i386/float_convd.conf >>>> create mode 100644 tests/tcg/i386/float_convd.ref >>>> create mode 100644 tests/tcg/i386/float_madds.ref >>>> create mode 100644 tests/tcg/i386/meson.build >>>> create mode 100644 tests/tcg/i386/system/meson.build >>>> delete mode 100644 tests/tcg/loongarch64/Makefile.softmmu-target >>>> delete mode 100644 tests/tcg/loongarch64/Makefile.target >>>> create mode 100644 tests/tcg/loongarch64/meson.build >>>> create mode 100644 tests/tcg/loongarch64/system/meson.build >>>> delete mode 100644 tests/tcg/m68k/Makefile.target >>>> create mode 100644 tests/tcg/m68k/float_convd.ref >>>> create mode 100644 tests/tcg/m68k/float_convs.ref >>>> create mode 100644 tests/tcg/m68k/float_madds.ref >>>> create mode 100644 tests/tcg/m68k/meson.build >>>> create mode 100644 tests/tcg/meson.build >>>> delete mode 100644 tests/tcg/minilib/Makefile.target >>>> delete mode 100644 tests/tcg/mips/Makefile.target >>>> create mode 100644 tests/tcg/mips/float_convd.ref >>>> create mode 100644 tests/tcg/mips/float_convs.ref >>>> create mode 100644 tests/tcg/mips/float_madds.ref >>>> create mode 100644 tests/tcg/mips/meson.build >>>> delete mode 100644 tests/tcg/mips/user/ase/dsp/Makefile >>>> delete mode 100644 tests/tcg/mips/user/isa/mips64r6/crc/Makefile >>>> delete mode 100644 tests/tcg/mips/user/isa/r5900/Makefile >>>> delete mode 100644 tests/tcg/mips64/Makefile.target >>>> create mode 100644 tests/tcg/mips64/float_convd.ref >>>> create mode 100644 tests/tcg/mips64/float_convs.ref >>>> create mode 100644 tests/tcg/mips64/float_madds.ref >>>> create mode 100644 tests/tcg/mips64/meson.build >>>> delete mode 100644 tests/tcg/mips64el/Makefile.target >>>> create mode 100644 tests/tcg/mips64el/float_convd.ref >>>> create mode 100644 tests/tcg/mips64el/float_convs.ref >>>> create mode 100644 tests/tcg/mips64el/float_madds.ref >>>> create mode 100644 tests/tcg/mips64el/meson.build >>>> delete mode 100644 tests/tcg/multiarch/Makefile.target >>>> create mode 100644 tests/tcg/multiarch/meson.build >>>> delete mode 100755 tests/tcg/multiarch/plugin/check-plugin-output.sh >>>> create mode 100755 tests/tcg/multiarch/plugin/regex-compare.sh >>>> create mode 100644 tests/tcg/multiarch/sha1.ref >>>> delete mode 100644 tests/tcg/multiarch/system/Makefile.softmmu- >>>> target >>>> create mode 100644 tests/tcg/multiarch/system/meson.build >>>> delete mode 100644 tests/tcg/or1k/Makefile >>>> create mode 100644 tests/tcg/or1k/float_convd.ref >>>> create mode 100644 tests/tcg/or1k/float_convs.ref >>>> create mode 100644 tests/tcg/or1k/float_madds.ref >>>> create mode 100644 tests/tcg/or1k/meson.build >>>> delete mode 100644 tests/tcg/ppc64/Makefile.target >>>> create mode 100644 tests/tcg/ppc64/float_convd.ref >>>> create mode 100644 tests/tcg/ppc64/float_convs.ref >>>> create mode 100644 tests/tcg/ppc64/float_madds.ref >>>> create mode 100644 tests/tcg/ppc64/meson.build >>>> delete mode 100644 tests/tcg/ppc64le/Makefile.target >>>> create mode 100644 tests/tcg/ppc64le/float_convd.ref >>>> create mode 100644 tests/tcg/ppc64le/meson.build >>>> delete mode 100644 tests/tcg/riscv64/Makefile.softmmu-target >>>> delete mode 100644 tests/tcg/riscv64/Makefile.target >>>> create mode 100644 tests/tcg/riscv64/float_convd.ref >>>> create mode 100644 tests/tcg/riscv64/float_convs.ref >>>> create mode 100644 tests/tcg/riscv64/float_madds.ref >>>> create mode 100644 tests/tcg/riscv64/meson.build >>>> create mode 100644 tests/tcg/riscv64/system/meson.build >>>> delete mode 100644 tests/tcg/s390x/Makefile.softmmu-target >>>> delete mode 100644 tests/tcg/s390x/Makefile.target >>>> create mode 100644 tests/tcg/s390x/float_convd.ref >>>> create mode 100644 tests/tcg/s390x/float_convs.ref >>>> create mode 100644 tests/tcg/s390x/float_madds.ref >>>> create mode 100644 tests/tcg/s390x/meson.build >>>> create mode 100644 tests/tcg/s390x/system/meson.build >>>> create mode 100755 tests/tcg/scripts/check_plugin_output.sh >>>> create mode 100755 tests/tcg/scripts/record_replay.sh >>>> create mode 100755 tests/tcg/scripts/ >>>> run_and_check_forbidden_output.sh >>>> create mode 100755 tests/tcg/scripts/run_and_diff.sh >>>> create mode 100755 tests/tcg/scripts/run_with_input.sh >>>> delete mode 100644 tests/tcg/sh4/Makefile.target >>>> create mode 100644 tests/tcg/sh4/float_convd.ref >>>> create mode 100644 tests/tcg/sh4/float_convs.ref >>>> create mode 100644 tests/tcg/sh4/float_madds.ref >>>> create mode 100644 tests/tcg/sh4/meson.build >>>> delete mode 100644 tests/tcg/tricore/Makefile.softmmu-target >>>> delete mode 100644 tests/tcg/x86_64/Makefile.softmmu-target >>>> delete mode 100644 tests/tcg/x86_64/Makefile.target >>>> create mode 100644 tests/tcg/x86_64/float_madds.ref >>>> create mode 100644 tests/tcg/x86_64/meson.build >>>> create mode 100644 tests/tcg/x86_64/system/meson.build >>>> delete mode 100644 tests/tcg/xtensa/Makefile.softmmu-target >>>> create mode 100644 tests/tcg/xtensa/meson.build >>>> delete mode 100644 tests/tcg/xtensaeb/Makefile.softmmu-target >>>> >>> >>> Seems like something is wrong with cross-compiler detection now. >>> On Fedora I get: >>> >>> FAILED: tests/tcg/s390x-softmmu-memory.test >>> /usr/lib64/ccache/s390x-linux-gnu-gcc /mnt/root/home/iii/qemu- >>> worktrees/[email protected]/ >>> tests/tcg/multiarch/system/memory.c -o tests/tcg/s390x-softmmu- >>> memory.test -static -MMD -MF tests/tcg/s390x-softmmu-memory.d -Wall - >>> Werror -O0 -g -fno-strict-aliasing -nostdlib -I /mnt/root/home/iii/qemu- >>> worktrees/[email protected]/ >>> tests/tcg/s390x/system/../../minilib /mnt/root/home/iii/qemu- >>> worktrees/[email protected]/ >>> tests/tcg/s390x/system/../../minilib/printf.c -I /mnt/root/home/iii/ >>> qemu-worktrees/20260706223343.988769-1- >>> [email protected]/include/hw/s390x/ipl -I /mnt/root/ >>> home/iii/qemu-worktrees/20260706223343.988769-1- >>> [email protected]/roms/SLOF/lib/libc/include - >>> march=z13 ../tests/tcg/s390x/system/../head64.S ../tests/tcg/s390x/ >>> system/../console.c -DCHECK_UNALIGNED=0 >>> In file included from /mnt/root/home/iii/qemu- >>> worktrees/[email protected]/ >>> tests/tcg/multiarch/system/memory.c:15: >>> /usr/lib/gcc/s390x-linux-gnu/15/include/stdint.h:11:16: fatal error: >>> stdint.h: No such file or directory >>> 11 | # include_next <stdint.h> >>> | ^~~~~~~~~~ >>> >>> The cross-compiler situation on Fedora is that they ship the >>> cross-compiler itself, but no userspace headers, so it's usable >>> only for kernel builds. In this case QEMU should fall back to Docker, >>> which works for me on master, but not with this series. >> >> Thanks for the report. I just tried that on debian for now. >> >> Also, for s390x, I noticed that some tests are relying on roms/SLOF/... >> headers, which are not available if submodules are not initialized. >> Probably another corner case to cover. > We've got some logic in the configure script that should always > initialize the roms/SLOF submodule when you build the s390x target: > > if have_target s390x-softmmu && probe_target_compiler s390x-softmmu && \ > GIT=git "$source_path/scripts/git-submodule.sh" > "$git_submodules_action" roms/SLOF >> config.log 2>&1; then > > Is that failing in your case? >
The latest commits remove all those configure steps to use meson directly. I solved it by adding the memcpy and memset definition directly in console.c to remove the dependency on roms/SLOF. > Thomas > Regards, Pierrick
