[PULL v2 000/105] move check-tcg into the meson build

Alex Bennée posted 105 patches 3 weeks, 1 day ago
Only 0 patches received!
MAINTAINERS                                        |   4 +-
docs/devel/build-system.rst                        |   4 +-
docs/devel/testing/main.rst                        |  35 +-
configure                                          | 530 +----------
tests/tcg/s390x/pgm-specification.mak              |  15 -
meson.build                                        |  21 +-
plugins/api.c                                      |   2 +
tests/tcg/aarch64/system/gpc-test.c                |   5 -
tests/tcg/arm/fcvt.c                               |   6 +-
tests/tcg/hexagon/overflow.c                       |   1 +
tests/tcg/multiarch/sha1.c                         |   1 +
tests/tcg/multiarch/system/memory.c                |   3 +-
tests/tcg/or1k/test_addic.c                        |   2 +-
tests/tcg/or1k/test_muli.c                         |   5 +-
tests/tcg/ppc64/vector.c                           |  11 +-
tests/tcg/ppc64/vsx_f2i_nan.c                      |   7 +-
tests/tcg/s390x/console.c                          |  30 +-
tests/tcg/test_cc.c                                |   9 +
tests/lcitool/refresh                              |  14 +-
.../dockerfiles/debian-all-test-cross.docker       |  14 +-
.../docker/dockerfiles/debian-xtensa-cross.docker  |   4 +-
meson_options.txt                                  |  95 +-
pythondeps.toml                                    |   2 +-
scripts/probe-gdb-support.py                       |   1 +
tests/Makefile.include                             |  68 +-
tests/docker/docker.py                             |   4 +-
tests/meson.build                                  |   2 +-
tests/tcg/Makefile.target                          | 281 ------
tests/tcg/aarch64/Makefile.softmmu-target          | 147 ---
tests/tcg/aarch64/Makefile.target                  | 211 -----
tests/tcg/aarch64/meson.build                      | 210 +++++
tests/tcg/aarch64/system/meson.build               | 109 +++
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                 |  47 +
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                   |  69 ++
tests/tcg/hexagon/Makefile.target                  | 166 ----
tests/tcg/hexagon/meson.build                      | 120 +++
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                  |  49 +
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           |  48 +
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                              | 513 +++++++++++
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/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                | 224 -----
tests/tcg/multiarch/gdbstub/prot-none.py           |  42 +-
tests/tcg/multiarch/meson.build                    | 149 ++++
tests/tcg/multiarch/plugin/check-plugin-output.sh  |  36 -
tests/tcg/multiarch/plugin/regex-compare.sh        |  28 +
tests/tcg/multiarch/sha1.ref                       |   1 +
tests/tcg/multiarch/system/Makefile.softmmu-target |  81 --
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/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/ppc64le/Makefile.target                  |   7 -
tests/tcg/ppc64le/float_convd.ref                  | 988 +++++++++++++++++++++
tests/tcg/ppc64le/meson.build                      |  14 +
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               |  76 ++
tests/tcg/s390x/Makefile.softmmu-target            |  57 --
tests/tcg/s390x/Makefile.target                    | 129 ---
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                        | 142 +++
tests/tcg/s390x/system/meson.build                 |  92 ++
tests/tcg/scripts/check_plugin_output.sh           |  25 +
tests/tcg/scripts/record_replay.sh                 |  16 +
.../tcg/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/tricore/meson.build                      |  57 ++
tests/tcg/x86_64/Makefile.softmmu-target           |  44 -
tests/tcg/x86_64/Makefile.target                   |  41 -
tests/tcg/x86_64/float_madds.ref                   | 768 ++++++++++++++++
tests/tcg/x86_64/meson.build                       |  84 ++
tests/tcg/x86_64/system/meson.build                |  63 ++
tests/tcg/xtensa/Makefile.softmmu-target           |  46 -
tests/tcg/xtensa/crt.S                             |   1 +
tests/tcg/xtensa/meson.build                       | 110 +++
tests/tcg/xtensaeb/Makefile.softmmu-target         |   5 -
142 files changed, 30884 insertions(+), 3868 deletions(-)
delete mode 100644 tests/tcg/s390x/pgm-specification.mak
create mode 100644 tests/tcg/test_cc.c
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/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.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
create mode 100644 tests/tcg/tricore/meson.build
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
[PULL v2 000/105] move check-tcg into the meson build
Posted by Alex Bennée 3 weeks, 1 day ago
The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:

  Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)

are available in the Git repository at:

  https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2

for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:

  MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)

----------------------------------------------------------------
tests/tcg: conversion to meson

  - remove unused variable from multiarch/memory
  - standardise checking plugin output
  - bump minimal meson to 1.6.0
  - introduce meson plumbing for check-tcg
  - return error code if docker probe fails
  - add CI/self/mem test to gdbstub prot-none tests
  - use raw opcode for fprcvt test in arm
  - remove unused variables from gpc-test
  - teach probe-gdb-support about mips
  - identify or1k pc register
  - port check-tcg logic to meson (all targets)
  - update documentation
  - add Pierrick as a maintainer for tests/tcg

----------------------------------------------------------------
Pierrick Bouvier (105):
      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
      meson: bump minimal version to 1.6.0
      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: 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_host_arch
      tests/tcg/meson.build: check host cross cc is working
      tests/tcg/meson.build: introduce depends
      tests/tcg/meson.build: use full path for QEMU binary
      tests/tcg/meson.build: add top-level 'tcg-tests' target
      tests/tcg/Makefile: skip user/system tests if target Makefile is not present
      tests/tcg/multiarch/gdbstub/prot-none.py: deactivate on gitlab CI
      tests/tcg/multiarch/gdbstub/prot-none.py: detect if /proc/self/mem can be used to access PROT_NONE pages
      tests/tcg/multiarch: declare user tests
      tests/tcg/multiarch: declare system tests
      tests/tcg/meson.build: add generic plugin tests
      tests/tcg/arm/fcvt.c: use raw opcode for FPRCVT
      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/console.c: directly implement memcpy and memset
      tests/tcg/s390x: system tests
      tests/tcg/sh4: add float reference files
      tests/tcg/sh4: user tests
      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/docker/dockerfiles/debian-xtensa-cross.docker: add test_kc705_be toolchain for xtensaeb
      tests/tcg/xtensa: system tests
      tests/tcg/xtensa: xtensaeb system tests
      tests: remove tcg tests machinery
      tests/tcg: remove remaining Makefiles
      configure: directly pass gdb path as a meson option
      tests/tcg/meson.build: implement ./configure containers options
      tests/tcg/meson.build: implement ./configure -cross-cc-* options
      configure: remove cross_cc and gdb detection logic
      meson.build: add summary for TCG tests
      docs/devel/testing/: update documentation
      MAINTAINERS: add maintainer for tcg/tests meson infrastructure

 MAINTAINERS                                        |   4 +-
 docs/devel/build-system.rst                        |   4 +-
 docs/devel/testing/main.rst                        |  35 +-
 configure                                          | 530 +----------
 tests/tcg/s390x/pgm-specification.mak              |  15 -
 meson.build                                        |  21 +-
 plugins/api.c                                      |   2 +
 tests/tcg/aarch64/system/gpc-test.c                |   5 -
 tests/tcg/arm/fcvt.c                               |   6 +-
 tests/tcg/hexagon/overflow.c                       |   1 +
 tests/tcg/multiarch/sha1.c                         |   1 +
 tests/tcg/multiarch/system/memory.c                |   3 +-
 tests/tcg/or1k/test_addic.c                        |   2 +-
 tests/tcg/or1k/test_muli.c                         |   5 +-
 tests/tcg/ppc64/vector.c                           |  11 +-
 tests/tcg/ppc64/vsx_f2i_nan.c                      |   7 +-
 tests/tcg/s390x/console.c                          |  30 +-
 tests/tcg/test_cc.c                                |   9 +
 tests/lcitool/refresh                              |  14 +-
 .../dockerfiles/debian-all-test-cross.docker       |  14 +-
 .../docker/dockerfiles/debian-xtensa-cross.docker  |   4 +-
 meson_options.txt                                  |  95 +-
 pythondeps.toml                                    |   2 +-
 scripts/probe-gdb-support.py                       |   1 +
 tests/Makefile.include                             |  68 +-
 tests/docker/docker.py                             |   4 +-
 tests/meson.build                                  |   2 +-
 tests/tcg/Makefile.target                          | 281 ------
 tests/tcg/aarch64/Makefile.softmmu-target          | 147 ---
 tests/tcg/aarch64/Makefile.target                  | 211 -----
 tests/tcg/aarch64/meson.build                      | 210 +++++
 tests/tcg/aarch64/system/meson.build               | 109 +++
 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                 |  47 +
 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                   |  69 ++
 tests/tcg/hexagon/Makefile.target                  | 166 ----
 tests/tcg/hexagon/meson.build                      | 120 +++
 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                  |  49 +
 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           |  48 +
 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                              | 513 +++++++++++
 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/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                | 224 -----
 tests/tcg/multiarch/gdbstub/prot-none.py           |  42 +-
 tests/tcg/multiarch/meson.build                    | 149 ++++
 tests/tcg/multiarch/plugin/check-plugin-output.sh  |  36 -
 tests/tcg/multiarch/plugin/regex-compare.sh        |  28 +
 tests/tcg/multiarch/sha1.ref                       |   1 +
 tests/tcg/multiarch/system/Makefile.softmmu-target |  81 --
 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/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/ppc64le/Makefile.target                  |   7 -
 tests/tcg/ppc64le/float_convd.ref                  | 988 +++++++++++++++++++++
 tests/tcg/ppc64le/meson.build                      |  14 +
 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               |  76 ++
 tests/tcg/s390x/Makefile.softmmu-target            |  57 --
 tests/tcg/s390x/Makefile.target                    | 129 ---
 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                        | 142 +++
 tests/tcg/s390x/system/meson.build                 |  92 ++
 tests/tcg/scripts/check_plugin_output.sh           |  25 +
 tests/tcg/scripts/record_replay.sh                 |  16 +
 .../tcg/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/tricore/meson.build                      |  57 ++
 tests/tcg/x86_64/Makefile.softmmu-target           |  44 -
 tests/tcg/x86_64/Makefile.target                   |  41 -
 tests/tcg/x86_64/float_madds.ref                   | 768 ++++++++++++++++
 tests/tcg/x86_64/meson.build                       |  84 ++
 tests/tcg/x86_64/system/meson.build                |  63 ++
 tests/tcg/xtensa/Makefile.softmmu-target           |  46 -
 tests/tcg/xtensa/crt.S                             |   1 +
 tests/tcg/xtensa/meson.build                       | 110 +++
 tests/tcg/xtensaeb/Makefile.softmmu-target         |   5 -
 142 files changed, 30884 insertions(+), 3868 deletions(-)
 delete mode 100644 tests/tcg/s390x/pgm-specification.mak
 create mode 100644 tests/tcg/test_cc.c
 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/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.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
 create mode 100644 tests/tcg/tricore/meson.build
 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

-- 
2.47.3
Re: [PULL v2 000/105] move check-tcg into the meson build
Posted by Peter Maydell 3 weeks, 1 day ago
On Fri, 4 Sept 2026 at 16:08, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:
>
>   Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)
>
> are available in the Git repository at:
>
>   https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2
>
> for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:
>
>   MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)
>
> ----------------------------------------------------------------
> tests/tcg: conversion to meson
>
>   - remove unused variable from multiarch/memory
>   - standardise checking plugin output
>   - bump minimal meson to 1.6.0
>   - introduce meson plumbing for check-tcg
>   - return error code if docker probe fails
>   - add CI/self/mem test to gdbstub prot-none tests
>   - use raw opcode for fprcvt test in arm
>   - remove unused variables from gpc-test
>   - teach probe-gdb-support about mips
>   - identify or1k pc register
>   - port check-tcg logic to meson (all targets)
>   - update documentation
>   - add Pierrick as a maintainer for tests/tcg
>



Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/11.2
for any user-visible changes.

-- PMM
Re: [PULL v2 000/105] move check-tcg into the meson build
Posted by John Snow 1 week, 4 days ago
On Fri, Sep 4, 2026 at 2:04 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Fri, 4 Sept 2026 at 16:08, Alex Bennée <alex.bennee@linaro.org> wrote:
> >
> > The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:
> >
> >   Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)
> >
> > are available in the Git repository at:
> >
> >   https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2
> >
> > for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:
> >
> >   MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)
> >
> > ----------------------------------------------------------------
> > tests/tcg: conversion to meson
> >
> >   - remove unused variable from multiarch/memory
> >   - standardise checking plugin output
> >   - bump minimal meson to 1.6.0
> >   - introduce meson plumbing for check-tcg
> >   - return error code if docker probe fails
> >   - add CI/self/mem test to gdbstub prot-none tests
> >   - use raw opcode for fprcvt test in arm
> >   - remove unused variables from gpc-test
> >   - teach probe-gdb-support about mips
> >   - identify or1k pc register
> >   - port check-tcg logic to meson (all targets)
> >   - update documentation
> >   - add Pierrick as a maintainer for tests/tcg

Hi, I'm having difficulties building after this PR, after eb7f0c14 in
particular.

I keep seeing stuff like this:

FAILED: [code=1] tests/tcg/x86_64-softmmu-hello.test
/home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman
run --run-as-current-user -w /home/jsnow/src/qemu/build -v
/home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross
x86_64-linux-gnu-gcc
/home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c -o
tests/tcg/x86_64-softmmu-hello.test -static -MMD -MF
tests/tcg/x86_64-softmmu-hello.d -Wall -Werror -O0 -g
-fno-strict-aliasing -nostdlib -ffreestanding -Wa,--noexecstack -I
/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib
/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c
../tests/tcg/x86_64/system/boot.S -Wl,-T
../tests/tcg/x86_64/system/kernel.ld -Wl,-melf_x86_64
-Wl,--no-warn-rwx-segments -Wl,--build-id=none -lgcc
cc1: fatal error:
/home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c: Permission
denied
compilation terminated.
cc1: fatal error:
/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c:
Permission denied
compilation terminated.
cc1: fatal error: ../tests/tcg/x86_64/system/boot.S: Permission denied
compilation terminated.
Traceback (most recent call last):
  File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
in <module>
    sys.exit(main())
             ~~~~^^
  File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
    return args.cmdobj.run(args, argv)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
    return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
           ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                    as_user=args.run_as_current_user)
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
    ret = self._do_check(["run", "--rm", "--label",
                         "com.qemu.instance.uuid=" + label] + cmd,
                         quiet=quiet)
  File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
in _do_check
    return subprocess.check_call(self._command + cmd, **kwargs)
           ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
'--label', 'com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9',
'--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
'-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
'debian-amd64-cross', 'x86_64-linux-gnu-gcc',
'/home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c', '-o',
'tests/tcg/x86_64-softmmu-hello.test', '-static', '-MMD', '-MF',
'tests/tcg/x86_64-softmmu-hello.d', '-Wall', '-Werror', '-O0', '-g',
'-fno-strict-aliasing', '-nostdlib', '-ffreestanding',
'-Wa,--noexecstack', '-I',
'/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib',
'/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c',
'../tests/tcg/x86_64/system/boot.S', '-Wl,-T',
'../tests/tcg/x86_64/system/kernel.ld', '-Wl,-melf_x86_64',
'-Wl,--no-warn-rwx-segments', '-Wl,--build-id=none', '-lgcc']'
returned non-zero exit status 1.
filter=--filter=label=com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9
ninja: build stopped: subcommand failed.
make: *** [Makefile:170: run-ninja] Error 1

Is there some kind of setup I have neglected to perform to make this
new build system work? Is there a way I can skip these tests in the
meantime...?

Thanks,
--js
Re: [PULL v2 000/105] move check-tcg into the meson build
Posted by Alex Bennée 1 week, 3 days ago
John Snow <jsnow@redhat.com> writes:

> On Fri, Sep 4, 2026 at 2:04 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>>
>> On Fri, 4 Sept 2026 at 16:08, Alex Bennée <alex.bennee@linaro.org> wrote:
>> >
>> > The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:
>> >
>> >   Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)
>> >
>> > are available in the Git repository at:
>> >
>> >   https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2
>> >
>> > for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:
>> >
>> >   MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)
>> >
>> > ----------------------------------------------------------------
>> > tests/tcg: conversion to meson
>> >
>> >   - remove unused variable from multiarch/memory
>> >   - standardise checking plugin output
>> >   - bump minimal meson to 1.6.0
>> >   - introduce meson plumbing for check-tcg
>> >   - return error code if docker probe fails
>> >   - add CI/self/mem test to gdbstub prot-none tests
>> >   - use raw opcode for fprcvt test in arm
>> >   - remove unused variables from gpc-test
>> >   - teach probe-gdb-support about mips
>> >   - identify or1k pc register
>> >   - port check-tcg logic to meson (all targets)
>> >   - update documentation
>> >   - add Pierrick as a maintainer for tests/tcg
>
> Hi, I'm having difficulties building after this PR, after eb7f0c14 in
> particular.
>
> I keep seeing stuff like this:
>
> FAILED: [code=1] tests/tcg/x86_64-softmmu-hello.test
> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman
> run --run-as-current-user -w /home/jsnow/src/qemu/build -v
> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross
> x86_64-linux-gnu-gcc
> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c -o
> tests/tcg/x86_64-softmmu-hello.test -static -MMD -MF
> tests/tcg/x86_64-softmmu-hello.d -Wall -Werror -O0 -g
> -fno-strict-aliasing -nostdlib -ffreestanding -Wa,--noexecstack -I
> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib
> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c
> ../tests/tcg/x86_64/system/boot.S -Wl,-T
> ../tests/tcg/x86_64/system/kernel.ld -Wl,-melf_x86_64
> -Wl,--no-warn-rwx-segments -Wl,--build-id=none -lgcc
> cc1: fatal error:
> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c: Permission
> denied
> compilation terminated.
> cc1: fatal error:
> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c:
> Permission denied
> compilation terminated.
> cc1: fatal error: ../tests/tcg/x86_64/system/boot.S: Permission denied
> compilation terminated.

Try the v2 I've just posted. That fixed up the handling of mapping your
host user id into the container so there are less surprises when it
writes to the mapped volume.

  https://patchew.org/QEMU/20260915201601.1207839-1-alex.bennee@linaro.org/
  
-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
Re: [PULL v2 000/105] move check-tcg into the meson build
Posted by John Snow 1 week, 3 days ago
On Tue, Sep 15, 2026 at 4:19 PM Alex Bennée <alex.bennee@linaro.org> wrote:
>
> John Snow <jsnow@redhat.com> writes:
>
> > On Fri, Sep 4, 2026 at 2:04 PM Peter Maydell <peter.maydell@linaro.org> wrote:
> >>
> >> On Fri, 4 Sept 2026 at 16:08, Alex Bennée <alex.bennee@linaro.org> wrote:
> >> >
> >> > The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:
> >> >
> >> >   Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)
> >> >
> >> > are available in the Git repository at:
> >> >
> >> >   https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2
> >> >
> >> > for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:
> >> >
> >> >   MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)
> >> >
> >> > ----------------------------------------------------------------
> >> > tests/tcg: conversion to meson
> >> >
> >> >   - remove unused variable from multiarch/memory
> >> >   - standardise checking plugin output
> >> >   - bump minimal meson to 1.6.0
> >> >   - introduce meson plumbing for check-tcg
> >> >   - return error code if docker probe fails
> >> >   - add CI/self/mem test to gdbstub prot-none tests
> >> >   - use raw opcode for fprcvt test in arm
> >> >   - remove unused variables from gpc-test
> >> >   - teach probe-gdb-support about mips
> >> >   - identify or1k pc register
> >> >   - port check-tcg logic to meson (all targets)
> >> >   - update documentation
> >> >   - add Pierrick as a maintainer for tests/tcg
> >
> > Hi, I'm having difficulties building after this PR, after eb7f0c14 in
> > particular.
> >
> > I keep seeing stuff like this:
> >
> > FAILED: [code=1] tests/tcg/x86_64-softmmu-hello.test
> > /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman
> > run --run-as-current-user -w /home/jsnow/src/qemu/build -v
> > /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross
> > x86_64-linux-gnu-gcc
> > /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c -o
> > tests/tcg/x86_64-softmmu-hello.test -static -MMD -MF
> > tests/tcg/x86_64-softmmu-hello.d -Wall -Werror -O0 -g
> > -fno-strict-aliasing -nostdlib -ffreestanding -Wa,--noexecstack -I
> > /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib
> > /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c
> > ../tests/tcg/x86_64/system/boot.S -Wl,-T
> > ../tests/tcg/x86_64/system/kernel.ld -Wl,-melf_x86_64
> > -Wl,--no-warn-rwx-segments -Wl,--build-id=none -lgcc
> > cc1: fatal error:
> > /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c: Permission
> > denied
> > compilation terminated.
> > cc1: fatal error:
> > /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c:
> > Permission denied
> > compilation terminated.
> > cc1: fatal error: ../tests/tcg/x86_64/system/boot.S: Permission denied
> > compilation terminated.
>
> Try the v2 I've just posted. That fixed up the handling of mapping your
> host user id into the container so there are less surprises when it
> writes to the mapped volume.
>
>   https://patchew.org/QEMU/20260915201601.1207839-1-alex.bennee@linaro.org/
>

No dice there. Fully rebooted my machine just in case there were
permission issues lingering in my session; still getting perm errors:

jsnow@jsnow-thinkpadp16vgen1 ~/s/q/build (review)> cat /etc/subuid
jsnow:100000:65536
jsnow@jsnow-thinkpadp16vgen1 ~/s/q/build (review)> cat /etc/subgid
jsnow:100000:65536

jsnow@jsnow-thinkpadp16vgen1 ~/s/q/build (review)> ls -lahZ
../tests/tcg/multiarch/system/hello.c
-rw-r--r--. 1 jsnow jsnow unconfined_u:object_r:user_home_t:s0 229 May
 7  2025 ../tests/tcg/multiarch/system/hello.c

Setting the dreaded `setenforce 0` it does seem to work, so I suppose
the issue is that my source tree is not labeled in a way that permits
it to be mapped into a container.

I'd like to ask that we have a hello world style check that tests to
see if it can access your source tree and, if not, proposes some
solutions:

(1) Prompt user to check that rootless podman is functioning
correctly, check your subuid/subgid etc
(2) Prompt user to check selinux labels
(3) Suggest that container builds can be disabled with --disable-containers

Possibly even as part of configure we do a simple hello-world test and
if it works, enable containers by default and if it does not, we
disable them. If you pass --enable-containers and the hello world
fails, configure exits with an error.

Or some other such thing.

--js
Re: [PULL v2 000/105] move check-tcg into the meson build
Posted by Alex Bennée 1 week, 3 days ago
John Snow <jsnow@redhat.com> writes:

> On Tue, Sep 15, 2026 at 4:19 PM Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>> John Snow <jsnow@redhat.com> writes:
>>
>> > On Fri, Sep 4, 2026 at 2:04 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>> >>
>> >> On Fri, 4 Sept 2026 at 16:08, Alex Bennée <alex.bennee@linaro.org> wrote:
>> >> >
>> >> > The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:
>> >> >
>> >> >   Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)
>> >> >
>> >> > are available in the Git repository at:
>> >> >
>> >> >   https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2
>> >> >
>> >> > for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:
>> >> >
>> >> >   MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)
>> >> >
>> >> > ----------------------------------------------------------------
>> >> > tests/tcg: conversion to meson
>> >> >
>> >> >   - remove unused variable from multiarch/memory
>> >> >   - standardise checking plugin output
>> >> >   - bump minimal meson to 1.6.0
>> >> >   - introduce meson plumbing for check-tcg
>> >> >   - return error code if docker probe fails
>> >> >   - add CI/self/mem test to gdbstub prot-none tests
>> >> >   - use raw opcode for fprcvt test in arm
>> >> >   - remove unused variables from gpc-test
>> >> >   - teach probe-gdb-support about mips
>> >> >   - identify or1k pc register
>> >> >   - port check-tcg logic to meson (all targets)
>> >> >   - update documentation
>> >> >   - add Pierrick as a maintainer for tests/tcg
>> >
>> > Hi, I'm having difficulties building after this PR, after eb7f0c14 in
>> > particular.
>> >
>> > I keep seeing stuff like this:
>> >
>> > FAILED: [code=1] tests/tcg/x86_64-softmmu-hello.test
>> > /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman
>> > run --run-as-current-user -w /home/jsnow/src/qemu/build -v
>> > /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross
>> > x86_64-linux-gnu-gcc
>> > /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c -o
>> > tests/tcg/x86_64-softmmu-hello.test -static -MMD -MF
>> > tests/tcg/x86_64-softmmu-hello.d -Wall -Werror -O0 -g
>> > -fno-strict-aliasing -nostdlib -ffreestanding -Wa,--noexecstack -I
>> > /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib
>> > /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c
>> > ../tests/tcg/x86_64/system/boot.S -Wl,-T
>> > ../tests/tcg/x86_64/system/kernel.ld -Wl,-melf_x86_64
>> > -Wl,--no-warn-rwx-segments -Wl,--build-id=none -lgcc
>> > cc1: fatal error:
>> > /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c: Permission
>> > denied
>> > compilation terminated.
>> > cc1: fatal error:
>> > /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c:
>> > Permission denied
>> > compilation terminated.
>> > cc1: fatal error: ../tests/tcg/x86_64/system/boot.S: Permission denied
>> > compilation terminated.
>>
>> Try the v2 I've just posted. That fixed up the handling of mapping your
>> host user id into the container so there are less surprises when it
>> writes to the mapped volume.
>>
>>   https://patchew.org/QEMU/20260915201601.1207839-1-alex.bennee@linaro.org/
>>
>
> No dice there. Fully rebooted my machine just in case there were
> permission issues lingering in my session; still getting perm errors:
>
> jsnow@jsnow-thinkpadp16vgen1 ~/s/q/build (review)> cat /etc/subuid
> jsnow:100000:65536
> jsnow@jsnow-thinkpadp16vgen1 ~/s/q/build (review)> cat /etc/subgid
> jsnow:100000:65536
>
> jsnow@jsnow-thinkpadp16vgen1 ~/s/q/build (review)> ls -lahZ
> ../tests/tcg/multiarch/system/hello.c
> -rw-r--r--. 1 jsnow jsnow unconfined_u:object_r:user_home_t:s0 229 May
>  7  2025 ../tests/tcg/multiarch/system/hello.c
>
> Setting the dreaded `setenforce 0` it does seem to work, so I suppose
> the issue is that my source tree is not labeled in a way that permits
> it to be mapped into a container.
>
> I'd like to ask that we have a hello world style check that tests to
> see if it can access your source tree and, if not, proposes some
> solutions:
>
> (1) Prompt user to check that rootless podman is functioning
> correctly, check your subuid/subgid etc

Perhaps we should just run the same compile test when we detect
containers.

> (2) Prompt user to check selinux labels
> (3) Suggest that container builds can be disabled with --disable-containers
>
> Possibly even as part of configure we do a simple hello-world test and
> if it works, enable containers by default and if it does not, we
> disable them. If you pass --enable-containers and the hello world
> fails, configure exits with an error.
>
> Or some other such thing.
>
> --js

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
Re: [PULL v2 000/105] move check-tcg into the meson build
Posted by Pierrick Bouvier 1 week, 3 days ago
On 9/16/2026 9:16 AM, John Snow wrote:
> On Tue, Sep 15, 2026 at 4:19 PM Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>> John Snow <jsnow@redhat.com> writes:
>>
>>> On Fri, Sep 4, 2026 at 2:04 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>>>>
>>>> On Fri, 4 Sept 2026 at 16:08, Alex Bennée <alex.bennee@linaro.org> wrote:
>>>>>
>>>>> The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:
>>>>>
>>>>>   Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)
>>>>>
>>>>> are available in the Git repository at:
>>>>>
>>>>>   https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2
>>>>>
>>>>> for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:
>>>>>
>>>>>   MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)
>>>>>
>>>>> ----------------------------------------------------------------
>>>>> tests/tcg: conversion to meson
>>>>>
>>>>>   - remove unused variable from multiarch/memory
>>>>>   - standardise checking plugin output
>>>>>   - bump minimal meson to 1.6.0
>>>>>   - introduce meson plumbing for check-tcg
>>>>>   - return error code if docker probe fails
>>>>>   - add CI/self/mem test to gdbstub prot-none tests
>>>>>   - use raw opcode for fprcvt test in arm
>>>>>   - remove unused variables from gpc-test
>>>>>   - teach probe-gdb-support about mips
>>>>>   - identify or1k pc register
>>>>>   - port check-tcg logic to meson (all targets)
>>>>>   - update documentation
>>>>>   - add Pierrick as a maintainer for tests/tcg
>>>
>>> Hi, I'm having difficulties building after this PR, after eb7f0c14 in
>>> particular.
>>>
>>> I keep seeing stuff like this:
>>>
>>> FAILED: [code=1] tests/tcg/x86_64-softmmu-hello.test
>>> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman
>>> run --run-as-current-user -w /home/jsnow/src/qemu/build -v
>>> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross
>>> x86_64-linux-gnu-gcc
>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c -o
>>> tests/tcg/x86_64-softmmu-hello.test -static -MMD -MF
>>> tests/tcg/x86_64-softmmu-hello.d -Wall -Werror -O0 -g
>>> -fno-strict-aliasing -nostdlib -ffreestanding -Wa,--noexecstack -I
>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib
>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c
>>> ../tests/tcg/x86_64/system/boot.S -Wl,-T
>>> ../tests/tcg/x86_64/system/kernel.ld -Wl,-melf_x86_64
>>> -Wl,--no-warn-rwx-segments -Wl,--build-id=none -lgcc
>>> cc1: fatal error:
>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c: Permission
>>> denied
>>> compilation terminated.
>>> cc1: fatal error:
>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c:
>>> Permission denied
>>> compilation terminated.
>>> cc1: fatal error: ../tests/tcg/x86_64/system/boot.S: Permission denied
>>> compilation terminated.
>>
>> Try the v2 I've just posted. That fixed up the handling of mapping your
>> host user id into the container so there are less surprises when it
>> writes to the mapped volume.
>>
>>   https://patchew.org/QEMU/20260915201601.1207839-1-alex.bennee@linaro.org/
>>
> 
> No dice there. Fully rebooted my machine just in case there were
> permission issues lingering in my session; still getting perm errors:
> 
> jsnow@jsnow-thinkpadp16vgen1 ~/s/q/build (review)> cat /etc/subuid
> jsnow:100000:65536
> jsnow@jsnow-thinkpadp16vgen1 ~/s/q/build (review)> cat /etc/subgid
> jsnow:100000:65536
> 
> jsnow@jsnow-thinkpadp16vgen1 ~/s/q/build (review)> ls -lahZ
> ../tests/tcg/multiarch/system/hello.c
> -rw-r--r--. 1 jsnow jsnow unconfined_u:object_r:user_home_t:s0 229 May
>  7  2025 ../tests/tcg/multiarch/system/hello.c
> 
> Setting the dreaded `setenforce 0` it does seem to work, so I suppose
> the issue is that my source tree is not labeled in a way that permits
> it to be mapped into a container.
>

Ok, so it seems to be related to SELinux.

Good news is that we can verify if following fix would work:
Can you please try a shared mount (append :z to path mounted with -v)?
Would that be possible to try a shared mount (:z)?

$ setenforce 1
$ check previous command failed
# try same command with :z
$ /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
 run --run-as-current-user -w /home/jsnow/src/qemu/build -v \
 /home/jsnow/src/qemu:/home/jsnow/src/qemu:z debian-amd64-cross \
 touch -v new_file && ls -al new_file
> I'd like to ask that we have a hello world style check that tests to
> see if it can access your source tree and, if not, proposes some
> solutions:
> 
> (1) Prompt user to check that rootless podman is functioning
> correctly, check your subuid/subgid etc
> (2) Prompt user to check selinux labels
> (3) Suggest that container builds can be disabled with --disable-containers
> 
> Possibly even as part of configure we do a simple hello-world test and
> if it works, enable containers by default and if it does not, we
> disable them. If you pass --enable-containers and the hello world
> fails, configure exits with an error.
> 
> Or some other such thing.
> 
> --js
> 
> 


Re: [PULL v2 000/105] move check-tcg into the meson build
Posted by Pierrick Bouvier 1 week, 4 days ago
On 9/15/2026 9:52 AM, John Snow wrote:
> On Fri, Sep 4, 2026 at 2:04 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>>
>> On Fri, 4 Sept 2026 at 16:08, Alex Bennée <alex.bennee@linaro.org> wrote:
>>>
>>> The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:
>>>
>>>   Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)
>>>
>>> are available in the Git repository at:
>>>
>>>   https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2
>>>
>>> for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:
>>>
>>>   MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)
>>>
>>> ----------------------------------------------------------------
>>> tests/tcg: conversion to meson
>>>
>>>   - remove unused variable from multiarch/memory
>>>   - standardise checking plugin output
>>>   - bump minimal meson to 1.6.0
>>>   - introduce meson plumbing for check-tcg
>>>   - return error code if docker probe fails
>>>   - add CI/self/mem test to gdbstub prot-none tests
>>>   - use raw opcode for fprcvt test in arm
>>>   - remove unused variables from gpc-test
>>>   - teach probe-gdb-support about mips
>>>   - identify or1k pc register
>>>   - port check-tcg logic to meson (all targets)
>>>   - update documentation
>>>   - add Pierrick as a maintainer for tests/tcg
> 
> Hi, I'm having difficulties building after this PR, after eb7f0c14 in
> particular.
> 
> I keep seeing stuff like this:
> 
> FAILED: [code=1] tests/tcg/x86_64-softmmu-hello.test
> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman
> run --run-as-current-user -w /home/jsnow/src/qemu/build -v
> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross
> x86_64-linux-gnu-gcc
> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c -o
> tests/tcg/x86_64-softmmu-hello.test -static -MMD -MF
> tests/tcg/x86_64-softmmu-hello.d -Wall -Werror -O0 -g
> -fno-strict-aliasing -nostdlib -ffreestanding -Wa,--noexecstack -I
> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib
> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c
> ../tests/tcg/x86_64/system/boot.S -Wl,-T
> ../tests/tcg/x86_64/system/kernel.ld -Wl,-melf_x86_64
> -Wl,--no-warn-rwx-segments -Wl,--build-id=none -lgcc
> cc1: fatal error:
> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c: Permission
> denied
> compilation terminated.
> cc1: fatal error:
> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c:
> Permission denied
> compilation terminated.
> cc1: fatal error: ../tests/tcg/x86_64/system/boot.S: Permission denied
> compilation terminated.
> Traceback (most recent call last):
>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
> in <module>
>     sys.exit(main())
>              ~~~~^^
>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
>     return args.cmdobj.run(args, argv)
>            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
>     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
>            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>                                     as_user=args.run_as_current_user)
>                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
>     ret = self._do_check(["run", "--rm", "--label",
>                          "com.qemu.instance.uuid=" + label] + cmd,
>                          quiet=quiet)
>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
> in _do_check
>     return subprocess.check_call(self._command + cmd, **kwargs)
>            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
>     raise CalledProcessError(retcode, cmd)
> subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
> '--label', 'com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9',
> '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
> '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
> 'debian-amd64-cross', 'x86_64-linux-gnu-gcc',
> '/home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c', '-o',
> 'tests/tcg/x86_64-softmmu-hello.test', '-static', '-MMD', '-MF',
> 'tests/tcg/x86_64-softmmu-hello.d', '-Wall', '-Werror', '-O0', '-g',
> '-fno-strict-aliasing', '-nostdlib', '-ffreestanding',
> '-Wa,--noexecstack', '-I',
> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib',
> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c',
> '../tests/tcg/x86_64/system/boot.S', '-Wl,-T',
> '../tests/tcg/x86_64/system/kernel.ld', '-Wl,-melf_x86_64',
> '-Wl,--no-warn-rwx-segments', '-Wl,--build-id=none', '-lgcc']'
> returned non-zero exit status 1.
> filter=--filter=label=com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9
> ninja: build stopped: subcommand failed.
> make: *** [Makefile:170: run-ninja] Error 1
>

Interesting, it seems to be an issue with podman user mapping.

Which distro you use (especially which version)?

Also, could you please report output of those commands:
$ podman --version
$ ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
$ /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
  run --run-as-current-user -w /home/jsnow/src/qemu/build -v \
  /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
  touch -v new_file && ls -al new_file

This should help us to see what's your effective uid in the container.
Maybe this issue was present before, did you try running make check-tcg
in the past, or not?

> Is there some kind of setup I have neglected to perform to make this
> new build system work? Is there a way I can skip these tests in the
> meantime...?
>

You can use ./configure --disable-containers, so it will not try to use
podman.

> Thanks,
> --js
> 
> 

Regards,
Pierrick

Re: [PULL v2 000/105] move check-tcg into the meson build
Posted by John Snow 1 week, 4 days ago
On Tue, Sep 15, 2026 at 1:17 PM Pierrick Bouvier
<pierrick.bouvier@oss.qualcomm.com> wrote:
>
> On 9/15/2026 9:52 AM, John Snow wrote:
> > On Fri, Sep 4, 2026 at 2:04 PM Peter Maydell <peter.maydell@linaro.org> wrote:
> >>
> >> On Fri, 4 Sept 2026 at 16:08, Alex Bennée <alex.bennee@linaro.org> wrote:
> >>>
> >>> The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:
> >>>
> >>>   Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)
> >>>
> >>> are available in the Git repository at:
> >>>
> >>>   https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2
> >>>
> >>> for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:
> >>>
> >>>   MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)
> >>>
> >>> ----------------------------------------------------------------
> >>> tests/tcg: conversion to meson
> >>>
> >>>   - remove unused variable from multiarch/memory
> >>>   - standardise checking plugin output
> >>>   - bump minimal meson to 1.6.0
> >>>   - introduce meson plumbing for check-tcg
> >>>   - return error code if docker probe fails
> >>>   - add CI/self/mem test to gdbstub prot-none tests
> >>>   - use raw opcode for fprcvt test in arm
> >>>   - remove unused variables from gpc-test
> >>>   - teach probe-gdb-support about mips
> >>>   - identify or1k pc register
> >>>   - port check-tcg logic to meson (all targets)
> >>>   - update documentation
> >>>   - add Pierrick as a maintainer for tests/tcg
> >
> > Hi, I'm having difficulties building after this PR, after eb7f0c14 in
> > particular.
> >
> > I keep seeing stuff like this:
> >
> > FAILED: [code=1] tests/tcg/x86_64-softmmu-hello.test
> > /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman
> > run --run-as-current-user -w /home/jsnow/src/qemu/build -v
> > /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross
> > x86_64-linux-gnu-gcc
> > /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c -o
> > tests/tcg/x86_64-softmmu-hello.test -static -MMD -MF
> > tests/tcg/x86_64-softmmu-hello.d -Wall -Werror -O0 -g
> > -fno-strict-aliasing -nostdlib -ffreestanding -Wa,--noexecstack -I
> > /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib
> > /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c
> > ../tests/tcg/x86_64/system/boot.S -Wl,-T
> > ../tests/tcg/x86_64/system/kernel.ld -Wl,-melf_x86_64
> > -Wl,--no-warn-rwx-segments -Wl,--build-id=none -lgcc
> > cc1: fatal error:
> > /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c: Permission
> > denied
> > compilation terminated.
> > cc1: fatal error:
> > /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c:
> > Permission denied
> > compilation terminated.
> > cc1: fatal error: ../tests/tcg/x86_64/system/boot.S: Permission denied
> > compilation terminated.
> > Traceback (most recent call last):
> >   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
> > in <module>
> >     sys.exit(main())
> >              ~~~~^^
> >   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
> >     return args.cmdobj.run(args, argv)
> >            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
> >   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
> >     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
> >            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >                                     as_user=args.run_as_current_user)
> >                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
> >     ret = self._do_check(["run", "--rm", "--label",
> >                          "com.qemu.instance.uuid=" + label] + cmd,
> >                          quiet=quiet)
> >   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
> > in _do_check
> >     return subprocess.check_call(self._command + cmd, **kwargs)
> >            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
> >     raise CalledProcessError(retcode, cmd)
> > subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
> > '--label', 'com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9',
> > '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
> > '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
> > 'debian-amd64-cross', 'x86_64-linux-gnu-gcc',
> > '/home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c', '-o',
> > 'tests/tcg/x86_64-softmmu-hello.test', '-static', '-MMD', '-MF',
> > 'tests/tcg/x86_64-softmmu-hello.d', '-Wall', '-Werror', '-O0', '-g',
> > '-fno-strict-aliasing', '-nostdlib', '-ffreestanding',
> > '-Wa,--noexecstack', '-I',
> > '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib',
> > '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c',
> > '../tests/tcg/x86_64/system/boot.S', '-Wl,-T',
> > '../tests/tcg/x86_64/system/kernel.ld', '-Wl,-melf_x86_64',
> > '-Wl,--no-warn-rwx-segments', '-Wl,--build-id=none', '-lgcc']'
> > returned non-zero exit status 1.
> > filter=--filter=label=com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9
> > ninja: build stopped: subcommand failed.
> > make: *** [Makefile:170: run-ninja] Error 1
> >
>
> Interesting, it seems to be an issue with podman user mapping.

Maybe something I set up ages ago and promptly forgot about? I haven't
fussed with user mapping permissions in several aeons, it's possible I
have something stale in some config somewhere ...

>
> Which distro you use (especially which version)?

~> cat /etc/fedora-release
Fedora release 44 (Forty Four)

>
> Also, could you please report output of those commands:
> $ podman --version

~> podman --version
podman version 5.8.4

> $ ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c

~> ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
-rw-r--r--. 1 jsnow jsnow 229 May  7  2025
/home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c

> $ /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
>   run --run-as-current-user -w /home/jsnow/src/qemu/build -v \
>   /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
>   touch -v new_file && ls -al new_file

There's no "-v" option for touch, but:

~> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
                                                                  run
--run-as-current-user -w /home/jsnow/src/qemu/build -v \

/home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \

touch new_file && ls -al new_file
touch: cannot touch 'new_file': Permission denied
Traceback (most recent call last):
  File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
in <module>
    sys.exit(main())
             ~~~~^^
  File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
    return args.cmdobj.run(args, argv)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
    return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
           ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                    as_user=args.run_as_current_user)
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
    ret = self._do_check(["run", "--rm", "--label",
                         "com.qemu.instance.uuid=" + label] + cmd,
                         quiet=quiet)
  File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
in _do_check
    return subprocess.check_call(self._command + cmd, **kwargs)
           ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
'--label', 'com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2',
'--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
'-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
'debian-amd64-cross', 'touch', 'new_file']' returned non-zero exit
status 1.
filter=--filter=label=com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2



>
> This should help us to see what's your effective uid in the container.
> Maybe this issue was present before, did you try running make check-tcg
> in the past, or not?
>
> > Is there some kind of setup I have neglected to perform to make this
> > new build system work? Is there a way I can skip these tests in the
> > meantime...?
> >
>
> You can use ./configure --disable-containers, so it will not try to use
> podman.
>
> > Thanks,
> > --js
> >
> >
>
> Regards,
> Pierrick
>
Re: [PULL v2 000/105] move check-tcg into the meson build
Posted by Pierrick Bouvier 1 week, 4 days ago
On 9/15/2026 11:26 AM, John Snow wrote:
> On Tue, Sep 15, 2026 at 1:17 PM Pierrick Bouvier
> <pierrick.bouvier@oss.qualcomm.com> wrote:
>>
>> On 9/15/2026 9:52 AM, John Snow wrote:
>>> On Fri, Sep 4, 2026 at 2:04 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>>>>
>>>> On Fri, 4 Sept 2026 at 16:08, Alex Bennée <alex.bennee@linaro.org> wrote:
>>>>>
>>>>> The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:
>>>>>
>>>>>   Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)
>>>>>
>>>>> are available in the Git repository at:
>>>>>
>>>>>   https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2
>>>>>
>>>>> for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:
>>>>>
>>>>>   MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)
>>>>>
>>>>> ----------------------------------------------------------------
>>>>> tests/tcg: conversion to meson
>>>>>
>>>>>   - remove unused variable from multiarch/memory
>>>>>   - standardise checking plugin output
>>>>>   - bump minimal meson to 1.6.0
>>>>>   - introduce meson plumbing for check-tcg
>>>>>   - return error code if docker probe fails
>>>>>   - add CI/self/mem test to gdbstub prot-none tests
>>>>>   - use raw opcode for fprcvt test in arm
>>>>>   - remove unused variables from gpc-test
>>>>>   - teach probe-gdb-support about mips
>>>>>   - identify or1k pc register
>>>>>   - port check-tcg logic to meson (all targets)
>>>>>   - update documentation
>>>>>   - add Pierrick as a maintainer for tests/tcg
>>>
>>> Hi, I'm having difficulties building after this PR, after eb7f0c14 in
>>> particular.
>>>
>>> I keep seeing stuff like this:
>>>
>>> FAILED: [code=1] tests/tcg/x86_64-softmmu-hello.test
>>> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman
>>> run --run-as-current-user -w /home/jsnow/src/qemu/build -v
>>> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross
>>> x86_64-linux-gnu-gcc
>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c -o
>>> tests/tcg/x86_64-softmmu-hello.test -static -MMD -MF
>>> tests/tcg/x86_64-softmmu-hello.d -Wall -Werror -O0 -g
>>> -fno-strict-aliasing -nostdlib -ffreestanding -Wa,--noexecstack -I
>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib
>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c
>>> ../tests/tcg/x86_64/system/boot.S -Wl,-T
>>> ../tests/tcg/x86_64/system/kernel.ld -Wl,-melf_x86_64
>>> -Wl,--no-warn-rwx-segments -Wl,--build-id=none -lgcc
>>> cc1: fatal error:
>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c: Permission
>>> denied
>>> compilation terminated.
>>> cc1: fatal error:
>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c:
>>> Permission denied
>>> compilation terminated.
>>> cc1: fatal error: ../tests/tcg/x86_64/system/boot.S: Permission denied
>>> compilation terminated.
>>> Traceback (most recent call last):
>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
>>> in <module>
>>>     sys.exit(main())
>>>              ~~~~^^
>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
>>>     return args.cmdobj.run(args, argv)
>>>            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
>>>     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
>>>            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>                                     as_user=args.run_as_current_user)
>>>                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
>>>     ret = self._do_check(["run", "--rm", "--label",
>>>                          "com.qemu.instance.uuid=" + label] + cmd,
>>>                          quiet=quiet)
>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
>>> in _do_check
>>>     return subprocess.check_call(self._command + cmd, **kwargs)
>>>            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
>>>     raise CalledProcessError(retcode, cmd)
>>> subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
>>> '--label', 'com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9',
>>> '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
>>> '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
>>> 'debian-amd64-cross', 'x86_64-linux-gnu-gcc',
>>> '/home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c', '-o',
>>> 'tests/tcg/x86_64-softmmu-hello.test', '-static', '-MMD', '-MF',
>>> 'tests/tcg/x86_64-softmmu-hello.d', '-Wall', '-Werror', '-O0', '-g',
>>> '-fno-strict-aliasing', '-nostdlib', '-ffreestanding',
>>> '-Wa,--noexecstack', '-I',
>>> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib',
>>> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c',
>>> '../tests/tcg/x86_64/system/boot.S', '-Wl,-T',
>>> '../tests/tcg/x86_64/system/kernel.ld', '-Wl,-melf_x86_64',
>>> '-Wl,--no-warn-rwx-segments', '-Wl,--build-id=none', '-lgcc']'
>>> returned non-zero exit status 1.
>>> filter=--filter=label=com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9
>>> ninja: build stopped: subcommand failed.
>>> make: *** [Makefile:170: run-ninja] Error 1
>>>
>>
>> Interesting, it seems to be an issue with podman user mapping.
> 
> Maybe something I set up ages ago and promptly forgot about? I haven't
> fussed with user mapping permissions in several aeons, it's possible I
> have something stale in some config somewhere ...
> 
>>
>> Which distro you use (especially which version)?
> 
> ~> cat /etc/fedora-release
> Fedora release 44 (Forty Four)
> 
>>
>> Also, could you please report output of those commands:
>> $ podman --version
> 
> ~> podman --version
> podman version 5.8.4
> 
>> $ ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
> 
> ~> ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
> -rw-r--r--. 1 jsnow jsnow 229 May  7  2025
> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
> 
>> $ /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
>>   run --run-as-current-user -w /home/jsnow/src/qemu/build -v \
>>   /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
>>   touch -v new_file && ls -al new_file
> 
> There's no "-v" option for touch, but:
>

Copy-paste mistake sorry, thanks for fixing command.

> ~> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
>                                                                   run
> --run-as-current-user -w /home/jsnow/src/qemu/build -v \
> 
> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
> 
> touch new_file && ls -al new_file
> touch: cannot touch 'new_file': Permission denied
> Traceback (most recent call last):
>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
> in <module>
>     sys.exit(main())
>              ~~~~^^
>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
>     return args.cmdobj.run(args, argv)
>            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
>     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
>            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>                                     as_user=args.run_as_current_user)
>                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
>     ret = self._do_check(["run", "--rm", "--label",
>                          "com.qemu.instance.uuid=" + label] + cmd,
>                          quiet=quiet)
>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
> in _do_check
>     return subprocess.check_call(self._command + cmd, **kwargs)
>            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
>     raise CalledProcessError(retcode, cmd)
> subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
> '--label', 'com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2',
> '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
> '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
> 'debian-amd64-cross', 'touch', 'new_file']' returned non-zero exit
> status 1.
> filter=--filter=label=com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2
>

What is the content of your /etc/subuid?

Giving your user id (21266), I guess you have a LDAP account or
something similar: not a local account.
I had the same issue on my corporate VM, and had to add an explicit
mapping for my user.

You should have something like:

$ cat /etc/subuid
jsnow:100000:65536
$ cat /etc/subgid
jsnow:100000:65536

Let me know if it solves your problem, else we'll find something else.

> 
> 
>>
>> This should help us to see what's your effective uid in the container.
>> Maybe this issue was present before, did you try running make check-tcg
>> in the past, or not?
>>
>>> Is there some kind of setup I have neglected to perform to make this
>>> new build system work? Is there a way I can skip these tests in the
>>> meantime...?
>>>
>>
>> You can use ./configure --disable-containers, so it will not try to use
>> podman.
>>
>>> Thanks,
>>> --js
>>>
>>>
>>
>> Regards,
>> Pierrick
>>
> 


Re: [PULL v2 000/105] move check-tcg into the meson build
Posted by John Snow 1 week, 4 days ago
On Tue, Sep 15, 2026 at 3:07 PM Pierrick Bouvier
<pierrick.bouvier@oss.qualcomm.com> wrote:
>
> On 9/15/2026 11:26 AM, John Snow wrote:
> > On Tue, Sep 15, 2026 at 1:17 PM Pierrick Bouvier
> > <pierrick.bouvier@oss.qualcomm.com> wrote:
> >>
> >> On 9/15/2026 9:52 AM, John Snow wrote:
> >>> On Fri, Sep 4, 2026 at 2:04 PM Peter Maydell <peter.maydell@linaro.org> wrote:
> >>>>
> >>>> On Fri, 4 Sept 2026 at 16:08, Alex Bennée <alex.bennee@linaro.org> wrote:
> >>>>>
> >>>>> The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:
> >>>>>
> >>>>>   Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)
> >>>>>
> >>>>> are available in the Git repository at:
> >>>>>
> >>>>>   https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2
> >>>>>
> >>>>> for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:
> >>>>>
> >>>>>   MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)
> >>>>>
> >>>>> ----------------------------------------------------------------
> >>>>> tests/tcg: conversion to meson
> >>>>>
> >>>>>   - remove unused variable from multiarch/memory
> >>>>>   - standardise checking plugin output
> >>>>>   - bump minimal meson to 1.6.0
> >>>>>   - introduce meson plumbing for check-tcg
> >>>>>   - return error code if docker probe fails
> >>>>>   - add CI/self/mem test to gdbstub prot-none tests
> >>>>>   - use raw opcode for fprcvt test in arm
> >>>>>   - remove unused variables from gpc-test
> >>>>>   - teach probe-gdb-support about mips
> >>>>>   - identify or1k pc register
> >>>>>   - port check-tcg logic to meson (all targets)
> >>>>>   - update documentation
> >>>>>   - add Pierrick as a maintainer for tests/tcg
> >>>
> >>> Hi, I'm having difficulties building after this PR, after eb7f0c14 in
> >>> particular.
> >>>
> >>> I keep seeing stuff like this:
> >>>
> >>> FAILED: [code=1] tests/tcg/x86_64-softmmu-hello.test
> >>> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman
> >>> run --run-as-current-user -w /home/jsnow/src/qemu/build -v
> >>> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross
> >>> x86_64-linux-gnu-gcc
> >>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c -o
> >>> tests/tcg/x86_64-softmmu-hello.test -static -MMD -MF
> >>> tests/tcg/x86_64-softmmu-hello.d -Wall -Werror -O0 -g
> >>> -fno-strict-aliasing -nostdlib -ffreestanding -Wa,--noexecstack -I
> >>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib
> >>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c
> >>> ../tests/tcg/x86_64/system/boot.S -Wl,-T
> >>> ../tests/tcg/x86_64/system/kernel.ld -Wl,-melf_x86_64
> >>> -Wl,--no-warn-rwx-segments -Wl,--build-id=none -lgcc
> >>> cc1: fatal error:
> >>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c: Permission
> >>> denied
> >>> compilation terminated.
> >>> cc1: fatal error:
> >>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c:
> >>> Permission denied
> >>> compilation terminated.
> >>> cc1: fatal error: ../tests/tcg/x86_64/system/boot.S: Permission denied
> >>> compilation terminated.
> >>> Traceback (most recent call last):
> >>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
> >>> in <module>
> >>>     sys.exit(main())
> >>>              ~~~~^^
> >>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
> >>>     return args.cmdobj.run(args, argv)
> >>>            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
> >>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
> >>>     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
> >>>            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >>>                                     as_user=args.run_as_current_user)
> >>>                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
> >>>     ret = self._do_check(["run", "--rm", "--label",
> >>>                          "com.qemu.instance.uuid=" + label] + cmd,
> >>>                          quiet=quiet)
> >>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
> >>> in _do_check
> >>>     return subprocess.check_call(self._command + cmd, **kwargs)
> >>>            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >>>   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
> >>>     raise CalledProcessError(retcode, cmd)
> >>> subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
> >>> '--label', 'com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9',
> >>> '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
> >>> '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
> >>> 'debian-amd64-cross', 'x86_64-linux-gnu-gcc',
> >>> '/home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c', '-o',
> >>> 'tests/tcg/x86_64-softmmu-hello.test', '-static', '-MMD', '-MF',
> >>> 'tests/tcg/x86_64-softmmu-hello.d', '-Wall', '-Werror', '-O0', '-g',
> >>> '-fno-strict-aliasing', '-nostdlib', '-ffreestanding',
> >>> '-Wa,--noexecstack', '-I',
> >>> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib',
> >>> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c',
> >>> '../tests/tcg/x86_64/system/boot.S', '-Wl,-T',
> >>> '../tests/tcg/x86_64/system/kernel.ld', '-Wl,-melf_x86_64',
> >>> '-Wl,--no-warn-rwx-segments', '-Wl,--build-id=none', '-lgcc']'
> >>> returned non-zero exit status 1.
> >>> filter=--filter=label=com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9
> >>> ninja: build stopped: subcommand failed.
> >>> make: *** [Makefile:170: run-ninja] Error 1
> >>>
> >>
> >> Interesting, it seems to be an issue with podman user mapping.
> >
> > Maybe something I set up ages ago and promptly forgot about? I haven't
> > fussed with user mapping permissions in several aeons, it's possible I
> > have something stale in some config somewhere ...
> >
> >>
> >> Which distro you use (especially which version)?
> >
> > ~> cat /etc/fedora-release
> > Fedora release 44 (Forty Four)
> >
> >>
> >> Also, could you please report output of those commands:
> >> $ podman --version
> >
> > ~> podman --version
> > podman version 5.8.4
> >
> >> $ ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
> >
> > ~> ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
> > -rw-r--r--. 1 jsnow jsnow 229 May  7  2025
> > /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
> >
> >> $ /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
> >>   run --run-as-current-user -w /home/jsnow/src/qemu/build -v \
> >>   /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
> >>   touch -v new_file && ls -al new_file
> >
> > There's no "-v" option for touch, but:
> >
>
> Copy-paste mistake sorry, thanks for fixing command.
>
> > ~> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
> >                                                                   run
> > --run-as-current-user -w /home/jsnow/src/qemu/build -v \
> >
> > /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
> >
> > touch new_file && ls -al new_file
> > touch: cannot touch 'new_file': Permission denied
> > Traceback (most recent call last):
> >   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
> > in <module>
> >     sys.exit(main())
> >              ~~~~^^
> >   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
> >     return args.cmdobj.run(args, argv)
> >            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
> >   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
> >     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
> >            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >                                     as_user=args.run_as_current_user)
> >                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
> >     ret = self._do_check(["run", "--rm", "--label",
> >                          "com.qemu.instance.uuid=" + label] + cmd,
> >                          quiet=quiet)
> >   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
> > in _do_check
> >     return subprocess.check_call(self._command + cmd, **kwargs)
> >            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
> >     raise CalledProcessError(retcode, cmd)
> > subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
> > '--label', 'com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2',
> > '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
> > '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
> > 'debian-amd64-cross', 'touch', 'new_file']' returned non-zero exit
> > status 1.
> > filter=--filter=label=com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2
> >
>
> What is the content of your /etc/subuid?
>
> Giving your user id (21266), I guess you have a LDAP account or
> something similar: not a local account.
> I had the same issue on my corporate VM, and had to add an explicit
> mapping for my user.
>
> You should have something like:
>
> $ cat /etc/subuid
> jsnow:100000:65536
> $ cat /etc/subgid
> jsnow:100000:65536

I updated my entries to this; I am still having problems so I assume I
need to refresh my login or restart or some such thing. Will have to
try that a little bit later :)

Do you think it's possible to add a simple "hello world" example that
tries to touch a source file to determine if permissions are
appropriately set up, and if not, gives a nice human-readable error
message? (Along with advice to try --disable-containers as a
fallback.)

>
> Let me know if it solves your problem, else we'll find something else.
>
> >
> >
> >>
> >> This should help us to see what's your effective uid in the container.
> >> Maybe this issue was present before, did you try running make check-tcg
> >> in the past, or not?
> >>
> >>> Is there some kind of setup I have neglected to perform to make this
> >>> new build system work? Is there a way I can skip these tests in the
> >>> meantime...?
> >>>
> >>
> >> You can use ./configure --disable-containers, so it will not try to use
> >> podman.
> >>
> >>> Thanks,
> >>> --js
> >>>
> >>>
> >>
> >> Regards,
> >> Pierrick
> >>
> >
>
Re: [PULL v2 000/105] move check-tcg into the meson build
Posted by Pierrick Bouvier 1 week, 3 days ago
On 9/15/2026 12:22 PM, John Snow wrote:
> On Tue, Sep 15, 2026 at 3:07 PM Pierrick Bouvier
> <pierrick.bouvier@oss.qualcomm.com> wrote:
>>
>> On 9/15/2026 11:26 AM, John Snow wrote:
>>> On Tue, Sep 15, 2026 at 1:17 PM Pierrick Bouvier
>>> <pierrick.bouvier@oss.qualcomm.com> wrote:
>>>>
>>>> On 9/15/2026 9:52 AM, John Snow wrote:
>>>>> On Fri, Sep 4, 2026 at 2:04 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>>>>>>
>>>>>> On Fri, 4 Sept 2026 at 16:08, Alex Bennée <alex.bennee@linaro.org> wrote:
>>>>>>>
>>>>>>> The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:
>>>>>>>
>>>>>>>   Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)
>>>>>>>
>>>>>>> are available in the Git repository at:
>>>>>>>
>>>>>>>   https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2
>>>>>>>
>>>>>>> for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:
>>>>>>>
>>>>>>>   MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)
>>>>>>>
>>>>>>> ----------------------------------------------------------------
>>>>>>> tests/tcg: conversion to meson
>>>>>>>
>>>>>>>   - remove unused variable from multiarch/memory
>>>>>>>   - standardise checking plugin output
>>>>>>>   - bump minimal meson to 1.6.0
>>>>>>>   - introduce meson plumbing for check-tcg
>>>>>>>   - return error code if docker probe fails
>>>>>>>   - add CI/self/mem test to gdbstub prot-none tests
>>>>>>>   - use raw opcode for fprcvt test in arm
>>>>>>>   - remove unused variables from gpc-test
>>>>>>>   - teach probe-gdb-support about mips
>>>>>>>   - identify or1k pc register
>>>>>>>   - port check-tcg logic to meson (all targets)
>>>>>>>   - update documentation
>>>>>>>   - add Pierrick as a maintainer for tests/tcg
>>>>>
>>>>> Hi, I'm having difficulties building after this PR, after eb7f0c14 in
>>>>> particular.
>>>>>
>>>>> I keep seeing stuff like this:
>>>>>
>>>>> FAILED: [code=1] tests/tcg/x86_64-softmmu-hello.test
>>>>> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman
>>>>> run --run-as-current-user -w /home/jsnow/src/qemu/build -v
>>>>> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross
>>>>> x86_64-linux-gnu-gcc
>>>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c -o
>>>>> tests/tcg/x86_64-softmmu-hello.test -static -MMD -MF
>>>>> tests/tcg/x86_64-softmmu-hello.d -Wall -Werror -O0 -g
>>>>> -fno-strict-aliasing -nostdlib -ffreestanding -Wa,--noexecstack -I
>>>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib
>>>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c
>>>>> ../tests/tcg/x86_64/system/boot.S -Wl,-T
>>>>> ../tests/tcg/x86_64/system/kernel.ld -Wl,-melf_x86_64
>>>>> -Wl,--no-warn-rwx-segments -Wl,--build-id=none -lgcc
>>>>> cc1: fatal error:
>>>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c: Permission
>>>>> denied
>>>>> compilation terminated.
>>>>> cc1: fatal error:
>>>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c:
>>>>> Permission denied
>>>>> compilation terminated.
>>>>> cc1: fatal error: ../tests/tcg/x86_64/system/boot.S: Permission denied
>>>>> compilation terminated.
>>>>> Traceback (most recent call last):
>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
>>>>> in <module>
>>>>>     sys.exit(main())
>>>>>              ~~~~^^
>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
>>>>>     return args.cmdobj.run(args, argv)
>>>>>            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
>>>>>     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
>>>>>            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>                                     as_user=args.run_as_current_user)
>>>>>                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
>>>>>     ret = self._do_check(["run", "--rm", "--label",
>>>>>                          "com.qemu.instance.uuid=" + label] + cmd,
>>>>>                          quiet=quiet)
>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
>>>>> in _do_check
>>>>>     return subprocess.check_call(self._command + cmd, **kwargs)
>>>>>            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
>>>>>     raise CalledProcessError(retcode, cmd)
>>>>> subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
>>>>> '--label', 'com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9',
>>>>> '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
>>>>> '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
>>>>> 'debian-amd64-cross', 'x86_64-linux-gnu-gcc',
>>>>> '/home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c', '-o',
>>>>> 'tests/tcg/x86_64-softmmu-hello.test', '-static', '-MMD', '-MF',
>>>>> 'tests/tcg/x86_64-softmmu-hello.d', '-Wall', '-Werror', '-O0', '-g',
>>>>> '-fno-strict-aliasing', '-nostdlib', '-ffreestanding',
>>>>> '-Wa,--noexecstack', '-I',
>>>>> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib',
>>>>> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c',
>>>>> '../tests/tcg/x86_64/system/boot.S', '-Wl,-T',
>>>>> '../tests/tcg/x86_64/system/kernel.ld', '-Wl,-melf_x86_64',
>>>>> '-Wl,--no-warn-rwx-segments', '-Wl,--build-id=none', '-lgcc']'
>>>>> returned non-zero exit status 1.
>>>>> filter=--filter=label=com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9
>>>>> ninja: build stopped: subcommand failed.
>>>>> make: *** [Makefile:170: run-ninja] Error 1
>>>>>
>>>>
>>>> Interesting, it seems to be an issue with podman user mapping.
>>>
>>> Maybe something I set up ages ago and promptly forgot about? I haven't
>>> fussed with user mapping permissions in several aeons, it's possible I
>>> have something stale in some config somewhere ...
>>>
>>>>
>>>> Which distro you use (especially which version)?
>>>
>>> ~> cat /etc/fedora-release
>>> Fedora release 44 (Forty Four)
>>>
>>>>
>>>> Also, could you please report output of those commands:
>>>> $ podman --version
>>>
>>> ~> podman --version
>>> podman version 5.8.4
>>>
>>>> $ ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
>>>
>>> ~> ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
>>> -rw-r--r--. 1 jsnow jsnow 229 May  7  2025
>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
>>>
>>>> $ /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
>>>>   run --run-as-current-user -w /home/jsnow/src/qemu/build -v \
>>>>   /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
>>>>   touch -v new_file && ls -al new_file
>>>
>>> There's no "-v" option for touch, but:
>>>
>>
>> Copy-paste mistake sorry, thanks for fixing command.
>>
>>> ~> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
>>>                                                                   run
>>> --run-as-current-user -w /home/jsnow/src/qemu/build -v \
>>>
>>> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
>>>
>>> touch new_file && ls -al new_file
>>> touch: cannot touch 'new_file': Permission denied
>>> Traceback (most recent call last):
>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
>>> in <module>
>>>     sys.exit(main())
>>>              ~~~~^^
>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
>>>     return args.cmdobj.run(args, argv)
>>>            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
>>>     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
>>>            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>                                     as_user=args.run_as_current_user)
>>>                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
>>>     ret = self._do_check(["run", "--rm", "--label",
>>>                          "com.qemu.instance.uuid=" + label] + cmd,
>>>                          quiet=quiet)
>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
>>> in _do_check
>>>     return subprocess.check_call(self._command + cmd, **kwargs)
>>>            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
>>>     raise CalledProcessError(retcode, cmd)
>>> subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
>>> '--label', 'com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2',
>>> '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
>>> '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
>>> 'debian-amd64-cross', 'touch', 'new_file']' returned non-zero exit
>>> status 1.
>>> filter=--filter=label=com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2
>>>
>>
>> What is the content of your /etc/subuid?
>>
>> Giving your user id (21266), I guess you have a LDAP account or
>> something similar: not a local account.
>> I had the same issue on my corporate VM, and had to add an explicit
>> mapping for my user.
>>
>> You should have something like:
>>
>> $ cat /etc/subuid
>> jsnow:100000:65536
>> $ cat /etc/subgid
>> jsnow:100000:65536
> 
> I updated my entries to this; I am still having problems so I assume I
> need to refresh my login or restart or some such thing. Will have to
> try that a little bit later :)
> 
> Do you think it's possible to add a simple "hello world" example that
> tries to touch a source file to determine if permissions are
> appropriately set up, and if not, gives a nice human-readable error
> message? (Along with advice to try --disable-containers as a
> fallback.)
>

It could be possible to add something to docker.py probe directly.
However, it would be good to know why there is an issue on your setup at
the moment, just to rule out another obvious error.

>>
>> Let me know if it solves your problem, else we'll find something else.
>>
>>>
>>>
>>>>
>>>> This should help us to see what's your effective uid in the container.
>>>> Maybe this issue was present before, did you try running make check-tcg
>>>> in the past, or not?
>>>>
>>>>> Is there some kind of setup I have neglected to perform to make this
>>>>> new build system work? Is there a way I can skip these tests in the
>>>>> meantime...?
>>>>>
>>>>
>>>> You can use ./configure --disable-containers, so it will not try to use
>>>> podman.
>>>>
>>>>> Thanks,
>>>>> --js
>>>>>
>>>>>
>>>>
>>>> Regards,
>>>> Pierrick
>>>>
>>>
>>
> 


Re: [PULL v2 000/105] move check-tcg into the meson build
Posted by Pierrick Bouvier 1 week, 3 days ago
On 9/15/2026 1:04 PM, Pierrick Bouvier wrote:
> On 9/15/2026 12:22 PM, John Snow wrote:
>> On Tue, Sep 15, 2026 at 3:07 PM Pierrick Bouvier
>> <pierrick.bouvier@oss.qualcomm.com> wrote:
>>>
>>> On 9/15/2026 11:26 AM, John Snow wrote:
>>>> On Tue, Sep 15, 2026 at 1:17 PM Pierrick Bouvier
>>>> <pierrick.bouvier@oss.qualcomm.com> wrote:
>>>>>
>>>>> On 9/15/2026 9:52 AM, John Snow wrote:
>>>>>> On Fri, Sep 4, 2026 at 2:04 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>>>>>>>
>>>>>>> On Fri, 4 Sept 2026 at 16:08, Alex Bennée <alex.bennee@linaro.org> wrote:
>>>>>>>>
>>>>>>>> The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:
>>>>>>>>
>>>>>>>>   Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)
>>>>>>>>
>>>>>>>> are available in the Git repository at:
>>>>>>>>
>>>>>>>>   https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2
>>>>>>>>
>>>>>>>> for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:
>>>>>>>>
>>>>>>>>   MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)
>>>>>>>>
>>>>>>>> ----------------------------------------------------------------
>>>>>>>> tests/tcg: conversion to meson
>>>>>>>>
>>>>>>>>   - remove unused variable from multiarch/memory
>>>>>>>>   - standardise checking plugin output
>>>>>>>>   - bump minimal meson to 1.6.0
>>>>>>>>   - introduce meson plumbing for check-tcg
>>>>>>>>   - return error code if docker probe fails
>>>>>>>>   - add CI/self/mem test to gdbstub prot-none tests
>>>>>>>>   - use raw opcode for fprcvt test in arm
>>>>>>>>   - remove unused variables from gpc-test
>>>>>>>>   - teach probe-gdb-support about mips
>>>>>>>>   - identify or1k pc register
>>>>>>>>   - port check-tcg logic to meson (all targets)
>>>>>>>>   - update documentation
>>>>>>>>   - add Pierrick as a maintainer for tests/tcg
>>>>>>
>>>>>> Hi, I'm having difficulties building after this PR, after eb7f0c14 in
>>>>>> particular.
>>>>>>
>>>>>> I keep seeing stuff like this:
>>>>>>
>>>>>> FAILED: [code=1] tests/tcg/x86_64-softmmu-hello.test
>>>>>> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman
>>>>>> run --run-as-current-user -w /home/jsnow/src/qemu/build -v
>>>>>> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross
>>>>>> x86_64-linux-gnu-gcc
>>>>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c -o
>>>>>> tests/tcg/x86_64-softmmu-hello.test -static -MMD -MF
>>>>>> tests/tcg/x86_64-softmmu-hello.d -Wall -Werror -O0 -g
>>>>>> -fno-strict-aliasing -nostdlib -ffreestanding -Wa,--noexecstack -I
>>>>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib
>>>>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c
>>>>>> ../tests/tcg/x86_64/system/boot.S -Wl,-T
>>>>>> ../tests/tcg/x86_64/system/kernel.ld -Wl,-melf_x86_64
>>>>>> -Wl,--no-warn-rwx-segments -Wl,--build-id=none -lgcc
>>>>>> cc1: fatal error:
>>>>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c: Permission
>>>>>> denied
>>>>>> compilation terminated.
>>>>>> cc1: fatal error:
>>>>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c:
>>>>>> Permission denied
>>>>>> compilation terminated.
>>>>>> cc1: fatal error: ../tests/tcg/x86_64/system/boot.S: Permission denied
>>>>>> compilation terminated.
>>>>>> Traceback (most recent call last):
>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
>>>>>> in <module>
>>>>>>     sys.exit(main())
>>>>>>              ~~~~^^
>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
>>>>>>     return args.cmdobj.run(args, argv)
>>>>>>            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
>>>>>>     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
>>>>>>            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>                                     as_user=args.run_as_current_user)
>>>>>>                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
>>>>>>     ret = self._do_check(["run", "--rm", "--label",
>>>>>>                          "com.qemu.instance.uuid=" + label] + cmd,
>>>>>>                          quiet=quiet)
>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
>>>>>> in _do_check
>>>>>>     return subprocess.check_call(self._command + cmd, **kwargs)
>>>>>>            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
>>>>>>     raise CalledProcessError(retcode, cmd)
>>>>>> subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
>>>>>> '--label', 'com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9',
>>>>>> '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
>>>>>> '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
>>>>>> 'debian-amd64-cross', 'x86_64-linux-gnu-gcc',
>>>>>> '/home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c', '-o',
>>>>>> 'tests/tcg/x86_64-softmmu-hello.test', '-static', '-MMD', '-MF',
>>>>>> 'tests/tcg/x86_64-softmmu-hello.d', '-Wall', '-Werror', '-O0', '-g',
>>>>>> '-fno-strict-aliasing', '-nostdlib', '-ffreestanding',
>>>>>> '-Wa,--noexecstack', '-I',
>>>>>> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib',
>>>>>> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c',
>>>>>> '../tests/tcg/x86_64/system/boot.S', '-Wl,-T',
>>>>>> '../tests/tcg/x86_64/system/kernel.ld', '-Wl,-melf_x86_64',
>>>>>> '-Wl,--no-warn-rwx-segments', '-Wl,--build-id=none', '-lgcc']'
>>>>>> returned non-zero exit status 1.
>>>>>> filter=--filter=label=com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9
>>>>>> ninja: build stopped: subcommand failed.
>>>>>> make: *** [Makefile:170: run-ninja] Error 1
>>>>>>
>>>>>
>>>>> Interesting, it seems to be an issue with podman user mapping.
>>>>
>>>> Maybe something I set up ages ago and promptly forgot about? I haven't
>>>> fussed with user mapping permissions in several aeons, it's possible I
>>>> have something stale in some config somewhere ...
>>>>
>>>>>
>>>>> Which distro you use (especially which version)?
>>>>
>>>> ~> cat /etc/fedora-release
>>>> Fedora release 44 (Forty Four)
>>>>
>>>>>
>>>>> Also, could you please report output of those commands:
>>>>> $ podman --version
>>>>
>>>> ~> podman --version
>>>> podman version 5.8.4
>>>>
>>>>> $ ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
>>>>
>>>> ~> ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
>>>> -rw-r--r--. 1 jsnow jsnow 229 May  7  2025
>>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
>>>>
>>>>> $ /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
>>>>>   run --run-as-current-user -w /home/jsnow/src/qemu/build -v \
>>>>>   /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
>>>>>   touch -v new_file && ls -al new_file
>>>>
>>>> There's no "-v" option for touch, but:
>>>>
>>>
>>> Copy-paste mistake sorry, thanks for fixing command.
>>>
>>>> ~> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
>>>>                                                                   run
>>>> --run-as-current-user -w /home/jsnow/src/qemu/build -v \
>>>>
>>>> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
>>>>
>>>> touch new_file && ls -al new_file
>>>> touch: cannot touch 'new_file': Permission denied
>>>> Traceback (most recent call last):
>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
>>>> in <module>
>>>>     sys.exit(main())
>>>>              ~~~~^^
>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
>>>>     return args.cmdobj.run(args, argv)
>>>>            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
>>>>     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
>>>>            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>                                     as_user=args.run_as_current_user)
>>>>                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
>>>>     ret = self._do_check(["run", "--rm", "--label",
>>>>                          "com.qemu.instance.uuid=" + label] + cmd,
>>>>                          quiet=quiet)
>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
>>>> in _do_check
>>>>     return subprocess.check_call(self._command + cmd, **kwargs)
>>>>            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
>>>>     raise CalledProcessError(retcode, cmd)
>>>> subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
>>>> '--label', 'com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2',
>>>> '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
>>>> '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
>>>> 'debian-amd64-cross', 'touch', 'new_file']' returned non-zero exit
>>>> status 1.
>>>> filter=--filter=label=com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2
>>>>
>>>
>>> What is the content of your /etc/subuid?
>>>
>>> Giving your user id (21266), I guess you have a LDAP account or
>>> something similar: not a local account.
>>> I had the same issue on my corporate VM, and had to add an explicit
>>> mapping for my user.
>>>
>>> You should have something like:
>>>
>>> $ cat /etc/subuid
>>> jsnow:100000:65536
>>> $ cat /etc/subgid
>>> jsnow:100000:65536
>>
>> I updated my entries to this; I am still having problems so I assume I
>> need to refresh my login or restart or some such thing. Will have to
>> try that a little bit later :)
>>
>> Do you think it's possible to add a simple "hello world" example that
>> tries to touch a source file to determine if permissions are
>> appropriately set up, and if not, gives a nice human-readable error
>> message? (Along with advice to try --disable-containers as a
>> fallback.)
>>
> 
> It could be possible to add something to docker.py probe directly.
> However, it would be good to know why there is an issue on your setup at
> the moment, just to rule out another obvious error.
>

Would that be possible to try a shared mount (:z)?

/home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
 run --run-as-current-user -w /home/jsnow/src/qemu/build -v \
 /home/jsnow/src/qemu:/home/jsnow/src/qemu:z debian-amd64-cross \
 touch -v new_file && ls -al new_file

If it works, that's related to SELinux blocking such access by default.
And we can add the flag inconditionally.

>>>
>>> Let me know if it solves your problem, else we'll find something else.
>>>
>>>>
>>>>
>>>>>
>>>>> This should help us to see what's your effective uid in the container.
>>>>> Maybe this issue was present before, did you try running make check-tcg
>>>>> in the past, or not?
>>>>>
>>>>>> Is there some kind of setup I have neglected to perform to make this
>>>>>> new build system work? Is there a way I can skip these tests in the
>>>>>> meantime...?
>>>>>>
>>>>>
>>>>> You can use ./configure --disable-containers, so it will not try to use
>>>>> podman.
>>>>>
>>>>>> Thanks,
>>>>>> --js
>>>>>>
>>>>>>
>>>>>
>>>>> Regards,
>>>>> Pierrick
>>>>>
>>>>
>>>
>>
> 


Re: [PULL v2 000/105] move check-tcg into the meson build
Posted by Pierrick Bouvier 1 week, 2 days ago
On 9/15/2026 1:10 PM, Pierrick Bouvier wrote:
> On 9/15/2026 1:04 PM, Pierrick Bouvier wrote:
>> On 9/15/2026 12:22 PM, John Snow wrote:
>>> On Tue, Sep 15, 2026 at 3:07 PM Pierrick Bouvier
>>> <pierrick.bouvier@oss.qualcomm.com> wrote:
>>>>
>>>> On 9/15/2026 11:26 AM, John Snow wrote:
>>>>> On Tue, Sep 15, 2026 at 1:17 PM Pierrick Bouvier
>>>>> <pierrick.bouvier@oss.qualcomm.com> wrote:
>>>>>>
>>>>>> On 9/15/2026 9:52 AM, John Snow wrote:
>>>>>>> On Fri, Sep 4, 2026 at 2:04 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>>>>>>>>
>>>>>>>> On Fri, 4 Sept 2026 at 16:08, Alex Bennée <alex.bennee@linaro.org> wrote:
>>>>>>>>>
>>>>>>>>> The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:
>>>>>>>>>
>>>>>>>>>   Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)
>>>>>>>>>
>>>>>>>>> are available in the Git repository at:
>>>>>>>>>
>>>>>>>>>   https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2
>>>>>>>>>
>>>>>>>>> for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:
>>>>>>>>>
>>>>>>>>>   MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)
>>>>>>>>>
>>>>>>>>> ----------------------------------------------------------------
>>>>>>>>> tests/tcg: conversion to meson
>>>>>>>>>
>>>>>>>>>   - remove unused variable from multiarch/memory
>>>>>>>>>   - standardise checking plugin output
>>>>>>>>>   - bump minimal meson to 1.6.0
>>>>>>>>>   - introduce meson plumbing for check-tcg
>>>>>>>>>   - return error code if docker probe fails
>>>>>>>>>   - add CI/self/mem test to gdbstub prot-none tests
>>>>>>>>>   - use raw opcode for fprcvt test in arm
>>>>>>>>>   - remove unused variables from gpc-test
>>>>>>>>>   - teach probe-gdb-support about mips
>>>>>>>>>   - identify or1k pc register
>>>>>>>>>   - port check-tcg logic to meson (all targets)
>>>>>>>>>   - update documentation
>>>>>>>>>   - add Pierrick as a maintainer for tests/tcg
>>>>>>>
>>>>>>> Hi, I'm having difficulties building after this PR, after eb7f0c14 in
>>>>>>> particular.
>>>>>>>
>>>>>>> I keep seeing stuff like this:
>>>>>>>
>>>>>>> FAILED: [code=1] tests/tcg/x86_64-softmmu-hello.test
>>>>>>> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman
>>>>>>> run --run-as-current-user -w /home/jsnow/src/qemu/build -v
>>>>>>> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross
>>>>>>> x86_64-linux-gnu-gcc
>>>>>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c -o
>>>>>>> tests/tcg/x86_64-softmmu-hello.test -static -MMD -MF
>>>>>>> tests/tcg/x86_64-softmmu-hello.d -Wall -Werror -O0 -g
>>>>>>> -fno-strict-aliasing -nostdlib -ffreestanding -Wa,--noexecstack -I
>>>>>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib
>>>>>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c
>>>>>>> ../tests/tcg/x86_64/system/boot.S -Wl,-T
>>>>>>> ../tests/tcg/x86_64/system/kernel.ld -Wl,-melf_x86_64
>>>>>>> -Wl,--no-warn-rwx-segments -Wl,--build-id=none -lgcc
>>>>>>> cc1: fatal error:
>>>>>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c: Permission
>>>>>>> denied
>>>>>>> compilation terminated.
>>>>>>> cc1: fatal error:
>>>>>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c:
>>>>>>> Permission denied
>>>>>>> compilation terminated.
>>>>>>> cc1: fatal error: ../tests/tcg/x86_64/system/boot.S: Permission denied
>>>>>>> compilation terminated.
>>>>>>> Traceback (most recent call last):
>>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
>>>>>>> in <module>
>>>>>>>     sys.exit(main())
>>>>>>>              ~~~~^^
>>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
>>>>>>>     return args.cmdobj.run(args, argv)
>>>>>>>            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
>>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
>>>>>>>     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
>>>>>>>            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>>                                     as_user=args.run_as_current_user)
>>>>>>>                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
>>>>>>>     ret = self._do_check(["run", "--rm", "--label",
>>>>>>>                          "com.qemu.instance.uuid=" + label] + cmd,
>>>>>>>                          quiet=quiet)
>>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
>>>>>>> in _do_check
>>>>>>>     return subprocess.check_call(self._command + cmd, **kwargs)
>>>>>>>            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>>   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
>>>>>>>     raise CalledProcessError(retcode, cmd)
>>>>>>> subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
>>>>>>> '--label', 'com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9',
>>>>>>> '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
>>>>>>> '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
>>>>>>> 'debian-amd64-cross', 'x86_64-linux-gnu-gcc',
>>>>>>> '/home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c', '-o',
>>>>>>> 'tests/tcg/x86_64-softmmu-hello.test', '-static', '-MMD', '-MF',
>>>>>>> 'tests/tcg/x86_64-softmmu-hello.d', '-Wall', '-Werror', '-O0', '-g',
>>>>>>> '-fno-strict-aliasing', '-nostdlib', '-ffreestanding',
>>>>>>> '-Wa,--noexecstack', '-I',
>>>>>>> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib',
>>>>>>> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c',
>>>>>>> '../tests/tcg/x86_64/system/boot.S', '-Wl,-T',
>>>>>>> '../tests/tcg/x86_64/system/kernel.ld', '-Wl,-melf_x86_64',
>>>>>>> '-Wl,--no-warn-rwx-segments', '-Wl,--build-id=none', '-lgcc']'
>>>>>>> returned non-zero exit status 1.
>>>>>>> filter=--filter=label=com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9
>>>>>>> ninja: build stopped: subcommand failed.
>>>>>>> make: *** [Makefile:170: run-ninja] Error 1
>>>>>>>
>>>>>>
>>>>>> Interesting, it seems to be an issue with podman user mapping.
>>>>>
>>>>> Maybe something I set up ages ago and promptly forgot about? I haven't
>>>>> fussed with user mapping permissions in several aeons, it's possible I
>>>>> have something stale in some config somewhere ...
>>>>>
>>>>>>
>>>>>> Which distro you use (especially which version)?
>>>>>
>>>>> ~> cat /etc/fedora-release
>>>>> Fedora release 44 (Forty Four)
>>>>>
>>>>>>
>>>>>> Also, could you please report output of those commands:
>>>>>> $ podman --version
>>>>>
>>>>> ~> podman --version
>>>>> podman version 5.8.4
>>>>>
>>>>>> $ ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
>>>>>
>>>>> ~> ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
>>>>> -rw-r--r--. 1 jsnow jsnow 229 May  7  2025
>>>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
>>>>>
>>>>>> $ /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
>>>>>>   run --run-as-current-user -w /home/jsnow/src/qemu/build -v \
>>>>>>   /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
>>>>>>   touch -v new_file && ls -al new_file
>>>>>
>>>>> There's no "-v" option for touch, but:
>>>>>
>>>>
>>>> Copy-paste mistake sorry, thanks for fixing command.
>>>>
>>>>> ~> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
>>>>>                                                                   run
>>>>> --run-as-current-user -w /home/jsnow/src/qemu/build -v \
>>>>>
>>>>> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
>>>>>
>>>>> touch new_file && ls -al new_file
>>>>> touch: cannot touch 'new_file': Permission denied
>>>>> Traceback (most recent call last):
>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
>>>>> in <module>
>>>>>     sys.exit(main())
>>>>>              ~~~~^^
>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
>>>>>     return args.cmdobj.run(args, argv)
>>>>>            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
>>>>>     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
>>>>>            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>                                     as_user=args.run_as_current_user)
>>>>>                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
>>>>>     ret = self._do_check(["run", "--rm", "--label",
>>>>>                          "com.qemu.instance.uuid=" + label] + cmd,
>>>>>                          quiet=quiet)
>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
>>>>> in _do_check
>>>>>     return subprocess.check_call(self._command + cmd, **kwargs)
>>>>>            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
>>>>>     raise CalledProcessError(retcode, cmd)
>>>>> subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
>>>>> '--label', 'com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2',
>>>>> '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
>>>>> '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
>>>>> 'debian-amd64-cross', 'touch', 'new_file']' returned non-zero exit
>>>>> status 1.
>>>>> filter=--filter=label=com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2
>>>>>
>>>>
>>>> What is the content of your /etc/subuid?
>>>>
>>>> Giving your user id (21266), I guess you have a LDAP account or
>>>> something similar: not a local account.
>>>> I had the same issue on my corporate VM, and had to add an explicit
>>>> mapping for my user.
>>>>
>>>> You should have something like:
>>>>
>>>> $ cat /etc/subuid
>>>> jsnow:100000:65536
>>>> $ cat /etc/subgid
>>>> jsnow:100000:65536
>>>
>>> I updated my entries to this; I am still having problems so I assume I
>>> need to refresh my login or restart or some such thing. Will have to
>>> try that a little bit later :)
>>>
>>> Do you think it's possible to add a simple "hello world" example that
>>> tries to touch a source file to determine if permissions are
>>> appropriately set up, and if not, gives a nice human-readable error
>>> message? (Along with advice to try --disable-containers as a
>>> fallback.)
>>>
>>
>> It could be possible to add something to docker.py probe directly.
>> However, it would be good to know why there is an issue on your setup at
>> the moment, just to rule out another obvious error.
>>
> 
> Would that be possible to try a shared mount (:z)?
> 
> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
>  run --run-as-current-user -w /home/jsnow/src/qemu/build -v \
>  /home/jsnow/src/qemu:/home/jsnow/src/qemu:z debian-amd64-cross \
>  touch -v new_file && ls -al new_file
> 
> If it works, that's related to SELinux blocking such access by default.
> And we can add the flag inconditionally.
>

I installed fedora and could reproduce the issue. SELinux is enabled by
default, to the opposite of debian.

The right fix is not :z (not enough with podman), but to use
--security-opt label=disable, which works with docker and podman.

I'll send a patch today so Alex can include it in his PR tomorrow.

Regards,
Pierrick

Re: [PULL v2 000/105] move check-tcg into the meson build
Posted by Pierrick Bouvier 1 week, 1 day ago
On 9/17/2026 12:27 PM, Pierrick Bouvier wrote:
> On 9/15/2026 1:10 PM, Pierrick Bouvier wrote:
>> On 9/15/2026 1:04 PM, Pierrick Bouvier wrote:
>>> On 9/15/2026 12:22 PM, John Snow wrote:
>>>> On Tue, Sep 15, 2026 at 3:07 PM Pierrick Bouvier
>>>> <pierrick.bouvier@oss.qualcomm.com> wrote:
>>>>>
>>>>> On 9/15/2026 11:26 AM, John Snow wrote:
>>>>>> On Tue, Sep 15, 2026 at 1:17 PM Pierrick Bouvier
>>>>>> <pierrick.bouvier@oss.qualcomm.com> wrote:
>>>>>>>
>>>>>>> On 9/15/2026 9:52 AM, John Snow wrote:
>>>>>>>> On Fri, Sep 4, 2026 at 2:04 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>>>>>>>>>
>>>>>>>>> On Fri, 4 Sept 2026 at 16:08, Alex Bennée <alex.bennee@linaro.org> wrote:
>>>>>>>>>>
>>>>>>>>>> The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:
>>>>>>>>>>
>>>>>>>>>>   Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)
>>>>>>>>>>
>>>>>>>>>> are available in the Git repository at:
>>>>>>>>>>
>>>>>>>>>>   https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2
>>>>>>>>>>
>>>>>>>>>> for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:
>>>>>>>>>>
>>>>>>>>>>   MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)
>>>>>>>>>>
>>>>>>>>>> ----------------------------------------------------------------
>>>>>>>>>> tests/tcg: conversion to meson
>>>>>>>>>>
>>>>>>>>>>   - remove unused variable from multiarch/memory
>>>>>>>>>>   - standardise checking plugin output
>>>>>>>>>>   - bump minimal meson to 1.6.0
>>>>>>>>>>   - introduce meson plumbing for check-tcg
>>>>>>>>>>   - return error code if docker probe fails
>>>>>>>>>>   - add CI/self/mem test to gdbstub prot-none tests
>>>>>>>>>>   - use raw opcode for fprcvt test in arm
>>>>>>>>>>   - remove unused variables from gpc-test
>>>>>>>>>>   - teach probe-gdb-support about mips
>>>>>>>>>>   - identify or1k pc register
>>>>>>>>>>   - port check-tcg logic to meson (all targets)
>>>>>>>>>>   - update documentation
>>>>>>>>>>   - add Pierrick as a maintainer for tests/tcg
>>>>>>>>
>>>>>>>> Hi, I'm having difficulties building after this PR, after eb7f0c14 in
>>>>>>>> particular.
>>>>>>>>
>>>>>>>> I keep seeing stuff like this:
>>>>>>>>
>>>>>>>> FAILED: [code=1] tests/tcg/x86_64-softmmu-hello.test
>>>>>>>> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman
>>>>>>>> run --run-as-current-user -w /home/jsnow/src/qemu/build -v
>>>>>>>> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross
>>>>>>>> x86_64-linux-gnu-gcc
>>>>>>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c -o
>>>>>>>> tests/tcg/x86_64-softmmu-hello.test -static -MMD -MF
>>>>>>>> tests/tcg/x86_64-softmmu-hello.d -Wall -Werror -O0 -g
>>>>>>>> -fno-strict-aliasing -nostdlib -ffreestanding -Wa,--noexecstack -I
>>>>>>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib
>>>>>>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c
>>>>>>>> ../tests/tcg/x86_64/system/boot.S -Wl,-T
>>>>>>>> ../tests/tcg/x86_64/system/kernel.ld -Wl,-melf_x86_64
>>>>>>>> -Wl,--no-warn-rwx-segments -Wl,--build-id=none -lgcc
>>>>>>>> cc1: fatal error:
>>>>>>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c: Permission
>>>>>>>> denied
>>>>>>>> compilation terminated.
>>>>>>>> cc1: fatal error:
>>>>>>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c:
>>>>>>>> Permission denied
>>>>>>>> compilation terminated.
>>>>>>>> cc1: fatal error: ../tests/tcg/x86_64/system/boot.S: Permission denied
>>>>>>>> compilation terminated.
>>>>>>>> Traceback (most recent call last):
>>>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
>>>>>>>> in <module>
>>>>>>>>     sys.exit(main())
>>>>>>>>              ~~~~^^
>>>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
>>>>>>>>     return args.cmdobj.run(args, argv)
>>>>>>>>            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
>>>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
>>>>>>>>     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
>>>>>>>>            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>>>                                     as_user=args.run_as_current_user)
>>>>>>>>                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
>>>>>>>>     ret = self._do_check(["run", "--rm", "--label",
>>>>>>>>                          "com.qemu.instance.uuid=" + label] + cmd,
>>>>>>>>                          quiet=quiet)
>>>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
>>>>>>>> in _do_check
>>>>>>>>     return subprocess.check_call(self._command + cmd, **kwargs)
>>>>>>>>            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>>>   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
>>>>>>>>     raise CalledProcessError(retcode, cmd)
>>>>>>>> subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
>>>>>>>> '--label', 'com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9',
>>>>>>>> '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
>>>>>>>> '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
>>>>>>>> 'debian-amd64-cross', 'x86_64-linux-gnu-gcc',
>>>>>>>> '/home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c', '-o',
>>>>>>>> 'tests/tcg/x86_64-softmmu-hello.test', '-static', '-MMD', '-MF',
>>>>>>>> 'tests/tcg/x86_64-softmmu-hello.d', '-Wall', '-Werror', '-O0', '-g',
>>>>>>>> '-fno-strict-aliasing', '-nostdlib', '-ffreestanding',
>>>>>>>> '-Wa,--noexecstack', '-I',
>>>>>>>> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib',
>>>>>>>> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c',
>>>>>>>> '../tests/tcg/x86_64/system/boot.S', '-Wl,-T',
>>>>>>>> '../tests/tcg/x86_64/system/kernel.ld', '-Wl,-melf_x86_64',
>>>>>>>> '-Wl,--no-warn-rwx-segments', '-Wl,--build-id=none', '-lgcc']'
>>>>>>>> returned non-zero exit status 1.
>>>>>>>> filter=--filter=label=com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9
>>>>>>>> ninja: build stopped: subcommand failed.
>>>>>>>> make: *** [Makefile:170: run-ninja] Error 1
>>>>>>>>
>>>>>>>
>>>>>>> Interesting, it seems to be an issue with podman user mapping.
>>>>>>
>>>>>> Maybe something I set up ages ago and promptly forgot about? I haven't
>>>>>> fussed with user mapping permissions in several aeons, it's possible I
>>>>>> have something stale in some config somewhere ...
>>>>>>
>>>>>>>
>>>>>>> Which distro you use (especially which version)?
>>>>>>
>>>>>> ~> cat /etc/fedora-release
>>>>>> Fedora release 44 (Forty Four)
>>>>>>
>>>>>>>
>>>>>>> Also, could you please report output of those commands:
>>>>>>> $ podman --version
>>>>>>
>>>>>> ~> podman --version
>>>>>> podman version 5.8.4
>>>>>>
>>>>>>> $ ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
>>>>>>
>>>>>> ~> ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
>>>>>> -rw-r--r--. 1 jsnow jsnow 229 May  7  2025
>>>>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
>>>>>>
>>>>>>> $ /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
>>>>>>>   run --run-as-current-user -w /home/jsnow/src/qemu/build -v \
>>>>>>>   /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
>>>>>>>   touch -v new_file && ls -al new_file
>>>>>>
>>>>>> There's no "-v" option for touch, but:
>>>>>>
>>>>>
>>>>> Copy-paste mistake sorry, thanks for fixing command.
>>>>>
>>>>>> ~> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
>>>>>>                                                                   run
>>>>>> --run-as-current-user -w /home/jsnow/src/qemu/build -v \
>>>>>>
>>>>>> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
>>>>>>
>>>>>> touch new_file && ls -al new_file
>>>>>> touch: cannot touch 'new_file': Permission denied
>>>>>> Traceback (most recent call last):
>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
>>>>>> in <module>
>>>>>>     sys.exit(main())
>>>>>>              ~~~~^^
>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
>>>>>>     return args.cmdobj.run(args, argv)
>>>>>>            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
>>>>>>     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
>>>>>>            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>                                     as_user=args.run_as_current_user)
>>>>>>                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
>>>>>>     ret = self._do_check(["run", "--rm", "--label",
>>>>>>                          "com.qemu.instance.uuid=" + label] + cmd,
>>>>>>                          quiet=quiet)
>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
>>>>>> in _do_check
>>>>>>     return subprocess.check_call(self._command + cmd, **kwargs)
>>>>>>            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
>>>>>>     raise CalledProcessError(retcode, cmd)
>>>>>> subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
>>>>>> '--label', 'com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2',
>>>>>> '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
>>>>>> '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
>>>>>> 'debian-amd64-cross', 'touch', 'new_file']' returned non-zero exit
>>>>>> status 1.
>>>>>> filter=--filter=label=com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2
>>>>>>
>>>>>
>>>>> What is the content of your /etc/subuid?
>>>>>
>>>>> Giving your user id (21266), I guess you have a LDAP account or
>>>>> something similar: not a local account.
>>>>> I had the same issue on my corporate VM, and had to add an explicit
>>>>> mapping for my user.
>>>>>
>>>>> You should have something like:
>>>>>
>>>>> $ cat /etc/subuid
>>>>> jsnow:100000:65536
>>>>> $ cat /etc/subgid
>>>>> jsnow:100000:65536
>>>>
>>>> I updated my entries to this; I am still having problems so I assume I
>>>> need to refresh my login or restart or some such thing. Will have to
>>>> try that a little bit later :)
>>>>
>>>> Do you think it's possible to add a simple "hello world" example that
>>>> tries to touch a source file to determine if permissions are
>>>> appropriately set up, and if not, gives a nice human-readable error
>>>> message? (Along with advice to try --disable-containers as a
>>>> fallback.)
>>>>
>>>
>>> It could be possible to add something to docker.py probe directly.
>>> However, it would be good to know why there is an issue on your setup at
>>> the moment, just to rule out another obvious error.
>>>
>>
>> Would that be possible to try a shared mount (:z)?
>>
>> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
>>  run --run-as-current-user -w /home/jsnow/src/qemu/build -v \
>>  /home/jsnow/src/qemu:/home/jsnow/src/qemu:z debian-amd64-cross \
>>  touch -v new_file && ls -al new_file
>>
>> If it works, that's related to SELinux blocking such access by default.
>> And we can add the flag inconditionally.
>>
> 
> I installed fedora and could reproduce the issue. SELinux is enabled by
> default, to the opposite of debian.
> 
> The right fix is not :z (not enough with podman), but to use
> --security-opt label=disable, which works with docker and podman.
> 
> I'll send a patch today so Alex can include it in his PR tomorrow.
>

Sent:
https://lore.kernel.org/qemu-devel/20260917221117.274619-2-pierrick.bouvier@oss.qualcomm.com/T/#

> Regards,
> Pierrick


Re: [PULL v2 000/105] move check-tcg into the meson build
Posted by John Snow 1 week, 1 day ago
On Thu, Sep 17, 2026 at 6:12 PM Pierrick Bouvier
<pierrick.bouvier@oss.qualcomm.com> wrote:
>
> On 9/17/2026 12:27 PM, Pierrick Bouvier wrote:
> > On 9/15/2026 1:10 PM, Pierrick Bouvier wrote:
> >> On 9/15/2026 1:04 PM, Pierrick Bouvier wrote:
> >>> On 9/15/2026 12:22 PM, John Snow wrote:
> >>>> On Tue, Sep 15, 2026 at 3:07 PM Pierrick Bouvier
> >>>> <pierrick.bouvier@oss.qualcomm.com> wrote:
> >>>>>
> >>>>> On 9/15/2026 11:26 AM, John Snow wrote:
> >>>>>> On Tue, Sep 15, 2026 at 1:17 PM Pierrick Bouvier
> >>>>>> <pierrick.bouvier@oss.qualcomm.com> wrote:
> >>>>>>>
> >>>>>>> On 9/15/2026 9:52 AM, John Snow wrote:
> >>>>>>>> On Fri, Sep 4, 2026 at 2:04 PM Peter Maydell <peter.maydell@linaro.org> wrote:
> >>>>>>>>>
> >>>>>>>>> On Fri, 4 Sept 2026 at 16:08, Alex Bennée <alex.bennee@linaro.org> wrote:
> >>>>>>>>>>
> >>>>>>>>>> The following changes since commit d2843fbf80260e4346c856819e8cea11768c9d0e:
> >>>>>>>>>>
> >>>>>>>>>>   Merge tag 'pull-riscv-to-apply-20260904' of https://github.com/alistair23/qemu into staging (2026-09-04 09:43:27 +0100)
> >>>>>>>>>>
> >>>>>>>>>> are available in the Git repository at:
> >>>>>>>>>>
> >>>>>>>>>>   https://gitlab.com/stsquad/qemu.git tags/pull-11.1-check-tcg-meson-040926-2
> >>>>>>>>>>
> >>>>>>>>>> for you to fetch changes up to 7a485176838e6b6044e73f925d308bb4b3002597:
> >>>>>>>>>>
> >>>>>>>>>>   MAINTAINERS: add maintainer for tcg/tests meson infrastructure (2026-09-04 16:06:22 +0100)
> >>>>>>>>>>
> >>>>>>>>>> ----------------------------------------------------------------
> >>>>>>>>>> tests/tcg: conversion to meson
> >>>>>>>>>>
> >>>>>>>>>>   - remove unused variable from multiarch/memory
> >>>>>>>>>>   - standardise checking plugin output
> >>>>>>>>>>   - bump minimal meson to 1.6.0
> >>>>>>>>>>   - introduce meson plumbing for check-tcg
> >>>>>>>>>>   - return error code if docker probe fails
> >>>>>>>>>>   - add CI/self/mem test to gdbstub prot-none tests
> >>>>>>>>>>   - use raw opcode for fprcvt test in arm
> >>>>>>>>>>   - remove unused variables from gpc-test
> >>>>>>>>>>   - teach probe-gdb-support about mips
> >>>>>>>>>>   - identify or1k pc register
> >>>>>>>>>>   - port check-tcg logic to meson (all targets)
> >>>>>>>>>>   - update documentation
> >>>>>>>>>>   - add Pierrick as a maintainer for tests/tcg
> >>>>>>>>
> >>>>>>>> Hi, I'm having difficulties building after this PR, after eb7f0c14 in
> >>>>>>>> particular.
> >>>>>>>>
> >>>>>>>> I keep seeing stuff like this:
> >>>>>>>>
> >>>>>>>> FAILED: [code=1] tests/tcg/x86_64-softmmu-hello.test
> >>>>>>>> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman
> >>>>>>>> run --run-as-current-user -w /home/jsnow/src/qemu/build -v
> >>>>>>>> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross
> >>>>>>>> x86_64-linux-gnu-gcc
> >>>>>>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c -o
> >>>>>>>> tests/tcg/x86_64-softmmu-hello.test -static -MMD -MF
> >>>>>>>> tests/tcg/x86_64-softmmu-hello.d -Wall -Werror -O0 -g
> >>>>>>>> -fno-strict-aliasing -nostdlib -ffreestanding -Wa,--noexecstack -I
> >>>>>>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib
> >>>>>>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c
> >>>>>>>> ../tests/tcg/x86_64/system/boot.S -Wl,-T
> >>>>>>>> ../tests/tcg/x86_64/system/kernel.ld -Wl,-melf_x86_64
> >>>>>>>> -Wl,--no-warn-rwx-segments -Wl,--build-id=none -lgcc
> >>>>>>>> cc1: fatal error:
> >>>>>>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c: Permission
> >>>>>>>> denied
> >>>>>>>> compilation terminated.
> >>>>>>>> cc1: fatal error:
> >>>>>>>> /home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c:
> >>>>>>>> Permission denied
> >>>>>>>> compilation terminated.
> >>>>>>>> cc1: fatal error: ../tests/tcg/x86_64/system/boot.S: Permission denied
> >>>>>>>> compilation terminated.
> >>>>>>>> Traceback (most recent call last):
> >>>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
> >>>>>>>> in <module>
> >>>>>>>>     sys.exit(main())
> >>>>>>>>              ~~~~^^
> >>>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
> >>>>>>>>     return args.cmdobj.run(args, argv)
> >>>>>>>>            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
> >>>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
> >>>>>>>>     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
> >>>>>>>>            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >>>>>>>>                                     as_user=args.run_as_current_user)
> >>>>>>>>                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >>>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
> >>>>>>>>     ret = self._do_check(["run", "--rm", "--label",
> >>>>>>>>                          "com.qemu.instance.uuid=" + label] + cmd,
> >>>>>>>>                          quiet=quiet)
> >>>>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
> >>>>>>>> in _do_check
> >>>>>>>>     return subprocess.check_call(self._command + cmd, **kwargs)
> >>>>>>>>            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >>>>>>>>   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
> >>>>>>>>     raise CalledProcessError(retcode, cmd)
> >>>>>>>> subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
> >>>>>>>> '--label', 'com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9',
> >>>>>>>> '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
> >>>>>>>> '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
> >>>>>>>> 'debian-amd64-cross', 'x86_64-linux-gnu-gcc',
> >>>>>>>> '/home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c', '-o',
> >>>>>>>> 'tests/tcg/x86_64-softmmu-hello.test', '-static', '-MMD', '-MF',
> >>>>>>>> 'tests/tcg/x86_64-softmmu-hello.d', '-Wall', '-Werror', '-O0', '-g',
> >>>>>>>> '-fno-strict-aliasing', '-nostdlib', '-ffreestanding',
> >>>>>>>> '-Wa,--noexecstack', '-I',
> >>>>>>>> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib',
> >>>>>>>> '/home/jsnow/src/qemu/tests/tcg/x86_64/system/../../minilib/printf.c',
> >>>>>>>> '../tests/tcg/x86_64/system/boot.S', '-Wl,-T',
> >>>>>>>> '../tests/tcg/x86_64/system/kernel.ld', '-Wl,-melf_x86_64',
> >>>>>>>> '-Wl,--no-warn-rwx-segments', '-Wl,--build-id=none', '-lgcc']'
> >>>>>>>> returned non-zero exit status 1.
> >>>>>>>> filter=--filter=label=com.qemu.instance.uuid=0df29d1fcdc947f1b0cde41104eebed9
> >>>>>>>> ninja: build stopped: subcommand failed.
> >>>>>>>> make: *** [Makefile:170: run-ninja] Error 1
> >>>>>>>>
> >>>>>>>
> >>>>>>> Interesting, it seems to be an issue with podman user mapping.
> >>>>>>
> >>>>>> Maybe something I set up ages ago and promptly forgot about? I haven't
> >>>>>> fussed with user mapping permissions in several aeons, it's possible I
> >>>>>> have something stale in some config somewhere ...
> >>>>>>
> >>>>>>>
> >>>>>>> Which distro you use (especially which version)?
> >>>>>>
> >>>>>> ~> cat /etc/fedora-release
> >>>>>> Fedora release 44 (Forty Four)
> >>>>>>
> >>>>>>>
> >>>>>>> Also, could you please report output of those commands:
> >>>>>>> $ podman --version
> >>>>>>
> >>>>>> ~> podman --version
> >>>>>> podman version 5.8.4
> >>>>>>
> >>>>>>> $ ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
> >>>>>>
> >>>>>> ~> ls -al /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
> >>>>>> -rw-r--r--. 1 jsnow jsnow 229 May  7  2025
> >>>>>> /home/jsnow/src/qemu/tests/tcg/multiarch/system/hello.c
> >>>>>>
> >>>>>>> $ /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
> >>>>>>>   run --run-as-current-user -w /home/jsnow/src/qemu/build -v \
> >>>>>>>   /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
> >>>>>>>   touch -v new_file && ls -al new_file
> >>>>>>
> >>>>>> There's no "-v" option for touch, but:
> >>>>>>
> >>>>>
> >>>>> Copy-paste mistake sorry, thanks for fixing command.
> >>>>>
> >>>>>> ~> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
> >>>>>>                                                                   run
> >>>>>> --run-as-current-user -w /home/jsnow/src/qemu/build -v \
> >>>>>>
> >>>>>> /home/jsnow/src/qemu:/home/jsnow/src/qemu debian-amd64-cross \
> >>>>>>
> >>>>>> touch new_file && ls -al new_file
> >>>>>> touch: cannot touch 'new_file': Permission denied
> >>>>>> Traceback (most recent call last):
> >>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 657,
> >>>>>> in <module>
> >>>>>>     sys.exit(main())
> >>>>>>              ~~~~^^
> >>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 653, in main
> >>>>>>     return args.cmdobj.run(args, argv)
> >>>>>>            ~~~~~~~~~~~~~~~^^^^^^^^^^^^
> >>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 395, in run
> >>>>>>     return Docker(args.command).run(argv, args.keep, quiet=args.quiet,
> >>>>>>            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >>>>>>                                     as_user=args.run_as_current_user)
> >>>>>>                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 353, in run
> >>>>>>     ret = self._do_check(["run", "--rm", "--label",
> >>>>>>                          "com.qemu.instance.uuid=" + label] + cmd,
> >>>>>>                          quiet=quiet)
> >>>>>>   File "/home/jsnow/src/qemu/tests/tcg/../docker/docker.py", line 230,
> >>>>>> in _do_check
> >>>>>>     return subprocess.check_call(self._command + cmd, **kwargs)
> >>>>>>            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >>>>>>   File "/usr/lib64/python3.14/subprocess.py", line 420, in check_call
> >>>>>>     raise CalledProcessError(retcode, cmd)
> >>>>>> subprocess.CalledProcessError: Command '['podman', 'run', '--rm',
> >>>>>> '--label', 'com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2',
> >>>>>> '--userns=keep-id', '-u', '21266', '-w', '/home/jsnow/src/qemu/build',
> >>>>>> '-v', '/home/jsnow/src/qemu:/home/jsnow/src/qemu',
> >>>>>> 'debian-amd64-cross', 'touch', 'new_file']' returned non-zero exit
> >>>>>> status 1.
> >>>>>> filter=--filter=label=com.qemu.instance.uuid=d2faaf6ef4914d83b429069b4497cbb2
> >>>>>>
> >>>>>
> >>>>> What is the content of your /etc/subuid?
> >>>>>
> >>>>> Giving your user id (21266), I guess you have a LDAP account or
> >>>>> something similar: not a local account.
> >>>>> I had the same issue on my corporate VM, and had to add an explicit
> >>>>> mapping for my user.
> >>>>>
> >>>>> You should have something like:
> >>>>>
> >>>>> $ cat /etc/subuid
> >>>>> jsnow:100000:65536
> >>>>> $ cat /etc/subgid
> >>>>> jsnow:100000:65536
> >>>>
> >>>> I updated my entries to this; I am still having problems so I assume I
> >>>> need to refresh my login or restart or some such thing. Will have to
> >>>> try that a little bit later :)
> >>>>
> >>>> Do you think it's possible to add a simple "hello world" example that
> >>>> tries to touch a source file to determine if permissions are
> >>>> appropriately set up, and if not, gives a nice human-readable error
> >>>> message? (Along with advice to try --disable-containers as a
> >>>> fallback.)
> >>>>
> >>>
> >>> It could be possible to add something to docker.py probe directly.
> >>> However, it would be good to know why there is an issue on your setup at
> >>> the moment, just to rule out another obvious error.
> >>>
> >>
> >> Would that be possible to try a shared mount (:z)?
> >>
> >> /home/jsnow/src/qemu/tests/tcg/../docker/docker.py --command podman \
> >>  run --run-as-current-user -w /home/jsnow/src/qemu/build -v \
> >>  /home/jsnow/src/qemu:/home/jsnow/src/qemu:z debian-amd64-cross \
> >>  touch -v new_file && ls -al new_file
> >>
> >> If it works, that's related to SELinux blocking such access by default.
> >> And we can add the flag inconditionally.
> >>
> >
> > I installed fedora and could reproduce the issue. SELinux is enabled by
> > default, to the opposite of debian.
> >
> > The right fix is not :z (not enough with podman), but to use
> > --security-opt label=disable, which works with docker and podman.
> >
> > I'll send a patch today so Alex can include it in his PR tomorrow.
> >
>
> Sent:
> https://lore.kernel.org/qemu-devel/20260917221117.274619-2-pierrick.bouvier@oss.qualcomm.com/T/#
>

Thanks, you're the best! (Testing shortly, will respond on that series.)

--js