* 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
--disable-user --target-list-exclude="arm-softmmu cris-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
- if grep -q "EXESUF=.exe" config-host.mak;
then make installer;

View File

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

View File

@ -9,8 +9,145 @@ trouble after a recent upgrade.
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
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
-------------------------------------
``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)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
@ -325,6 +473,22 @@ Removed without replacement.
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)
'''''''''''''''''''''''''''''''''''''''''''''''''''''
@ -343,8 +507,8 @@ mips ``fulong2e`` machine alias (removed in 6.0)
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
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
-----------------------
``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)
''''''''''''''''''''''''''''''

View File

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

View File

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

View File

@ -276,8 +276,11 @@ foreach dir : target_dirs
endif
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_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
# Executables are shared across targets, declare them only the first time we
# encounter them

View File

@ -789,6 +789,14 @@ static const char *qtest_qemu_storage_daemon_binary(void)
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;
}