configure | 176 +++++++++++----------- .gitlab-ci.d/crossbuilds.yml | 22 ++- .gitlab-ci.yml | 16 +- .travis.yml | 8 - meson_options.txt | 2 +- po/meson.build | 2 +- python/qemu/console_socket.py | 7 + tests/docker/Makefile.include | 6 +- tests/docker/dockerfiles/centos8.docker | 2 +- tests/docker/dockerfiles/fedora-i386-cross.docker | 18 ++- tests/tcg/Makefile.target | 2 +- 11 files changed, 148 insertions(+), 113 deletions(-)
The following changes since commit af3f37319cb1e1ca0c42842ecdbd1bcfc64a4b6f:
Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging (2020-12-15 21:24:31 +0000)
are available in the Git repository at:
https://github.com/stsquad/qemu.git tags/pull-testing-161220-1
for you to fetch changes up to f1d2e115645ddf18bd235e853ca47f73f4dffe6b:
tests: update for rename of CentOS8 PowerTools repo (2020-12-16 16:19:37 +0000)
----------------------------------------------------------------
Testing and configure updates:
- add moxie-softmmu to deprecated_targets_list
- improve cross-build KVM coverage
- new --without-default-features configure flag
- add __repr__ for ConsoleSocket for debugging
- build tcg tests with -Werror
- test 32 bit builds with fedora
- remove last traces of debian9
- hotfix for centos8 powertools repo
----------------------------------------------------------------
Alex Bennée (8):
configure: include moxie-softmmu in deprecated_targets_list
gitlab: include aarch64-softmmu and ppc64-softmmu cross-system-build
configure: move gettext detection to meson.build
configure: add --without-default-features
python: add __repr__ to ConsoleSocket to aid debugging
gitlab: move --without-default-devices build from Travis
gitlab: add --without-default-features build
tests/tcg: build tests with -Werror
Daniel P. Berrangé (1):
tests: update for rename of CentOS8 PowerTools repo
Thomas Huth (2):
gitlab-CI: Test 32-bit builds with the fedora-i386-cross container
tests/docker: Remove the remainders of debian9 containers from the Makefile
configure | 176 +++++++++++-----------
.gitlab-ci.d/crossbuilds.yml | 22 ++-
.gitlab-ci.yml | 16 +-
.travis.yml | 8 -
meson_options.txt | 2 +-
po/meson.build | 2 +-
python/qemu/console_socket.py | 7 +
tests/docker/Makefile.include | 6 +-
tests/docker/dockerfiles/centos8.docker | 2 +-
tests/docker/dockerfiles/fedora-i386-cross.docker | 18 ++-
tests/tcg/Makefile.target | 2 +-
11 files changed, 148 insertions(+), 113 deletions(-)
--
2.20.1
Alex Bennée <alex.bennee@linaro.org> writes: > The following changes since commit af3f37319cb1e1ca0c42842ecdbd1bcfc64a4b6f: > > Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging (2020-12-15 21:24:31 +0000) > > are available in the Git repository at: > > https://github.com/stsquad/qemu.git tags/pull-testing-161220-1 > <snip> > - hotfix for centos8 powertools repo As you have noted this requires the cached copy to be deleted. I'm not sure if it's worth handling that in code or if you just do that manually before you merge? -- Alex Bennée
On Wed, 16 Dec 2020 at 18:24, Alex Bennée <alex.bennee@linaro.org> wrote: > > > Alex Bennée <alex.bennee@linaro.org> writes: > > > The following changes since commit af3f37319cb1e1ca0c42842ecdbd1bcfc64a4b6f: > > > > Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging (2020-12-15 21:24:31 +0000) > > > > are available in the Git repository at: > > > > https://github.com/stsquad/qemu.git tags/pull-testing-161220-1 > > > <snip> > > - hotfix for centos8 powertools repo > > As you have noted this requires the cached copy to be deleted. I'm not > sure if it's worth handling that in code or if you just do that manually > before you merge? I would prefer it if the gitlab CI infra Just Worked. I don't want to be manually messing around with it... -- PMM
Peter Maydell <peter.maydell@linaro.org> writes: > On Wed, 16 Dec 2020 at 18:24, Alex Bennée <alex.bennee@linaro.org> wrote: >> >> >> Alex Bennée <alex.bennee@linaro.org> writes: >> >> > The following changes since commit af3f37319cb1e1ca0c42842ecdbd1bcfc64a4b6f: >> > >> > Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging (2020-12-15 21:24:31 +0000) >> > >> > are available in the Git repository at: >> > >> > https://github.com/stsquad/qemu.git tags/pull-testing-161220-1 >> > >> <snip> >> > - hotfix for centos8 powertools repo >> >> As you have noted this requires the cached copy to be deleted. I'm not >> sure if it's worth handling that in code or if you just do that manually >> before you merge? > > I would prefer it if the gitlab CI infra Just Worked. I don't > want to be manually messing around with it... OK it was only a missing diffutils, sending v2 shortly... > > -- PMM -- Alex Bennée
Peter Maydell <peter.maydell@linaro.org> writes: > On Wed, 16 Dec 2020 at 18:24, Alex Bennée <alex.bennee@linaro.org> wrote: >> >> >> Alex Bennée <alex.bennee@linaro.org> writes: >> >> > The following changes since commit af3f37319cb1e1ca0c42842ecdbd1bcfc64a4b6f: >> > >> > Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging (2020-12-15 21:24:31 +0000) >> > >> > are available in the Git repository at: >> > >> > https://github.com/stsquad/qemu.git tags/pull-testing-161220-1 >> > >> <snip> >> > - hotfix for centos8 powertools repo >> >> As you have noted this requires the cached copy to be deleted. I'm not >> sure if it's worth handling that in code or if you just do that manually >> before you merge? > > I would prefer it if the gitlab CI infra Just Worked. I don't > want to be manually messing around with it... I updated the centos8 image to FROM centos:8.3.2011 to trigger the full re-build automatically but that has caused a bunch of failures in other bits so that will need some additional fixes. > > -- PMM -- Alex Bennée
Otherwise we miss coverage of KVM support in the cross build. To
balance it out add arm-softmmu (no kvm, subset of aarch64),
cris-softmmu and ppc-softmmu to the exclude list which do get coverage
elsewhere.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
Message-Id: <20201210190417.31673-3-alex.bennee@linaro.org>
diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
index bd6473a75a..fcc1b95290 100644
--- a/.gitlab-ci.d/crossbuilds.yml
+++ b/.gitlab-ci.d/crossbuilds.yml
@@ -7,9 +7,9 @@
- cd build
- PKG_CONFIG_PATH=$PKG_CONFIG_PATH
../configure --enable-werror $QEMU_CONFIGURE_OPTS --disable-user
- --target-list-exclude="aarch64-softmmu i386-softmmu microblaze-softmmu
- mips-softmmu mipsel-softmmu mips64-softmmu ppc64-softmmu sh4-softmmu
- xtensa-softmmu"
+ --target-list-exclude="arm-softmmu cris-softmmu i386-softmmu
+ microblaze-softmmu mips-softmmu mipsel-softmmu mips64-softmmu
+ ppc-softmmu sh4-softmmu xtensa-softmmu"
- make -j$(expr $(nproc) + 1) all check-build
# Job to cross-build specific accelerators.
--
2.20.1
By default QEMU enables a lot of features if it can probe and find the
support libraries. It also enables a bunch of features by default.
This patch adds the ability to build --without-default-features which
can be paired with a --without-default-devices for a barely functional
build.
The main use case for this is testing our build assumptions and for
minimising the amount of stuff you build if you just want to test a
particular feature on your relatively slow emulated test system. On
it's own I go from:
$ ls -lh qemu-system-aarch64
-rwxr-xr-x 1 alex alex 120M Dec 10 12:45 qemu-system-aarch64*
$ ldd qemu-system-aarch64 | wc -l
170
to:
$ ls -lh qemu-aarch64
-rwxr-xr-x 1 alex alex 43M Dec 10 12:41 qemu-aarch64*
$ ldd qemu-system-aarch64 | wc -l
57
which is still able to run my default Debian ARM64 machine with a lot
less fat involved.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Acked-by: Thomas Huth <thuth@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201210190417.31673-5-alex.bennee@linaro.org>
diff --git a/configure b/configure
index f9b1e4fbb0..0e542b4c46 100755
--- a/configure
+++ b/configure
@@ -293,8 +293,19 @@ unset target_list_exclude
# Distributions want to ensure that several features are compiled in, and it
# is impossible without a --enable-foo that exits if a feature is not found.
-brlapi=""
-curl=""
+default_feature=""
+# parse CC options second
+for opt do
+ optarg=$(expr "x$opt" : 'x[^=]*=\(.*\)')
+ case "$opt" in
+ --without-default-features)
+ default_feature="no"
+ ;;
+ esac
+done
+
+brlapi="$default_feature"
+curl="$default_feature"
iconv="auto"
curses="auto"
docs="auto"
@@ -303,52 +314,52 @@ netmap="no"
sdl="auto"
sdl_image="auto"
virtiofsd="auto"
-virtfs=""
+virtfs="$default_feature"
libudev="auto"
mpath="auto"
vnc="enabled"
sparse="auto"
-vde=""
+vde="$default_feature"
vnc_sasl="auto"
vnc_jpeg="auto"
vnc_png="auto"
xkbcommon="auto"
-xen=""
-xen_ctrl_version=""
+xen="$default_feature"
+xen_ctrl_version="$default_feature"
xen_pci_passthrough="auto"
-linux_aio=""
-linux_io_uring=""
-cap_ng=""
-attr=""
-libattr=""
-xfs=""
+linux_aio="$default_feature"
+linux_io_uring="$default_feature"
+cap_ng="$default_feature"
+attr="$default_feature"
+libattr="$default_feature"
+xfs="$default_feature"
tcg="enabled"
-membarrier=""
-vhost_net=""
-vhost_crypto=""
-vhost_scsi=""
-vhost_vsock=""
+membarrier="$default_feature"
+vhost_net="$default_feature"
+vhost_crypto="$default_feature"
+vhost_scsi="$default_feature"
+vhost_vsock="$default_feature"
vhost_user="no"
vhost_user_blk_server="auto"
-vhost_user_fs=""
+vhost_user_fs="$default_feature"
kvm="auto"
hax="auto"
hvf="auto"
whpx="auto"
-rdma=""
-pvrdma=""
+rdma="$default_feature"
+pvrdma="$default_feature"
gprof="no"
debug_tcg="no"
debug="no"
sanitizers="no"
tsan="no"
-fortify_source=""
+fortify_source="$default_feature"
strip_opt="yes"
tcg_interpreter="no"
bigendian="no"
mingw32="no"
gcov="no"
-EXESUF=""
+EXESUF="$default_feature"
HOST_DSOSUF=".so"
modules="no"
module_upgrades="no"
@@ -370,81 +381,81 @@ pie=""
qom_cast_debug="yes"
trace_backends="log"
trace_file="trace"
-spice=""
-rbd=""
-smartcard=""
+spice="$default_feature"
+rbd="$default_feature"
+smartcard="$default_feature"
u2f="auto"
-libusb=""
-usb_redir=""
-opengl=""
+libusb="$default_feature"
+usb_redir="$default_feature"
+opengl="$default_feature"
opengl_dmabuf="no"
cpuid_h="no"
-avx2_opt=""
+avx2_opt="$default_feature"
capstone="auto"
-lzo=""
-snappy=""
-bzip2=""
-lzfse=""
-zstd=""
-guest_agent=""
+lzo="$default_feature"
+snappy="$default_feature"
+bzip2="$default_feature"
+lzfse="$default_feature"
+zstd="$default_feature"
+guest_agent="$default_feature"
guest_agent_with_vss="no"
guest_agent_ntddscsi="no"
-guest_agent_msi=""
-vss_win32_sdk=""
+guest_agent_msi="$default_feature"
+vss_win32_sdk="$default_feature"
win_sdk="no"
-want_tools=""
-libiscsi=""
-libnfs=""
+want_tools="$default_feature"
+libiscsi="$default_feature"
+libnfs="$default_feature"
coroutine=""
-coroutine_pool=""
+coroutine_pool="$default_feature"
debug_stack_usage="no"
crypto_afalg="no"
-seccomp=""
-glusterfs=""
+seccomp="$default_feature"
+glusterfs="$default_feature"
glusterfs_xlator_opt="no"
glusterfs_discard="no"
glusterfs_fallocate="no"
glusterfs_zerofill="no"
glusterfs_ftruncate_has_stat="no"
glusterfs_iocb_has_stat="no"
-gtk=""
+gtk="$default_feature"
gtk_gl="no"
tls_priority="NORMAL"
-gnutls=""
-nettle=""
+gnutls="$default_feature"
+nettle="$default_feature"
nettle_xts="no"
-gcrypt=""
+gcrypt="$default_feature"
gcrypt_hmac="no"
gcrypt_xts="no"
qemu_private_xts="yes"
-auth_pam=""
-vte=""
-virglrenderer=""
-tpm=""
-libssh=""
-live_block_migration="yes"
-numa=""
+auth_pam="$default_feature"
+vte="$default_feature"
+virglrenderer="$default_feature"
+tpm="$default_feature"
+libssh="$default_feature"
+live_block_migration=${default_feature:-yes}
+numa="$default_feature"
tcmalloc="no"
jemalloc="no"
-replication="yes"
-bochs="yes"
-cloop="yes"
-dmg="yes"
-qcow1="yes"
-vdi="yes"
-vvfat="yes"
-qed="yes"
-parallels="yes"
+replication=${default_feature:-yes}
+bochs=${default_feature:-yes}
+cloop=${default_feature:-yes}
+dmg=${default_feature:-yes}
+qcow1=${default_feature:-yes}
+vdi=${default_feature:-yes}
+vvfat=${default_feature:-yes}
+qed=${default_feature:-yes}
+parallels=${default_feature:-yes}
sheepdog="no"
-libxml2=""
+libxml2="$default_feature"
debug_mutex="no"
-libpmem=""
+libpmem="$default_feature"
default_devices="yes"
plugins="no"
fuzzing="no"
rng_none="no"
-secret_keyring=""
-libdaxctl=""
+secret_keyring="$default_feature"
+libdaxctl="$default_feature"
meson=""
ninja=""
skip_meson=no
@@ -455,7 +466,7 @@ fuse_lseek="auto"
bogus_os="no"
malloc_trim="auto"
-# parse CC options first
+# parse CC options second
for opt do
optarg=$(expr "x$opt" : 'x[^=]*=\(.*\)')
case "$opt" in
@@ -798,7 +809,7 @@ Linux)
audio_possible_drivers="oss alsa sdl pa"
linux="yes"
linux_user="yes"
- vhost_user="yes"
+ vhost_user=${default_feature:-yes}
;;
esac
@@ -942,6 +953,8 @@ for opt do
;;
--without-default-devices) default_devices="no"
;;
+ --without-default-features) # processed above
+ ;;
--enable-gprof) gprof="yes"
;;
--enable-gcov) gcov="yes"
@@ -1747,7 +1760,8 @@ Advanced options (experts only):
--gdb=GDB-path gdb to use for gdbstub tests [$gdb_bin]
Optional features, enabled with --enable-FEATURE and
-disabled with --disable-FEATURE, default is enabled if available:
+disabled with --disable-FEATURE, default is enabled if available
+(unless built with --without-default-features):
system all system emulation targets
user supported user emulation targets
@@ -6957,6 +6971,7 @@ NINJA=$ninja $meson setup \
-Ddocs=$docs -Dsphinx_build=$sphinx_build -Dinstall_blobs=$blobs \
-Dvhost_user_blk_server=$vhost_user_blk_server \
-Dfuse=$fuse -Dfuse_lseek=$fuse_lseek \
+ $(if test "$default_features" = no; then echo "-Dauto_features=disabled"; fi) \
$cross_arg \
"$PWD" "$source_path"
--
2.20.1
While attempting to debug some console weirdness I thought it would be
worth making it easier to see what it had inside.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: John Snow <jsnow@redhat.com>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Message-Id: <20201210190417.31673-6-alex.bennee@linaro.org>
diff --git a/python/qemu/console_socket.py b/python/qemu/console_socket.py
index f060d79e06..ac21130e44 100644
--- a/python/qemu/console_socket.py
+++ b/python/qemu/console_socket.py
@@ -45,6 +45,13 @@ class ConsoleSocket(socket.socket):
if drain:
self._drain_thread = self._thread_start()
+ def __repr__(self) -> str:
+ s = super().__repr__()
+ s = s.rstrip(">")
+ s = "%s, logfile=%s, drain_thread=%s>" % (s, self._logfile,
+ self._drain_thread)
+ return s
+
def _drain_fn(self) -> None:
"""Drains the socket and runs while the socket is open."""
while self._open:
--
2.20.1
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20201210190417.31673-8-alex.bennee@linaro.org>
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2134453717..229545bc03 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -521,6 +521,13 @@ build-without-default-devices:
IMAGE: centos8
CONFIGURE_ARGS: --without-default-devices --disable-user
+build-without-default-features:
+ <<: *native_build_job_definition
+ variables:
+ IMAGE: debian-amd64
+ CONFIGURE_ARGS: --without-default-features --disable-user
+ MAKE_CHECK_ARGS: check-unit
+
check-patch:
stage: build
image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
--
2.20.1
Hopefully this will guard against sloppy code getting into our tests. Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20201210190417.31673-9-alex.bennee@linaro.org> diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target index 2ae86776cd..24d75a5801 100644 --- a/tests/tcg/Makefile.target +++ b/tests/tcg/Makefile.target @@ -94,7 +94,7 @@ ifdef CONFIG_USER_ONLY -include $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.target # Add the common build options -CFLAGS+=-Wall -O0 -g -fno-strict-aliasing +CFLAGS+=-Wall -Werror -O0 -g -fno-strict-aliasing ifeq ($(BUILD_STATIC),y) LDFLAGS+=-static endif -- 2.20.1
From: Thomas Huth <thuth@redhat.com>
The Debian 9 containers have been removed a while ago, so we can
delete the corresponding entries in the Makefile, too.
Fixes: e3755276d1 ("tests/docker: Remove old Debian 9 containers")
Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
Message-Id: <20201215083318.92205-1-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 02ec92830b..c254ac38d0 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -11,8 +11,7 @@ HOST_ARCH = $(if $(ARCH),$(ARCH),$(shell uname -m))
DOCKER_SUFFIX := .docker
DOCKER_FILES_DIR := $(SRC_PATH)/tests/docker/dockerfiles
# we don't run tests on intermediate images (used as base by another image)
-DOCKER_PARTIAL_IMAGES := debian9 debian10 debian11
-DOCKER_PARTIAL_IMAGES += debian9-mxe debian-bootstrap
+DOCKER_PARTIAL_IMAGES := debian10 debian11 debian-bootstrap
DOCKER_IMAGES := $(sort $(notdir $(basename $(wildcard $(DOCKER_FILES_DIR)/*.docker))))
DOCKER_TARGETS := $(patsubst %,docker-image-%,$(DOCKER_IMAGES))
# Use a global constant ccache directory to speed up repetitive builds
@@ -96,7 +95,6 @@ docker-binfmt-image-debian-%: $(DOCKER_FILES_DIR)/debian-bootstrap.docker
endif
# Enforce dependencies for composite images
-docker-image-debian9-mxe: docker-image-debian9
ifeq ($(HOST_ARCH),x86_64)
docker-image-debian-amd64: docker-image-debian10
DOCKER_PARTIAL_IMAGES += debian-amd64-cross
@@ -104,8 +102,6 @@ else
docker-image-debian-amd64-cross: docker-image-debian10
DOCKER_PARTIAL_IMAGES += debian-amd64
endif
-docker-image-debian-win32-cross: docker-image-debian9-mxe
-docker-image-debian-win64-cross: docker-image-debian9-mxe
# For non-x86 hosts not all cross-compilers have been packaged
ifneq ($(HOST_ARCH),x86_64)
--
2.20.1
From: Daniel P. Berrangé <berrange@redhat.com>
This was intentionally renamed recently to be all lowercase:
https://bugs.centos.org/view.php?id=17920
https://wiki.centos.org/Manuals/ReleaseNotes/CentOS8.2011#Yum_repo_file_and_repoid_changes
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Message-Id: <20201216141653.213980-1-berrange@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
diff --git a/tests/docker/dockerfiles/centos8.docker b/tests/docker/dockerfiles/centos8.docker
index 54bc6d54cd..06b67962fd 100644
--- a/tests/docker/dockerfiles/centos8.docker
+++ b/tests/docker/dockerfiles/centos8.docker
@@ -31,6 +31,6 @@ ENV PACKAGES \
zlib-devel
RUN dnf install -y dnf-plugins-core && \
- dnf config-manager --set-enabled PowerTools && \
+ dnf config-manager --set-enabled powertools && \
dnf install -y $PACKAGES
RUN rpm -q $PACKAGES | sort > /packages.txt
--
2.20.1
© 2016 - 2025 Red Hat, Inc.