Skip to content

Commit a4c444b

Browse files
Merge #807
807: Update Qemu version to v6.1.0 if possible. r=Emilgardis a=Alexhuszagh The latest Qemu release contains numerous bug fixes, and other improvements, and the existing patches various issues reported in older Qemu versions. The only changes required are incrementing the Qemu version and adding ninja-build as a temporary dependency, since Qemu now uses it for the build system. However, Ubuntu 16.04, the base image for numerous dependencies we use, still ships with Python3.5, and Qemu 6.1.0 requires Python3.6+, as well as the ninja-build system. We therefore add a check to see if we have a compatible Python version, and if we do, build the last Qemu version, so our code can be fully backwards-compatible. Closes #587. Co-authored-by: Alex Huszagh <[email protected]>
2 parents 3ded782 + e36cdaf commit a4c444b

File tree

3 files changed

+30
-20
lines changed

3 files changed

+30
-20
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
2929

3030
### Changed
3131

32+
- #807 - update Qemu to 6.1.0 on images using Ubuntu 18.04+ with python3.6+.
3233
- #775 - forward Cargo exit code to host
3334
- #762 - re-enabled `x86_64-unknown-dragonfly` target.
3435
- #747 - reduced android image sizes.

README.md

+20-20
Original file line numberDiff line numberDiff line change
@@ -302,49 +302,49 @@ terminate.
302302

303303
| Target | libc | GCC | C++ | QEMU | `test` |
304304
|--------------------------------------|-------:|--------:|:---:|------:|:------:|
305-
| `aarch64-linux-android` [1] | 9.0.8 | 9.0.8 || 5.1.0 ||
305+
| `aarch64-linux-android` [1] | 9.0.8 | 9.0.8 || 6.1.0 ||
306306
| `aarch64-unknown-linux-gnu` | 2.23 | 5.4.0 || 5.1.0 ||
307-
| `aarch64-unknown-linux-musl` | 1.1.24 | 9.2.0 || 5.1.0 ||
308-
| `arm-linux-androideabi` [1] | 9.0.8 | 9.0.8 || 5.1.0 ||
307+
| `aarch64-unknown-linux-musl` | 1.1.24 | 9.2.0 || 6.1.0 ||
308+
| `arm-linux-androideabi` [1] | 9.0.8 | 9.0.8 || 6.1.0 ||
309309
| `arm-unknown-linux-gnueabi` | 2.23 | 5.4.0 || 5.1.0 ||
310-
| `arm-unknown-linux-gnueabihf` | 2.17 | 8.3.0 || 5.1.0 ||
311-
| `arm-unknown-linux-musleabi` | 1.1.24 | 9.2.0 || 5.1.0 ||
312-
| `arm-unknown-linux-musleabihf` | 1.1.24 | 9.2.0 || 5.1.0 ||
313-
| `armv5te-unknown-linux-gnueabi` | 2.27 | 7.5.0 || 5.1.0 ||
314-
| `armv5te-unknown-linux-musleabi` | 1.1.24 | 9.2.0 || 5.1.0 ||
315-
| `armv7-linux-androideabi` [1] | 9.0.8 | 9.0.8 || 5.1.0 ||
316-
| `armv7-unknown-linux-gnueabi` | 2.27 | 7.5.0 || 5.1.0 ||
310+
| `arm-unknown-linux-gnueabihf` | 2.17 | 8.3.0 || 6.1.0 ||
311+
| `arm-unknown-linux-musleabi` | 1.1.24 | 9.2.0 || 6.1.0 ||
312+
| `arm-unknown-linux-musleabihf` | 1.1.24 | 9.2.0 || 6.1.0 ||
313+
| `armv5te-unknown-linux-gnueabi` | 2.27 | 7.5.0 || 6.1.0 ||
314+
| `armv5te-unknown-linux-musleabi` | 1.1.24 | 9.2.0 || 6.1.0 ||
315+
| `armv7-linux-androideabi` [1] | 9.0.8 | 9.0.8 || 6.1.0 ||
316+
| `armv7-unknown-linux-gnueabi` | 2.27 | 7.5.0 || 6.1.0 ||
317317
| `armv7-unknown-linux-gnueabihf` | 2.23 | 5.4.0 || 5.1.0 ||
318-
| `armv7-unknown-linux-musleabi` | 1.1.24 | 9.2.0 || 5.1.0 ||
319-
| `armv7-unknown-linux-musleabihf` | 1.1.24 | 9.2.0 || 5.1.0 ||
318+
| `armv7-unknown-linux-musleabi` | 1.1.24 | 9.2.0 || 6.1.0 ||
319+
| `armv7-unknown-linux-musleabihf` | 1.1.24 | 9.2.0 || 6.1.0 ||
320320
| `i586-unknown-linux-gnu` | 2.23 | 5.4.0 || N/A ||
321321
| `i586-unknown-linux-musl` | 1.1.24 | 9.2.0 || N/A ||
322322
| `i686-unknown-freebsd` | 1.5 | 6.4.0 || N/A | |
323-
| `i686-linux-android` [1] | 9.0.8 | 9.0.8 || 5.1.0 ||
323+
| `i686-linux-android` [1] | 9.0.8 | 9.0.8 || 6.1.0 ||
324324
| `i686-pc-windows-gnu` | N/A | 7.5 || N/A ||
325325
| `i686-unknown-linux-gnu` | 2.23 | 5.4.0 || 5.1.0 ||
326326
| `i686-unknown-linux-musl` | 1.1.24 | 9.2.0 || N/A ||
327327
| `mips-unknown-linux-gnu` | 2.23 | 5.4.0 || 5.1.0 ||
328-
| `mips-unknown-linux-musl` | 1.1.24 | 9.2.0 || 5.1.0 ||
328+
| `mips-unknown-linux-musl` | 1.1.24 | 9.2.0 || 6.1.0 ||
329329
| `mips64-unknown-linux-gnuabi64` | 2.23 | 5.4.0 || 5.1.0 ||
330-
| `mips64-unknown-linux-muslabi64` | 1.1.24 | 9.2.0 || 5.1.0 ||
330+
| `mips64-unknown-linux-muslabi64` | 1.1.24 | 9.2.0 || 6.1.0 ||
331331
| `mips64el-unknown-linux-gnuabi64` | 2.23 | 5.4.0 || 5.1.0 ||
332-
| `mips64el-unknown-linux-muslabi64` | 1.1.24 | 9.2.0 || 5.1.0 ||
332+
| `mips64el-unknown-linux-muslabi64` | 1.1.24 | 9.2.0 || 6.1.0 ||
333333
| `mipsel-unknown-linux-gnu` | 2.23 | 5.4.0 || 5.1.0 ||
334-
| `mipsel-unknown-linux-musl` | 1.1.24 | 9.2.0 || 5.1.0 ||
334+
| `mipsel-unknown-linux-musl` | 1.1.24 | 9.2.0 || 6.1.0 ||
335335
| `powerpc-unknown-linux-gnu` | 2.23 | 5.4.0 || 5.1.0 ||
336336
| `powerpc64-unknown-linux-gnu` | 2.23 | 5.4.0 || 5.1.0 ||
337337
| `powerpc64le-unknown-linux-gnu` | 2.23 | 5.4.0 || 5.1.0 ||
338-
| `riscv64gc-unknown-linux-gnu` | 2.27 | 7.5.0 || 5.1.0 ||
338+
| `riscv64gc-unknown-linux-gnu` | 2.27 | 7.5.0 || 6.1.0 ||
339339
| `s390x-unknown-linux-gnu` | 2.23 | 5.4.0 || 5.1.0 ||
340340
| `sparc64-unknown-linux-gnu` | 2.23 | 5.4.0 || 5.1.0 ||
341341
| `thumbv6m-none-eabi` [4] | 2.2.0 | 4.9.3 | | N/A | |
342342
| `thumbv7em-none-eabi` [4] | 2.2.0 | 4.9.3 | | N/A | |
343343
| `thumbv7em-none-eabihf` [4] | 2.2.0 | 4.9.3 | | N/A | |
344344
| `thumbv7m-none-eabi` [4] | 2.2.0 | 4.9.3 | | N/A | |
345-
| `thumbv7neon-linux-androideabi` [1] | 9.0.8 | 9.0.8 || 5.1.0 ||
345+
| `thumbv7neon-linux-androideabi` [1] | 9.0.8 | 9.0.8 || 6.1.0 ||
346346
| `thumbv7neon-unknown-linux-gnueabihf`| 2.23 | 5.4.0 || 5.1.0 ||
347-
| `x86_64-linux-android` [1] | 9.0.8 | 9.0.8 || 5.1.0 ||
347+
| `x86_64-linux-android` [1] | 9.0.8 | 9.0.8 || 6.1.0 ||
348348
| `x86_64-pc-windows-gnu` | N/A | 7.3 || N/A ||
349349
| `x86_64-unknown-freebsd` | 1.5 | 6.4.0 || N/A | |
350350
| `x86_64-unknown-dragonfly` [2] [3] | 6.0.1 | 5.3.0 || N/A | |

docker/qemu.sh

+9
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,15 @@ main() {
170170
libpixman-1-dev \
171171
libselinux1-dev \
172172
zlib1g-dev
173+
174+
# if we have python3.6+, we can install qemu 6.1.0, which needs ninja-build
175+
# ubuntu 16.04 only provides python3.5, so remove when we have a newer qemu.
176+
is_ge_python36=$(python3 -c "import sys; print(int(sys.version_info >= (3, 6)))")
177+
if [[ "${is_ge_python36}" == "1" ]]; then
178+
if_ubuntu version=6.1.0
179+
if_ubuntu install_packages ninja-build
180+
fi
181+
173182
local td
174183
td="$(mktemp -d)"
175184

0 commit comments

Comments
 (0)