Skip to content

Commit 7b0c653

Browse files
committed
Merge tag 'v10.1.0' into ot-9.2.0
v10.1.0 release
2 parents eedbeef + f8b2f64 commit 7b0c653

4,392 files changed

Lines changed: 190174 additions & 94172 deletions

File tree

Some content is hidden

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

.b4-config

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
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 = qemu-devel@nongnu.org
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

.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/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: 40 additions & 40 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:
@@ -40,9 +39,9 @@ build-system-ubuntu:
4039
job: amd64-ubuntu2204-container
4140
variables:
4241
IMAGE: ubuntu2204
43-
CONFIGURE_ARGS: --enable-docs
42+
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:
@@ -71,7 +69,7 @@ build-system-debian:
7169
job: amd64-debian-container
7270
variables:
7371
IMAGE: debian
74-
CONFIGURE_ARGS: --with-coroutine=sigaltstack
72+
CONFIGURE_ARGS: --with-coroutine=sigaltstack --enable-rust
7573
TARGETS: arm-softmmu i386-softmmu riscv64-softmmu sh4eb-softmmu
7674
sparc-softmmu xtensa-softmmu
7775
MAKE_CHECK_ARGS: check-build
@@ -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,7 +127,8 @@ 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
130+
MAKE_CHECK_ARGS: check-build check-doc
131+
134132
allow_failure: true
135133

136134
check-system-fedora:
@@ -149,9 +147,7 @@ functional-system-fedora:
149147
artifacts: true
150148
variables:
151149
IMAGE: fedora
152-
MAKE_CHECK_ARGS: check-avocado check-functional
153-
AVOCADO_TAGS: arch:microblaze arch:mips arch:xtensa arch:m68k
154-
arch:riscv32 arch:ppc arch:sparc64
150+
MAKE_CHECK_ARGS: check-functional
155151

156152
crash-test-fedora:
157153
extends: .native_test_job_template
@@ -187,12 +183,11 @@ build-previous-qemu:
187183
when: on_success
188184
expire_in: 2 days
189185
paths:
190-
- build-previous
191-
exclude:
192-
- build-previous/**/*.p
193-
- build-previous/**/*.a.p
194-
- build-previous/**/*.c.o
195-
- 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
196191
needs:
197192
job: amd64-opensuse-leap-container
198193
variables:
@@ -202,6 +197,11 @@ build-previous-qemu:
202197
GIT_FETCH_EXTRA_FLAGS: --prune --quiet
203198
before_script:
204199
- 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
205205
- export QEMU_PREV_VERSION="$(sed 's/\([0-9.]*\)\.[0-9]*/v\1.0/' VERSION)"
206206
- git remote add upstream https://gitlab.com/qemu-project/qemu
207207
- git fetch upstream refs/tags/$QEMU_PREV_VERSION:refs/tags/$QEMU_PREV_VERSION
@@ -222,18 +222,13 @@ build-previous-qemu:
222222
IMAGE: opensuse-leap
223223
MAKE_CHECK_ARGS: check-build
224224
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
225228
# Use the migration-tests from the older QEMU tree. This avoids
226229
# testing an old QEMU against new features/tests that it is not
227230
# compatible with.
228231
- cd build-previous
229-
# Don't allow python-based tests to run. The
230-
# vmstate-checker-script test has a race that causes it to fail
231-
# sometimes. It cannot be fixed it because this job runs the test
232-
# from the old QEMU version. The test will be removed on master,
233-
# but this job will only see the change in the next release.
234-
#
235-
# TODO: remove this line after 9.2 release
236-
- unset PYTHON
237232
# old to new
238233
- QTEST_QEMU_BINARY_SRC=./qemu-system-${TARGET}
239234
QTEST_QEMU_BINARY=../build/qemu-system-${TARGET} ./tests/qtest/migration-test
@@ -272,9 +267,7 @@ functional-system-centos:
272267
artifacts: true
273268
variables:
274269
IMAGE: centos9
275-
MAKE_CHECK_ARGS: check-avocado check-functional
276-
AVOCADO_TAGS: arch:ppc64 arch:or1k arch:s390x arch:x86_64 arch:rx
277-
arch:sh4
270+
MAKE_CHECK_ARGS: check-functional
278271

279272
build-system-opensuse:
280273
extends:
@@ -303,8 +296,7 @@ functional-system-opensuse:
303296
artifacts: true
304297
variables:
305298
IMAGE: opensuse-leap
306-
MAKE_CHECK_ARGS: check-avocado check-functional
307-
AVOCADO_TAGS: arch:s390x arch:x86_64 arch:aarch64
299+
MAKE_CHECK_ARGS: check-functional
308300

309301
#
310302
# Flaky tests. We don't run these by default and they are allow fail
@@ -332,10 +324,9 @@ functional-system-flaky:
332324
allow_failure: true
333325
variables:
334326
IMAGE: debian
335-
MAKE_CHECK_ARGS: check-avocado check-functional
327+
MAKE_CHECK_ARGS: check-functional
336328
QEMU_JOB_OPTIONAL: 1
337329
QEMU_TEST_FLAKY_TESTS: 1
338-
AVOCADO_TAGS: flaky
339330

340331
# This jobs explicitly disable TCG (--disable-tcg), KVM is detected by
341332
# the configure script. The container doesn't contain Xen headers so
@@ -476,8 +467,8 @@ clang-user:
476467
# Since slirp callbacks are used in QEMU Timers, we cannot use libslirp with
477468
# CFI builds, and thus have to disable it here.
478469
#
479-
# Split in three sets of build/check/avocado to limit the execution time of each
480-
# job
470+
# Split in three sets of build/check/functional to limit the execution time
471+
# of each job
481472
build-cfi-aarch64:
482473
extends:
483474
- .native_build_job_template
@@ -514,7 +505,7 @@ functional-cfi-aarch64:
514505
artifacts: true
515506
variables:
516507
IMAGE: fedora
517-
MAKE_CHECK_ARGS: check-avocado check-functional
508+
MAKE_CHECK_ARGS: check-functional
518509

519510
build-cfi-ppc64-s390x:
520511
extends:
@@ -552,7 +543,7 @@ functional-cfi-ppc64-s390x:
552543
artifacts: true
553544
variables:
554545
IMAGE: fedora
555-
MAKE_CHECK_ARGS: check-avocado check-functional
546+
MAKE_CHECK_ARGS: check-functional
556547

557548
build-cfi-x86_64:
558549
extends:
@@ -586,7 +577,7 @@ functional-cfi-x86_64:
586577
artifacts: true
587578
variables:
588579
IMAGE: fedora
589-
MAKE_CHECK_ARGS: check-avocado check-functional
580+
MAKE_CHECK_ARGS: check-functional
590581

591582
tsan-build:
592583
extends: .native_build_job_template
@@ -795,3 +786,12 @@ coverity:
795786
when: never
796787
# Always manual on forks even if $QEMU_CI == "2"
797788
- 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-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"],

0 commit comments

Comments
 (0)