]>
Commit | Line | Data |
---|---|---|
324b2298 PB |
1 | .. _Supported-build-platforms: |
2 | ||
3 | Supported build platforms | |
4 | ========================= | |
5 | ||
6 | QEMU aims to support building and executing on multiple host OS | |
7 | platforms. This appendix outlines which platforms are the major build | |
8 | targets. These platforms are used as the basis for deciding upon the | |
9 | minimum required versions of 3rd party software QEMU depends on. The | |
10 | supported platforms are the targets for automated testing performed by | |
11 | the project when patches are submitted for review, and tested before and | |
12 | after merge. | |
13 | ||
14 | If a platform is not listed here, it does not imply that QEMU won't | |
15 | work. If an unlisted platform has comparable software versions to a | |
16 | listed platform, there is every expectation that it will work. Bug | |
17 | reports are welcome for problems encountered on unlisted platforms | |
18 | unless they are clearly older vintage than what is described here. | |
19 | ||
20 | Note that when considering software versions shipped in distros as | |
21 | support targets, QEMU considers only the version number, and assumes the | |
22 | features in that distro match the upstream release with the same | |
23 | version. In other words, if a distro backports extra features to the | |
24 | software in their distro, QEMU upstream code will not add explicit | |
25 | support for those backports, unless the feature is auto-detectable in a | |
26 | manner that works for the upstream releases too. | |
27 | ||
e6e80fcf | 28 | The `Repology`_ site is a useful resource to identify |
324b2298 PB |
29 | currently shipped versions of software in various operating systems, |
30 | though it does not cover all distros listed below. | |
31 | ||
7f800d34 MAL |
32 | Supported host architectures |
33 | ---------------------------- | |
34 | ||
35 | Those hosts are officially supported, with various accelerators: | |
36 | ||
37 | .. list-table:: | |
38 | :header-rows: 1 | |
39 | ||
40 | * - CPU Architecture | |
41 | - Accelerators | |
42 | * - Arm | |
43 | - kvm (64 bit only), tcg, xen | |
54ab3c3f | 44 | * - MIPS (little endian only) |
7f800d34 MAL |
45 | - kvm, tcg |
46 | * - PPC | |
47 | - kvm, tcg | |
48 | * - RISC-V | |
07952003 | 49 | - kvm, tcg |
7f800d34 MAL |
50 | * - s390x |
51 | - kvm, tcg | |
52 | * - SPARC | |
53 | - tcg | |
54 | * - x86 | |
55 | - hax, hvf (64 bit only), kvm, nvmm, tcg, whpx (64 bit only), xen | |
56 | ||
f1f727ac PMD |
57 | Other host architectures are not supported. It is possible to build QEMU system |
58 | emulation on an unsupported host architecture using the configure | |
59 | ``--enable-tcg-interpreter`` option to enable the TCI support, but note that | |
60 | this is very slow and is not recommended for normal use. QEMU user emulation | |
61 | requires host-specific support for signal handling, therefore TCI won't help | |
62 | on unsupported host architectures. | |
7f800d34 MAL |
63 | |
64 | Non-supported architectures may be removed in the future following the | |
65 | :ref:`deprecation process<Deprecated features>`. | |
66 | ||
e6e80fcf DB |
67 | Linux OS, macOS, FreeBSD, NetBSD, OpenBSD |
68 | ----------------------------------------- | |
324b2298 | 69 | |
e6e80fcf DB |
70 | The project aims to support the most recent major version at all times. Support |
71 | for the previous major version will be dropped 2 years after the new major | |
72 | version is released or when the vendor itself drops support, whichever comes | |
73 | first. In this context, third-party efforts to extend the lifetime of a distro | |
fbf8c96b AB |
74 | are not considered, even when they are endorsed by the vendor (eg. Debian LTS); |
75 | the same is true of repositories that contain packages backported from later | |
76 | releases (e.g. Debian backports). Within each major release, only the most | |
77 | recent minor release is considered. | |
324b2298 | 78 | |
e6e80fcf DB |
79 | For the purposes of identifying supported software versions available on Linux, |
80 | the project will look at CentOS, Debian, Fedora, openSUSE, RHEL, SLES and | |
81 | Ubuntu LTS. Other distros will be assumed to ship similar software versions. | |
324b2298 | 82 | |
e6e80fcf DB |
83 | For FreeBSD and OpenBSD, decisions will be made based on the contents of the |
84 | respective ports repository, while NetBSD will use the pkgsrc repository. | |
324b2298 | 85 | |
4a89bf18 | 86 | For macOS, `Homebrew`_ will be used, although `MacPorts`_ is expected to carry |
e6e80fcf | 87 | similar versions. |
324b2298 | 88 | |
e6e80fcf | 89 | Windows |
324b2298 PB |
90 | ------- |
91 | ||
0ce9b08c TH |
92 | The project aims to support the two most recent versions of Windows that are |
93 | still supported by the vendor. The minimum Windows API that is currently | |
cf60ccc3 | 94 | targeted is "Windows 8", so theoretically the QEMU binaries can still be run |
0ce9b08c TH |
95 | on older versions of Windows, too. However, such old versions of Windows are |
96 | not tested anymore, so it is recommended to use one of the latest versions of | |
97 | Windows instead. | |
98 | ||
99 | The project supports building QEMU with current versions of the MinGW | |
b67de91e BM |
100 | toolchain, either hosted on Linux (Debian/Fedora) or via `MSYS2`_ on Windows. |
101 | A more recent Windows version is always preferred as it is less likely to have | |
102 | problems with building via MSYS2. The building process of QEMU involves some | |
103 | Python scripts that call os.symlink() which needs special attention for the | |
104 | build process to successfully complete. On newer versions of Windows 10, | |
105 | unprivileged accounts can create symlinks if Developer Mode is enabled. | |
106 | When Developer Mode is not available/enabled, the SeCreateSymbolicLinkPrivilege | |
107 | privilege is required, or the process must be run as an administrator. | |
324b2298 | 108 | |
4a89bf18 | 109 | .. _Homebrew: https://brew.sh/ |
e6e80fcf | 110 | .. _MacPorts: https://www.macports.org/ |
b67de91e | 111 | .. _MSYS2: https://www.msys2.org/ |
e6e80fcf | 112 | .. _Repology: https://repology.org/ |