* Fixes for the gitlab-CI (fix the hanging build-oss-fuzz pipeline)

* Add documentation about features that have been removed in older versions
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmET1KQRHHRodXRoQHJl
 ZGhhdC5jb20ACgkQLtnXdP5wLbWX8A/9FK6r1lRWLx9KVFyIuwCpNJFA97hdC0su
 OQKWJm1lanipb0hvD+URAQvOK/NqfF+2CHRAtEFR48MQeKhyjdAFXmFD7oNXHcun
 CKMFlBMSWnQlWftB9YsYG69n+90oad9IRCS7j4oq7NH3kmg9UPtMnrVviMSBW4q3
 HDBNJGISN88Zt07WFjsvuiGjUtLOZEKzh8xcjohKeODhq70HfzakdbXedxRf/Nhk
 8iqntRsHjSJ1+bE/Ozw5erlfMGk0RsBb+fzAFQEc70qD8eUKUgrIDfXSBNLufnRK
 06FeTobWL4cF3di5FUjr1o0Af4mM0h/sUU7FfZ0W2WQrtXOpfpSMthVbdnBMxYhr
 FRWGFGTtzgCHuDL/WiJ8yAwfYlKj3f7ZmFvt+kzUq2O+c+klGX8jeyJ2FjNtV0HM
 KtWmw6S3vQvh1STUH57LtyH2f+BVtGPtIJClfqLcyzibUbyr7JgtxR3rHQaQ9nml
 03mdzRgQq7RNpsFkqPvBPhDg4D7D09Nq9tiLnHfyrHcV/3VmifHr6cXJGiZsvY7x
 f2+u/6H+q8yN3EmMbrtpUOENmLYsro8vaNvXsnnwpCYS2j5ZAYp8fmhYswUcV1LD
 jxMw0+YNWycV6Ra8s4WGjH6hYn6ylv86+O0uUK7x+PaSUW/vJ6SymJ4joX16nr2i
 0QA1xlxizoM=
 =VXhO
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/thuth-gitlab/tags/pull-request-2021-08-11' into staging

* Fixes for the gitlab-CI (fix the hanging  build-oss-fuzz pipeline)
* Add documentation about features that have been removed in older versions

# gpg: Signature made Wed 11 Aug 2021 14:46:12 BST
# gpg:                using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5
# gpg:                issuer "thuth@redhat.com"
# gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full]
# gpg:                 aka "Thomas Huth <thuth@redhat.com>" [full]
# gpg:                 aka "Thomas Huth <huth@tuxfamily.org>" [full]
# gpg:                 aka "Thomas Huth <th.huth@posteo.de>" [unknown]
# Primary key fingerprint: 27B8 8847 EEE0 2501 18F3  EAB9 2ED9 D774 FE70 2DB5

* remotes/thuth-gitlab/tags/pull-request-2021-08-11:
  docs/about/removed-features: Document removed machines from older QEMU versions
  docs/about/removed-features: Document removed devices from older QEMU versions
  docs/about/removed-features: Document removed HMP commands from QEMU v2.12
  docs/about/removed-features: Document removed CLI options from QEMU v3.1
  docs/about/removed-features: Document removed CLI options from QEMU v3.0
  docs/about/removed-features: Document removed CLI options from QEMU v2.12
  fuzz: avoid building twice, when running on gitlab
  tests/qtest/vhost-user-blk-test: Check whether qemu-storage-daemon is available
  storage-daemon: Add missing build dependency to the vhost-user-blk-test
  gitlab: skip many more targets in windows cross builds
  gitlab: exclude sparc-softmmu and riscv32-softmmu from cross builds

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Peter Maydell 2021-08-15 16:46:23 +01:00
commit bd44d64a38
7 changed files with 214 additions and 21 deletions

View file

@ -9,7 +9,8 @@
../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS ../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS
--disable-user --target-list-exclude="arm-softmmu cris-softmmu --disable-user --target-list-exclude="arm-softmmu cris-softmmu
i386-softmmu microblaze-softmmu mips-softmmu mipsel-softmmu i386-softmmu microblaze-softmmu mips-softmmu mipsel-softmmu
mips64-softmmu ppc-softmmu sh4-softmmu xtensa-softmmu" mips64-softmmu ppc-softmmu riscv32-softmmu sh4-softmmu
sparc-softmmu xtensa-softmmu $CROSS_SKIP_TARGETS"
- make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS - make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
- if grep -q "EXESUF=.exe" config-host.mak; - if grep -q "EXESUF=.exe" config-host.mak;
then make installer; then make installer;

View file

@ -160,6 +160,8 @@ cross-win32-system:
job: win32-fedora-cross-container job: win32-fedora-cross-container
variables: variables:
IMAGE: fedora-win32-cross IMAGE: fedora-win32-cross
CROSS_SKIP_TARGETS: alpha-softmmu avr-softmmu hppa-softmmu m68k-softmmu
microblazeel-softmmu mips64el-softmmu nios2-softmmu
artifacts: artifacts:
paths: paths:
- build/qemu-setup*.exe - build/qemu-setup*.exe
@ -170,6 +172,8 @@ cross-win64-system:
job: win64-fedora-cross-container job: win64-fedora-cross-container
variables: variables:
IMAGE: fedora-win64-cross IMAGE: fedora-win64-cross
CROSS_SKIP_TARGETS: or1k-softmmu rx-softmmu sh4eb-softmmu sparc64-softmmu
tricore-softmmu xtensaeb-softmmu
artifacts: artifacts:
paths: paths:
- build/qemu-setup*.exe - build/qemu-setup*.exe

View file

@ -9,8 +9,145 @@ trouble after a recent upgrade.
System emulator command line arguments System emulator command line arguments
-------------------------------------- --------------------------------------
``-net ...,name=``\ *name* (removed in 5.1) ``-hdachs`` (removed in 2.12)
''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''
The geometry defined by ``-hdachs c,h,s,t`` should now be specified via
``-device ide-hd,drive=dr,cyls=c,heads=h,secs=s,bios-chs-trans=t``
(together with ``-drive if=none,id=dr,...``).
``-net channel`` (removed in 2.12)
''''''''''''''''''''''''''''''''''
This option has been replaced by ``-net user,guestfwd=...``.
``-net dump`` (removed in 2.12)
'''''''''''''''''''''''''''''''
``-net dump[,vlan=n][,file=filename][,len=maxlen]`` has been replaced by
``-object filter-dump,id=id,netdev=dev[,file=filename][,maxlen=maxlen]``.
Note that the new syntax works with netdev IDs instead of the old "vlan" hubs.
``-no-kvm-pit`` (removed in 2.12)
'''''''''''''''''''''''''''''''''
This was just a dummy option that has been ignored, since the in-kernel PIT
cannot be disabled separately from the irqchip anymore. A similar effect
(which also disables the KVM IOAPIC) can be obtained with
``-M kernel_irqchip=split``.
``-tdf`` (removed in 2.12)
''''''''''''''''''''''''''
There is no replacement, the ``-tdf`` option has just been ignored since the
behaviour that could be changed by this option in qemu-kvm is now the default
when using the KVM PIT. It still can be requested explicitly using
``-global kvm-pit.lost_tick_policy=delay``.
``-drive secs=s``, ``-drive heads=h`` & ``-drive cyls=c`` (removed in 3.0)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
The drive geometry should now be specified via
``-device ...,drive=dr,cyls=c,heads=h,secs=s`` (together with
``-drive if=none,id=dr,...``).
``-drive serial=``, ``-drive trans=`` & ``-drive addr=`` (removed in 3.0)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Use ``-device ...,drive=dr,serial=r,bios-chs-trans=t,addr=a`` instead
(together with ``-drive if=none,id=dr,...``).
``-net ...,vlan=x`` (removed in 3.0)
''''''''''''''''''''''''''''''''''''
The term "vlan" was very confusing for most users in this context (it's about
specifying a hub ID, not about IEEE 802.1Q or something similar), so this
has been removed. To connect one NIC frontend with a network backend, either
use ``-nic ...`` (e.g. for on-board NICs) or use ``-netdev ...,id=n`` together
with ``-device ...,netdev=n`` (for full control over pluggable NICs). To
connect multiple NICs or network backends via a hub device (which is what
vlan did), use ``-nic hubport,hubid=x,...`` or
``-netdev hubport,id=n,hubid=x,...`` (with ``-device ...,netdev=n``) instead.
``-no-kvm-irqchip`` (removed in 3.0)
''''''''''''''''''''''''''''''''''''
Use ``-machine kernel_irqchip=off`` instead.
``-no-kvm-pit-reinjection`` (removed in 3.0)
''''''''''''''''''''''''''''''''''''''''''''
Use ``-global kvm-pit.lost_tick_policy=discard`` instead.
``-balloon`` (removed in 3.1)
'''''''''''''''''''''''''''''
The ``-balloon virtio`` option has been replaced by ``-device virtio-balloon``.
The ``-balloon none`` option was a no-op and has no replacement.
``-bootp`` (removed in 3.1)
'''''''''''''''''''''''''''
The ``-bootp /some/file`` argument is replaced by either
``-netdev user,id=x,bootp=/some/file`` (for pluggable NICs, accompanied with
``-device ...,netdev=x``), or ``-nic user,bootp=/some/file`` (for on-board NICs).
The new syntax allows different settings to be provided per NIC.
``-redir`` (removed in 3.1)
'''''''''''''''''''''''''''
The ``-redir [tcp|udp]:hostport:[guestaddr]:guestport`` option is replaced
by either ``-netdev
user,id=x,hostfwd=[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport``
(for pluggable NICs, accompanied with ``-device ...,netdev=x``) or by the option
``-nic user,hostfwd=[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport``
(for on-board NICs). The new syntax allows different settings to be provided
per NIC.
``-smb`` (removed in 3.1)
'''''''''''''''''''''''''
The ``-smb /some/dir`` argument is replaced by either
``-netdev user,id=x,smb=/some/dir`` (for pluggable NICs, accompanied with
``-device ...,netdev=x``), or ``-nic user,smb=/some/dir`` (for on-board NICs).
The new syntax allows different settings to be provided per NIC.
``-tftp`` (removed in 3.1)
''''''''''''''''''''''''''
The ``-tftp /some/dir`` argument is replaced by either
``-netdev user,id=x,tftp=/some/dir`` (for pluggable NICs, accompanied with
``-device ...,netdev=x``), or ``-nic user,tftp=/some/dir`` (for embedded NICs).
The new syntax allows different settings to be provided per NIC.
``-localtime`` (removed in 3.1)
'''''''''''''''''''''''''''''''
Replaced by ``-rtc base=localtime``.
``-nodefconfig`` (removed in 3.1)
'''''''''''''''''''''''''''''''''
Use ``-no-user-config`` instead.
``-rtc-td-hack`` (removed in 3.1)
'''''''''''''''''''''''''''''''''
Use ``-rtc driftfix=slew`` instead.
``-startdate`` (removed in 3.1)
'''''''''''''''''''''''''''''''
Replaced by ``-rtc base=date``.
``-vnc ...,tls=...``, ``-vnc ...,x509=...`` & ``-vnc ...,x509verify=...``
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
The "tls-creds" option should be used instead to point to a "tls-creds-x509"
object created using "-object".
``-net ...,name=...`` (removed in 5.1)
''''''''''''''''''''''''''''''''''''''
The ``name`` parameter of the ``-net`` option was a synonym The ``name`` parameter of the ``-net`` option was a synonym
for the ``id`` parameter, which should now be used instead. for the ``id`` parameter, which should now be used instead.
@ -219,6 +356,17 @@ Specify the properties for the object as top-level arguments instead.
Human Monitor Protocol (HMP) commands Human Monitor Protocol (HMP) commands
------------------------------------- -------------------------------------
``usb_add`` and ``usb_remove`` (removed in 2.12)
''''''''''''''''''''''''''''''''''''''''''''''''
Replaced by ``device_add`` and ``device_del`` (use ``device_add help`` for a
list of available devices).
``host_net_add`` and ``host_net_remove`` (removed in 2.12)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Replaced by ``netdev_add`` and ``netdev_del``.
The ``hub_id`` parameter of ``hostfwd_add`` / ``hostfwd_remove`` (removed in 5.0) The ``hub_id`` parameter of ``hostfwd_add`` / ``hostfwd_remove`` (removed in 5.0)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
@ -325,6 +473,22 @@ Removed without replacement.
System emulator machines System emulator machines
------------------------ ------------------------
``s390-virtio`` (removed in 2.6)
''''''''''''''''''''''''''''''''
Use the ``s390-ccw-virtio`` machine instead.
The m68k ``dummy`` machine (removed in 2.9)
'''''''''''''''''''''''''''''''''''''''''''
Use the ``none`` machine with the ``loader`` device instead.
``xlnx-ep108`` (removed in 3.0)
'''''''''''''''''''''''''''''''
The EP108 was an early access development board that is no longer used.
Use the ``xlnx-zcu102`` machine instead.
``spike_v1.9.1`` and ``spike_v1.10`` (removed in 5.1) ``spike_v1.9.1`` and ``spike_v1.10`` (removed in 5.1)
''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''
@ -343,8 +507,8 @@ mips ``fulong2e`` machine alias (removed in 6.0)
This machine has been renamed ``fuloong2e``. This machine has been renamed ``fuloong2e``.
``pc-1.0``, ``pc-1.1``, ``pc-1.2`` and ``pc-1.3`` (removed in 6.0) ``pc-0.10`` up to ``pc-1.3`` (removed in 4.0 up to 6.0)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''
These machine types were very old and likely could not be used for live These machine types were very old and likely could not be used for live
migration from old QEMU versions anymore. Use a newer machine type instead. migration from old QEMU versions anymore. Use a newer machine type instead.
@ -365,6 +529,17 @@ running the old binaries, you can use older versions of QEMU.
System emulator devices System emulator devices
----------------------- -----------------------
``spapr-pci-vfio-host-bridge`` (removed in 2.12)
'''''''''''''''''''''''''''''''''''''''''''''''''
The ``spapr-pci-vfio-host-bridge`` device type has been replaced by the
``spapr-pci-host-bridge`` device type.
``ivshmem`` (removed in 4.0)
''''''''''''''''''''''''''''
Replaced by either the ``ivshmem-plain`` or ``ivshmem-doorbell``.
``ide-drive`` (removed in 6.0) ``ide-drive`` (removed in 6.0)
'''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''

View file

@ -73,17 +73,19 @@ if ! make "-j$(nproc)" qemu-fuzz-i386; then
"\nFor example: CC=clang CXX=clang++ $0" "\nFor example: CC=clang CXX=clang++ $0"
fi fi
for i in $(ldd ./qemu-fuzz-i386 | cut -f3 -d' '); do if [ "$GITLAB_CI" != "true" ]; then
cp "$i" "$DEST_DIR/lib/" for i in $(ldd ./qemu-fuzz-i386 | cut -f3 -d' '); do
done cp "$i" "$DEST_DIR/lib/"
rm qemu-fuzz-i386 done
rm qemu-fuzz-i386
# Build a second time to build the final binary with correct rpath # Build a second time to build the final binary with correct rpath
../configure --disable-werror --cc="$CC" --cxx="$CXX" --enable-fuzzing \ ../configure --disable-werror --cc="$CC" --cxx="$CXX" --enable-fuzzing \
--prefix="$DEST_DIR" --bindir="$DEST_DIR" --datadir="$DEST_DIR/data/" \ --prefix="$DEST_DIR" --bindir="$DEST_DIR" --datadir="$DEST_DIR/data/" \
--extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="-Wl,-rpath,\$ORIGIN/lib" \ --extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="-Wl,-rpath,\$ORIGIN/lib" \
--target-list="i386-softmmu" --target-list="i386-softmmu"
make "-j$(nproc)" qemu-fuzz-i386 V=1 make "-j$(nproc)" qemu-fuzz-i386 V=1
fi
# Copy over the datadir # Copy over the datadir
cp -r ../pc-bios/ "$DEST_DIR/pc-bios" cp -r ../pc-bios/ "$DEST_DIR/pc-bios"

View file

@ -6,8 +6,8 @@ subdir('qapi')
if have_tools if have_tools
qsd_ss = qsd_ss.apply(config_host, strict: false) qsd_ss = qsd_ss.apply(config_host, strict: false)
executable('qemu-storage-daemon', qsd = executable('qemu-storage-daemon',
qsd_ss.sources(), qsd_ss.sources(),
dependencies: qsd_ss.dependencies(), dependencies: qsd_ss.dependencies(),
install: true) install: true)
endif endif

View file

@ -276,8 +276,11 @@ foreach dir : target_dirs
endif endif
qtest_env.set('G_TEST_DBUS_DAEMON', meson.source_root() / 'tests/dbus-vmstate-daemon.sh') qtest_env.set('G_TEST_DBUS_DAEMON', meson.source_root() / 'tests/dbus-vmstate-daemon.sh')
qtest_env.set('QTEST_QEMU_BINARY', './qemu-system-' + target_base) qtest_env.set('QTEST_QEMU_BINARY', './qemu-system-' + target_base)
qtest_env.set('QTEST_QEMU_STORAGE_DAEMON_BINARY', './storage-daemon/qemu-storage-daemon') if have_tools and have_vhost_user_blk_server
qtest_env.set('QTEST_QEMU_STORAGE_DAEMON_BINARY', './storage-daemon/qemu-storage-daemon')
test_deps += [qsd]
endif
foreach test : target_qtests foreach test : target_qtests
# Executables are shared across targets, declare them only the first time we # Executables are shared across targets, declare them only the first time we
# encounter them # encounter them

View file

@ -789,6 +789,14 @@ static const char *qtest_qemu_storage_daemon_binary(void)
exit(0); exit(0);
} }
/* If we've got a path to the binary, check whether we can access it */
if (strchr(qemu_storage_daemon_bin, '/') &&
access(qemu_storage_daemon_bin, X_OK) != 0) {
fprintf(stderr, "ERROR: '%s' is not accessible\n",
qemu_storage_daemon_bin);
exit(1);
}
return qemu_storage_daemon_bin; return qemu_storage_daemon_bin;
} }