ChangeLog/8.1: Difference between revisions

From QEMU
(→‎Miscellaneous: strtosz parser improvements)
Line 209: Line 209:
* The <tt>--meson</tt> and <tt>--sphinx-build</tt> options to configure have been removed. Meson and Sphinx will always be invoked through the Python interpreter specified (optionally) with <tt>--python</tt> or the <tt>$PYTHON</tt> environment variable; in order to use a host installation of Meson or Sphinx, the corresponding packages will have to be installed in the <tt>site-packages</tt> directory of that Python interpreter.
* The <tt>--meson</tt> and <tt>--sphinx-build</tt> options to configure have been removed. Meson and Sphinx will always be invoked through the Python interpreter specified (optionally) with <tt>--python</tt> or the <tt>$PYTHON</tt> environment variable; in order to use a host installation of Meson or Sphinx, the corresponding packages will have to be installed in the <tt>site-packages</tt> directory of that Python interpreter.
* Either pip+setuptools or ensurepip must now be installed to build QEMU. It is recommended to install distlib as well, but the build process tries to cope with its absence and it shouldn't be necessary.
* Either pip+setuptools or ensurepip must now be installed to build QEMU. It is recommended to install distlib as well, but the build process tries to cope with its absence and it shouldn't be necessary.
* A new option <tt>--enable-pypi</tt> will direct configure to find missing Python build dependencies on PyPI. Right now, this only applies to Sphinx and only if <tt>--enable-docs</tt> was passed as well, but this may change in the future.
* A new option <tt>--enable-download</tt> will direct configure to find some missing Python build dependencies. For now this applies to sphinx (downloaded from PyPI) and libslirp (which is then built as a meson subproject).  Only required and explicitly enabled dependencies (e.g.  only for <tt>--enable-docs</tt> in the case of Sphinx) are downloaded.
** The use of <tt>subprojects/wrapdb.json</tt> (downloaded by "meson wrap update-db") isn't supported yet.
* Starting with QEMU 8.1, only Python 3.8 and newer will be supported (3.7 might work but it is not included in any of the environments that we run CI with).
* Starting with QEMU 8.1, only Python 3.8 and newer will be supported (3.7 might work but it is not included in any of the environments that we run CI with).
* new pipewire audio backend requires libpipewire (currently >= 0.3.60)
* new pipewire audio backend requires libpipewire (currently >= 0.3.60)

Revision as of 14:49, 6 June 2023

System emulation

Removed features and incompatible changes

Consult the 'Removed features' page for details of suggested replacement functionality.

New deprecated options and features

Consult the "Deprecated Features" chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.

  • The "-singlestep" command line option is deprecated, as it was very misleadingly named. Its replacement is "-one-insn-per-tb" (for the user-mode emulator) or "-accel one-insn-per-tb=on" (for the system-mode emulator)

68k

Alpha

Arm

  • KVM VMs on a host which supports MTE (the Memory Tagging Extension) can now use MTE in the guest
  • New architectural features now emulated:
    • FEAT_PAN3 (Support for SCTLR_ELx.EPAN)
  • Pointer-authentication information is now reported to the gdbstub (a GDB 13 or later will produce better backtraces when pauth is in use by the guest)
  • Orangepi-PC, Cubieboard: Add Allwinner WDT watchdog emulation
  • mcimxd7-sabre, mcimx6ul-evk: The second ethernet controller PHY is now usable
  • fsl-imx6: The SNVS is now implemented, sufficient for the guest to be able to shut down the machine
  • The SMMUv3 model can now emulate stage-2 translations (but only as an alternative to, not together with, stage-1)

AVR

Hexagon

HPPA

LoongArch

Microblaze

MIPS

Nios2

OpenRISC

  • Allow FPCSR special purpose register to be accessed in user mode
  • Configure FPU to detecting tininess before rounding to align QEMU with architecture specification

PowerPC

Renesas RX

Renesas SH

RISC-V

ISA and Extensions

  • Support subsets of code size reduction extension
  • A large collection of mstatus sum changes and cleanups
  • Zero init APLIC internal state
  • Implement query-cpu-definitions
  • Fix Guest Physical Address Translation
  • Make sure an exception is raised if a pte is malformed

Machines

  • Add signature dump function for spike to run ACT tests
  • Add Ventana's Veyron V1 CPU

Fixes and Misc

  • Fix invalid riscv,event-to-mhpmcounters entry
  • Fix itrigger when icount is used
  • Fix mstatus.MPP related support
  • Fix the H extension TVM trap
  • Restore the predicate() NULL check behavior

s390x

SPARC

Tricore

x86

Xtensa

Device emulation and assignment

ACPI / SMBIOS

Audio

Block devices

Graphics

I2C

Input devices

  • add "virtio-multitouch-pci", a multitouch-capable input device

IPMI

Multi-process QEMU

Network devices

NVDIMM

NVMe

PCI/PCIe

SCSI

SD card

SMBIOS

TPM

  • Added TPM TIS I2C device model

USB

VFIO

virtio

vDPA

Xen

fw_cfg

9pfs

virtiofs

Semihosting

Audio

  • new PipeWire audio backend (-audiodev pipewire)

Character devices

  • It's now possible to specify the input independently from the output with -chardev file (e.g. -chardev file,id=repro,path=/dev/null,input-path=input.txt)

Crypto subsystem

Authorization subsystem

GUI

  • gtk: enable multi-touch events
  • sdl: various keyboard grab fixes

GDBStub

TCG Plugins

Host support

Memory backends

Migration

Monitor

QMP

HMP

Network

Block device backends and tools

Tracing

Semihosting

Miscellaneous

  • Command-line parsing of sizes using a fraction of a scale (such as "1.5M") has been improved: it is now possible to write ".5G" as a synonym for "512M", and no longer possible to cause qemu to read out of bounds on garbage input such as "9.999e999".

User-mode emulation

build

binfmt_misc

Hexagon

LoongArch

Nios2

HPPA

x86

Xtensa

TCG backends

RISC-V

  • Support Zba, Zbb, and Zicond standard extensions.

Guest agent

Build Information

Build Dependencies

  • The --meson and --sphinx-build options to configure have been removed. Meson and Sphinx will always be invoked through the Python interpreter specified (optionally) with --python or the $PYTHON environment variable; in order to use a host installation of Meson or Sphinx, the corresponding packages will have to be installed in the site-packages directory of that Python interpreter.
  • Either pip+setuptools or ensurepip must now be installed to build QEMU. It is recommended to install distlib as well, but the build process tries to cope with its absence and it shouldn't be necessary.
  • A new option --enable-download will direct configure to find some missing Python build dependencies. For now this applies to sphinx (downloaded from PyPI) and libslirp (which is then built as a meson subproject). Only required and explicitly enabled dependencies (e.g. only for --enable-docs in the case of Sphinx) are downloaded.
    • The use of subprojects/wrapdb.json (downloaded by "meson wrap update-db") isn't supported yet.
  • Starting with QEMU 8.1, only Python 3.8 and newer will be supported (3.7 might work but it is not included in any of the environments that we run CI with).
  • new pipewire audio backend requires libpipewire (currently >= 0.3.60)

Windows

Testing and CI

Known issues