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


Reply via email to