All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/6] tests/tcg: use x86_64 cross containers on all host architectures
@ 2026-09-23 18:57 Pierrick Bouvier
  2026-09-23 18:57 ` [PATCH v2 1/6] tests/tcg/meson.build: force use of linux/amd64 platform for containers Pierrick Bouvier
                   ` (7 more replies)
  0 siblings, 8 replies; 11+ messages in thread
From: Pierrick Bouvier @ 2026-09-23 18:57 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, philmd, berrange, alex.bennee,
	pierrick.bouvier

To increase our testing surface on aarch64 and other hosts, and also to ease
maintenance of docker images, this series introduces x86_64 base containers.
We rely on qemu-user-binfmt (available at least on Fedora and Debian/Ubuntu) to
be installed to execute x86_64 binaries on other host arch.
With this, we can run the full tcg tests suite on any host architecture.

This series exposed an issue with on aarch64 hosts with test
loongarch64-softmmu-memory that was reported in issue:
https://gitlab.com/qemu-project/qemu/-/work_items/4567

v2
--

- Add comment in patch 1 to explain we detect x86_64 containers execution
  capability
- Replace the registry change patch with updated libvirt-ci, that now generates
  arch specific Dockerfiles by default
- Use lcitool --host-arch x86_64 to have stable refresh output on different host
  architectures
- Add a patch to speed up compilation of x86_64/test-avx.c.

Pierrick Bouvier (6):
  tests/tcg/meson.build: force use of linux/amd64 platform for
    containers
  tests/lcitool/refresh: generate dockerfiles using --host-arch x86_64
  tests/docker/dockerfiles/debian-all-test: remove arch specific bits
  tests/tcg/meson.build: remove cc_docker_host_arch
  tests/tcg/loongarch64/system: deactivate loongarch64-softmmu-memory
    (hang on aarch64 host)
  tests/tcg/x86_64: speed up compilation of avx, mmx and 3dnow tests

 tests/docker/dockerfiles/alpine.docker        |  2 +-
 tests/docker/dockerfiles/centos9.docker       |  2 +-
 .../dockerfiles/debian-all-test-cross.docker  | 39 +++++++++----------
 .../dockerfiles/debian-amd64-cross.docker     |  4 +-
 .../dockerfiles/debian-arm64-cross.docker     |  4 +-
 .../dockerfiles/debian-armhf-cross.docker     |  4 +-
 .../dockerfiles/debian-i686-cross.docker      |  4 +-
 .../dockerfiles/debian-ppc64el-cross.docker   |  4 +-
 .../dockerfiles/debian-riscv64-cross.docker   |  4 +-
 .../dockerfiles/debian-s390x-cross.docker     |  4 +-
 tests/docker/dockerfiles/debian.docker        |  4 +-
 .../dockerfiles/fedora-rust-nightly.docker    |  2 +-
 .../dockerfiles/fedora-win64-cross.docker     |  2 +-
 tests/docker/dockerfiles/fedora.docker        |  2 +-
 tests/docker/dockerfiles/opensuse-leap.docker |  2 +-
 tests/docker/dockerfiles/ubuntu2404.docker    |  2 +-
 tests/lcitool/libvirt-ci                      |  2 +-
 tests/lcitool/refresh                         | 37 +++++++++---------
 tests/tcg/aarch64/meson.build                 |  2 -
 tests/tcg/aarch64/system/meson.build          |  1 -
 tests/tcg/aarch64_be/meson.build              |  1 -
 tests/tcg/alpha/meson.build                   |  2 -
 tests/tcg/alpha/system/meson.build            |  1 -
 tests/tcg/arm/meson.build                     |  2 -
 tests/tcg/arm/system/meson.build              |  1 -
 tests/tcg/hexagon/meson.build                 |  1 -
 tests/tcg/hppa/meson.build                    |  1 -
 tests/tcg/i386/meson.build                    |  2 -
 tests/tcg/i386/system/meson.build             |  1 -
 tests/tcg/loongarch64/meson.build             |  2 -
 tests/tcg/loongarch64/system/meson.build      |  6 ++-
 tests/tcg/m68k/meson.build                    |  1 -
 tests/tcg/meson.build                         | 33 +++++++++-------
 tests/tcg/mips/meson.build                    |  1 -
 tests/tcg/mips64/meson.build                  |  1 -
 tests/tcg/mips64el/meson.build                |  1 -
 tests/tcg/or1k/meson.build                    |  1 -
 tests/tcg/ppc64/meson.build                   |  1 -
 tests/tcg/ppc64le/meson.build                 |  1 -
 tests/tcg/riscv64/meson.build                 |  2 -
 tests/tcg/riscv64/system/meson.build          |  1 -
 tests/tcg/s390x/meson.build                   |  2 -
 tests/tcg/s390x/system/meson.build            |  1 -
 tests/tcg/sh4/meson.build                     |  1 -
 tests/tcg/tricore/meson.build                 |  1 -
 tests/tcg/x86_64/meson.build                  |  8 ++--
 tests/tcg/x86_64/system/meson.build           |  1 -
 tests/tcg/xtensa/meson.build                  |  3 --
 48 files changed, 87 insertions(+), 120 deletions(-)

-- 
2.47.3



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 1/6] tests/tcg/meson.build: force use of linux/amd64 platform for containers
  2026-09-23 18:57 [PATCH v2 0/6] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
@ 2026-09-23 18:57 ` Pierrick Bouvier
  2026-09-23 18:57 ` [PATCH v2 2/6] tests/lcitool/refresh: generate dockerfiles using --host-arch x86_64 Pierrick Bouvier
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Pierrick Bouvier @ 2026-09-23 18:57 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, philmd, berrange, alex.bennee,
	pierrick.bouvier

On hosts != x64_64, we detect if host can run amd64 containers (usually
through qemu-user-binfmt). If not, we deactivate container support.

We could technically stop here and force container engine to use this
platform. Since existing base image (docker.io/library/debian:13-slim)
is multi platforms, container engine will enable this variant by
default.

Now the problem is that if user reuses this image for their own
Dockerfiles, they will run into unpleasant surprise that now, their
container engine is using x86_64 variant by default, on any host.

So, in next commit, we'll change base image we use to x86_64 variant,
which has a single platform: linux/amd64. This ensures we don't generate
any unwanted side effect when building our images.

Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
---
 tests/tcg/meson.build | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/tests/tcg/meson.build b/tests/tcg/meson.build
index 75f0a52fd22..b0a857dc14b 100644
--- a/tests/tcg/meson.build
+++ b/tests/tcg/meson.build
@@ -81,6 +81,7 @@ tcg_tests_summary += {'gdb': gdb}
 
 docker_supported = false
 container_command = false
+docker_platform = ['--platform', 'linux/amd64']
 if get_option('containers')
   if get_option('container_command') != ''
     # make sure command is working
@@ -99,6 +100,18 @@ if get_option('containers')
                         container_command]
     endif
   endif
+
+  if docker_supported
+    # Check that x86_64 containers can be executed. It implies xthat 86_64
+    # binaries can be executed. On host with a different architecture,
+    # this is usually achieved with qemu-user-binfmt.
+    docker_supported = run_command([docker_wrapper, 'run', '--',
+                                    docker_platform,
+                                    'docker.io/amd64/debian:13-slim',
+                                    '/bin/true'],
+                                    check: false).returncode() == 0
+    tcg_tests_summary += {'x86_64 container support': docker_supported}
+  endif
 endif
 tcg_tests_summary += {'container command': container_command}
 if get_option('container_registry') != ''
@@ -253,13 +266,11 @@ foreach target, plan: tcg_tests
               target + ' (possible: [' + ', '.join(allowed) + '])')
       endif
     endforeach
-    docker_host_arch_supported = host_machine.cpu_family() in cc_docker_host_arch
     dockerfile = files('..'/'docker'/'dockerfiles'/cc_dockerfile + '.docker')
     image_name = 'image-' + cc_dockerfile
-    has_docker = docker_host_arch_supported and docker_supported
-    if cc_dockerfile not in image_targets and has_docker
+    if cc_dockerfile not in image_targets and docker_supported
       cmd = [docker_wrapper, 'build', '-f', dockerfile, '-t', 'qemu/' + cc_dockerfile,
-             '--add-current-user']
+             docker_platform, '--add-current-user']
       if get_option('container_registry') != ''
         cmd += ['--registry', get_option('container_registry')]
       endif
@@ -270,7 +281,7 @@ foreach target, plan: tcg_tests
       image_targets += {cc_dockerfile: t}
     endif
 
-    if not has_cc and has_docker
+    if not has_cc and docker_supported
       build_test_depends += image_targets[cc_dockerfile]
       build_test_depend_files += dockerfile
       mount = meson.project_source_root()
@@ -279,6 +290,7 @@ foreach target, plan: tcg_tests
       cc = [docker_wrapper, 'run', '--run-as-current-user', '--',
             # SELinux blocks modification of host fs by default
             '--security-opt', 'label=disable',
+            docker_platform,
             '-w', here, '-v', here + ':' + here, '-v', mount,
             'qemu/' + cc_dockerfile, plan['cc']]
       has_cc = true
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 2/6] tests/lcitool/refresh: generate dockerfiles using --host-arch x86_64
  2026-09-23 18:57 [PATCH v2 0/6] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
  2026-09-23 18:57 ` [PATCH v2 1/6] tests/tcg/meson.build: force use of linux/amd64 platform for containers Pierrick Bouvier
@ 2026-09-23 18:57 ` Pierrick Bouvier
  2026-09-24  4:56   ` Philippe Mathieu-Daudé
  2026-09-24  8:57   ` Daniel P. Berrangé
  2026-09-23 18:57 ` [PATCH v2 3/6] tests/docker/dockerfiles/debian-all-test: remove arch specific bits Pierrick Bouvier
                   ` (5 subsequent siblings)
  7 siblings, 2 replies; 11+ messages in thread
From: Pierrick Bouvier @ 2026-09-23 18:57 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, philmd, berrange, alex.bennee,
	pierrick.bouvier

To ensure refresh output is consistent on any host architecture, we need
to specify which host arch it's supposed to target.
Indeed, by default, package list will depend on host architecture, which
means that output will depend on which machine runs refresh command.
For example, on aarch64 host, refresh removes libpmem-dev package since
it's not available.

Also, update lcitool submodule: It now uses arch specific images by
default. Thus we update all images at the same time.
https://gitlab.com/libvirt/libvirt-ci/-/commit/f34cd57eb892259c26600187bc35cc4152f932cf

Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
---
 tests/docker/dockerfiles/alpine.docker                | 2 +-
 tests/docker/dockerfiles/centos9.docker               | 2 +-
 tests/docker/dockerfiles/debian-all-test-cross.docker | 4 ++--
 tests/docker/dockerfiles/debian-amd64-cross.docker    | 4 ++--
 tests/docker/dockerfiles/debian-arm64-cross.docker    | 4 ++--
 tests/docker/dockerfiles/debian-armhf-cross.docker    | 4 ++--
 tests/docker/dockerfiles/debian-i686-cross.docker     | 4 ++--
 tests/docker/dockerfiles/debian-ppc64el-cross.docker  | 4 ++--
 tests/docker/dockerfiles/debian-riscv64-cross.docker  | 4 ++--
 tests/docker/dockerfiles/debian-s390x-cross.docker    | 4 ++--
 tests/docker/dockerfiles/debian.docker                | 4 ++--
 tests/docker/dockerfiles/fedora-rust-nightly.docker   | 2 +-
 tests/docker/dockerfiles/fedora-win64-cross.docker    | 2 +-
 tests/docker/dockerfiles/fedora.docker                | 2 +-
 tests/docker/dockerfiles/opensuse-leap.docker         | 2 +-
 tests/docker/dockerfiles/ubuntu2404.docker            | 2 +-
 tests/lcitool/libvirt-ci                              | 2 +-
 tests/lcitool/refresh                                 | 2 +-
 18 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/tests/docker/dockerfiles/alpine.docker b/tests/docker/dockerfiles/alpine.docker
index 7c342e801c5..f1a5923e709 100644
--- a/tests/docker/dockerfiles/alpine.docker
+++ b/tests/docker/dockerfiles/alpine.docker
@@ -1,6 +1,6 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all alpine-323 qemu
+#  $ lcitool dockerfile --layers all --host-arch x86_64 alpine-323 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
diff --git a/tests/docker/dockerfiles/centos9.docker b/tests/docker/dockerfiles/centos9.docker
index 8bfce395f9d..4201352533f 100644
--- a/tests/docker/dockerfiles/centos9.docker
+++ b/tests/docker/dockerfiles/centos9.docker
@@ -1,6 +1,6 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all centos-stream-9 qemu
+#  $ lcitool dockerfile --layers all --host-arch x86_64 centos-stream-9 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
diff --git a/tests/docker/dockerfiles/debian-all-test-cross.docker b/tests/docker/dockerfiles/debian-all-test-cross.docker
index c0ab05a5ff3..45edba38e92 100644
--- a/tests/docker/dockerfiles/debian-all-test-cross.docker
+++ b/tests/docker/dockerfiles/debian-all-test-cross.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all debian-13 qemu-minimal
+#  $ lcitool dockerfile --layers all --host-arch x86_64 debian-13 qemu-minimal
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
diff --git a/tests/docker/dockerfiles/debian-amd64-cross.docker b/tests/docker/dockerfiles/debian-amd64-cross.docker
index 975b9f346e6..227cc773751 100644
--- a/tests/docker/dockerfiles/debian-amd64-cross.docker
+++ b/tests/docker/dockerfiles/debian-amd64-cross.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all --cross-arch x86_64 debian-13 qemu
+#  $ lcitool dockerfile --layers all --host-arch x86_64 --cross-arch x86_64 debian-13 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker
index 3efce404827..f0c23718fa4 100644
--- a/tests/docker/dockerfiles/debian-arm64-cross.docker
+++ b/tests/docker/dockerfiles/debian-arm64-cross.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all --cross-arch aarch64 debian-13 qemu
+#  $ lcitool dockerfile --layers all --host-arch x86_64 --cross-arch aarch64 debian-13 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker
index 91e8587b5d4..ff240096d85 100644
--- a/tests/docker/dockerfiles/debian-armhf-cross.docker
+++ b/tests/docker/dockerfiles/debian-armhf-cross.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all --cross-arch armv7l debian-13 qemu
+#  $ lcitool dockerfile --layers all --host-arch x86_64 --cross-arch armv7l debian-13 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
diff --git a/tests/docker/dockerfiles/debian-i686-cross.docker b/tests/docker/dockerfiles/debian-i686-cross.docker
index a60b72e05b9..276df72651a 100644
--- a/tests/docker/dockerfiles/debian-i686-cross.docker
+++ b/tests/docker/dockerfiles/debian-i686-cross.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all --cross-arch i686 debian-13 qemu
+#  $ lcitool dockerfile --layers all --host-arch x86_64 --cross-arch i686 debian-13 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
diff --git a/tests/docker/dockerfiles/debian-ppc64el-cross.docker b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
index a7599b4f618..54b9564abb3 100644
--- a/tests/docker/dockerfiles/debian-ppc64el-cross.docker
+++ b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all --cross-arch ppc64le debian-13 qemu
+#  $ lcitool dockerfile --layers all --host-arch x86_64 --cross-arch ppc64le debian-13 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
diff --git a/tests/docker/dockerfiles/debian-riscv64-cross.docker b/tests/docker/dockerfiles/debian-riscv64-cross.docker
index 52661d4d9e4..d807825b83d 100644
--- a/tests/docker/dockerfiles/debian-riscv64-cross.docker
+++ b/tests/docker/dockerfiles/debian-riscv64-cross.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all --cross-arch riscv64 debian-13 qemu
+#  $ lcitool dockerfile --layers all --host-arch x86_64 --cross-arch riscv64 debian-13 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
diff --git a/tests/docker/dockerfiles/debian-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker
index 0a04777b363..1a6b688425d 100644
--- a/tests/docker/dockerfiles/debian-s390x-cross.docker
+++ b/tests/docker/dockerfiles/debian-s390x-cross.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all --cross-arch s390x debian-13 qemu
+#  $ lcitool dockerfile --layers all --host-arch x86_64 --cross-arch s390x debian-13 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
index 77869f71546..ce591feec21 100644
--- a/tests/docker/dockerfiles/debian.docker
+++ b/tests/docker/dockerfiles/debian.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all debian-13 qemu
+#  $ lcitool dockerfile --layers all --host-arch x86_64 debian-13 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
diff --git a/tests/docker/dockerfiles/fedora-rust-nightly.docker b/tests/docker/dockerfiles/fedora-rust-nightly.docker
index 0f7b4c13388..144325ae1e7 100644
--- a/tests/docker/dockerfiles/fedora-rust-nightly.docker
+++ b/tests/docker/dockerfiles/fedora-rust-nightly.docker
@@ -1,6 +1,6 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all fedora-43 qemu
+#  $ lcitool dockerfile --layers all --host-arch x86_64 fedora-43 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
diff --git a/tests/docker/dockerfiles/fedora-win64-cross.docker b/tests/docker/dockerfiles/fedora-win64-cross.docker
index 3ed3e15df33..9b366c7c73f 100644
--- a/tests/docker/dockerfiles/fedora-win64-cross.docker
+++ b/tests/docker/dockerfiles/fedora-win64-cross.docker
@@ -1,6 +1,6 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all --cross-arch mingw64 fedora-43 qemu,qemu-win-installer
+#  $ lcitool dockerfile --layers all --host-arch x86_64 --cross-arch mingw64 fedora-43 qemu,qemu-win-installer
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker
index 8fa8bea1abf..8f7e9efc899 100644
--- a/tests/docker/dockerfiles/fedora.docker
+++ b/tests/docker/dockerfiles/fedora.docker
@@ -1,6 +1,6 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all fedora-43 qemu
+#  $ lcitool dockerfile --layers all --host-arch x86_64 fedora-43 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
diff --git a/tests/docker/dockerfiles/opensuse-leap.docker b/tests/docker/dockerfiles/opensuse-leap.docker
index 3a3d6f73c89..1b306d4b648 100644
--- a/tests/docker/dockerfiles/opensuse-leap.docker
+++ b/tests/docker/dockerfiles/opensuse-leap.docker
@@ -1,6 +1,6 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all opensuse-leap-16 qemu
+#  $ lcitool dockerfile --layers all --host-arch x86_64 opensuse-leap-16 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
diff --git a/tests/docker/dockerfiles/ubuntu2404.docker b/tests/docker/dockerfiles/ubuntu2404.docker
index bb8f4e4e53f..cafbc382408 100644
--- a/tests/docker/dockerfiles/ubuntu2404.docker
+++ b/tests/docker/dockerfiles/ubuntu2404.docker
@@ -1,6 +1,6 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all ubuntu-2404 qemu
+#  $ lcitool dockerfile --layers all --host-arch x86_64 ubuntu-2404 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
diff --git a/tests/lcitool/libvirt-ci b/tests/lcitool/libvirt-ci
index 76b5dd5b5c8..f34cd57eb89 160000
--- a/tests/lcitool/libvirt-ci
+++ b/tests/lcitool/libvirt-ci
@@ -1 +1 @@
-Subproject commit 76b5dd5b5c84511e2e799c2b3d6a2a9b9f6a081d
+Subproject commit f34cd57eb892259c26600187bc35cc4152f932cf
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index 9a71af0e41d..002ab11270f 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -66,7 +66,7 @@ add_user_mapping = [
 def generate_dockerfile(host, target, project="qemu", cross=None, trailer=None,
                         enable_rust=True):
     filename = Path(src_dir, "tests", "docker", "dockerfiles", host + ".docker")
-    cmd = lcitool_cmd + ["dockerfile"]
+    cmd = lcitool_cmd + ["dockerfile", "--host-arch", "x86_64"]
     if cross is not None:
         cmd.extend(["--cross", cross])
     cmd.extend([target, project])
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 3/6] tests/docker/dockerfiles/debian-all-test: remove arch specific bits
  2026-09-23 18:57 [PATCH v2 0/6] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
  2026-09-23 18:57 ` [PATCH v2 1/6] tests/tcg/meson.build: force use of linux/amd64 platform for containers Pierrick Bouvier
  2026-09-23 18:57 ` [PATCH v2 2/6] tests/lcitool/refresh: generate dockerfiles using --host-arch x86_64 Pierrick Bouvier
@ 2026-09-23 18:57 ` Pierrick Bouvier
  2026-09-23 18:57 ` [PATCH v2 4/6] tests/tcg/meson.build: remove cc_docker_host_arch Pierrick Bouvier
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Pierrick Bouvier @ 2026-09-23 18:57 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, philmd, berrange, alex.bennee,
	pierrick.bouvier

Now that this image is amd64 only, we don't need those ifs anymore.

Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
---
 .../dockerfiles/debian-all-test-cross.docker  | 35 +++++++++----------
 tests/lcitool/refresh                         | 35 +++++++++----------
 2 files changed, 34 insertions(+), 36 deletions(-)

diff --git a/tests/docker/dockerfiles/debian-all-test-cross.docker b/tests/docker/dockerfiles/debian-all-test-cross.docker
index 45edba38e92..97d3dae6d7f 100644
--- a/tests/docker/dockerfiles/debian-all-test-cross.docker
+++ b/tests/docker/dockerfiles/debian-all-test-cross.docker
@@ -66,15 +66,15 @@ RUN apt update && \
   rsync
 
 # https://openrisc.io/2025/04/20/toolchainrootfsbins
-RUN if dpkg-architecture -e amd64; then \
-cd /tmp && \
+RUN cd /tmp && \
   wget -q https://github.com/stffrdhrn/or1k-toolchain-build/releases/download/or1k-16.1.0-20260614/or1k-none-linux-musl-16.1.0-20260614.tar.xz && \
   tar --no-same-owner -xf *.tar.xz && \
   rsync -a or1k-none-linux-musl/ /usr/ && \
-  rm -rf /tmp/*; \
-fi
+  rm -rf /tmp/*
 
-ENV AVAILABLE_COMPILERS="\
+RUN apt update && \
+  DEBIAN_FRONTEND=noninteractive eatmydata \
+  apt install -y --no-install-recommends \
   gcc-aarch64-linux-gnu \
   libc6-dev-arm64-cross \
   gcc-arm-linux-gnueabihf \
@@ -97,19 +97,18 @@ ENV AVAILABLE_COMPILERS="\
   libc6-dev-s390x-cross\
   gcc-sh4-linux-gnu \
   libc6-dev-sh4-cross \
-  "
-RUN if dpkg-architecture -e amd64; then \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-hppa-linux-gnu libc6-dev-hppa-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-m68k-linux-gnu libc6-dev-m68k-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-powerpc-linux-gnu libc6-dev-powerpc-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-powerpc64-linux-gnu libc6-dev-ppc64-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-sparc64-linux-gnu libc6-dev-sparc64-cross"; \
-fi && \
-apt update && \
-DEBIAN_FRONTEND=noninteractive eatmydata \
-apt install -y --no-install-recommends \
-${AVAILABLE_COMPILERS} && \
-dpkg-query --showformat '${Package}_${Version}_${Architecture}' --show > /packages.txt
+  gcc-hppa-linux-gnu \
+  libc6-dev-hppa-cross \
+  gcc-m68k-linux-gnu \
+  libc6-dev-m68k-cross \
+  gcc-powerpc-linux-gnu \
+  libc6-dev-powerpc-cross \
+  gcc-powerpc64-linux-gnu \
+  libc6-dev-ppc64-cross \
+  gcc-sparc64-linux-gnu \
+  libc6-dev-sparc64-cross \
+  && \
+  dpkg-query --showformat '${Package}_${Version}_${Architecture}' --show > /packages.txt
 ENV QEMU_CONFIGURE_OPTS=--disable-docs
 ENV DEF_TARGET_LIST=aarch64-linux-user,alpha-linux-user,arm-linux-user,hppa-linux-user,i386-linux-user,m68k-linux-user,mips-linux-user,mips64-linux-user,mips64el-linux-user,mipsel-linux-user,ppc-linux-user,ppc64-linux-user,ppc64le-linux-user,riscv64-linux-user,s390x-linux-user,sh4-linux-user,sparc64-linux-user
 # As a final step configure the user (if env is defined)
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index 002ab11270f..31c06734879 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -177,15 +177,15 @@ RUN apt update && \
   rsync
 
 # https://openrisc.io/2025/04/20/toolchainrootfsbins
-RUN if dpkg-architecture -e amd64; then \
-cd /tmp && \
+RUN cd /tmp && \
   wget -q https://github.com/stffrdhrn/or1k-toolchain-build/releases/download/or1k-16.1.0-20260614/or1k-none-linux-musl-16.1.0-20260614.tar.xz && \
   tar --no-same-owner -xf *.tar.xz && \
   rsync -a or1k-none-linux-musl/ /usr/ && \
-  rm -rf /tmp/*; \
-fi
+  rm -rf /tmp/*
 
-ENV AVAILABLE_COMPILERS="\
+RUN apt update && \
+  DEBIAN_FRONTEND=noninteractive eatmydata \
+  apt install -y --no-install-recommends \
   gcc-aarch64-linux-gnu \
   libc6-dev-arm64-cross \
   gcc-arm-linux-gnueabihf \
@@ -208,19 +208,18 @@ ENV AVAILABLE_COMPILERS="\
   libc6-dev-s390x-cross\
   gcc-sh4-linux-gnu \
   libc6-dev-sh4-cross \
-  "
-RUN if dpkg-architecture -e amd64; then \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-hppa-linux-gnu libc6-dev-hppa-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-m68k-linux-gnu libc6-dev-m68k-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-powerpc-linux-gnu libc6-dev-powerpc-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-powerpc64-linux-gnu libc6-dev-ppc64-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-sparc64-linux-gnu libc6-dev-sparc64-cross"; \
-fi && \
-apt update && \
-DEBIAN_FRONTEND=noninteractive eatmydata \
-apt install -y --no-install-recommends \
-${AVAILABLE_COMPILERS} && \
-dpkg-query --showformat '${Package}_${Version}_${Architecture}' --show > /packages.txt
+  gcc-hppa-linux-gnu \
+  libc6-dev-hppa-cross \
+  gcc-m68k-linux-gnu \
+  libc6-dev-m68k-cross \
+  gcc-powerpc-linux-gnu \
+  libc6-dev-powerpc-cross \
+  gcc-powerpc64-linux-gnu \
+  libc6-dev-ppc64-cross \
+  gcc-sparc64-linux-gnu \
+  libc6-dev-sparc64-cross \
+  && \
+  dpkg-query --showformat '${Package}_${Version}_${Architecture}' --show > /packages.txt
 ENV QEMU_CONFIGURE_OPTS=--disable-docs
 ENV DEF_TARGET_LIST=aarch64-linux-user,alpha-linux-user,arm-linux-user,hppa-linux-user,i386-linux-user,m68k-linux-user,mips-linux-user,mips64-linux-user,mips64el-linux-user,mipsel-linux-user,ppc-linux-user,ppc64-linux-user,ppc64le-linux-user,riscv64-linux-user,s390x-linux-user,sh4-linux-user,sparc64-linux-user
 """
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 4/6] tests/tcg/meson.build: remove cc_docker_host_arch
  2026-09-23 18:57 [PATCH v2 0/6] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
                   ` (2 preceding siblings ...)
  2026-09-23 18:57 ` [PATCH v2 3/6] tests/docker/dockerfiles/debian-all-test: remove arch specific bits Pierrick Bouvier
@ 2026-09-23 18:57 ` Pierrick Bouvier
  2026-09-23 18:57 ` [PATCH v2 5/6] tests/tcg/loongarch64/system: deactivate loongarch64-softmmu-memory (hang on aarch64 host) Pierrick Bouvier
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Pierrick Bouvier @ 2026-09-23 18:57 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, philmd, berrange, alex.bennee,
	pierrick.bouvier

Now we know all container images used for tcg-tests are x86_64 only, we
don't need to specify anymore which arch they support.

Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
---
 tests/tcg/aarch64/meson.build            |  2 --
 tests/tcg/aarch64/system/meson.build     |  1 -
 tests/tcg/aarch64_be/meson.build         |  1 -
 tests/tcg/alpha/meson.build              |  2 --
 tests/tcg/alpha/system/meson.build       |  1 -
 tests/tcg/arm/meson.build                |  2 --
 tests/tcg/arm/system/meson.build         |  1 -
 tests/tcg/hexagon/meson.build            |  1 -
 tests/tcg/hppa/meson.build               |  1 -
 tests/tcg/i386/meson.build               |  2 --
 tests/tcg/i386/system/meson.build        |  1 -
 tests/tcg/loongarch64/meson.build        |  2 --
 tests/tcg/loongarch64/system/meson.build |  1 -
 tests/tcg/m68k/meson.build               |  1 -
 tests/tcg/meson.build                    | 11 +----------
 tests/tcg/mips/meson.build               |  1 -
 tests/tcg/mips64/meson.build             |  1 -
 tests/tcg/mips64el/meson.build           |  1 -
 tests/tcg/or1k/meson.build               |  1 -
 tests/tcg/ppc64/meson.build              |  1 -
 tests/tcg/ppc64le/meson.build            |  1 -
 tests/tcg/riscv64/meson.build            |  2 --
 tests/tcg/riscv64/system/meson.build     |  1 -
 tests/tcg/s390x/meson.build              |  2 --
 tests/tcg/s390x/system/meson.build       |  1 -
 tests/tcg/sh4/meson.build                |  1 -
 tests/tcg/tricore/meson.build            |  1 -
 tests/tcg/x86_64/meson.build             |  2 --
 tests/tcg/x86_64/system/meson.build      |  1 -
 tests/tcg/xtensa/meson.build             |  3 ---
 30 files changed, 1 insertion(+), 49 deletions(-)

diff --git a/tests/tcg/aarch64/meson.build b/tests/tcg/aarch64/meson.build
index 28498e82cba..cc2c59fb4b6 100644
--- a/tests/tcg/aarch64/meson.build
+++ b/tests/tcg/aarch64/meson.build
@@ -1,6 +1,5 @@
 cc = 'aarch64-linux-gnu-gcc'
 cc_dockerfile = 'debian-all-test-cross'
-cc_docker_host_arch = ['aarch64', 'x86_64']
 
 cc_feat_cflags = {
   'aes': '-march=armv8-a+aes',
@@ -198,7 +197,6 @@ if 'qemu-aarch64' in emulators
     'aarch64-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'aarch64',
       'gdb_arch': 'aarch64',
diff --git a/tests/tcg/aarch64/system/meson.build b/tests/tcg/aarch64/system/meson.build
index 94e16ba3300..6ba35a9f722 100644
--- a/tests/tcg/aarch64/system/meson.build
+++ b/tests/tcg/aarch64/system/meson.build
@@ -97,7 +97,6 @@ if 'qemu-system-aarch64' in emulators
     'aarch64-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'aarch64/system',
       'gdb_arch': 'aarch64',
diff --git a/tests/tcg/aarch64_be/meson.build b/tests/tcg/aarch64_be/meson.build
index 9ea111f9885..e45a49ec2da 100644
--- a/tests/tcg/aarch64_be/meson.build
+++ b/tests/tcg/aarch64_be/meson.build
@@ -11,7 +11,6 @@ if 'qemu-aarch64_be' in emulators
     'aarch64_be-linux-user': {
       'cc': 'aarch64-linux-gnu-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['aarch64', 'x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'aarch64_be',
       'gdb_arch': 'aarch64_be',
diff --git a/tests/tcg/alpha/meson.build b/tests/tcg/alpha/meson.build
index fe60ce2496a..30ea2a6978e 100644
--- a/tests/tcg/alpha/meson.build
+++ b/tests/tcg/alpha/meson.build
@@ -1,6 +1,5 @@
 cc = 'alpha-linux-gnu-gcc'
 cc_dockerfile = 'debian-all-test-cross'
-cc_docker_host_arch = ['aarch64', 'x86_64']
 
 subdir('system')
 
@@ -45,7 +44,6 @@ if 'qemu-alpha' in emulators
     'alpha-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'alpha',
       'gdb_arch': 'alpha',
       'qemu': emulators['qemu-alpha'],
diff --git a/tests/tcg/alpha/system/meson.build b/tests/tcg/alpha/system/meson.build
index b10f2c3e28d..5388e17a2f7 100644
--- a/tests/tcg/alpha/system/meson.build
+++ b/tests/tcg/alpha/system/meson.build
@@ -37,7 +37,6 @@ if 'qemu-system-alpha' in emulators
     'alpha-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'alpha/system',
       'gdb_arch': 'alpha',
       'qemu': emulators['qemu-system-alpha'],
diff --git a/tests/tcg/arm/meson.build b/tests/tcg/arm/meson.build
index 1b491cea026..30154efaec8 100644
--- a/tests/tcg/arm/meson.build
+++ b/tests/tcg/arm/meson.build
@@ -1,6 +1,5 @@
 cc = 'arm-linux-gnueabihf-gcc'
 cc_dockerfile = 'debian-all-test-cross'
-cc_docker_host_arch = ['aarch64', 'x86_64']
 
 subdir('system')
 
@@ -70,7 +69,6 @@ if 'qemu-arm' in emulators
     'arm-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'arm',
       'gdb_arch': 'arm',
       'qemu': emulators['qemu-arm'],
diff --git a/tests/tcg/arm/system/meson.build b/tests/tcg/arm/system/meson.build
index 52869976704..93d0cfec24e 100644
--- a/tests/tcg/arm/system/meson.build
+++ b/tests/tcg/arm/system/meson.build
@@ -65,7 +65,6 @@ if 'qemu-system-arm' in emulators
     'arm-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'arm/system',
       'gdb_arch': 'arm',
       'qemu': emulators['qemu-system-arm'],
diff --git a/tests/tcg/hexagon/meson.build b/tests/tcg/hexagon/meson.build
index 6e36a9a1220..f3d20091aa9 100644
--- a/tests/tcg/hexagon/meson.build
+++ b/tests/tcg/hexagon/meson.build
@@ -111,7 +111,6 @@ if 'qemu-hexagon' in emulators
     'hexagon-linux-user': {
       'cc': 'hexagon-unknown-linux-musl-clang',
       'cc_dockerfile': 'debian-hexagon-cross',
-      'cc_docker_host_arch': ['x86_64'],
       'folder': 'hexagon',
       'gdb_arch': 'hexagon_is_not_supported_by_gdb',
       'qemu': emulators['qemu-hexagon'],
diff --git a/tests/tcg/hppa/meson.build b/tests/tcg/hppa/meson.build
index 9ca8f29fa93..01d4554d993 100644
--- a/tests/tcg/hppa/meson.build
+++ b/tests/tcg/hppa/meson.build
@@ -11,7 +11,6 @@ if 'qemu-hppa' in emulators
     'hppa-linux-user': {
       'cc': 'hppa-linux-gnu-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'hppa',
       'gdb_arch': 'hppa',
diff --git a/tests/tcg/i386/meson.build b/tests/tcg/i386/meson.build
index 5cda03655fa..04d438a062a 100644
--- a/tests/tcg/i386/meson.build
+++ b/tests/tcg/i386/meson.build
@@ -1,6 +1,5 @@
 cc = 'i686-linux-gnu-gcc'
 cc_dockerfile = 'debian-i686-cross'
-cc_docker_host_arch = ['x86_64']
 
 subdir('system')
 
@@ -48,7 +47,6 @@ if 'qemu-i386' in emulators
     'i386-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'i386',
       'gdb_arch': 'i386',
       'qemu': emulators['qemu-i386'],
diff --git a/tests/tcg/i386/system/meson.build b/tests/tcg/i386/system/meson.build
index d3f73997c7f..0986f5898d4 100644
--- a/tests/tcg/i386/system/meson.build
+++ b/tests/tcg/i386/system/meson.build
@@ -39,7 +39,6 @@ if 'qemu-system-i386' in emulators
     'i386-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'i386/system',
       'gdb_arch': 'i386',
       'qemu': emulators['qemu-system-i386'],
diff --git a/tests/tcg/loongarch64/meson.build b/tests/tcg/loongarch64/meson.build
index 1d62de64ed6..4dd64f16d87 100644
--- a/tests/tcg/loongarch64/meson.build
+++ b/tests/tcg/loongarch64/meson.build
@@ -1,6 +1,5 @@
 cc = 'loongarch64-unknown-linux-gnu-gcc'
 cc_dockerfile = 'debian-loongarch-cross'
-cc_docker_host_arch = ['x86_64']
 
 subdir('system')
 
@@ -22,7 +21,6 @@ if 'qemu-loongarch64' in emulators
     'loongarch64-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'loongarch64',
       'gdb_arch': 'loongarch64',
       'qemu': emulators['qemu-loongarch64'],
diff --git a/tests/tcg/loongarch64/system/meson.build b/tests/tcg/loongarch64/system/meson.build
index 5bf4c56e385..035dd5f85fb 100644
--- a/tests/tcg/loongarch64/system/meson.build
+++ b/tests/tcg/loongarch64/system/meson.build
@@ -38,7 +38,6 @@ if 'qemu-system-loongarch64' in emulators
     'loongarch64-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'loongarch64/system',
       'gdb_arch': 'loongarch64',
       'qemu': emulators['qemu-system-loongarch64'],
diff --git a/tests/tcg/m68k/meson.build b/tests/tcg/m68k/meson.build
index 8ecf450ac68..4b73d7fc57d 100644
--- a/tests/tcg/m68k/meson.build
+++ b/tests/tcg/m68k/meson.build
@@ -12,7 +12,6 @@ if 'qemu-m68k' in emulators
     'm68k-linux-user': {
       'cc': 'm68k-linux-gnu-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'm68k',
       'gdb_arch': 'm68k',
diff --git a/tests/tcg/meson.build b/tests/tcg/meson.build
index b0a857dc14b..ce77063cd4d 100644
--- a/tests/tcg/meson.build
+++ b/tests/tcg/meson.build
@@ -22,7 +22,6 @@ tcg_tests = {}
 #   'name_of_target': {
 #     'cc': 'cross_compiler',
 #     'cc_dockerfile': 'name_of_dockerfile',
-#     'cc_docker_host_arch': ['host_arch_supported (meson cpu)', ...],
 #     'cc_feat_cflags': {
 #       'name': ['feature cflags'],
 #       ...
@@ -211,7 +210,7 @@ foreach target, plan: tcg_tests
 
   # return a clear error if user misspell a target entry
   foreach key, _ : plan
-    allowed = ['cc', 'cc_dockerfile', 'cc_docker_host_arch', 'cc_feat_cflags',
+    allowed = ['cc', 'cc_dockerfile', 'cc_feat_cflags',
                'folder', 'gdb_arch', 'gdb_feat_version', 'qemu', 'tests']
     if key not in allowed
       error('unknown tcg test plan entry \'' + key + '\' for target ' + target +
@@ -258,14 +257,6 @@ foreach target, plan: tcg_tests
 
   if 'cc_dockerfile' in plan
     cc_dockerfile = plan['cc_dockerfile']
-    cc_docker_host_arch = plan['cc_docker_host_arch']
-    allowed = ['aarch64', 'x86_64']
-    foreach arch: cc_docker_host_arch
-      if arch not in allowed
-        error('incorrect docker arch ' + arch + ' for target ' +
-              target + ' (possible: [' + ', '.join(allowed) + '])')
-      endif
-    endforeach
     dockerfile = files('..'/'docker'/'dockerfiles'/cc_dockerfile + '.docker')
     image_name = 'image-' + cc_dockerfile
     if cc_dockerfile not in image_targets and docker_supported
diff --git a/tests/tcg/mips/meson.build b/tests/tcg/mips/meson.build
index 3c4f6ec482d..efda857ab61 100644
--- a/tests/tcg/mips/meson.build
+++ b/tests/tcg/mips/meson.build
@@ -14,7 +14,6 @@ if 'qemu-mips' in emulators
     'mips-linux-user': {
       'cc': 'mips-linux-gnu-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['aarch64', 'x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'mips',
       'gdb_arch': 'mips',
diff --git a/tests/tcg/mips64/meson.build b/tests/tcg/mips64/meson.build
index 69391c23187..b8eb6705eae 100644
--- a/tests/tcg/mips64/meson.build
+++ b/tests/tcg/mips64/meson.build
@@ -16,7 +16,6 @@ if 'qemu-mips64' in emulators
     'mips64-linux-user': {
       'cc': 'mips64-linux-gnuabi64-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['aarch64', 'x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'mips64',
       'gdb_arch': 'mips64',
diff --git a/tests/tcg/mips64el/meson.build b/tests/tcg/mips64el/meson.build
index f6c0fae7981..2aafbba750d 100644
--- a/tests/tcg/mips64el/meson.build
+++ b/tests/tcg/mips64el/meson.build
@@ -3,7 +3,6 @@ if 'qemu-mips64el' in emulators
     'mips64el-linux-user': {
       'cc': 'mips64el-linux-gnuabi64-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['aarch64', 'x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'mips64el',
       'gdb_arch': 'mips64el',
diff --git a/tests/tcg/or1k/meson.build b/tests/tcg/or1k/meson.build
index 5151e8f361f..c89bb372b47 100644
--- a/tests/tcg/or1k/meson.build
+++ b/tests/tcg/or1k/meson.build
@@ -61,7 +61,6 @@ if 'qemu-or1k' in emulators
     'or1k-linux-user': {
       'cc': 'or1k-none-linux-musl-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'or1k',
       'gdb_arch': 'or1k',
diff --git a/tests/tcg/ppc64/meson.build b/tests/tcg/ppc64/meson.build
index c7e495f3d34..8cca4d65a4c 100644
--- a/tests/tcg/ppc64/meson.build
+++ b/tests/tcg/ppc64/meson.build
@@ -44,7 +44,6 @@ if 'qemu-ppc64' in emulators
     'ppc64-linux-user': {
       'cc': 'powerpc64-linux-gnu-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'ppc64',
       'gdb_arch': 'ppc64',
diff --git a/tests/tcg/ppc64le/meson.build b/tests/tcg/ppc64le/meson.build
index 720aa167f23..a0f3e62e4d3 100644
--- a/tests/tcg/ppc64le/meson.build
+++ b/tests/tcg/ppc64le/meson.build
@@ -3,7 +3,6 @@ if 'qemu-ppc64le' in emulators
     'ppc64le-linux-user': {
       'cc': 'powerpc64le-linux-gnu-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'ppc64le',
       'gdb_arch': 'ppc64le',
diff --git a/tests/tcg/riscv64/meson.build b/tests/tcg/riscv64/meson.build
index 2292bf8ed1b..5ee20a1e98d 100644
--- a/tests/tcg/riscv64/meson.build
+++ b/tests/tcg/riscv64/meson.build
@@ -1,6 +1,5 @@
 cc = 'riscv64-linux-gnu-gcc'
 cc_dockerfile = 'debian-all-test-cross'
-cc_docker_host_arch = ['aarch64', 'x86_64']
 
 subdir('system')
 
@@ -28,7 +27,6 @@ if 'qemu-riscv64' in emulators
     'riscv64-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'riscv64',
       'gdb_arch': 'riscv64',
       'qemu': emulators['qemu-riscv64'],
diff --git a/tests/tcg/riscv64/system/meson.build b/tests/tcg/riscv64/system/meson.build
index 8604c2a45a9..87c3f9f11ce 100644
--- a/tests/tcg/riscv64/system/meson.build
+++ b/tests/tcg/riscv64/system/meson.build
@@ -66,7 +66,6 @@ if 'qemu-system-riscv64' in emulators
     'riscv64-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'riscv64',
       'gdb_arch': 'riscv64',
       'qemu': emulators['qemu-system-riscv64'],
diff --git a/tests/tcg/s390x/meson.build b/tests/tcg/s390x/meson.build
index 57ea6c5ca55..96cd0e4847f 100644
--- a/tests/tcg/s390x/meson.build
+++ b/tests/tcg/s390x/meson.build
@@ -1,6 +1,5 @@
 cc = 's390x-linux-gnu-gcc'
 cc_dockerfile = 'debian-all-test-cross'
-cc_docker_host_arch = ['aarch64', 'x86_64']
 
 cc_feat_cflags = {
   'z14': '-march=z14',
@@ -141,7 +140,6 @@ if 'qemu-s390x' in emulators
     's390x-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 's390x',
       'gdb_arch': 's390x',
diff --git a/tests/tcg/s390x/system/meson.build b/tests/tcg/s390x/system/meson.build
index 1e360e70821..ef19c4831fd 100644
--- a/tests/tcg/s390x/system/meson.build
+++ b/tests/tcg/s390x/system/meson.build
@@ -83,7 +83,6 @@ if 'qemu-system-s390x' in emulators
     's390x-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 's390x',
       'gdb_arch': 's390x',
diff --git a/tests/tcg/sh4/meson.build b/tests/tcg/sh4/meson.build
index d73df074497..12b24fffc77 100644
--- a/tests/tcg/sh4/meson.build
+++ b/tests/tcg/sh4/meson.build
@@ -14,7 +14,6 @@ if 'qemu-sh4' in emulators
     'sh4-linux-user': {
       'cc': 'sh4-linux-gnu-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['aarch64', 'x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'sh4',
       'gdb_arch': 'sh4',
diff --git a/tests/tcg/tricore/meson.build b/tests/tcg/tricore/meson.build
index d0bf55dedce..837a3d5e22f 100644
--- a/tests/tcg/tricore/meson.build
+++ b/tests/tcg/tricore/meson.build
@@ -47,7 +47,6 @@ if 'qemu-system-tricore' in emulators
     'tricore-softmmu': {
       'cc': 'tricore-gcc',
       'cc_dockerfile': 'debian-tricore-cross',
-      'cc_docker_host_arch': ['x86_64'],
       'folder': 'tricore',
       'gdb_arch': 'tricore',
       'qemu': emulators['qemu-system-tricore'],
diff --git a/tests/tcg/x86_64/meson.build b/tests/tcg/x86_64/meson.build
index ab336eca9b2..787a2ca61b2 100644
--- a/tests/tcg/x86_64/meson.build
+++ b/tests/tcg/x86_64/meson.build
@@ -1,6 +1,5 @@
 cc = 'x86_64-linux-gnu-gcc'
 cc_dockerfile = 'debian-amd64-cross'
-cc_docker_host_arch = ['x86_64']
 
 subdir('system')
 
@@ -74,7 +73,6 @@ if 'qemu-x86_64' in emulators
     'x86_64-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'x86_64',
       'gdb_arch': 'x86_64',
       'qemu': emulators['qemu-x86_64'],
diff --git a/tests/tcg/x86_64/system/meson.build b/tests/tcg/x86_64/system/meson.build
index 80110d0ae57..43e7d7afa85 100644
--- a/tests/tcg/x86_64/system/meson.build
+++ b/tests/tcg/x86_64/system/meson.build
@@ -53,7 +53,6 @@ if 'qemu-system-x86_64' in emulators
     'x86_64-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'x86_64/system',
       'gdb_arch': 'x86_64',
       'qemu': emulators['qemu-system-x86_64'],
diff --git a/tests/tcg/xtensa/meson.build b/tests/tcg/xtensa/meson.build
index bb1dd1542e5..5ff9c6cd548 100644
--- a/tests/tcg/xtensa/meson.build
+++ b/tests/tcg/xtensa/meson.build
@@ -79,14 +79,12 @@ foreach core: cores
 endforeach
 
 cc_dockerfile = 'debian-xtensa-cross'
-cc_docker_host_arch = ['x86_64']
 
 if 'qemu-system-xtensa' in emulators
   tcg_tests += {
     'xtensa-softmmu': {
       'cc': 'xtensa-dc232b-elf-gcc',
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'xtensa',
       'gdb_arch': 'xtensa',
       'qemu': emulators['qemu-system-xtensa'],
@@ -100,7 +98,6 @@ if 'qemu-system-xtensaeb' in emulators
     'xtensaeb-softmmu': {
       'cc': 'xtensa-test_kc705_be-elf-gcc',
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'xtensa',
       'gdb_arch': 'xtensaeb',
       'qemu': emulators['qemu-system-xtensaeb'],
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 5/6] tests/tcg/loongarch64/system: deactivate loongarch64-softmmu-memory (hang on aarch64 host)
  2026-09-23 18:57 [PATCH v2 0/6] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
                   ` (3 preceding siblings ...)
  2026-09-23 18:57 ` [PATCH v2 4/6] tests/tcg/meson.build: remove cc_docker_host_arch Pierrick Bouvier
@ 2026-09-23 18:57 ` Pierrick Bouvier
  2026-09-23 18:57 ` [PATCH v2 6/6] tests/tcg/x86_64: speed up compilation of avx, mmx and 3dnow tests Pierrick Bouvier
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Pierrick Bouvier @ 2026-09-23 18:57 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, philmd, berrange, alex.bennee,
	pierrick.bouvier

Created associated issue:
https://gitlab.com/qemu-project/qemu/-/work_items/4567

Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
---
 tests/tcg/loongarch64/system/meson.build | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tests/tcg/loongarch64/system/meson.build b/tests/tcg/loongarch64/system/meson.build
index 035dd5f85fb..d1ee3986b62 100644
--- a/tests/tcg/loongarch64/system/meson.build
+++ b/tests/tcg/loongarch64/system/meson.build
@@ -24,6 +24,11 @@ foreach t: tcg_tests['multiarch-softmmu']['tests']
     new_cflags = cflags
     if fs.stem(src) == 'memory'
       new_cflags += '-DCHECK_UNALIGNED=0'
+      # TODO: memory test hangs on aarch64 host
+      # https://gitlab.com/qemu-project/qemu/-/work_items/4567
+      if host_machine.cpu_family() == 'aarch64' and 'gdb_test' in setup
+        continue
+      endif
     endif
     if src not in multi_src
       setup += {'cflags': [new_cflags]}
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 6/6] tests/tcg/x86_64: speed up compilation of avx, mmx and 3dnow tests
  2026-09-23 18:57 [PATCH v2 0/6] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
                   ` (4 preceding siblings ...)
  2026-09-23 18:57 ` [PATCH v2 5/6] tests/tcg/loongarch64/system: deactivate loongarch64-softmmu-memory (hang on aarch64 host) Pierrick Bouvier
@ 2026-09-23 18:57 ` Pierrick Bouvier
  2026-09-24 17:17 ` [PATCH v2 0/6] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
  2026-09-25 22:17 ` Pierrick Bouvier
  7 siblings, 0 replies; 11+ messages in thread
From: Pierrick Bouvier @ 2026-09-23 18:57 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, philmd, berrange, alex.bennee,
	pierrick.bouvier

When profiling build of tcg-tests on aarch64 host (compiler running
with qemu-user-binfmt), it was found that those tests were the longest
to compile:
- avx: 1min
- mmx: 8s
- 3dnow: 2s (normal time, but for consistency, apply same flag than
  others).

Compiling with -O0 (default), compilation times are reduced by 50% for
those files. Since they use inline assembly, result is unchanged and
optimizations don't matter.

Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
---
 tests/tcg/x86_64/meson.build | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/tcg/x86_64/meson.build b/tests/tcg/x86_64/meson.build
index 787a2ca61b2..cfeef1d969c 100644
--- a/tests/tcg/x86_64/meson.build
+++ b/tests/tcg/x86_64/meson.build
@@ -31,18 +31,18 @@ tests += {
   '../i386/test-i386-ssse3.c': {},
   '../i386/test-3dnow.c': {
     'cflags': ['-I', meson.current_build_dir(),
-               '-masm=intel', '-O'],
+               '-masm=intel'],
     'depends': [test_3dnow_h],
   },
   '../i386/test-avx.c': {
     'cflags': ['-I', meson.current_build_dir(),
-               '-mavx', '-masm=intel', '-O'],
+               '-mavx', '-masm=intel'],
     'depends': [test_avx_h],
   },
   '../i386/test-flags.c': {},
   '../i386/test-mmx.c': {
     'cflags': ['-I', meson.current_build_dir(),
-               '-masm=intel', '-O'],
+               '-masm=intel'],
     'depends': [test_mmx_h],
   },
   '../i386/test-i386.c': {
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 2/6] tests/lcitool/refresh: generate dockerfiles using --host-arch x86_64
  2026-09-23 18:57 ` [PATCH v2 2/6] tests/lcitool/refresh: generate dockerfiles using --host-arch x86_64 Pierrick Bouvier
@ 2026-09-24  4:56   ` Philippe Mathieu-Daudé
  2026-09-24  8:57   ` Daniel P. Berrangé
  1 sibling, 0 replies; 11+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-09-24  4:56 UTC (permalink / raw)
  To: Pierrick Bouvier, qemu-devel; +Cc: Richard Henderson, berrange, alex.bennee

On 23/9/26 20:57, Pierrick Bouvier wrote:
> To ensure refresh output is consistent on any host architecture, we need
> to specify which host arch it's supposed to target.
> Indeed, by default, package list will depend on host architecture, which
> means that output will depend on which machine runs refresh command.
> For example, on aarch64 host, refresh removes libpmem-dev package since
> it's not available.
> 
> Also, update lcitool submodule: It now uses arch specific images by
> default. Thus we update all images at the same time.
> https://gitlab.com/libvirt/libvirt-ci/-/commit/f34cd57eb892259c26600187bc35cc4152f932cf
> 
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
> ---
>   tests/docker/dockerfiles/alpine.docker                | 2 +-
>   tests/docker/dockerfiles/centos9.docker               | 2 +-
>   tests/docker/dockerfiles/debian-all-test-cross.docker | 4 ++--
>   tests/docker/dockerfiles/debian-amd64-cross.docker    | 4 ++--
>   tests/docker/dockerfiles/debian-arm64-cross.docker    | 4 ++--
>   tests/docker/dockerfiles/debian-armhf-cross.docker    | 4 ++--
>   tests/docker/dockerfiles/debian-i686-cross.docker     | 4 ++--
>   tests/docker/dockerfiles/debian-ppc64el-cross.docker  | 4 ++--
>   tests/docker/dockerfiles/debian-riscv64-cross.docker  | 4 ++--
>   tests/docker/dockerfiles/debian-s390x-cross.docker    | 4 ++--
>   tests/docker/dockerfiles/debian.docker                | 4 ++--
>   tests/docker/dockerfiles/fedora-rust-nightly.docker   | 2 +-
>   tests/docker/dockerfiles/fedora-win64-cross.docker    | 2 +-
>   tests/docker/dockerfiles/fedora.docker                | 2 +-
>   tests/docker/dockerfiles/opensuse-leap.docker         | 2 +-
>   tests/docker/dockerfiles/ubuntu2404.docker            | 2 +-
>   tests/lcitool/libvirt-ci                              | 2 +-
>   tests/lcitool/refresh                                 | 2 +-
>   18 files changed, 27 insertions(+), 27 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 2/6] tests/lcitool/refresh: generate dockerfiles using --host-arch x86_64
  2026-09-23 18:57 ` [PATCH v2 2/6] tests/lcitool/refresh: generate dockerfiles using --host-arch x86_64 Pierrick Bouvier
  2026-09-24  4:56   ` Philippe Mathieu-Daudé
@ 2026-09-24  8:57   ` Daniel P. Berrangé
  1 sibling, 0 replies; 11+ messages in thread
From: Daniel P. Berrangé @ 2026-09-24  8:57 UTC (permalink / raw)
  To: Pierrick Bouvier; +Cc: qemu-devel, Richard Henderson, philmd, alex.bennee

On Wed, Sep 23, 2026 at 11:57:21AM -0700, Pierrick Bouvier wrote:
> To ensure refresh output is consistent on any host architecture, we need
> to specify which host arch it's supposed to target.
> Indeed, by default, package list will depend on host architecture, which
> means that output will depend on which machine runs refresh command.
> For example, on aarch64 host, refresh removes libpmem-dev package since
> it's not available.
> 
> Also, update lcitool submodule: It now uses arch specific images by
> default. Thus we update all images at the same time.
> https://gitlab.com/libvirt/libvirt-ci/-/commit/f34cd57eb892259c26600187bc35cc4152f932cf
> 
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
> ---
>  tests/docker/dockerfiles/alpine.docker                | 2 +-
>  tests/docker/dockerfiles/centos9.docker               | 2 +-
>  tests/docker/dockerfiles/debian-all-test-cross.docker | 4 ++--
>  tests/docker/dockerfiles/debian-amd64-cross.docker    | 4 ++--
>  tests/docker/dockerfiles/debian-arm64-cross.docker    | 4 ++--
>  tests/docker/dockerfiles/debian-armhf-cross.docker    | 4 ++--
>  tests/docker/dockerfiles/debian-i686-cross.docker     | 4 ++--
>  tests/docker/dockerfiles/debian-ppc64el-cross.docker  | 4 ++--
>  tests/docker/dockerfiles/debian-riscv64-cross.docker  | 4 ++--
>  tests/docker/dockerfiles/debian-s390x-cross.docker    | 4 ++--
>  tests/docker/dockerfiles/debian.docker                | 4 ++--
>  tests/docker/dockerfiles/fedora-rust-nightly.docker   | 2 +-
>  tests/docker/dockerfiles/fedora-win64-cross.docker    | 2 +-
>  tests/docker/dockerfiles/fedora.docker                | 2 +-
>  tests/docker/dockerfiles/opensuse-leap.docker         | 2 +-
>  tests/docker/dockerfiles/ubuntu2404.docker            | 2 +-
>  tests/lcitool/libvirt-ci                              | 2 +-
>  tests/lcitool/refresh                                 | 2 +-
>  18 files changed, 27 insertions(+), 27 deletions(-)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


With regards,
Daniel
-- 
|: https://berrange.com       ~~        https://hachyderm.io/@berrange :|
|: https://libvirt.org          ~~          https://entangle-photo.org :|
|: https://pixelfed.art/berrange   ~~    https://fstop138.berrange.com :|



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/6] tests/tcg: use x86_64 cross containers on all host architectures
  2026-09-23 18:57 [PATCH v2 0/6] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
                   ` (5 preceding siblings ...)
  2026-09-23 18:57 ` [PATCH v2 6/6] tests/tcg/x86_64: speed up compilation of avx, mmx and 3dnow tests Pierrick Bouvier
@ 2026-09-24 17:17 ` Pierrick Bouvier
  2026-09-25 22:17 ` Pierrick Bouvier
  7 siblings, 0 replies; 11+ messages in thread
From: Pierrick Bouvier @ 2026-09-24 17:17 UTC (permalink / raw)
  To: qemu-devel; +Cc: Richard Henderson, philmd, berrange, alex.bennee

On 9/23/2026 11:57 AM, Pierrick Bouvier wrote:
> To increase our testing surface on aarch64 and other hosts, and also to ease
> maintenance of docker images, this series introduces x86_64 base containers.
> We rely on qemu-user-binfmt (available at least on Fedora and Debian/Ubuntu) to
> be installed to execute x86_64 binaries on other host arch.
> With this, we can run the full tcg tests suite on any host architecture.
> 
> This series exposed an issue with on aarch64 hosts with test
> loongarch64-softmmu-memory that was reported in issue:
> https://gitlab.com/qemu-project/qemu/-/work_items/4567
> 
> v2
> --
> 
> - Add comment in patch 1 to explain we detect x86_64 containers execution
>   capability
> - Replace the registry change patch with updated libvirt-ci, that now generates
>   arch specific Dockerfiles by default
> - Use lcitool --host-arch x86_64 to have stable refresh output on different host
>   architectures
> - Add a patch to speed up compilation of x86_64/test-avx.c.
>

I'll send this series in a PR tomorrow, unless there are additional
comments on patches 4, 5, 6.

Regards,
Pierrick


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/6] tests/tcg: use x86_64 cross containers on all host architectures
  2026-09-23 18:57 [PATCH v2 0/6] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
                   ` (6 preceding siblings ...)
  2026-09-24 17:17 ` [PATCH v2 0/6] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
@ 2026-09-25 22:17 ` Pierrick Bouvier
  7 siblings, 0 replies; 11+ messages in thread
From: Pierrick Bouvier @ 2026-09-25 22:17 UTC (permalink / raw)
  To: qemu-devel; +Cc: Richard Henderson, philmd, berrange, alex.bennee

On 9/23/2026 11:57 AM, Pierrick Bouvier wrote:
> To increase our testing surface on aarch64 and other hosts, and also to ease
> maintenance of docker images, this series introduces x86_64 base containers.
> We rely on qemu-user-binfmt (available at least on Fedora and Debian/Ubuntu) to
> be installed to execute x86_64 binaries on other host arch.
> With this, we can run the full tcg tests suite on any host architecture.
> 
> This series exposed an issue with on aarch64 hosts with test
> loongarch64-softmmu-memory that was reported in issue:
> https://gitlab.com/qemu-project/qemu/-/work_items/4567
> 
> v2
> --
> 
> - Add comment in patch 1 to explain we detect x86_64 containers execution
>   capability
> - Replace the registry change patch with updated libvirt-ci, that now generates
>   arch specific Dockerfiles by default
> - Use lcitool --host-arch x86_64 to have stable refresh output on different host
>   architectures
> - Add a patch to speed up compilation of x86_64/test-avx.c.
> 
> Pierrick Bouvier (6):
>   tests/tcg/meson.build: force use of linux/amd64 platform for
>     containers
>   tests/lcitool/refresh: generate dockerfiles using --host-arch x86_64
>   tests/docker/dockerfiles/debian-all-test: remove arch specific bits
>   tests/tcg/meson.build: remove cc_docker_host_arch
>   tests/tcg/loongarch64/system: deactivate loongarch64-softmmu-memory
>     (hang on aarch64 host)
>   tests/tcg/x86_64: speed up compilation of avx, mmx and 3dnow tests
> 
>  tests/docker/dockerfiles/alpine.docker        |  2 +-
>  tests/docker/dockerfiles/centos9.docker       |  2 +-
>  .../dockerfiles/debian-all-test-cross.docker  | 39 +++++++++----------
>  .../dockerfiles/debian-amd64-cross.docker     |  4 +-
>  .../dockerfiles/debian-arm64-cross.docker     |  4 +-
>  .../dockerfiles/debian-armhf-cross.docker     |  4 +-
>  .../dockerfiles/debian-i686-cross.docker      |  4 +-
>  .../dockerfiles/debian-ppc64el-cross.docker   |  4 +-
>  .../dockerfiles/debian-riscv64-cross.docker   |  4 +-
>  .../dockerfiles/debian-s390x-cross.docker     |  4 +-
>  tests/docker/dockerfiles/debian.docker        |  4 +-
>  .../dockerfiles/fedora-rust-nightly.docker    |  2 +-
>  .../dockerfiles/fedora-win64-cross.docker     |  2 +-
>  tests/docker/dockerfiles/fedora.docker        |  2 +-
>  tests/docker/dockerfiles/opensuse-leap.docker |  2 +-
>  tests/docker/dockerfiles/ubuntu2404.docker    |  2 +-
>  tests/lcitool/libvirt-ci                      |  2 +-
>  tests/lcitool/refresh                         | 37 +++++++++---------
>  tests/tcg/aarch64/meson.build                 |  2 -
>  tests/tcg/aarch64/system/meson.build          |  1 -
>  tests/tcg/aarch64_be/meson.build              |  1 -
>  tests/tcg/alpha/meson.build                   |  2 -
>  tests/tcg/alpha/system/meson.build            |  1 -
>  tests/tcg/arm/meson.build                     |  2 -
>  tests/tcg/arm/system/meson.build              |  1 -
>  tests/tcg/hexagon/meson.build                 |  1 -
>  tests/tcg/hppa/meson.build                    |  1 -
>  tests/tcg/i386/meson.build                    |  2 -
>  tests/tcg/i386/system/meson.build             |  1 -
>  tests/tcg/loongarch64/meson.build             |  2 -
>  tests/tcg/loongarch64/system/meson.build      |  6 ++-
>  tests/tcg/m68k/meson.build                    |  1 -
>  tests/tcg/meson.build                         | 33 +++++++++-------
>  tests/tcg/mips/meson.build                    |  1 -
>  tests/tcg/mips64/meson.build                  |  1 -
>  tests/tcg/mips64el/meson.build                |  1 -
>  tests/tcg/or1k/meson.build                    |  1 -
>  tests/tcg/ppc64/meson.build                   |  1 -
>  tests/tcg/ppc64le/meson.build                 |  1 -
>  tests/tcg/riscv64/meson.build                 |  2 -
>  tests/tcg/riscv64/system/meson.build          |  1 -
>  tests/tcg/s390x/meson.build                   |  2 -
>  tests/tcg/s390x/system/meson.build            |  1 -
>  tests/tcg/sh4/meson.build                     |  1 -
>  tests/tcg/tricore/meson.build                 |  1 -
>  tests/tcg/x86_64/meson.build                  |  8 ++--
>  tests/tcg/x86_64/system/meson.build           |  1 -
>  tests/tcg/xtensa/meson.build                  |  3 --
>  48 files changed, 87 insertions(+), 120 deletions(-)
> 

This was merged into master (efa3b9d5ac8024078225e1ab434411fdfe53b457).

Regards,
Pierrick


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-09-25 22:18 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-23 18:57 [PATCH v2 0/6] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
2026-09-23 18:57 ` [PATCH v2 1/6] tests/tcg/meson.build: force use of linux/amd64 platform for containers Pierrick Bouvier
2026-09-23 18:57 ` [PATCH v2 2/6] tests/lcitool/refresh: generate dockerfiles using --host-arch x86_64 Pierrick Bouvier
2026-09-24  4:56   ` Philippe Mathieu-Daudé
2026-09-24  8:57   ` Daniel P. Berrangé
2026-09-23 18:57 ` [PATCH v2 3/6] tests/docker/dockerfiles/debian-all-test: remove arch specific bits Pierrick Bouvier
2026-09-23 18:57 ` [PATCH v2 4/6] tests/tcg/meson.build: remove cc_docker_host_arch Pierrick Bouvier
2026-09-23 18:57 ` [PATCH v2 5/6] tests/tcg/loongarch64/system: deactivate loongarch64-softmmu-memory (hang on aarch64 host) Pierrick Bouvier
2026-09-23 18:57 ` [PATCH v2 6/6] tests/tcg/x86_64: speed up compilation of avx, mmx and 3dnow tests Pierrick Bouvier
2026-09-24 17:17 ` [PATCH v2 0/6] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
2026-09-25 22:17 ` Pierrick Bouvier

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.