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?

 Thomas



Reply via email to