summaryrefslogtreecommitdiff
path: root/configure
AgeCommit message (Collapse)Author
2026-06-18Merge tag 'accel-20260618' of https://github.com/philmd/qemu into stagingStefan Hajnoczi
Accelerators patches queue - Avoid double hv_vcpu_destroy() call during teardown on HVF ARM - Constify various AddressSpace/MemoryRegionCache arguments - Clarify physical_memory_*() API in "system/physmem.h" - Extract "accel/tcg/cpu-loop.h" out of "exec/cpu-common.h" - Restrict few TCG-specific code - Remove pre-C11 check - Various header cleanups # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCAAdFiEE+qvnXhKRciHc/Wuy4+MsLN6twN4FAmoz5EIACgkQ4+MsLN6t # wN4pJhAAtQ+qMRS49PoXnyBkPnuTZlnIjhy0gpXp7wRAiZiOQFjgIkX7F8YKz/aQ # Hu15PIsbvH7mjzTiSfW48Km/3qzzCx0F0U9KsNaZLCJ+/HVctaN94slewgAfA6qc # sEuVq6u70oaeGjYVM1wmUXhK3h2vfpWPnE81qjUJBnjsfC99T24TMmtY0CGw8f9J # UJ6SpkwlES9B6YeJ0GFACCZMTMD0QiXuAtKzfL/2aD1Ts31qY9DG/bdlmDJJ3R0Y # y/ZcWjvPQE4NDdcMfuW4/ywz7sAX/h0XreMIb2OL5ppE0qYDBqpB6SFGWjg4uQ5r # yDhzVhdrPT2HxXl9LTYOjlAQEHrs3Pm0170G7OwCVs+gtlloZqV08sJ+61J2jv73 # OH2YsQh/sIy9QUPZxI+LloBRLApMg5mjY9KP5DPH2qmsOpvE4fj07hq+EXS3OCuz # L+3TMD0fhxI+RHg8/zaqidc3+Xb4zN/H069Qkjx0wyQI7QMmfK4rU4CJV6MP6d9r # r9qngtxVfbGfXpaDqan73TjKHx/ZnOgNQqrfaeypiAkiyIoOPRzeG3H6T17HlOBX # S2Pz4vllzs0SS1vC4OKnS1BI2eEf6ge14ozKGQqh5qOvfKlTy4s8fXX/2MKIaqMG # cVE4lkL2suLoxmOu2zsEvDBCVUaRLWZLJZib1J4B/UIvvC3rpQs= # =Jj+Z # -----END PGP SIGNATURE----- # gpg: Signature made Thu 18 Jun 2026 08:27:46 EDT # gpg: using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE # gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <f4bug@amsat.org>" [full] # Primary key fingerprint: FAAB E75E 1291 7221 DCFD 6BB2 E3E3 2C2C DEAD C0DE * tag 'accel-20260618' of https://github.com/philmd/qemu: (48 commits) accel/tcg: Restrict headers being TCG specific accel/tcg: Move cpu_loop_exit_*() out of 'exec/cpu-common.h' accel/tcg: Have cpu_loop_exit_requested() take const @cpu argument accel/tcg: Move cpu_restore_state() out of 'exec/cpu-common.h' accel/tcg: Move cpu_unwind_state_data() out of 'exec/cpu-common.h' accel/tcg: Move cpu_exec_step_atomic() out of 'exec/cpu-common.h' accel/tcg: Move cpu_exec() out of 'exec/cpu-common.h' accel/tcg: Remove cpu_loop_exit() stub hw/s390x/ipl: Remove TCG dependency in handle_diag_308() system/memory: Rename cpu_exec_init_all() -> machine_memory_init() system/memory: Remove unnecessary CONFIG_USER_ONLY guards exec/cpu-common.h: Avoid including unused exec/page-protection.h header exec/cpu-common.h: Avoid including unused 'tcg/debug-assert.h' header exec/cpu-common.h: Avoid including unused 'exec/vaddr.h' header exec/cpu-common.h: Include missing 'qemu/thread.h' header ui/cocoa: Use qemu_input_map_osx_to_linux util/cutils: drop qemu_strnlen() in favor of strnlen() configure: honor --extra-ldflags when forced to use objc_LINKER meson: build macOS signed binary as part of the default target accel/tcg: Restrict IOMMU declarations ... Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2026-06-18configure: honor --extra-ldflags when forced to use objc_LINKERMatt Jacobson
3220b38a8d had the side effect of making the individual target link steps use objc_LINKER on macOS, because `coreaudio.m` became visible to Meson as a source file. (The preexisting presence of `cocoa.m` is masked by the fact that it gets built into libsystem and then extracted back out as an object file.) `configure` correctly passes `$EXTRA_LDFLAGS` to the "C linker" and "C++ linker", but it neglected to do so for the "Objective-C linker". Fix that. Signed-off-by: Matt Jacobson <mhjacobson@me.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com> Message-ID: <20260615045547.23422-1-mhjacobson@me.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
2026-06-17Add GNU/Hurd host_os=gnuDamien Zammit
Signed-off-by: Damien Zammit <damien@zamaudio.com> Link: https://lore.kernel.org/r/20260208055858.2166524-3-damien@zamaudio.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2026-06-05buildsys: Stop checking for ESA/390 hostPhilippe Mathieu-Daudé
We still build QEMU tools on 32-bit hosts (see commit cf634dfcd8f), however no OS supported by QEMU still runs on ESA/390 (Linux dropped support in release 4.1 in 2015). Remove the configure check, directly checking for the 64-bit z/Architecture. Also per commit 3704993f545 from 2020: "we don't support s390, only 64-bit s390x hosts". Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20260519171240.97420-4-philmd@linaro.org> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2026-06-01configure: use debian-all-test-cross for mipsel tcg testsAlex Bennée
Although we have had the mips compilers in all-test-cross for a while we had been surviving using the mipsel cross compiler image. However when that was removed we missed updating the container to use. Fixes: 366bb88e785 (buildsys: Remove MIPS cross containers) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com> Tested-by: Cornelia Huck <cohuck@redhat.com> # running tests on an s390x Message-ID: <20260601143129.144786-4-alex.bennee@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2026-05-21buildsys: Remove support for MIPS hostsPhilippe Mathieu-Daudé
MIPS host support is deprecated since commit 269ffaabc84 ("buildsys: Remove support for 32-bit MIPS hosts"). Time to remove. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20260511135312.38705-3-philmd@linaro.org>
2026-05-21buildsys: Remove MIPS cross containersPhilippe Mathieu-Daudé
As mentioned in commit 269ffaabc84 ("buildsys: Remove support for 32-bit MIPS hosts"), Debian 13 "Trixie" removed support for MIPS. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20260511135312.38705-2-philmd@linaro.org>
2026-03-23tests/lcitool: Update openSUSE to version 16Thomas Huth
The first version of openSUSE 15 has been released in 2018, and according to our support policy, we "support the most recent major version at all times for up to five years after its initial release." Since openSUSE 16 has been released a while ago, and openSUSE is clearly older than 5 years already, it's time to update to version 16 now. Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-ID: <20260316135407.209072-3-thuth@redhat.com> Message-ID: <20260320155107.2143191-7-alex.bennee@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2026-03-23configure: Remove unused variable default_cflagsPeter Maydell
configure has a variable default_cflags, which was originally added in commit bafe78ad3bc4c ("contrib/plugins: use an independent makefile") as part of it setting up the build environment for contrib/plugins, which at the time used make. However, we now build the plugins with meson, and in commit 55c84a72aba4 ("contrib/plugins: remove Makefile for contrib/plugins") we dropped the logic from configure that does that makefile setup, leaving default_cflags as an unused variable. shellcheck helpfully reports this: default_cflags='-O0 -g' ^------------^ SC2034 (warning): default_cflags appears unused. Verify use (or export if used externally). Remove the unused variable. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-id: 20260317120215.2075164-1-peter.maydell@linaro.org
2026-03-09python: add formal python3.14 support and testingJohn Snow
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-ID: <20260226213400.1254014-5-jsnow@redhat.com> Signed-off-by: John Snow <jsnow@redhat.com>
2026-03-02tests/docker: improve handling of docker probesDaniel P. Berrangé
The docker.py script has logic to guess the container command and detects one of * docker * sudo -n docker * podman but the "docker.py probe" command then throws away the detected argv and prints a slightly different argv based solely on the detected argv[0]. The result is that 'probe' will print * docker * sudo docker * podman which means that if sudo was detected & the result of 'probe' were used directly, it would end up prompting for password interaction every time. The 'configure' script, however, runs 'probe' and then throws away the printed argv again, reporting only 'podman' or 'docker', which is used to set the $(RUNC) variable for tests/docker/Makefile.include which is in turn used to pass --engine to docker.py. So the docker.py command will re-detect the need for 'sudo -n' and use it correctly The problem with this is that some commands in Makefile.include do not call docker.py at all, they invoke $(RUNC) directly. Since configure threw away the 'sudo' command prefix Makefile.in won't be adding either 'sudo' or 'sudo -n', it'll just run plain 'docker' which is wrong. This commit sanitizes things so that the 'docker.py probe' prints out the exact detected ARGV, and configure fully preserves this ARGV when setting $(RUNC). Since "$(RUNC)" is no longer just a bare engine name, however, we must now also set the $(CONTAINER_ENGINE) variable for Makefile.include so it can pass something sane to the --engine arg for docker.py Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20260210163556.713841-2-berrange@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2026-02-27tests/docker: migrate legacy-test-cross compilers to trixieAlex Bennée
The bugs have evidently been fixed in the latest release so we can migrate the laggards into how all-test-cross container and remove the legacy hacks. They are also packaged for the main architectures so we don't need to jump through the amd64 hoops. Suggested-by: John Snow <jsnow@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-ID: <20260226185303.1920021-3-alex.bennee@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2026-02-26configure: allow PyPI access for python 'tooling' dependenciesJohn Snow
We actually do not allow our meson requirements to be fetched online because we strictly prefer the vendored version. Move the tooling group installation to a different invocation that does allow PyPI to be accessed when configure is run without explicitly disabling PyPI access. This will allow QEMU to download and install python3-wheel for you if you don't have it in your host environment. Reported-by: Kevin Wolf <kwolf@redhat.com> Reported-by: Thomas Huth <thuth@redhat.com> Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Tested-by: Thomas Huth <thuth@redhat.com> Message-id: 20260225191255.955585-1-jsnow@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2026-02-24configure: unconditionally install "tooling" groupJohn Snow
Alongside meson, always ensure our in-tree tooling group and its out-of-tree dependency, qemu.qmp, is always installed. As a result, several "check-venv" invocations can be removed from various testing scripts. Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20260218213416.674483-16-jsnow@redhat.com> Signed-off-by: John Snow <jsnow@redhat.com>
2026-01-27tests/vm: Make the haiku VM usable againThomas Huth
The haiku VM bitrotted in the course of time. Make sure to use the latest version of the repositories here and install missing pieces like "pip" and "tomli" now. Since we nowadays also install our own version of meson in our venv, this also requires a change to our configure script: On Haiku, the meson binary shows up as pyvenv/non-packaged/bin/meson here, and not in the expected location pyvenv/bin/meson. Adjust the "meson" variable to point to that Haiku-specific location to fix this issue. See also: https://github.com/haiku/haiku/blob/r1beta5/docs/user/storage/storageintro.dox And finally, with the new toolchain from the beta 5, we also have to compile with "-pie", otherwise the linker complains about bad relocations in the object files, so allow compiling with PIE in the configure script now. Reviewed-by: Prasad Pandit <pjp@fedoraproject.org> Signed-off-by: Thomas Huth <thuth@redhat.com> Message-ID: <20260123184429.5278-1-thuth@redhat.com>
2026-01-20configure: add ppc target back to container testsFlorian Hofhammer
Commit 2ff8c9a298 removed support for 32-bit PPC hosts from the build system. Unfortunately, the patch also removed the 32-bit PPC target for containerized tests, which leads to an error when trying to run tests, e.g., with "make check-tcg": "make[1]: *** No rule to make target 'docker-image-debian-ppc-cross', needed by 'build-tcg-tests-ppc-linux-user'. Stop." This patch adds the PPC target back for containerized tests. Fixes: 2ff8c9a2984b ("buildsys: Remove support for 32-bit PPC hosts") Signed-off-by: Florian Hofhammer <florian.hofhammer@fhofhammer.de> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Michael Tokarev <mjt@tls.msk.ru> [Mjt: specify commit subject in Fixes tag) Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2026-01-20configure: Set $PYTHON in the configuration of the optionromsThomas Huth
pc-bios/optionrom/Makefile uses $(PYTHON) for running a Python script, but this variable is never initialized here. So the script gets run via its shebang line - which fails if the "python3" binary is not available on the system. To fix this, write the PYTHON configuration to the config.mak file of the optionroms. Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Michael Tokarev <mjt@tls.msk.ru> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2026-01-17meson: Remove cpu == riscv32 testsRichard Henderson
The 32-bit riscv host is no longer supported. Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2026-01-17meson: Drop host_arch rename for riscv64Richard Henderson
This requires renaming several directories: tcg/riscv, linux-user/include/host/riscv, and common-user/host/riscv. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2026-01-17meson: Drop host_arch rename for mips64Richard Henderson
This requires renaming several directories: tcg/mips, linux-user/include/host/mips, and common-user/host/mips. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2026-01-17meson: Remove cpu == x86 testsRichard Henderson
The 32-bit x86 host is no longer supported. Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2026-01-17*: Remove __i386__ testsRichard Henderson
Remove instances of __i386__, except from tests and imported headers. Drop a block containing sanity check and fprintf error message for i386-on-i386 or x86_64-on-x86_64 emulation. If we really want something like this, we would do it via some form of compile-time check. Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2026-01-17*: Remove arm host supportRichard Henderson
Remove tcg/arm. Remove instances of __arm__, except from tests and imported headers. Remove arm from supported_cpus. Remove linux-user/include/host/arm. Remove common-user/host/arm. Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2026-01-17meson: Drop cpu == wasm32 testsRichard Henderson
The 32-bit wasm32 host is no longer supported. Reviewed-by: Kohei Tokunaga <ktokunaga.mail@gmail.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2026-01-16configure: Enable to propagate -sMEMORY64 flag to EmscriptenKohei Tokunaga
Currently there are some engines that don't support wasm64 (e.g. unsupported on Safari[1]). To mitigate this issue, the configure script allows the user to use Emscripten's compatibility feature, "-sMEMORY64=2" flag[2]. Emscripten's "-sMEMORY64=2" flag still enables 64bit pointers in C code. But this flag lowers the output binary into wasm32, with limiting the maximum memory size to 4GB. So QEMU can run on wasm32 engines. [1] https://webassembly.org/features/ [2] https://emscripten.org/docs/tools_reference/settings_reference.html#memory64 Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <a2f068c7884a629fe3e4b297368d70b0956ab048.1768308374.git.ktokunaga.mail@gmail.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2026-01-16meson: Add wasm64 support to the --cpu flagKohei Tokunaga
wasm64 target enables 64bit pointers using Emscripten's -sMEMORY64=1 flag[1]. This enables QEMU to run 64bit guests. Although the configure script uses "uname -m" as the fallback value when "cpu" is empty, this can't be used for Emscripten which targets to Wasm. So, in wasm build, this commit fixes configure to require --cpu flag to be explicitly specified by the user. [1] https://emscripten.org/docs/tools_reference/settings_reference.html#memory64 Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <91f16f0e9ae6b36fbf0c2caac510dcf855120400.1768308374.git.ktokunaga.mail@gmail.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-12-27bump meson wheel to 1.10.0Paolo Bonzini
This version includes several improvements and bugfixes for Rust. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-12-05tests/tcg: honour the available QEMU binaries when running check-tcgAlex Bennée
Currently configure can identify all the targets that have cross-compilers available from the supplied target-list. By default this is the default_target_list which is all possible targets we can build. At the same time the target list passed to meson is filtered down depending on various factors including not building 64 bit targets on 32 bit hosts. As a result make check-tcg will erroneously attempt to run tests for which we haven't built a QEMU. Solve this by filtering the final list of TCG_TEST_TARGETS based on what actually was configured by meson. Rename the variable that configure spits out to TCG_TESTS_WITH_COMPILERS for clarity and to avoid larger churn in the Makefile. Message-ID: <20251204194902.1340008-4-alex.bennee@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2025-10-16buildsys: Remove support for 32-bit PPC hostsPhilippe Mathieu-Daudé
Stop detecting 32-bit PPC host as supported. See previous commit for rationale. Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> [rth: Retain _ARCH_PPC64 check in udiv_qrnnd] Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20251014173900.87497-4-philmd@linaro.org>
2025-10-16buildsys: Remove support for 32-bit MIPS hostsPhilippe Mathieu-Daudé
Stop detecting 32-bit MIPS host as supported, update the deprecation document. See previous commit for rationale. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20251009195210.33161-8-philmd@linaro.org>
2025-10-09Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into stagingRichard Henderson
* i386: fix migration issues in 10.1 * target/i386/mshv: new accelerator * rust: use glib-sys-rs * rust: fixes for docker tests # -----BEGIN PGP SIGNATURE----- # # iQFIBAABCgAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmjnaOwUHHBib256aW5p # QHJlZGhhdC5jb20ACgkQv/vSX3jHroNsFQf/WXKxZLLnItHwDz3UdwjzewPWpz5N # fpS0E4C03J8pACDgyfl7PQl47P7NlJ08Ig2Lc5l3Z9KiAKgh0orR7Cqd0BY5f9lo # uk4FgXfXpQyApywAlctadrTfcH8sRv2tMaP6EJ9coLtJtHW9RUGFPaZeMsqrjpAl # TpwAXPYNDDvvy1ih1LPh5DzOPDXE4pin2tDa94gJei56gY95auK4zppoNYLdB3kR # GOyR4QK43/yhuxPHOmQCZOE3HK2XrKgMZHWIjAovjZjZFiJs49FaHBOpRfFpsUlG # PB3UbIMtu69VY20LqbbyInPnyATRQzqIGnDGTErP6lfCGTKTy2ulQYWvHA== # =KM5O # -----END PGP SIGNATURE----- # gpg: Signature made Thu 09 Oct 2025 12:49:00 AM PDT # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [unknown] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [unknown] # gpg: WARNING: The key's User ID is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * tag 'for-upstream' of https://gitlab.com/bonzini/qemu: (35 commits) rust: fix path to rust_root_crate.sh tests/docker: make --enable-rust overridable with EXTRA_CONFIGURE_OPTS MAINTAINERS: Add maintainers for mshv accelerator docs: Add mshv to documentation target/i386/mshv: Use preallocated page for hvcall qapi/accel: Allow to query mshv capabilities accel/mshv: Handle overlapping mem mappings target/i386/mshv: Implement mshv_vcpu_run() target/i386/mshv: Write MSRs to the hypervisor target/i386/mshv: Integrate x86 instruction decoder/emulator target/i386/mshv: Register MSRs with MSHV target/i386/mshv: Register CPUID entries with MSHV target/i386/mshv: Set local interrupt controller state target/i386/mshv: Implement mshv_arch_put_registers() target/i386/mshv: Implement mshv_get_special_regs() target/i386/mshv: Implement mshv_get_standard_regs() target/i386/mshv: Implement mshv_store_regs() target/i386/mshv: Add CPU create and remove logic accel/mshv: Add vCPU signal handling accel/mshv: Add vCPU creation and execution loop ... Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2025-10-07build-sys: default to host vendor for rust target tripleMarc-André Lureau
This fixes docker-test@alpine, which uses "alpine" vendor. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Link: https://lore.kernel.org/r/20251007134558.251670-1-marcandre.lureau@redhat.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-10-07tests/functional: Provide GDB to the functional testsGustavo Romero
The probe of GDB is done in 'configure' and the full path is passed to meson.build via the -Dgdb=option. Meson then can pass the location of GDB to the functional tests via an environment variable: QEMU_TEST_GDB. Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org> Message-ID: <20251003141820.85278-4-gustavo.romero@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2025-09-30configure: set the meson executable suffix/extMarc-André Lureau
The 'rustfmt' target runs meson: it needs the correct path with extension on Windows. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20250924120426.2158655-20-marcandre.lureau@redhat.com>
2025-09-30configure: set the bindgen cross targetMarc-André Lureau
Implement a bash version of rust-bindgen rust_to_clang_target() to convert from rust target to clang target. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Message-ID: <20250924120426.2158655-8-marcandre.lureau@redhat.com>
2025-09-30configure: fix rust meson configurationMarc-André Lureau
It was incorrectly set on the [host_machine] and caused error: File "/tmp/qemu-test/build/pyvenv/lib/python3.11/site-packages/mesonbuild/envconfig.py", line 281, in from_literal assert all(isinstance(v, str) for v in raw.values()), 'for mypy' AssertionError: for mypy Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20250924120426.2158655-7-marcandre.lureau@redhat.com>
2025-09-18Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into stagingRichard Henderson
* cpu-exec: more cleanups to CPU loop exits * python: bump bundled Meson to 1.9.0 * rust: require Rust 1.83.0 * rust: temporarily remove from Ubuntu CI * rust: vmstate: convert to use builder pattern * rust: split "qemu-api" crate * rust: rename qemu_api_macros -> qemu_macros * rust: re-export qemu macros from other crates * x86: fix functional test failure for Xen emulation * x86: cleanups # -----BEGIN PGP SIGNATURE----- # # iQFIBAABCgAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmjK6ZsUHHBib256aW5p # QHJlZGhhdC5jb20ACgkQv/vSX3jHroNBKwf/aadInCT4vASOfpxbwZgYfYgR2m2m # BJE9oYKxZJ6MlEOU/1Wfywf9fg4leMSh3XxkDKkEIL19yS6emwin8n3SNYrdAFn3 # 6u4IIWO4NI1Ht3NKytrqFk9wtbH9pAs/gVHLlnmpMxIqtOtZLumPAKNz8rlantmK # UVDYL3Y0L4pD9i5FK1ObMNpk5AsWNr8Tr64fmb+nTkHutld3sBrEMCLI0+EByGyN # lQ16sLn9PGqHOr210zuQP7wP2T3NCI3YokFSPQrUUL8LZGxRdXoNF4hI4uZDKGdn # UbtRu9EkM052qzfsFMrEw5JSbdxEfIjKlPoFKseMv+aWvNAuximAraD3Vg== # =Lr+x # -----END PGP SIGNATURE----- # gpg: Signature made Wed 17 Sep 2025 10:02:19 AM PDT # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [unknown] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [unknown] # gpg: WARNING: The key's User ID is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * tag 'for-upstream' of https://gitlab.com/bonzini/qemu: (60 commits) accel/kvm: Set guest_memfd_offset to non-zero value only when guest_memfd is valid accel/kvm: Zero out mem explicitly in kvm_set_user_memory_region() accel/kvm: Switch to check KVM_CAP_GUEST_MEMFD and KVM_CAP_USER_MEMORY2 on VM i386/kvm: Drop KVM_CAP_X86_SMM check in kvm_arch_init() multiboot: Fix the split lock target/i386: Define enum X86ASIdx for x86's address spaces i386/cpu: Enable SMM cpu address space under KVM hpet: guard IRQ handling with BQL rust: do not inline do_init_io rust: meson: remove unnecessary complication in device crates docs: update rust.rst rust: re-export qemu macros from common/qom/hwcore rust: re-export qemu_macros internal helper in "bits" rust: repurpose qemu_api -> tests rust/pl011: drop dependency on qemu_api rust/hpet: drop now unneeded qemu_api dep rust: rename qemu_api_macros -> qemu_macros rust: split "hwcore" crate rust: split "system" crate rust: split "chardev" crate ... Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2025-09-17configure: bump Meson to 1.9.0 for use with RustPaolo Bonzini
Meson 1.9.0 provides mixed linking of Rust and C objects. As a side effect, this also allows adding dependencies with "sources: ..." files to Rust crates that use structured_sources(). It can also clean up up the meson.build files for Rust noticeably, but due to an issue with doctests (see https://github.com/mesonbuild/meson/pull/14973) that will have to wait for 1.9.1. Reviewed-by: Zhao Liu <zhao1.liu@intel.com> Link: https://lore.kernel.org/r/20250908105005.2119297-3-pbonzini@redhat.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-09-16target/arm: Added test case for SME register exposure to GDBVacha Bhavsar
This patch adds a test case to test SME register exposure to a remote gdb debugging session. This test simply sets and reads SME registers. Signed-off-by: Vacha Bhavsar <vacha.bhavsar@oss.qualcomm.com> Message-id: 20250909161012.2561593-4-vacha.bhavsar@oss.qualcomm.com [PMM: fixed various python formatting nits] Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2025-08-12configure: Don't disable Rust for too old meson versionKevin Wolf
If the user explicitly specified --enable-rust, don't just fail if meson is too old for Rust support, but do the same thing as if meson was too old for the C code: Just download a newer one. In order to avoid the additional download for people who aren't intentionally opting in to Rust, keep the automatic disabling based on the meson version as the default if neither --enable-rust nor --disable-rust were given. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-ID: <20250811142923.89983-1-kwolf@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2025-07-26configure: expose PYTHON to test/tcg/config-host.makAlex Bennée
This will be useful for making $shell calls to something more flexible than the shell builtins. Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-ID: <20250725154517.3523095-11-alex.bennee@linaro.org>
2025-07-21linux-headers: Remove the 32-bit arm headersThomas Huth
KVM support for 32-bit arm has been dropped a while ago, so we don't need these headers in QEMU anymore. Fixes: 82bf7ae84ce ("target/arm: Remove KVM support for 32-bit Arm hosts") Acked-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com> Message-ID: <20250710120035.169376-1-thuth@redhat.com>
2025-06-03build, dockerfiles: add support for detecting rustdocPaolo Bonzini
rustdoc is effectively a custom version of rustc, and it is necessary to specify it in order to run doctests from Meson. Add the relevant configure option and environment variables. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-06-03meson: update to version 1.8.1Paolo Bonzini
This adds several improvements to Rust support, including native clippy and rustdoc targets, the "objects" keyword, and running doctests. Require it only when Rust support is requested, to avoid putting a strict requirement on all build platforms for the sake of an experimental feature. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-05-06meson: Add wasm build in build scriptsKohei Tokunaga
has_int128_type is set to false on emscripten as of now to avoid errors by libffi. Tests are disabled on emscripten because they rely on host features that aren't supported by emscripten (e.g. fork and unix socket). Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com> Link: https://lore.kernel.org/r/ad03b3b180335f59e785e930968077bf15c46260.1745820062.git.ktokunaga.mail@gmail.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-04-30Drop support for Python 3.8Thomas Huth
Python 3.8 went "end of life" in October 2024 and Fedora 42 dropped this version already, so the "python" CI job is currently failing. Thus it's time to drop support for this Python version in QEMU, too. While we're at it, also look for "python3.13" in the configure script. Message-ID: <20250425120710.879518-1-thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2025-04-23Remove the remainders of the Avocado testsThomas Huth
Now that all Avocado tests have been converted to or been replaced by other functional tests, we can delete the remainders of the Avocado tests from the QEMU source tree. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20250414113031.151105-16-thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2025-01-17configure: reenable plugins by default for 32-bit hostsPierrick Bouvier
Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Message-Id: <20241217224306.2900490-12-pierrick.bouvier@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20250116160306.1709518-22-alex.bennee@linaro.org>
2024-11-18configure: Use -ef to compare pathsAkihiko Odaki
configure checks if it is executed in the source directory by comparing the literal paths, but there may be multiple representations of a directory due to symbolic links. Use the -ef operator to tell if they point to the same directory. Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> Link: https://lore.kernel.org/r/20241111-p-v1-1-001006c68b7e@daynix.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-11-05contrib/plugins: remove Makefile for contrib/pluginsPierrick Bouvier
Now replaced by meson build. Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Message-Id: <20241023212812.1376972-4-pierrick.bouvier@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>