mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
Merge tag 'pull-10.2-maintainer-171125-2' of https://gitlab.com/stsquad/qemu into staging
testing updates for 10.2 - fix emsdk image for podman - update lcitool and clean-up ENV stanzas - include coreutils for io tests - move a number of assets due to linaro changes - add ppc64le custom runner - rationalise the gitlab custom runners with templates - clean-up the custom runner rules - add a scheduled container build # -----BEGIN PGP SIGNATURE----- # # iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmkbRI0ACgkQ+9DbCVqe # KkShRgf+Ma6E/m4ovXO/zrOqLx01XdXExbWPdCm+EqNc7OLvKKODFqFPaRtJvDRs # s6JAiKWONJfXAHRmXGSlq2gHXMIyUlQds5K96tdyyXywKMOiOSTruOLJcOViWSP0 # i4o7AfxcsqKhIsy2/YaaMDHPcS4IR6AvoJCzgZVsEbSupbMYmLFsiOQa7uaauBtm # BI2P07EN+q3DWFXnmKsYFtdqI0Kvazv5tMqR5y97TRX84yUAWJ7eVWwd2M7oFfRL # eWmziUTzKGuwEkzGIxM4m3YD1iEmTKGp0B2se+wTFb0aIqWC5af+HdJvbUznasI/ # IAXZcFZbjSbn7yPLxV9x5CfJVdIYDg== # =AM+R # -----END PGP SIGNATURE----- # gpg: Signature made Mon 17 Nov 2025 04:51:41 PM CET # gpg: using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44 # gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" [unknown] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44 * tag 'pull-10.2-maintainer-171125-2' of https://gitlab.com/stsquad/qemu: gitlab: add a weekly container building job gitlab: make the schedule rules a bit more general gitlab: make custom runners need QEMU_CI to run gitlab: suppress custom runners being triggered by schedule gitlab: simplify the ubuntu-24.04-aarch64 rules gitlab: use template for ubuntu-24.04-s390x jobs gitlab: add initial ppc64le custom-runner test tests: move test_virt_gpu to share.linaro.org tests: move test_kvm to share.linaro.org tests: move test_kvm_xen to share.linaro.org tests: move test_netdev_ethtool to share.linaro.org tests: move test_virt assets to share.linaro.org tests: move test_xen assets to share.linaro.org docs/about/emulation: update assets for uftrace plugin documentation tests/docker: add coreutils to the package list tests/lcitool: update ENV stanzas outputted by refresh libvirt-ci: bump libvirt-ci to latest version tests/docker: drop --link from COPYs in emsdk docker Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
@@ -45,8 +45,8 @@ variables:
|
||||
- if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_TAG'
|
||||
when: never
|
||||
|
||||
# Scheduled runs on mainline don't get pipelines except for the special Coverity job
|
||||
- if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_PIPELINE_SOURCE == "schedule"'
|
||||
# Scheduled jobs should explicitly enable the run in their job rules
|
||||
- if: '$CI_PIPELINE_SOURCE == "schedule"'
|
||||
when: never
|
||||
|
||||
# Cirrus jobs can't run unless the creds / target repo are set
|
||||
|
||||
@@ -11,6 +11,6 @@ MAKE='/usr/local/bin/gmake'
|
||||
NINJA='/usr/local/bin/ninja'
|
||||
PACKAGING_COMMAND='pkg'
|
||||
PIP3='/usr/local/bin/pip'
|
||||
PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache4 cmocka ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk-vnc gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson mtools ncurses nettle ninja opencv pixman pkgconf png py311-numpy py311-pillow py311-pip py311-pyyaml py311-sphinx py311-sphinx_rtd_theme py311-tomli python3 rpm2cpio rust rust-bindgen-cli sdl2 sdl2_image snappy sndio socat spice-protocol tesseract usbredir virglrenderer vte3 vulkan-tools xorriso zstd'
|
||||
PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache4 cmocka coreutils ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk-vnc gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson mtools ncurses nettle ninja opencv pixman pkgconf png py311-numpy py311-pillow py311-pip py311-pyyaml py311-sphinx py311-sphinx_rtd_theme py311-tomli python3 rpm2cpio rust rust-bindgen-cli sdl2 sdl2_image snappy sndio socat spice-protocol tesseract usbredir virglrenderer vte3 vulkan-tools xorriso zstd'
|
||||
PYPI_PKGS=''
|
||||
PYTHON='/usr/local/bin/python3'
|
||||
|
||||
@@ -11,6 +11,6 @@ MAKE='/opt/homebrew/bin/gmake'
|
||||
NINJA='/opt/homebrew/bin/ninja'
|
||||
PACKAGING_COMMAND='brew'
|
||||
PIP3='/opt/homebrew/bin/pip3'
|
||||
PKGS='bash bc bindgen bison bzip2 capstone ccache cmocka ctags curl dbus diffutils dtc flex gcovr gettext git glib gnu-sed gnutls gtk+3 gtk-vnc jemalloc jpeg-turbo json-c libcbor libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb llvm lzo make meson mtools ncurses nettle ninja pixman pkg-config python3 rpm2cpio rust sdl2 sdl2_image snappy socat sparse spice-protocol swtpm tesseract usbredir vde vte3 vulkan-tools xorriso zlib zstd'
|
||||
PKGS='bash bc bindgen bison bzip2 capstone ccache cmocka coreutils ctags curl dbus diffutils dtc flex gcovr gettext git glib gnu-sed gnutls gtk+3 gtk-vnc jemalloc jpeg-turbo json-c libcbor libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb llvm lzo make meson mtools ncurses nettle ninja pixman pkg-config python3 rpm2cpio rust sdl2 sdl2_image snappy socat sparse spice-protocol swtpm tesseract usbredir vde vte3 vulkan-tools xorriso zlib zstd'
|
||||
PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme tomli'
|
||||
PYTHON='/opt/homebrew/bin/python3'
|
||||
|
||||
@@ -19,3 +19,8 @@
|
||||
- docker push "$TAG"
|
||||
after_script:
|
||||
- docker logout
|
||||
rules:
|
||||
# because we want to enable this for scheduled runs we also have to replicate the normal rules
|
||||
- if: '$CI_PIPELINE_SOURCE == "schedule"'
|
||||
- if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /^staging/'
|
||||
- if: '$QEMU_CI && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM'
|
||||
|
||||
@@ -33,3 +33,42 @@ amd64-fedora-rust-nightly-container:
|
||||
variables:
|
||||
NAME: fedora-rust-nightly
|
||||
allow_failure: true
|
||||
|
||||
# this scheduled job will trigger all the containers to build
|
||||
weekly-container-builds:
|
||||
extends: .container_job_template
|
||||
allow_failure: true
|
||||
needs:
|
||||
# core
|
||||
- amd64-centos9-container
|
||||
- amd64-fedora-container
|
||||
# cross
|
||||
- amd64-debian-cross-container
|
||||
- amd64-debian-user-cross-container
|
||||
- amd64-debian-legacy-cross-container
|
||||
- arm64-debian-cross-container
|
||||
- armhf-debian-cross-container
|
||||
- hexagon-cross-container
|
||||
- loongarch-debian-cross-container
|
||||
- i686-debian-cross-container
|
||||
- mips64el-debian-cross-container
|
||||
- ppc64el-debian-cross-container
|
||||
- riscv64-debian-cross-container
|
||||
- s390x-debian-cross-container
|
||||
- tricore-debian-cross-container
|
||||
- xtensa-debian-cross-container
|
||||
- win64-fedora-cross-container
|
||||
- wasm-emsdk-cross-container
|
||||
# containers
|
||||
- amd64-alpine-container
|
||||
- amd64-debian-container
|
||||
- amd64-ubuntu2204-container
|
||||
- amd64-opensuse-leap-container
|
||||
- python-container
|
||||
- amd64-fedora-rust-nightly-container
|
||||
script:
|
||||
- apk -U add make bash skopeo
|
||||
- make docker-verify V=1 DOCKER_DEFAULT_REGISTRY=$CI_REGISTRY_IMAGE
|
||||
rules:
|
||||
# this only ever runes as a scheduled build
|
||||
- if: '$CI_PIPELINE_SOURCE == "schedule"'
|
||||
|
||||
@@ -31,3 +31,4 @@
|
||||
include:
|
||||
- local: '/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml'
|
||||
- local: '/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml'
|
||||
- local: '/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml'
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
# All jobs should run successfully in an environment setup by the
|
||||
# scripts/ci/setup/build-environment.yml task:
|
||||
# "Install basic packages to build QEMU on Ubuntu/Debian"
|
||||
|
||||
.debian_ppc64le_template:
|
||||
extends: .custom_runner_template
|
||||
needs: []
|
||||
stage: build
|
||||
tags:
|
||||
- debian_13
|
||||
- ppc64le
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /^staging/'
|
||||
- if: '$QEMU_CI != "1" && $QEMU_CI != "2" && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM'
|
||||
when: never
|
||||
- if: '$PPC64LE_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule" && $QEMU_CI == "1"'
|
||||
when: manual
|
||||
- if: '$PPC64LE_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule"'
|
||||
before_script:
|
||||
- source scripts/ci/gitlab-ci-section
|
||||
- section_start setup "Pre-script setup"
|
||||
- JOBS=$(expr $(nproc) - 2)
|
||||
- section_end setup
|
||||
script:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- section_start configure "Running configure"
|
||||
- ../configure $CONFIGURE_ARGS ||
|
||||
{ cat config.log meson-logs/meson-log.txt && exit 1; }
|
||||
- section_end configure
|
||||
- section_start build "Building QEMU"
|
||||
- make --output-sync -j"$JOBS"
|
||||
- section_end build
|
||||
- section_start test "Running tests"
|
||||
- if test -n "$MAKE_CHECK_ARGS";
|
||||
then
|
||||
make -j"$JOBS" $MAKE_CHECK_ARGS ;
|
||||
fi
|
||||
- section_end test
|
||||
|
||||
debian-13-ppc64le-default:
|
||||
extends: .debian_ppc64le_template
|
||||
variables:
|
||||
# qtest currently fails: https://gitlab.com/qemu-project/qemu/-/issues/3207
|
||||
MAKE_CHECK_ARGS: check-unit check-tcg check-softfloat
|
||||
@@ -11,7 +11,11 @@
|
||||
- aarch64
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
||||
- if: "$AARCH64_RUNNER_AVAILABLE"
|
||||
- if: '$QEMU_CI != "1" && $QEMU_CI != "2" && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM'
|
||||
when: never
|
||||
- if: '$AARCH64_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule" && $QEMU_CI == "1"'
|
||||
when: manual
|
||||
- if: '$AARCH64_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule"'
|
||||
before_script:
|
||||
- source scripts/ci/gitlab-ci-section
|
||||
- section_start setup "Pre-script setup"
|
||||
@@ -46,26 +50,16 @@ ubuntu-24.04-aarch64-all:
|
||||
extends: .ubuntu_aarch64_template
|
||||
variables:
|
||||
MAKE_CHECK_ARGS: check
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
||||
when: manual
|
||||
allow_failure: true
|
||||
- if: "$AARCH64_RUNNER_AVAILABLE"
|
||||
when: manual
|
||||
allow_failure: true
|
||||
allow_failure: true
|
||||
when: manual
|
||||
|
||||
ubuntu-24.04-aarch64-without-defaults:
|
||||
extends: .ubuntu_aarch64_template
|
||||
variables:
|
||||
CONFIGURE_ARGS: --disable-user --without-default-devices --without-default-features
|
||||
MAKE_CHECK_ARGS: check
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
||||
when: manual
|
||||
allow_failure: true
|
||||
- if: "$AARCH64_RUNNER_AVAILABLE"
|
||||
when: manual
|
||||
allow_failure: true
|
||||
allow_failure: true
|
||||
when: manual
|
||||
|
||||
ubuntu-24.04-aarch64-alldbg:
|
||||
extends: .ubuntu_aarch64_template
|
||||
@@ -78,34 +72,21 @@ ubuntu-24.04-aarch64-clang:
|
||||
variables:
|
||||
CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-ubsan
|
||||
MAKE_CHECK_ARGS: check
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
||||
when: manual
|
||||
allow_failure: true
|
||||
- if: "$AARCH64_RUNNER_AVAILABLE"
|
||||
when: manual
|
||||
allow_failure: true
|
||||
allow_failure: true
|
||||
when: manual
|
||||
|
||||
ubuntu-24.04-aarch64-tci:
|
||||
extends: .ubuntu_aarch64_template
|
||||
variables:
|
||||
CONFIGURE_ARGS: --enable-tcg-interpreter
|
||||
MAKE_CHECK_ARGS: check
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
||||
when: manual
|
||||
allow_failure: true
|
||||
- if: "$AARCH64_RUNNER_AVAILABLE"
|
||||
when: manual
|
||||
allow_failure: true
|
||||
allow_failure: true
|
||||
when: manual
|
||||
|
||||
ubuntu-24.04-aarch64-notcg:
|
||||
extends: .ubuntu_aarch64_template
|
||||
variables:
|
||||
CONFIGURE_ARGS: --disable-tcg --with-devices-aarch64=minimal
|
||||
MAKE_CHECK_ARGS: check
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
||||
when: manual
|
||||
- if: "$AARCH64_RUNNER_AVAILABLE"
|
||||
when: manual
|
||||
allow_failure: true
|
||||
when: manual
|
||||
|
||||
@@ -2,129 +2,88 @@
|
||||
# setup by the scripts/ci/setup/ubuntu/build-environment.yml task
|
||||
# "Install basic packages to build QEMU on Ubuntu 24.04"
|
||||
|
||||
.ubuntu_s390x_template:
|
||||
extends: .custom_runner_template
|
||||
needs: []
|
||||
stage: build
|
||||
tags:
|
||||
- ubuntu_24.04
|
||||
- s390x
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /^staging/'
|
||||
- if: '$QEMU_CI != "1" && $QEMU_CI != "2" && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM'
|
||||
when: never
|
||||
- if: '$S390X_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule" && $QEMU_CI == "1"'
|
||||
when: manual
|
||||
- if: '$S390X_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule"'
|
||||
before_script:
|
||||
- source scripts/ci/gitlab-ci-section
|
||||
- section_start setup "Pre-script setup"
|
||||
- JOBS=$(expr $(nproc) - 1)
|
||||
- section_end setup
|
||||
script:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- section_start configure "Running configure"
|
||||
- ../configure $CONFIGURE_ARGS ||
|
||||
{ cat config.log meson-logs/meson-log.txt; exit 1; }
|
||||
- section_end configure
|
||||
- section_start build "Building QEMU"
|
||||
- make --output-sync -j"$JOBS"
|
||||
- section_end build
|
||||
- section_start test "Running tests"
|
||||
- if test -n "$MAKE_CHECK_ARGS";
|
||||
then
|
||||
make -j"$JOBS" $MAKE_CHECK_ARGS ;
|
||||
fi
|
||||
- section_end test
|
||||
|
||||
ubuntu-24.04-s390x-all-linux:
|
||||
extends: .custom_runner_template
|
||||
needs: []
|
||||
stage: build
|
||||
tags:
|
||||
- ubuntu_24.04
|
||||
- s390x
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
||||
- if: "$S390X_RUNNER_AVAILABLE"
|
||||
script:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- ../configure --enable-debug --disable-system --disable-tools --disable-docs
|
||||
|| { cat config.log meson-logs/meson-log.txt; exit 1; }
|
||||
- make --output-sync -j`nproc`
|
||||
- make --output-sync check-tcg
|
||||
- make --output-sync -j`nproc` check
|
||||
extends: .ubuntu_s390x_template
|
||||
needs: []
|
||||
variables:
|
||||
CONFIGURE_ARGS: --enable-debug --disable-system --disable-tools --disable-docs
|
||||
MAKE_CHECK_ARGS: check-tcg check
|
||||
|
||||
ubuntu-24.04-s390x-all-system:
|
||||
extends: .custom_runner_template
|
||||
needs: []
|
||||
stage: build
|
||||
tags:
|
||||
- ubuntu_24.04
|
||||
- s390x
|
||||
timeout: 75m
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
||||
allow_failure: true
|
||||
- if: "$S390X_RUNNER_AVAILABLE"
|
||||
allow_failure: true
|
||||
script:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- ../configure --disable-user
|
||||
|| { cat config.log meson-logs/meson-log.txt; exit 1; }
|
||||
- make --output-sync -j`nproc`
|
||||
- make --output-sync -j`nproc` check
|
||||
extends: .ubuntu_s390x_template
|
||||
needs: []
|
||||
variables:
|
||||
CONFIGURE_ARGS: --disable-user
|
||||
MAKE_CHECK_ARGS: check
|
||||
allow_failure: true
|
||||
|
||||
ubuntu-24.04-s390x-alldbg:
|
||||
extends: .custom_runner_template
|
||||
needs: []
|
||||
stage: build
|
||||
tags:
|
||||
- ubuntu_24.04
|
||||
- s390x
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
||||
when: manual
|
||||
allow_failure: true
|
||||
- if: "$S390X_RUNNER_AVAILABLE"
|
||||
when: manual
|
||||
allow_failure: true
|
||||
script:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- ../configure --enable-debug
|
||||
|| { cat config.log meson-logs/meson-log.txt; exit 1; }
|
||||
- make clean
|
||||
- make --output-sync -j`nproc`
|
||||
- make --output-sync -j`nproc` check
|
||||
extends: .ubuntu_s390x_template
|
||||
needs: []
|
||||
variables:
|
||||
CONFIGURE_ARGS: --enable-debug
|
||||
MAKE_CHECK_ARGS: check
|
||||
allow_failure: true
|
||||
when: manual
|
||||
|
||||
ubuntu-24.04-s390x-clang:
|
||||
extends: .custom_runner_template
|
||||
needs: []
|
||||
stage: build
|
||||
tags:
|
||||
- ubuntu_24.04
|
||||
- s390x
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
||||
when: manual
|
||||
allow_failure: true
|
||||
- if: "$S390X_RUNNER_AVAILABLE"
|
||||
when: manual
|
||||
allow_failure: true
|
||||
script:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- ../configure --cc=clang --cxx=clang++ --enable-ubsan
|
||||
|| { cat config.log meson-logs/meson-log.txt; exit 1; }
|
||||
- make --output-sync -j`nproc`
|
||||
- make --output-sync -j`nproc` check
|
||||
extends: .ubuntu_s390x_template
|
||||
needs: []
|
||||
variables:
|
||||
CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-ubsan
|
||||
MAKE_CHECK_ARGS: check
|
||||
allow_failure: true
|
||||
when: manual
|
||||
|
||||
ubuntu-24.04-s390x-tci:
|
||||
needs: []
|
||||
stage: build
|
||||
tags:
|
||||
- ubuntu_24.04
|
||||
- s390x
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
||||
when: manual
|
||||
allow_failure: true
|
||||
- if: "$S390X_RUNNER_AVAILABLE"
|
||||
when: manual
|
||||
allow_failure: true
|
||||
script:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- ../configure --enable-tcg-interpreter
|
||||
|| { cat config.log meson-logs/meson-log.txt; exit 1; }
|
||||
- make --output-sync -j`nproc`
|
||||
extends: .ubuntu_s390x_template
|
||||
needs: []
|
||||
variables:
|
||||
CONFIGURE_ARGS: --enable-tcg-interpreter
|
||||
allow_failure: true
|
||||
when: manual
|
||||
|
||||
ubuntu-24.04-s390x-notcg:
|
||||
extends: .custom_runner_template
|
||||
needs: []
|
||||
stage: build
|
||||
tags:
|
||||
- ubuntu_24.04
|
||||
- s390x
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
||||
when: manual
|
||||
allow_failure: true
|
||||
- if: "$S390X_RUNNER_AVAILABLE"
|
||||
when: manual
|
||||
allow_failure: true
|
||||
script:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- ../configure --disable-tcg
|
||||
|| { cat config.log meson-logs/meson-log.txt; exit 1; }
|
||||
- make --output-sync -j`nproc`
|
||||
- make --output-sync -j`nproc` check
|
||||
extends: .ubuntu_s390x_template
|
||||
needs: []
|
||||
variables:
|
||||
CONFIGURE_ARGS: --disable-tcg
|
||||
MAKE_CHECK_ARGS: check
|
||||
allow_failure: true
|
||||
when: manual
|
||||
|
||||
+10
-10
@@ -886,24 +886,24 @@ As an example, we can trace qemu itself running git::
|
||||
$ uftrace dump --chrome | gzip > ~/qemu_aarch64_git_help.json.gz
|
||||
|
||||
For convenience, you can download this trace `qemu_aarch64_git_help.json.gz
|
||||
<https://fileserver.linaro.org/s/N8X8fnZ5yGRZLsT/download/qemu_aarch64_git_help.json.gz>`_.
|
||||
<https://github.com/pbo-linaro/qemu-assets/raw/refs/heads/master/qemu-uftrace/qemu_aarch64_git_help.json.gz>`_.
|
||||
Download it and open this trace on https://ui.perfetto.dev/. You can zoom in/out
|
||||
using :kbd:`W`, :kbd:`A`, :kbd:`S`, :kbd:`D` keys.
|
||||
Some sequences taken from this trace:
|
||||
|
||||
- Loading program and its interpreter
|
||||
|
||||
.. image:: https://fileserver.linaro.org/s/fie8JgX76yyL5cq/preview
|
||||
.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/loader_exec.png?raw=true
|
||||
:height: 200px
|
||||
|
||||
- open syscall
|
||||
|
||||
.. image:: https://fileserver.linaro.org/s/rsXPTeZZPza4PcE/preview
|
||||
.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/open_syscall.png?raw=true
|
||||
:height: 200px
|
||||
|
||||
- TB creation
|
||||
|
||||
.. image:: https://fileserver.linaro.org/s/GXY6NKMw5EeRCew/preview
|
||||
.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/tb_translation.png?raw=true
|
||||
:height: 200px
|
||||
|
||||
It's usually better to use ``uftrace record`` directly. However, tracing
|
||||
@@ -916,7 +916,7 @@ Example system trace
|
||||
|
||||
A full trace example (chrome trace, from instructions below) generated from a
|
||||
system boot can be found `here
|
||||
<https://fileserver.linaro.org/s/WsemLboPEzo24nw/download/aarch64_boot.json.gz>`_.
|
||||
<https://github.com/pbo-linaro/qemu-assets/raw/refs/heads/master/qemu-uftrace/aarch64_boot.json.gz>`_.
|
||||
Download it and open this trace on https://ui.perfetto.dev/. You can see code
|
||||
executed for all privilege levels, and zoom in/out using
|
||||
:kbd:`W`, :kbd:`A`, :kbd:`S`, :kbd:`D` keys. You can find below some sequences
|
||||
@@ -924,27 +924,27 @@ taken from this trace:
|
||||
|
||||
- Two first stages of boot sequence in Arm Trusted Firmware (EL3 and S-EL1)
|
||||
|
||||
.. image:: https://fileserver.linaro.org/s/kkxBS552W7nYESX/preview
|
||||
.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/bl3_to_bl1.png?raw=true
|
||||
:height: 200px
|
||||
|
||||
- U-boot initialization (until code relocation, after which we can't track it)
|
||||
|
||||
.. image:: https://fileserver.linaro.org/s/LKTgsXNZFi5GFNC/preview
|
||||
.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/uboot.png?raw=true
|
||||
:height: 200px
|
||||
|
||||
- Stat and open syscalls in kernel
|
||||
|
||||
.. image:: https://fileserver.linaro.org/s/dXe4MfraKg2F476/preview
|
||||
.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/stat.png?raw=true
|
||||
:height: 200px
|
||||
|
||||
- Timer interrupt
|
||||
|
||||
.. image:: https://fileserver.linaro.org/s/TM5yobYzJtP7P3C/preview
|
||||
.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/timer_interrupt.png?raw=true
|
||||
:height: 200px
|
||||
|
||||
- Poweroff sequence (from kernel back to firmware, NS-EL2 to EL3)
|
||||
|
||||
.. image:: https://fileserver.linaro.org/s/oR2PtyGKJrqnfRf/preview
|
||||
.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/poweroff.png?raw=true
|
||||
:height: 200px
|
||||
|
||||
Build and run system example
|
||||
|
||||
@@ -174,6 +174,12 @@ If you've got access to an IBM Z host that can be used as a gitlab-CI
|
||||
runner, you can set this variable to enable the tests that require this
|
||||
kind of host. The runner should be tagged with "s390x".
|
||||
|
||||
PPC64LE_RUNNER_AVAILABLE
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
If you've got access to an PPC64LE host that can be used as a gitlab-CI
|
||||
runner, you can set this variable to enable the tests that require this
|
||||
kind of host. The runner should be tagged with "ppc64le".
|
||||
|
||||
CCACHE_DISABLE
|
||||
~~~~~~~~~~~~~~
|
||||
The jobs are configured to use "ccache" by default since this typically
|
||||
|
||||
@@ -14,6 +14,7 @@ packages:
|
||||
- ca-certificates
|
||||
- ccache
|
||||
- clang
|
||||
- coreutils
|
||||
- dbus
|
||||
- debianutils
|
||||
- diffutils
|
||||
|
||||
@@ -14,6 +14,7 @@ packages:
|
||||
- ca-certificates
|
||||
- ccache
|
||||
- clang
|
||||
- coreutils
|
||||
- dbus
|
||||
- debianutils
|
||||
- diffutils
|
||||
|
||||
@@ -14,6 +14,7 @@ packages:
|
||||
- ca-certificates
|
||||
- ccache
|
||||
- clang
|
||||
- coreutils
|
||||
- dbus
|
||||
- debianutils
|
||||
- diffutils
|
||||
|
||||
@@ -49,6 +49,15 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
|
||||
-t qemu/$* - < $< $(if $V,,> /dev/null),\
|
||||
"BUILD", $*)
|
||||
|
||||
# General rule for inspecting registry images.
|
||||
docker-verify-%: $(DOCKER_FILES_DIR)/%.docker
|
||||
$(call quiet-command, \
|
||||
skopeo inspect \
|
||||
--format '{{.Created}}' \
|
||||
docker://$(DOCKER_REGISTRY)/qemu/$* \
|
||||
$(if $V,,> /dev/null),\
|
||||
"VERIFY", $*)
|
||||
|
||||
# Special rule for debootstraped binfmt linux-user images
|
||||
docker-binfmt-image-debian-%: $(DOCKER_FILES_DIR)/debian-bootstrap.docker
|
||||
$(if $(EXECUTABLE),,\
|
||||
@@ -236,6 +245,8 @@ docker-run: docker-qemu-src
|
||||
|
||||
docker-image: ${DOCKER_IMAGES:%=docker-image-%}
|
||||
|
||||
docker-verify: ${DOCKER_IMAGES:%=docker-verify-%}
|
||||
|
||||
docker-clean:
|
||||
$(call quiet-command, $(DOCKER_SCRIPT) clean)
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ RUN apk update && \
|
||||
ceph-dev \
|
||||
clang \
|
||||
cmocka-dev \
|
||||
coreutils \
|
||||
ctags \
|
||||
curl-dev \
|
||||
cyrus-sasl-dev \
|
||||
@@ -126,11 +127,11 @@ RUN apk update && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
|
||||
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"
|
||||
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"
|
||||
# https://gitlab.alpinelinux.org/alpine/aports/-/issues/17463
|
||||
RUN apk add clang19-libclang
|
||||
# As a final step configure the user (if env is defined)
|
||||
|
||||
@@ -26,6 +26,7 @@ RUN dnf distro-sync -y && \
|
||||
ccache \
|
||||
clang \
|
||||
compiler-rt \
|
||||
coreutils-single \
|
||||
ctags \
|
||||
cyrus-sasl-devel \
|
||||
daxctl-devel \
|
||||
@@ -132,11 +133,11 @@ RUN dnf distro-sync -y && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
|
||||
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"
|
||||
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"
|
||||
# As a final step configure the user (if env is defined)
|
||||
ARG USER
|
||||
ARG UID
|
||||
|
||||
@@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
ccache \
|
||||
coreutils \
|
||||
dbus \
|
||||
debianutils \
|
||||
diffutils \
|
||||
@@ -72,11 +73,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||
|
||||
RUN /usr/bin/pip3 install meson==1.8.1
|
||||
|
||||
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"
|
||||
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"
|
||||
|
||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||
dpkg --add-architecture amd64 && \
|
||||
@@ -178,11 +179,11 @@ endian = 'little'\n" > /usr/local/share/meson/cross/x86_64-linux-gnu && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-linux-gnu-cc && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-linux-gnu-gcc
|
||||
|
||||
ENV ABI "x86_64-linux-gnu"
|
||||
ENV MESON_OPTS "--cross-file=x86_64-linux-gnu"
|
||||
ENV RUST_TARGET "x86_64-unknown-linux-gnu"
|
||||
ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-linux-gnu-
|
||||
ENV DEF_TARGET_LIST x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user
|
||||
ENV ABI="x86_64-linux-gnu"
|
||||
ENV MESON_OPTS="--cross-file=x86_64-linux-gnu"
|
||||
ENV RUST_TARGET="x86_64-unknown-linux-gnu"
|
||||
ENV QEMU_CONFIGURE_OPTS=--cross-prefix=x86_64-linux-gnu-
|
||||
ENV DEF_TARGET_LIST=x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user
|
||||
# As a final step configure the user (if env is defined)
|
||||
ARG USER
|
||||
ARG UID
|
||||
|
||||
@@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
ccache \
|
||||
coreutils \
|
||||
dbus \
|
||||
debianutils \
|
||||
diffutils \
|
||||
@@ -72,11 +73,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||
|
||||
RUN /usr/bin/pip3 install meson==1.8.1
|
||||
|
||||
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"
|
||||
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"
|
||||
|
||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||
dpkg --add-architecture arm64 && \
|
||||
@@ -177,11 +178,11 @@ endian = 'little'\n" > /usr/local/share/meson/cross/aarch64-linux-gnu && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-cc && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-gcc
|
||||
|
||||
ENV ABI "aarch64-linux-gnu"
|
||||
ENV MESON_OPTS "--cross-file=aarch64-linux-gnu"
|
||||
ENV RUST_TARGET "aarch64-unknown-linux-gnu"
|
||||
ENV QEMU_CONFIGURE_OPTS --cross-prefix=aarch64-linux-gnu-
|
||||
ENV DEF_TARGET_LIST aarch64-softmmu,aarch64-linux-user
|
||||
ENV ABI="aarch64-linux-gnu"
|
||||
ENV MESON_OPTS="--cross-file=aarch64-linux-gnu"
|
||||
ENV RUST_TARGET="aarch64-unknown-linux-gnu"
|
||||
ENV QEMU_CONFIGURE_OPTS=--cross-prefix=aarch64-linux-gnu-
|
||||
ENV DEF_TARGET_LIST=aarch64-softmmu,aarch64-linux-user
|
||||
# As a final step configure the user (if env is defined)
|
||||
ARG USER
|
||||
ARG UID
|
||||
|
||||
@@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
ccache \
|
||||
coreutils \
|
||||
dbus \
|
||||
debianutils \
|
||||
diffutils \
|
||||
@@ -72,11 +73,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||
|
||||
RUN /usr/bin/pip3 install meson==1.8.1
|
||||
|
||||
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"
|
||||
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"
|
||||
|
||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||
dpkg --add-architecture armhf && \
|
||||
@@ -174,11 +175,11 @@ endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-cc && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-gcc
|
||||
|
||||
ENV ABI "arm-linux-gnueabihf"
|
||||
ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf"
|
||||
ENV RUST_TARGET "armv7-unknown-linux-gnueabihf"
|
||||
ENV QEMU_CONFIGURE_OPTS --cross-prefix=arm-linux-gnueabihf-
|
||||
ENV DEF_TARGET_LIST arm-softmmu,arm-linux-user
|
||||
ENV ABI="arm-linux-gnueabihf"
|
||||
ENV MESON_OPTS="--cross-file=arm-linux-gnueabihf"
|
||||
ENV RUST_TARGET="armv7-unknown-linux-gnueabihf"
|
||||
ENV QEMU_CONFIGURE_OPTS=--cross-prefix=arm-linux-gnueabihf-
|
||||
ENV DEF_TARGET_LIST=arm-softmmu,arm-linux-user
|
||||
# As a final step configure the user (if env is defined)
|
||||
ARG USER
|
||||
ARG UID
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user