Skip to content

Commit 4c2e42e

Browse files
committed
Merge tag 'v10.1.0' into update_qemu_v10_1_0
v10.1.0 release
2 parents af27154 + f8b2f64 commit 4c2e42e

File tree

3,030 files changed

+97808
-51261
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,030 files changed

+97808
-51261
lines changed

.b4-config

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,3 @@
1111
prep-perpatch-check-cmd = scripts/checkpatch.pl -q --terse --no-summary --mailback -
1212
searchmask = https://lore.kernel.org/qemu-devel/?x=m&t=1&q=%s
1313
linkmask = https://lore.kernel.org/qemu-devel/%s
14-
linktrailermask = Message-ID: <%s>

.gitlab-ci.d/base.yml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,6 @@ variables:
6969
- if: '$QEMU_CI != "1" && $QEMU_CI != "2" && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM'
7070
when: never
7171

72-
# Avocado jobs don't run in forks unless $QEMU_CI_AVOCADO_TESTING is set
73-
- if: '$QEMU_JOB_AVOCADO && $QEMU_CI_AVOCADO_TESTING != "1" && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM'
74-
when: never
75-
7672

7773
#############################################################
7874
# Stage 2: fine tune execution of jobs in specific scenarios
@@ -101,8 +97,8 @@ variables:
10197
when: manual
10298
allow_failure: true
10399

104-
# Avocado jobs can be manually start in forks if $QEMU_CI_AVOCADO_TESTING is unset
105-
- if: '$QEMU_JOB_AVOCADO && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM'
100+
# Functional jobs can be manually started in forks
101+
- if: '$QEMU_JOB_FUNCTIONAL && $QEMU_CI_FUNCTIONAL != "1" && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM'
106102
when: manual
107103
allow_failure: true
108104

.gitlab-ci.d/buildtest-template.yml

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
- ccache --zero-stats
2525
- section_start configure "Running configure"
2626
- ../configure --enable-werror --disable-docs --enable-fdt=system
27+
--disable-debug-info
2728
${TARGETS:+--target-list="$TARGETS"}
2829
$CONFIGURE_ARGS ||
2930
{ cat config.log meson-logs/meson-log.txt && exit 1; }
@@ -76,7 +77,8 @@
7677
fi
7778
- section_end buildenv
7879
- section_start test "Running tests"
79-
- $MAKE NINJA=":" $MAKE_CHECK_ARGS
80+
# doctests need all the compilation artifacts
81+
- $MAKE NINJA=":" MTESTARGS="--no-suite doc" $MAKE_CHECK_ARGS
8082
- section_end test
8183

8284
.native_test_job_template:
@@ -95,7 +97,6 @@
9597
cache:
9698
key: "${CI_JOB_NAME}-cache"
9799
paths:
98-
- ${CI_PROJECT_DIR}/avocado-cache
99100
- ${CI_PROJECT_DIR}/functional-cache
100101
policy: pull-push
101102
artifacts:
@@ -109,20 +110,37 @@
109110
reports:
110111
junit: build/tests/results/latest/results.xml
111112
before_script:
112-
- mkdir -p ~/.config/avocado
113-
- echo "[datadir.paths]" > ~/.config/avocado/avocado.conf
114-
- echo "cache_dirs = ['${CI_PROJECT_DIR}/avocado-cache']"
115-
>> ~/.config/avocado/avocado.conf
116-
- echo -e '[job.output.testlogs]\nstatuses = ["FAIL", "INTERRUPT"]'
117-
>> ~/.config/avocado/avocado.conf
118-
- if [ -d ${CI_PROJECT_DIR}/avocado-cache ]; then
119-
du -chs ${CI_PROJECT_DIR}/*-cache ;
120-
fi
121-
- export AVOCADO_ALLOW_UNTRUSTED_CODE=1
122113
- export QEMU_TEST_ALLOW_UNTRUSTED_CODE=1
123114
- export QEMU_TEST_CACHE_DIR=${CI_PROJECT_DIR}/functional-cache
124115
after_script:
125116
- cd build
126117
- du -chs ${CI_PROJECT_DIR}/*-cache
127118
variables:
128-
QEMU_JOB_AVOCADO: 1
119+
QEMU_JOB_FUNCTIONAL: 1
120+
121+
.wasm_build_job_template:
122+
extends: .base_job_template
123+
stage: build
124+
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
125+
before_script:
126+
- source scripts/ci/gitlab-ci-section
127+
- section_start setup "Pre-script setup"
128+
- JOBS=$(expr $(nproc) + 1)
129+
- section_end setup
130+
script:
131+
- du -sh .git
132+
- mkdir build
133+
- cd build
134+
- section_start configure "Running configure"
135+
- emconfigure ../configure --disable-docs
136+
${TARGETS:+--target-list="$TARGETS"}
137+
$CONFIGURE_ARGS ||
138+
{ cat config.log meson-logs/meson-log.txt && exit 1; }
139+
- if test -n "$LD_JOBS";
140+
then
141+
pyvenv/bin/meson configure . -Dbackend_max_links="$LD_JOBS" ;
142+
fi || exit 1;
143+
- section_end configure
144+
- section_start build "Building QEMU"
145+
- emmake make -j"$JOBS"
146+
- section_end build

.gitlab-ci.d/buildtest.yml

Lines changed: 37 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ functional-system-alpine:
2929
artifacts: true
3030
variables:
3131
IMAGE: alpine
32-
MAKE_CHECK_ARGS: check-avocado check-functional
33-
AVOCADO_TAGS: arch:avr arch:loongarch64 arch:mips64 arch:mipsel
32+
MAKE_CHECK_ARGS: check-functional
3433

3534
build-system-ubuntu:
3635
extends:
@@ -42,7 +41,7 @@ build-system-ubuntu:
4241
IMAGE: ubuntu2204
4342
CONFIGURE_ARGS: --enable-docs --enable-rust
4443
TARGETS: alpha-softmmu microblazeel-softmmu mips64el-softmmu
45-
MAKE_CHECK_ARGS: check-build
44+
MAKE_CHECK_ARGS: check-build check-doc
4645

4746
check-system-ubuntu:
4847
extends: .native_test_job_template
@@ -60,8 +59,7 @@ functional-system-ubuntu:
6059
artifacts: true
6160
variables:
6261
IMAGE: ubuntu2204
63-
MAKE_CHECK_ARGS: check-avocado check-functional
64-
AVOCADO_TAGS: arch:alpha arch:microblazeel arch:mips64el
62+
MAKE_CHECK_ARGS: check-functional
6563

6664
build-system-debian:
6765
extends:
@@ -92,8 +90,7 @@ functional-system-debian:
9290
artifacts: true
9391
variables:
9492
IMAGE: debian
95-
MAKE_CHECK_ARGS: check-avocado check-functional
96-
AVOCADO_TAGS: arch:arm arch:i386 arch:riscv64 arch:sh4 arch:sparc arch:xtensa
93+
MAKE_CHECK_ARGS: check-functional
9794

9895
crash-test-debian:
9996
extends: .native_test_job_template
@@ -118,7 +115,7 @@ build-system-fedora:
118115
CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs --enable-crypto-afalg --enable-rust
119116
TARGETS: microblaze-softmmu mips-softmmu
120117
xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu
121-
MAKE_CHECK_ARGS: check-build
118+
MAKE_CHECK_ARGS: check-build check-doc
122119

123120
build-system-fedora-rust-nightly:
124121
extends:
@@ -130,12 +127,7 @@ build-system-fedora-rust-nightly:
130127
IMAGE: fedora-rust-nightly
131128
CONFIGURE_ARGS: --disable-docs --enable-rust --enable-strict-rust-lints
132129
TARGETS: aarch64-softmmu
133-
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
130+
MAKE_CHECK_ARGS: check-build check-doc
139131

140132
allow_failure: true
141133

@@ -155,9 +147,7 @@ functional-system-fedora:
155147
artifacts: true
156148
variables:
157149
IMAGE: fedora
158-
MAKE_CHECK_ARGS: check-avocado check-functional
159-
AVOCADO_TAGS: arch:microblaze arch:mips arch:xtensa arch:m68k
160-
arch:riscv32 arch:ppc arch:sparc64
150+
MAKE_CHECK_ARGS: check-functional
161151

162152
crash-test-fedora:
163153
extends: .native_test_job_template
@@ -193,12 +183,11 @@ build-previous-qemu:
193183
when: on_success
194184
expire_in: 2 days
195185
paths:
196-
- build-previous
197-
exclude:
198-
- build-previous/**/*.p
199-
- build-previous/**/*.a.p
200-
- build-previous/**/*.c.o
201-
- build-previous/**/*.c.o.d
186+
- build-previous/qemu-bundle
187+
- build-previous/qemu-system-aarch64
188+
- build-previous/qemu-system-x86_64
189+
- build-previous/tests/qtest/migration-test
190+
- build-previous/scripts
202191
needs:
203192
job: amd64-opensuse-leap-container
204193
variables:
@@ -208,6 +197,11 @@ build-previous-qemu:
208197
GIT_FETCH_EXTRA_FLAGS: --prune --quiet
209198
before_script:
210199
- source scripts/ci/gitlab-ci-section
200+
# Skip if this series contains the release bump commit. During the
201+
# release process there might be a window of commits when the
202+
# version tag is not yet present in the remote and git fetch would
203+
# fail.
204+
- if grep -q "\.0$" VERSION; then exit 0; fi
211205
- export QEMU_PREV_VERSION="$(sed 's/\([0-9.]*\)\.[0-9]*/v\1.0/' VERSION)"
212206
- git remote add upstream https://gitlab.com/qemu-project/qemu
213207
- git fetch upstream refs/tags/$QEMU_PREV_VERSION:refs/tags/$QEMU_PREV_VERSION
@@ -228,18 +222,13 @@ build-previous-qemu:
228222
IMAGE: opensuse-leap
229223
MAKE_CHECK_ARGS: check-build
230224
script:
225+
# Skip for round release numbers, this job is only relevant for
226+
# testing a development tree.
227+
- if grep -q "\.0$" VERSION; then exit 0; fi
231228
# Use the migration-tests from the older QEMU tree. This avoids
232229
# testing an old QEMU against new features/tests that it is not
233230
# compatible with.
234231
- cd build-previous
235-
# Don't allow python-based tests to run. The
236-
# vmstate-checker-script test has a race that causes it to fail
237-
# sometimes. It cannot be fixed it because this job runs the test
238-
# from the old QEMU version. The test will be removed on master,
239-
# but this job will only see the change in the next release.
240-
#
241-
# TODO: remove this line after 9.2 release
242-
- unset PYTHON
243232
# old to new
244233
- QTEST_QEMU_BINARY_SRC=./qemu-system-${TARGET}
245234
QTEST_QEMU_BINARY=../build/qemu-system-${TARGET} ./tests/qtest/migration-test
@@ -278,9 +267,7 @@ functional-system-centos:
278267
artifacts: true
279268
variables:
280269
IMAGE: centos9
281-
MAKE_CHECK_ARGS: check-avocado check-functional
282-
AVOCADO_TAGS: arch:ppc64 arch:or1k arch:s390x arch:x86_64 arch:rx
283-
arch:sh4
270+
MAKE_CHECK_ARGS: check-functional
284271

285272
build-system-opensuse:
286273
extends:
@@ -309,8 +296,7 @@ functional-system-opensuse:
309296
artifacts: true
310297
variables:
311298
IMAGE: opensuse-leap
312-
MAKE_CHECK_ARGS: check-avocado check-functional
313-
AVOCADO_TAGS: arch:s390x arch:x86_64 arch:aarch64
299+
MAKE_CHECK_ARGS: check-functional
314300

315301
#
316302
# Flaky tests. We don't run these by default and they are allow fail
@@ -338,10 +324,9 @@ functional-system-flaky:
338324
allow_failure: true
339325
variables:
340326
IMAGE: debian
341-
MAKE_CHECK_ARGS: check-avocado check-functional
327+
MAKE_CHECK_ARGS: check-functional
342328
QEMU_JOB_OPTIONAL: 1
343329
QEMU_TEST_FLAKY_TESTS: 1
344-
AVOCADO_TAGS: flaky
345330

346331
# This jobs explicitly disable TCG (--disable-tcg), KVM is detected by
347332
# the configure script. The container doesn't contain Xen headers so
@@ -482,8 +467,8 @@ clang-user:
482467
# Since slirp callbacks are used in QEMU Timers, we cannot use libslirp with
483468
# CFI builds, and thus have to disable it here.
484469
#
485-
# Split in three sets of build/check/avocado to limit the execution time of each
486-
# job
470+
# Split in three sets of build/check/functional to limit the execution time
471+
# of each job
487472
build-cfi-aarch64:
488473
extends:
489474
- .native_build_job_template
@@ -520,7 +505,7 @@ functional-cfi-aarch64:
520505
artifacts: true
521506
variables:
522507
IMAGE: fedora
523-
MAKE_CHECK_ARGS: check-avocado check-functional
508+
MAKE_CHECK_ARGS: check-functional
524509

525510
build-cfi-ppc64-s390x:
526511
extends:
@@ -558,7 +543,7 @@ functional-cfi-ppc64-s390x:
558543
artifacts: true
559544
variables:
560545
IMAGE: fedora
561-
MAKE_CHECK_ARGS: check-avocado check-functional
546+
MAKE_CHECK_ARGS: check-functional
562547

563548
build-cfi-x86_64:
564549
extends:
@@ -592,7 +577,7 @@ functional-cfi-x86_64:
592577
artifacts: true
593578
variables:
594579
IMAGE: fedora
595-
MAKE_CHECK_ARGS: check-avocado check-functional
580+
MAKE_CHECK_ARGS: check-functional
596581

597582
tsan-build:
598583
extends: .native_build_job_template
@@ -801,3 +786,12 @@ coverity:
801786
when: never
802787
# Always manual on forks even if $QEMU_CI == "2"
803788
- when: manual
789+
790+
build-wasm:
791+
extends: .wasm_build_job_template
792+
timeout: 2h
793+
needs:
794+
job: wasm-emsdk-cross-container
795+
variables:
796+
IMAGE: emsdk-wasm32-cross
797+
CONFIGURE_ARGS: --static --disable-tools --enable-debug --enable-tcg-interpreter

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

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
# SPDX-License-Identifier: GPL-2.0-or-later
99

1010
from os import access, R_OK, path
11-
from sys import argv, exit
11+
from sys import exit
1212
import json
13+
import argparse
14+
from pathlib import Path
1315
from collections import Counter
1416

1517

@@ -28,7 +30,7 @@ def extract_build_units(cc_path):
2830
return build_units
2931

3032

31-
def analyse_units(build_units):
33+
def analyse_units(build_units, top_n):
3234
"""
3335
Analyse the build units and report stats and the top 10 rebuilds
3436
"""
@@ -42,7 +44,7 @@ def analyse_units(build_units):
4244
reverse=True)
4345

4446
print("Most rebuilt units:")
45-
for unit, count in sorted_build_units[:20]:
47+
for unit, count in sorted_build_units[:top_n]:
4648
print(f" {unit} built {count} times")
4749

4850
print("Least rebuilt units:")
@@ -51,16 +53,19 @@ def analyse_units(build_units):
5153

5254

5355
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)
56+
parser = argparse.ArgumentParser(
57+
description="analyse number of build units in compile_commands.json")
58+
parser.add_argument("cc_path", type=Path, default=None,
59+
help="Path to compile_commands.json")
60+
parser.add_argument("-n", type=int, default=20,
61+
help="Dump the top <n> entries")
62+
63+
args = parser.parse_args()
5864

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)
65+
if path.isfile(args.cc_path) and access(args.cc_path, R_OK):
66+
units = extract_build_units(args.cc_path)
67+
analyse_units(units, args.n)
6368
exit(0)
6469
else:
65-
print(f"{cc_path} doesn't exist or isn't readable")
70+
print(f"{args.cc_path} doesn't exist or isn't readable")
6671
exit(1)

.gitlab-ci.d/container-cross.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,8 @@ ppc64el-debian-cross-container:
6767
riscv64-debian-cross-container:
6868
extends: .container_job_template
6969
stage: containers
70-
# as we are currently based on 'sid/unstable' we may break so...
71-
allow_failure: true
7270
variables:
7371
NAME: debian-riscv64-cross
74-
QEMU_JOB_OPTIONAL: 1
7572

7673
s390x-debian-cross-container:
7774
extends: .container_job_template
@@ -94,3 +91,8 @@ win64-fedora-cross-container:
9491
extends: .container_job_template
9592
variables:
9693
NAME: fedora-win64-cross
94+
95+
wasm-emsdk-cross-container:
96+
extends: .container_job_template
97+
variables:
98+
NAME: emsdk-wasm32-cross

0 commit comments

Comments
 (0)