2020-02-28 16:36:05 +01:00
|
|
|
.. _Supported-build-platforms:
|
|
|
|
|
|
|
|
Supported build platforms
|
|
|
|
=========================
|
|
|
|
|
|
|
|
QEMU aims to support building and executing on multiple host OS
|
|
|
|
platforms. This appendix outlines which platforms are the major build
|
|
|
|
targets. These platforms are used as the basis for deciding upon the
|
|
|
|
minimum required versions of 3rd party software QEMU depends on. The
|
|
|
|
supported platforms are the targets for automated testing performed by
|
|
|
|
the project when patches are submitted for review, and tested before and
|
|
|
|
after merge.
|
|
|
|
|
|
|
|
If a platform is not listed here, it does not imply that QEMU won't
|
|
|
|
work. If an unlisted platform has comparable software versions to a
|
|
|
|
listed platform, there is every expectation that it will work. Bug
|
|
|
|
reports are welcome for problems encountered on unlisted platforms
|
|
|
|
unless they are clearly older vintage than what is described here.
|
|
|
|
|
|
|
|
Note that when considering software versions shipped in distros as
|
|
|
|
support targets, QEMU considers only the version number, and assumes the
|
|
|
|
features in that distro match the upstream release with the same
|
|
|
|
version. In other words, if a distro backports extra features to the
|
|
|
|
software in their distro, QEMU upstream code will not add explicit
|
|
|
|
support for those backports, unless the feature is auto-detectable in a
|
|
|
|
manner that works for the upstream releases too.
|
|
|
|
|
2020-09-17 17:50:47 +02:00
|
|
|
The `Repology`_ site is a useful resource to identify
|
2020-02-28 16:36:05 +01:00
|
|
|
currently shipped versions of software in various operating systems,
|
|
|
|
though it does not cover all distros listed below.
|
|
|
|
|
2021-08-23 15:28:03 +02:00
|
|
|
Supported host architectures
|
|
|
|
----------------------------
|
|
|
|
|
|
|
|
Those hosts are officially supported, with various accelerators:
|
|
|
|
|
|
|
|
.. list-table::
|
|
|
|
:header-rows: 1
|
|
|
|
|
|
|
|
* - CPU Architecture
|
|
|
|
- Accelerators
|
|
|
|
* - Arm
|
|
|
|
- kvm (64 bit only), tcg, xen
|
2022-09-14 17:59:41 +02:00
|
|
|
* - MIPS (little endian only)
|
2021-08-23 15:28:03 +02:00
|
|
|
- kvm, tcg
|
|
|
|
* - PPC
|
|
|
|
- kvm, tcg
|
|
|
|
* - RISC-V
|
2022-07-19 10:26:35 +02:00
|
|
|
- kvm, tcg
|
2021-08-23 15:28:03 +02:00
|
|
|
* - s390x
|
|
|
|
- kvm, tcg
|
|
|
|
* - SPARC
|
|
|
|
- tcg
|
|
|
|
* - x86
|
|
|
|
- hax, hvf (64 bit only), kvm, nvmm, tcg, whpx (64 bit only), xen
|
|
|
|
|
2021-11-06 12:14:57 +01:00
|
|
|
Other host architectures are not supported. It is possible to build QEMU system
|
|
|
|
emulation on an unsupported host architecture using the configure
|
|
|
|
``--enable-tcg-interpreter`` option to enable the TCI support, but note that
|
|
|
|
this is very slow and is not recommended for normal use. QEMU user emulation
|
|
|
|
requires host-specific support for signal handling, therefore TCI won't help
|
|
|
|
on unsupported host architectures.
|
2021-08-23 15:28:03 +02:00
|
|
|
|
|
|
|
Non-supported architectures may be removed in the future following the
|
|
|
|
:ref:`deprecation process<Deprecated features>`.
|
|
|
|
|
2020-09-17 17:50:47 +02:00
|
|
|
Linux OS, macOS, FreeBSD, NetBSD, OpenBSD
|
|
|
|
-----------------------------------------
|
2020-02-28 16:36:05 +01:00
|
|
|
|
2020-09-17 17:50:47 +02:00
|
|
|
The project aims to support the most recent major version at all times. Support
|
|
|
|
for the previous major version will be dropped 2 years after the new major
|
|
|
|
version is released or when the vendor itself drops support, whichever comes
|
|
|
|
first. In this context, third-party efforts to extend the lifetime of a distro
|
2022-04-20 18:03:11 +02:00
|
|
|
are not considered, even when they are endorsed by the vendor (eg. Debian LTS);
|
|
|
|
the same is true of repositories that contain packages backported from later
|
|
|
|
releases (e.g. Debian backports). Within each major release, only the most
|
|
|
|
recent minor release is considered.
|
2020-02-28 16:36:05 +01:00
|
|
|
|
2020-09-17 17:50:47 +02:00
|
|
|
For the purposes of identifying supported software versions available on Linux,
|
|
|
|
the project will look at CentOS, Debian, Fedora, openSUSE, RHEL, SLES and
|
|
|
|
Ubuntu LTS. Other distros will be assumed to ship similar software versions.
|
2020-02-28 16:36:05 +01:00
|
|
|
|
2020-09-17 17:50:47 +02:00
|
|
|
For FreeBSD and OpenBSD, decisions will be made based on the contents of the
|
|
|
|
respective ports repository, while NetBSD will use the pkgsrc repository.
|
2020-02-28 16:36:05 +01:00
|
|
|
|
2022-04-22 10:34:03 +02:00
|
|
|
For macOS, `Homebrew`_ will be used, although `MacPorts`_ is expected to carry
|
2020-09-17 17:50:47 +02:00
|
|
|
similar versions.
|
2020-02-28 16:36:05 +01:00
|
|
|
|
2020-09-17 17:50:47 +02:00
|
|
|
Windows
|
2020-02-28 16:36:05 +01:00
|
|
|
-------
|
|
|
|
|
2022-05-13 08:39:58 +02:00
|
|
|
The project aims to support the two most recent versions of Windows that are
|
|
|
|
still supported by the vendor. The minimum Windows API that is currently
|
2022-06-24 16:50:37 +02:00
|
|
|
targeted is "Windows 8", so theoretically the QEMU binaries can still be run
|
2022-05-13 08:39:58 +02:00
|
|
|
on older versions of Windows, too. However, such old versions of Windows are
|
|
|
|
not tested anymore, so it is recommended to use one of the latest versions of
|
|
|
|
Windows instead.
|
|
|
|
|
|
|
|
The project supports building QEMU with current versions of the MinGW
|
2022-07-19 15:50:14 +02:00
|
|
|
toolchain, either hosted on Linux (Debian/Fedora) or via `MSYS2`_ on Windows.
|
|
|
|
A more recent Windows version is always preferred as it is less likely to have
|
|
|
|
problems with building via MSYS2. The building process of QEMU involves some
|
|
|
|
Python scripts that call os.symlink() which needs special attention for the
|
|
|
|
build process to successfully complete. On newer versions of Windows 10,
|
|
|
|
unprivileged accounts can create symlinks if Developer Mode is enabled.
|
|
|
|
When Developer Mode is not available/enabled, the SeCreateSymbolicLinkPrivilege
|
|
|
|
privilege is required, or the process must be run as an administrator.
|
2020-02-28 16:36:05 +01:00
|
|
|
|
2022-04-22 10:34:03 +02:00
|
|
|
.. _Homebrew: https://brew.sh/
|
2020-09-17 17:50:47 +02:00
|
|
|
.. _MacPorts: https://www.macports.org/
|
2022-07-19 15:50:14 +02:00
|
|
|
.. _MSYS2: https://www.msys2.org/
|
2020-09-17 17:50:47 +02:00
|
|
|
.. _Repology: https://repology.org/
|