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.

I'll take a look at how we detected all this before, and gracefully fall
back to docker in this case.

Regards,
Pierrick

Reply via email to