Skip to content

Commit 620eddd

Browse files
GitHub Actions Botphilmd
authored andcommitted
ci
Signed-off-by: GitHub Actions Bot <bot@github.com>
1 parent 0c01ff3 commit 620eddd

47 files changed

Lines changed: 782 additions & 3521 deletions

Some content is hidden

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

.github/workflows/build.yml

Lines changed: 430 additions & 0 deletions
Large diffs are not rendered by default.

.github/workflows/lockdown.yml

Lines changed: 0 additions & 30 deletions
This file was deleted.

README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
QEMU CI
2+
=======
3+
4+
This repository is a downstream fork of
5+
[QEMU](https://gitlab.com/qemu-project/qemu), testing all patches posted on
6+
[mailing list](https://lore.kernel.org/qemu-devel).
7+
8+
All series are pushed as branches (using message-id as name), and tested.
9+
As well, master branch is continuously updated to match upstream.
10+
11+
Series status can be checked on
12+
[this page](https://github.com/p-b-o/qemu-ci/branches/all).
13+
14+
Disclaimer: This is not a project supported by upstream QEMU. It's provided as a
15+
convenience to help you check status of series and apply easily an existing
16+
series by fetching associated branch.
17+
18+
---
19+
20+
To use it on your fork:
21+
22+
```
23+
git remote add qemu-ci https://github.com/p-b-o/qemu-ci
24+
git fetch qemu-ci master
25+
git cherry-pick qemu-ci/master
26+
# and enable Actions on your GitHub repository
27+
```
28+
29+
Note: qemu-ci/master is continuously updated with hot fixes for CI, so it's
30+
better to reapply it every time you rebase your personal branch.
31+
32+
---
33+
34+
[CI yaml file](https://github.com/p-b-o/qemu-ci/blob/ci/.github/workflows/build.yml)
35+
has been written to be self contained, to use containers and to be as explicit
36+
as possible. As a result, it is fairly easy to take any command and run it on
37+
your machine.
38+
39+
In case you want to reproduce the exact same environment as GitHub, you can use
40+
[github-runners](https://github.com/second-reality/github-runners), which
41+
provides convenient ssh access to all runners GitHub offers.

README.rst

Lines changed: 1 addition & 171 deletions
Original file line numberDiff line numberDiff line change
@@ -1,171 +1 @@
1-
===========
2-
QEMU README
3-
===========
4-
5-
QEMU is a generic and open source machine & userspace emulator and
6-
virtualizer.
7-
8-
QEMU is capable of emulating a complete machine in software without any
9-
need for hardware virtualization support. By using dynamic translation,
10-
it achieves very good performance. QEMU can also integrate with the Xen
11-
and KVM hypervisors to provide emulated hardware while allowing the
12-
hypervisor to manage the CPU. With hypervisor support, QEMU can achieve
13-
near native performance for CPUs. When QEMU emulates CPUs directly it is
14-
capable of running operating systems made for one machine (e.g. an ARMv7
15-
board) on a different machine (e.g. an x86_64 PC board).
16-
17-
QEMU is also capable of providing userspace API virtualization for Linux
18-
and BSD kernel interfaces. This allows binaries compiled against one
19-
architecture ABI (e.g. the Linux PPC64 ABI) to be run on a host using a
20-
different architecture ABI (e.g. the Linux x86_64 ABI). This does not
21-
involve any hardware emulation, simply CPU and syscall emulation.
22-
23-
QEMU aims to fit into a variety of use cases. It can be invoked directly
24-
by users wishing to have full control over its behaviour and settings.
25-
It also aims to facilitate integration into higher level management
26-
layers, by providing a stable command line interface and monitor API.
27-
It is commonly invoked indirectly via the libvirt library when using
28-
open source applications such as oVirt, OpenStack and virt-manager.
29-
30-
QEMU as a whole is released under the GNU General Public License,
31-
version 2. For full licensing details, consult the LICENSE file.
32-
33-
34-
Documentation
35-
=============
36-
37-
Documentation can be found hosted online at
38-
`<https://www.qemu.org/documentation/>`_. The documentation for the
39-
current development version that is available at
40-
`<https://www.qemu.org/docs/master/>`_ is generated from the ``docs/``
41-
folder in the source tree, and is built by `Sphinx
42-
<https://www.sphinx-doc.org/en/master/>`_.
43-
44-
45-
Building
46-
========
47-
48-
QEMU is multi-platform software intended to be buildable on all modern
49-
Linux platforms, OS-X, Win32 (via the Mingw64 toolchain) and a variety
50-
of other UNIX targets. The simple steps to build QEMU are:
51-
52-
53-
.. code-block:: shell
54-
55-
mkdir build
56-
cd build
57-
../configure
58-
make
59-
60-
Additional information can also be found online via the QEMU website:
61-
62-
* `<https://wiki.qemu.org/Hosts/Linux>`_
63-
* `<https://wiki.qemu.org/Hosts/Mac>`_
64-
* `<https://wiki.qemu.org/Hosts/W32>`_
65-
66-
67-
Submitting patches
68-
==================
69-
70-
The QEMU source code is maintained under the GIT version control system.
71-
72-
.. code-block:: shell
73-
74-
git clone https://gitlab.com/qemu-project/qemu.git
75-
76-
When submitting patches, one common approach is to use 'git
77-
format-patch' and/or 'git send-email' to format & send the mail to the
78-
qemu-devel@nongnu.org mailing list. All patches submitted must contain
79-
a 'Signed-off-by' line from the author. Patches should follow the
80-
guidelines set out in the `style section
81-
<https://www.qemu.org/docs/master/devel/style.html>`_ of
82-
the Developers Guide.
83-
84-
Additional information on submitting patches can be found online via
85-
the QEMU website:
86-
87-
* `<https://wiki.qemu.org/Contribute/SubmitAPatch>`_
88-
* `<https://wiki.qemu.org/Contribute/TrivialPatches>`_
89-
90-
The QEMU website is also maintained under source control.
91-
92-
.. code-block:: shell
93-
94-
git clone https://gitlab.com/qemu-project/qemu-web.git
95-
96-
* `<https://www.qemu.org/2017/02/04/the-new-qemu-website-is-up/>`_
97-
98-
A 'git-publish' utility was created to make above process less
99-
cumbersome, and is highly recommended for making regular contributions,
100-
or even just for sending consecutive patch series revisions. It also
101-
requires a working 'git send-email' setup, and by default doesn't
102-
automate everything, so you may want to go through the above steps
103-
manually for once.
104-
105-
For installation instructions, please go to:
106-
107-
* `<https://github.com/stefanha/git-publish>`_
108-
109-
The workflow with 'git-publish' is:
110-
111-
.. code-block:: shell
112-
113-
$ git checkout master -b my-feature
114-
$ # work on new commits, add your 'Signed-off-by' lines to each
115-
$ git publish
116-
117-
Your patch series will be sent and tagged as my-feature-v1 if you need to refer
118-
back to it in the future.
119-
120-
Sending v2:
121-
122-
.. code-block:: shell
123-
124-
$ git checkout my-feature # same topic branch
125-
$ # making changes to the commits (using 'git rebase', for example)
126-
$ git publish
127-
128-
Your patch series will be sent with 'v2' tag in the subject and the git tip
129-
will be tagged as my-feature-v2.
130-
131-
Bug reporting
132-
=============
133-
134-
The QEMU project uses GitLab issues to track bugs. Bugs
135-
found when running code built from QEMU git or upstream released sources
136-
should be reported via:
137-
138-
* `<https://gitlab.com/qemu-project/qemu/-/issues>`_
139-
140-
If using QEMU via an operating system vendor pre-built binary package, it
141-
is preferable to report bugs to the vendor's own bug tracker first. If
142-
the bug is also known to affect latest upstream code, it can also be
143-
reported via GitLab.
144-
145-
For additional information on bug reporting consult:
146-
147-
* `<https://wiki.qemu.org/Contribute/ReportABug>`_
148-
149-
150-
ChangeLog
151-
=========
152-
153-
For version history and release notes, please visit
154-
`<https://wiki.qemu.org/ChangeLog/>`_ or look at the git history for
155-
more detailed information.
156-
157-
158-
Contact
159-
=======
160-
161-
The QEMU community can be contacted in a number of ways, with the two
162-
main methods being email and IRC:
163-
164-
* `<mailto:qemu-devel@nongnu.org>`_
165-
* `<https://lists.nongnu.org/mailman/listinfo/qemu-devel>`_
166-
* #qemu on irc.oftc.net
167-
168-
Information on additional methods of contacting the community can be
169-
found online via the QEMU website:
170-
171-
* `<https://wiki.qemu.org/Contribute/StartHere>`_
1+
This file must exists for ./scripts/checkpatch.pl to say it's a correct tree.

build_ci_container.sh

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#!/usr/bin/env bash
2+
# SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
set -euo pipefail
5+
set -x
6+
7+
echo "Install gdb"
8+
apt update
9+
apt install -y gdb-multiarch gdb
10+
11+
echo "Install cross compilers"
12+
apt update
13+
apt install -y \
14+
gcc-aarch64-linux-gnu \
15+
libc6-dev-arm64-cross \
16+
gcc-arm-linux-gnueabihf \
17+
libc6-dev-armhf-cross \
18+
gcc-alpha-linux-gnu \
19+
libc6.1-dev-alpha-cross \
20+
gcc-mips-linux-gnu \
21+
libc6-dev-mips-cross \
22+
gcc-mips64-linux-gnuabi64 \
23+
libc6-dev-mips64-cross \
24+
gcc-mips64el-linux-gnuabi64 \
25+
libc6-dev-mips64el-cross \
26+
gcc-mipsel-linux-gnu \
27+
libc6-dev-mipsel-cross \
28+
gcc-powerpc64le-linux-gnu \
29+
libc6-dev-ppc64el-cross \
30+
gcc-riscv64-linux-gnu \
31+
libc6-dev-riscv64-cross \
32+
gcc-s390x-linux-gnu \
33+
libc6-dev-s390x-cross \
34+
gcc-sh4-linux-gnu \
35+
libc6-dev-sh4-cross
36+
37+
echo "Install additional cross compilers (not available on arm)"
38+
if dpkg-architecture -e amd64; then
39+
apt update
40+
apt install -y \
41+
gcc-hppa-linux-gnu \
42+
libc6-dev-hppa-cross \
43+
gcc-m68k-linux-gnu \
44+
libc6-dev-m68k-cross \
45+
gcc-powerpc-linux-gnu \
46+
libc6-dev-powerpc-cross \
47+
gcc-powerpc64-linux-gnu \
48+
libc6-dev-ppc64-cross \
49+
gcc-sparc64-linux-gnu \
50+
libc6-dev-sparc64-cross
51+
fi
52+
53+
echo "Precache tests data"
54+
./configure
55+
ninja -C build precache-functional -k 0 || true
56+
ninja -C build precache-functional -j1 -k 0

configure

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1298,12 +1298,12 @@ fi
12981298
# functions to probe cross compilers
12991299

13001300
runc="no"
1301-
if test $use_containers = "yes" && (has "docker" || has "podman"); then
1302-
runc=$($python "$source_path"/tests/docker/docker.py --engine "$container_engine" probe)
1303-
if test "$runc" != "no"; then
1304-
docker_py="$python $source_path/tests/docker/docker.py --engine $container_engine"
1305-
fi
1306-
fi
1301+
#if test $use_containers = "yes" && (has "docker" || has "podman"); then
1302+
# runc=$($python "$source_path"/tests/docker/docker.py --engine "$container_engine" probe)
1303+
# if test "$runc" != "no"; then
1304+
# docker_py="$python $source_path/tests/docker/docker.py --engine $container_engine"
1305+
# fi
1306+
#fi
13071307

13081308
# cross compilers defaults, can be overridden with --cross-cc-ARCH
13091309
: ${cross_prefix_aarch64="aarch64-linux-gnu-"}

hw/net/rtl8139.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,10 @@ static inline G_GNUC_PRINTF(1, 2) int DPRINTF(const char *fmt, ...)
9292

9393
#define TYPE_RTL8139 "rtl8139"
9494

95+
#ifndef __clang__
96+
#pragma GCC diagnostic ignored "-Wstringop-overflow"
97+
#endif
98+
9599
OBJECT_DECLARE_SIMPLE_TYPE(RTL8139State, RTL8139)
96100

97101
/* Symbolic offsets to registers. */

hw/ppc/vof.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ static int path_offset(const void *fdt, const char *path)
147147
if (*at == '/') {
148148
at = strchr(at, '@');
149149
} else {
150-
*at = tolower(*at);
150+
*at = tolower((unsigned char)*at);
151151
++at;
152152
}
153153
}

include/qemu/sanitizer.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/* SPDX-License-Identifier: GPL-2.0-or-later */
2+
extern const char *__asan_default_options(void);

linux-user/syscall.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8721,6 +8721,8 @@ static int is_proc_myself(const char *filename, const char *entry)
87218721
return 0;
87228722
}
87238723

8724+
#pragma GCC diagnostic push
8725+
#pragma GCC diagnostic ignored "-Wmissing-format-attribute"
87248726
static void excp_dump_file(FILE *logfile, CPUArchState *env,
87258727
const char *fmt, int code)
87268728
{
@@ -8747,6 +8749,7 @@ void target_exception_dump(CPUArchState *env, const char *fmt, int code)
87478749
qemu_log_unlock(logfile);
87488750
}
87498751
}
8752+
#pragma GCC diagnostic pop
87508753

87518754
#include "target_proc.h"
87528755

0 commit comments

Comments
 (0)