testing: update ubuntu2004 to ubuntu2204

The 22.04 LTS release has been out for almost a year now so its time
to update all the remaining images to the current LTS. We can also
drop some hacks we need for older clang TSAN support.

We will keep the ubuntu2004 container around for those who wish to
test builds on the currently still supported baseline.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: John Snow <jsnow@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20230228190653.1602033-9-alex.bennee@linaro.org>
This commit is contained in:
Alex Bennée 2023-02-28 19:06:37 +00:00
parent 7c7d369b33
commit 171080d891
7 changed files with 163 additions and 26 deletions

View File

@ -38,9 +38,9 @@ avocado-system-alpine:
build-system-ubuntu:
extends: .native_build_job_template
needs:
job: amd64-ubuntu2004-container
job: amd64-ubuntu2204-container
variables:
IMAGE: ubuntu2004
IMAGE: ubuntu2204
CONFIGURE_ARGS: --enable-docs
TARGETS: alpha-softmmu cris-softmmu hppa-softmmu
microblazeel-softmmu mips64el-softmmu
@ -56,7 +56,7 @@ check-system-ubuntu:
- job: build-system-ubuntu
artifacts: true
variables:
IMAGE: ubuntu2004
IMAGE: ubuntu2204
MAKE_CHECK_ARGS: check
avocado-system-ubuntu:
@ -65,7 +65,7 @@ avocado-system-ubuntu:
- job: build-system-ubuntu
artifacts: true
variables:
IMAGE: ubuntu2004
IMAGE: ubuntu2204
MAKE_CHECK_ARGS: check-avocado
build-system-debian:
@ -457,10 +457,10 @@ avocado-cfi-x86_64:
tsan-build:
extends: .native_build_job_template
needs:
job: amd64-ubuntu2004-container
job: amd64-ubuntu2204-container
variables:
IMAGE: ubuntu2004
CONFIGURE_ARGS: --enable-tsan --cc=clang-10 --cxx=clang++-10
IMAGE: ubuntu2204
CONFIGURE_ARGS: --enable-tsan --cc=clang --cxx=clang++
--enable-trace-backends=ust --disable-slirp
TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user
@ -468,10 +468,10 @@ tsan-build:
gcov:
extends: .native_build_job_template
needs:
job: amd64-ubuntu2004-container
job: amd64-ubuntu2204-container
timeout: 80m
variables:
IMAGE: ubuntu2004
IMAGE: ubuntu2204
CONFIGURE_ARGS: --enable-gcov
TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
MAKE_CHECK_ARGS: check

View File

@ -13,10 +13,10 @@ amd64-debian-container:
variables:
NAME: debian-amd64
amd64-ubuntu2004-container:
amd64-ubuntu2204-container:
extends: .container_job_template
variables:
NAME: ubuntu2004
NAME: ubuntu2204
amd64-opensuse-leap-container:
extends: .container_job_template

View File

@ -588,13 +588,13 @@ https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual
Thread Sanitizer in Docker
~~~~~~~~~~~~~~~~~~~~~~~~~~
TSan is currently supported in the ubuntu2004 docker.
TSan is currently supported in the ubuntu2204 docker.
The test-tsan test will build using TSan and then run make check.
.. code::
make docker-test-tsan@ubuntu2004
make docker-test-tsan@ubuntu2204
TSan warnings under docker are placed in files located at build/tsan/.

View File

@ -146,6 +146,3 @@ ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
# Apply patch https://reviews.llvm.org/D75820
# This is required for TSan in clang-10 to compile with QEMU.
RUN sed -i 's/^const/static const/g' /usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/tsan_interface.h

View File

@ -0,0 +1,147 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all ubuntu-2204 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
FROM docker.io/library/ubuntu:22.04
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get update && \
apt-get install -y eatmydata && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y \
bash \
bc \
bison \
bsdextrautils \
bzip2 \
ca-certificates \
ccache \
clang \
dbus \
debianutils \
diffutils \
exuberant-ctags \
findutils \
flex \
g++ \
gcc \
gcovr \
genisoimage \
gettext \
git \
hostname \
libaio-dev \
libasan5 \
libasound2-dev \
libattr1-dev \
libbpf-dev \
libbrlapi-dev \
libbz2-dev \
libc6-dev \
libcacard-dev \
libcap-ng-dev \
libcapstone-dev \
libcmocka-dev \
libcurl4-gnutls-dev \
libdaxctl-dev \
libdrm-dev \
libepoxy-dev \
libfdt-dev \
libffi-dev \
libfuse3-dev \
libgbm-dev \
libgcrypt20-dev \
libglib2.0-dev \
libglusterfs-dev \
libgnutls28-dev \
libgtk-3-dev \
libibumad-dev \
libibverbs-dev \
libiscsi-dev \
libjemalloc-dev \
libjpeg-turbo8-dev \
libjson-c-dev \
liblttng-ust-dev \
liblzo2-dev \
libncursesw5-dev \
libnfs-dev \
libnuma-dev \
libpam0g-dev \
libpcre2-dev \
libpixman-1-dev \
libpmem-dev \
libpng-dev \
libpulse-dev \
librbd-dev \
librdmacm-dev \
libsasl2-dev \
libsdl2-dev \
libsdl2-image-dev \
libseccomp-dev \
libselinux1-dev \
libslirp-dev \
libsnappy-dev \
libsndio-dev \
libspice-protocol-dev \
libspice-server-dev \
libssh-dev \
libsystemd-dev \
libtasn1-6-dev \
libubsan1 \
libudev-dev \
liburing-dev \
libusb-1.0-0-dev \
libusbredirhost-dev \
libvdeplug-dev \
libvirglrenderer-dev \
libvte-2.91-dev \
libxen-dev \
libzstd-dev \
llvm \
locales \
make \
meson \
multipath-tools \
ncat \
nettle-dev \
ninja-build \
openssh-client \
pkgconf \
python3 \
python3-numpy \
python3-opencv \
python3-pillow \
python3-pip \
python3-sphinx \
python3-sphinx-rtd-theme \
python3-venv \
python3-yaml \
rpm2cpio \
sed \
socat \
sparse \
systemtap-sdt-dev \
tar \
tesseract-ocr \
tesseract-ocr-eng \
xfslibs-dev \
zlib1g-dev && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales && \
dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
mkdir -p /usr/libexec/ccache-wrappers && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"

View File

@ -21,7 +21,7 @@ setup_tsan()
tsan_log_dir="/tmp/qemu-test/build/tsan"
mkdir -p $tsan_log_dir > /dev/null || true
EXTRA_CONFIGURE_OPTS="${EXTRA_CONFIGURE_OPTS} --enable-tsan \
--cc=clang-10 --cxx=clang++-10 \
--cc=clang --cxx=clang++ \
--disable-werror --extra-cflags=-O0"
# detect deadlocks is false currently simply because
# TSan crashes immediately with deadlock detector enabled.

View File

@ -69,13 +69,6 @@ def generate_cirrus(target, trailer=None):
generate(filename, cmd, trailer)
ubuntu2004_tsanhack = [
"# Apply patch https://reviews.llvm.org/D75820\n",
"# This is required for TSan in clang-10 to compile with QEMU.\n",
"RUN sed -i 's/^const/static const/g' /usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/tsan_interface.h\n"
]
# Netmap still needs to be manually built as it is yet to be packaged
# into a distro. We also add cscope and gtags which are used in the CI
# test
@ -113,8 +106,8 @@ try:
trailer="".join(debian11_extras))
generate_dockerfile("fedora", "fedora-37")
generate_dockerfile("opensuse-leap", "opensuse-leap-153")
generate_dockerfile("ubuntu2004", "ubuntu-2004",
trailer="".join(ubuntu2004_tsanhack))
generate_dockerfile("ubuntu2004", "ubuntu-2004")
generate_dockerfile("ubuntu2204", "ubuntu-2204")
#
# Cross compiling builds