Skip to content

Commit 5682a6d

Browse files
committed
Merge tag 'v10.0.0' into update_qemu_v10_0_0
v10.0.0 release
2 parents 97bef50 + 7c949c5 commit 5682a6d

File tree

3,132 files changed

+94089
-45521
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,132 files changed

+94089
-45521
lines changed

.b4-config

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#
2+
# Common b4 settings that can be used to send patches to QEMU upstream.
3+
# https://b4.docs.kernel.org/
4+
#
5+
6+
[b4]
7+
send-series-to = [email protected]
8+
send-auto-to-cmd = echo
9+
send-auto-cc-cmd = scripts/get_maintainer.pl --noroles --norolestats --nogit --nogit-fallback
10+
am-perpatch-check-cmd = scripts/checkpatch.pl -q --terse --no-summary --mailback -
11+
prep-perpatch-check-cmd = scripts/checkpatch.pl -q --terse --no-summary --mailback -
12+
searchmask = https://lore.kernel.org/qemu-devel/?x=m&t=1&q=%s
13+
linkmask = https://lore.kernel.org/qemu-devel/%s
14+
linktrailermask = Message-ID: <%s>

.editorconfig

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,16 @@ emacs_mode = glsl
4747
[*.json]
4848
indent_style = space
4949
emacs_mode = python
50+
51+
# by default follow QEMU's style
52+
[*.pl]
53+
indent_style = space
54+
indent_size = 4
55+
emacs_mode = perl
56+
57+
# but user kernel "style" for imported scripts
58+
[scripts/{kernel-doc,get_maintainer.pl,checkpatch.pl}]
59+
indent_style = tab
60+
indent_size = 8
61+
emacs_mode = perl
62+

.gitlab-ci.d/buildtest.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ build-system-ubuntu:
4040
job: amd64-ubuntu2204-container
4141
variables:
4242
IMAGE: ubuntu2204
43-
CONFIGURE_ARGS: --enable-docs
43+
CONFIGURE_ARGS: --enable-docs --enable-rust
4444
TARGETS: alpha-softmmu microblazeel-softmmu mips64el-softmmu
4545
MAKE_CHECK_ARGS: check-build
4646

@@ -71,7 +71,7 @@ build-system-debian:
7171
job: amd64-debian-container
7272
variables:
7373
IMAGE: debian
74-
CONFIGURE_ARGS: --with-coroutine=sigaltstack
74+
CONFIGURE_ARGS: --with-coroutine=sigaltstack --enable-rust
7575
TARGETS: arm-softmmu i386-softmmu riscv64-softmmu sh4eb-softmmu
7676
sparc-softmmu xtensa-softmmu
7777
MAKE_CHECK_ARGS: check-build
@@ -131,6 +131,12 @@ build-system-fedora-rust-nightly:
131131
CONFIGURE_ARGS: --disable-docs --enable-rust --enable-strict-rust-lints
132132
TARGETS: aarch64-softmmu
133133
MAKE_CHECK_ARGS: check-build
134+
after_script:
135+
- source scripts/ci/gitlab-ci-section
136+
- section_start test "Running Rust doctests"
137+
- cd build
138+
- pyvenv/bin/meson devenv -w ../rust ${CARGO-cargo} test --doc -p qemu_api
139+
134140
allow_failure: true
135141

136142
check-system-fedora:

.gitlab-ci.d/check-dco.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
print(f"adding upstream git repo @ {repourl}")
2323
subprocess.check_call(["git", "remote", "add", "check-dco", repourl])
24-
subprocess.check_call(["git", "fetch", "check-dco", "master"])
24+
subprocess.check_call(["git", "fetch", "--refetch", "check-dco", "master"])
2525

2626
ancestor = subprocess.check_output(["git", "merge-base",
2727
"check-dco/master", "HEAD"],

.gitlab-ci.d/check-patch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
# base for the user's branch. We thus need to figure out a common
2525
# ancestor between the user's branch and current git master.
2626
subprocess.check_call(["git", "remote", "add", "check-patch", repourl])
27-
subprocess.check_call(["git", "fetch", "check-patch", "master"])
27+
subprocess.check_call(["git", "fetch", "--refetch", "check-patch", "master"])
2828

2929
ancestor = subprocess.check_output(["git", "merge-base",
3030
"check-patch/master", "HEAD"],

.gitlab-ci.d/check-units.py

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#!/usr/bin/env python3
2+
#
3+
# check-units.py: check the number of compilation units and identify
4+
# those that are rebuilt multiple times
5+
#
6+
# Copyright (C) 2025 Linaro Ltd.
7+
#
8+
# SPDX-License-Identifier: GPL-2.0-or-later
9+
10+
from os import access, R_OK, path
11+
from sys import argv, exit
12+
import json
13+
from collections import Counter
14+
15+
16+
def extract_build_units(cc_path):
17+
"""
18+
Extract the build units and their counds from compile_commands.json file.
19+
20+
Returns:
21+
Hash table of ["unit"] = count
22+
"""
23+
24+
j = json.load(open(cc_path, 'r'))
25+
files = [f['file'] for f in j]
26+
build_units = Counter(files)
27+
28+
return build_units
29+
30+
31+
def analyse_units(build_units):
32+
"""
33+
Analyse the build units and report stats and the top 10 rebuilds
34+
"""
35+
36+
print(f"Total source files: {len(build_units.keys())}")
37+
print(f"Total build units: {sum(units.values())}")
38+
39+
# Create a sorted list by number of rebuilds
40+
sorted_build_units = sorted(build_units.items(),
41+
key=lambda item: item[1],
42+
reverse=True)
43+
44+
print("Most rebuilt units:")
45+
for unit, count in sorted_build_units[:20]:
46+
print(f" {unit} built {count} times")
47+
48+
print("Least rebuilt units:")
49+
for unit, count in sorted_build_units[-10:]:
50+
print(f" {unit} built {count} times")
51+
52+
53+
if __name__ == "__main__":
54+
if len(argv) != 2:
55+
script_name = path.basename(argv[0])
56+
print(f"Usage: {script_name} <path_to_compile_commands.json>")
57+
exit(1)
58+
59+
cc_path = argv[1]
60+
if path.isfile(cc_path) and access(cc_path, R_OK):
61+
units = extract_build_units(cc_path)
62+
analyse_units(units)
63+
exit(0)
64+
else:
65+
print(f"{cc_path} doesn't exist or isn't readable")
66+
exit(1)

.gitlab-ci.d/cirrus.yml

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,32 +15,17 @@
1515
stage: build
1616
image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:latest
1717
needs: []
18+
allow_failure:
19+
exit_codes: 3
1820
# 20 mins larger than "timeout_in" in cirrus/build.yml
1921
# as there's often a 5-10 minute delay before Cirrus CI
2022
# actually starts the task
2123
timeout: 80m
2224
script:
25+
- set -o allexport
2326
- source .gitlab-ci.d/cirrus/$NAME.vars
24-
- sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g"
25-
-e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g"
26-
-e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g"
27-
-e "s|[@]CIRRUS_VM_INSTANCE_TYPE@|$CIRRUS_VM_INSTANCE_TYPE|g"
28-
-e "s|[@]CIRRUS_VM_IMAGE_SELECTOR@|$CIRRUS_VM_IMAGE_SELECTOR|g"
29-
-e "s|[@]CIRRUS_VM_IMAGE_NAME@|$CIRRUS_VM_IMAGE_NAME|g"
30-
-e "s|[@]CIRRUS_VM_CPUS@|$CIRRUS_VM_CPUS|g"
31-
-e "s|[@]CIRRUS_VM_RAM@|$CIRRUS_VM_RAM|g"
32-
-e "s|[@]UPDATE_COMMAND@|$UPDATE_COMMAND|g"
33-
-e "s|[@]INSTALL_COMMAND@|$INSTALL_COMMAND|g"
34-
-e "s|[@]PATH@|$PATH_EXTRA${PATH_EXTRA:+:}\$PATH|g"
35-
-e "s|[@]PKG_CONFIG_PATH@|$PKG_CONFIG_PATH|g"
36-
-e "s|[@]PKGS@|$PKGS|g"
37-
-e "s|[@]MAKE@|$MAKE|g"
38-
-e "s|[@]PYTHON@|$PYTHON|g"
39-
-e "s|[@]PIP3@|$PIP3|g"
40-
-e "s|[@]PYPI_PKGS@|$PYPI_PKGS|g"
41-
-e "s|[@]CONFIGURE_ARGS@|$CONFIGURE_ARGS|g"
42-
-e "s|[@]TEST_TARGETS@|$TEST_TARGETS|g"
43-
<.gitlab-ci.d/cirrus/build.yml >.gitlab-ci.d/cirrus/$NAME.yml
27+
- set +o allexport
28+
- cirrus-vars <.gitlab-ci.d/cirrus/build.yml >.gitlab-ci.d/cirrus/$NAME.yml
4429
- cat .gitlab-ci.d/cirrus/$NAME.yml
4530
- cirrus-run -v --show-build-log always .gitlab-ci.d/cirrus/$NAME.yml
4631
variables:

.gitlab-ci.d/cirrus/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ env:
88
CI_REPOSITORY_URL: "@CI_REPOSITORY_URL@"
99
CI_COMMIT_REF_NAME: "@CI_COMMIT_REF_NAME@"
1010
CI_COMMIT_SHA: "@CI_COMMIT_SHA@"
11-
PATH: "@PATH@"
11+
PATH: "@PATH_EXTRA@:$PATH"
1212
PKG_CONFIG_PATH: "@PKG_CONFIG_PATH@"
1313
PYTHON: "@PYTHON@"
1414
MAKE: "@MAKE@"

.gitlab-ci.d/cirrus/freebsd-14.vars

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ MAKE='/usr/local/bin/gmake'
1111
NINJA='/usr/local/bin/ninja'
1212
PACKAGING_COMMAND='pkg'
1313
PIP3='/usr/local/bin/pip'
14-
PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache 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 xorriso zstd'
14+
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'
1515
PYPI_PKGS=''
1616
PYTHON='/usr/local/bin/python3'

.gitlab-ci.d/cirrus/macos-14.vars

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ MAKE='/opt/homebrew/bin/gmake'
1111
NINJA='/opt/homebrew/bin/ninja'
1212
PACKAGING_COMMAND='brew'
1313
PIP3='/opt/homebrew/bin/pip3'
14-
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 xorriso zlib zstd'
14+
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'
1515
PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme tomli'
1616
PYTHON='/opt/homebrew/bin/python3'

0 commit comments

Comments
 (0)