* Remove Ubuntu 18.04 containers (not supported anymore)
* Improve the cleanup of the QEMU binary in case of failing qtests * Update the Windows support statement * Remove the capstone submodule (and rely on Capstone of the distros instead) -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmKEovQRHHRodXRoQHJl ZGhhdC5jb20ACgkQLtnXdP5wLbXXtxAAsjL2M/kUcr1KBSfkaMhTa0D3OKPQ+p/e Bac/9+l7UhZZLLffzg53lSsCmlj9cSr5cVUkooT7IFS03wauH7ZJ/wuefIS8IYED jREmeMWXmVTTfQo4QQZ+6T+XknG2DWjzXQ3sNat71LH4RbHXO5um3zYIdDUaujP+ v4sAKKH+F/FUsEXMP1rFmZpkaWOcvsuSwP/H4kEfhlovebAZINPow26eYYRrTM2t Ifs7HelO12TlmqlBFn0UzHj8bV8MZkqcjj0efocVzuYMQ8DVcxE7IPc3tft2PuUu Ia+Czh1hLsLA1zYiO/nN9bVIIewFGOErASzjlYWUlQwNRc1nLik+m+p4Cl9WOEhL JpkN/yY3pTI5uC6a4KgxDQGTeFUR4D5la6Hg7yQjQbTBMEeGFCV50iOdkItdnRBx ByReVctXS3oIhsDqHMb8qydlBkPp5pUrAXdj43IBCUb3UsrHmCxH+z8U5BhHvv4D OleykLKyMcuff6HcEpC1fBQNIFJX5uS69EtAXYtyo2kb5zAJWezCv65UPldAZJCT kRT4beueQ+d5t+4LZn1qNePdoyeFArdCLlOqg/3Fx08kM5eEv22pSQhOtWclE7U3 tgorikFybClvKJ+YnXBAxD7oFKe+h9L+RYCFOgoTebrbMX54IjjJfeo2DydhHTt7 IaJnsI+vvAA= =z6e9 -----END PGP SIGNATURE----- Merge tag 'pull-request-2022-05-18' of https://gitlab.com/thuth/qemu into staging * Remove Ubuntu 18.04 containers (not supported anymore) * Improve the cleanup of the QEMU binary in case of failing qtests * Update the Windows support statement * Remove the capstone submodule (and rely on Capstone of the distros instead) # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmKEovQRHHRodXRoQHJl # ZGhhdC5jb20ACgkQLtnXdP5wLbXXtxAAsjL2M/kUcr1KBSfkaMhTa0D3OKPQ+p/e # Bac/9+l7UhZZLLffzg53lSsCmlj9cSr5cVUkooT7IFS03wauH7ZJ/wuefIS8IYED # jREmeMWXmVTTfQo4QQZ+6T+XknG2DWjzXQ3sNat71LH4RbHXO5um3zYIdDUaujP+ # v4sAKKH+F/FUsEXMP1rFmZpkaWOcvsuSwP/H4kEfhlovebAZINPow26eYYRrTM2t # Ifs7HelO12TlmqlBFn0UzHj8bV8MZkqcjj0efocVzuYMQ8DVcxE7IPc3tft2PuUu # Ia+Czh1hLsLA1zYiO/nN9bVIIewFGOErASzjlYWUlQwNRc1nLik+m+p4Cl9WOEhL # JpkN/yY3pTI5uC6a4KgxDQGTeFUR4D5la6Hg7yQjQbTBMEeGFCV50iOdkItdnRBx # ByReVctXS3oIhsDqHMb8qydlBkPp5pUrAXdj43IBCUb3UsrHmCxH+z8U5BhHvv4D # OleykLKyMcuff6HcEpC1fBQNIFJX5uS69EtAXYtyo2kb5zAJWezCv65UPldAZJCT # kRT4beueQ+d5t+4LZn1qNePdoyeFArdCLlOqg/3Fx08kM5eEv22pSQhOtWclE7U3 # tgorikFybClvKJ+YnXBAxD7oFKe+h9L+RYCFOgoTebrbMX54IjjJfeo2DydhHTt7 # IaJnsI+vvAA= # =z6e9 # -----END PGP SIGNATURE----- # gpg: Signature made Wed 18 May 2022 12:40:36 AM PDT # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [undefined] # gpg: aka "Thomas Huth <thuth@redhat.com>" [undefined] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [undefined] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * tag 'pull-request-2022-05-18' of https://gitlab.com/thuth/qemu: capstone: Remove the capstone submodule capstone: Allow version 3.0.5 again tests/vm: Add capstone to the NetBSD and OpenBSD VMs docs/about: Update the support statement for Windows tests/qtest: use prctl(PR_SET_PDEATHSIG) as fallback to kill QEMU tests/qtest: fix registration of ABRT handler for QEMU cleanup Remove Ubuntu 18.04 container support from the repository gitlab-ci: Switch the container of the 'check-patch' & 'check-dco' jobs Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
commit
3757b0d08b
@ -42,6 +42,7 @@ build-system-ubuntu:
|
||||
variables:
|
||||
IMAGE: ubuntu2004
|
||||
CONFIGURE_ARGS: --enable-docs --enable-fdt=system --enable-slirp=system
|
||||
--enable-capstone
|
||||
TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
|
||||
microblazeel-softmmu mips64el-softmmu
|
||||
MAKE_CHECK_ARGS: check-build
|
||||
@ -118,7 +119,7 @@ build-system-fedora:
|
||||
variables:
|
||||
IMAGE: fedora
|
||||
CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs
|
||||
--enable-fdt=system --enable-slirp=system --enable-capstone=system
|
||||
--enable-fdt=system --enable-slirp=system --enable-capstone
|
||||
TARGETS: tricore-softmmu microblaze-softmmu mips-softmmu
|
||||
xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu
|
||||
MAKE_CHECK_ARGS: check-build
|
||||
|
@ -19,11 +19,6 @@ amd64-debian-container:
|
||||
variables:
|
||||
NAME: debian-amd64
|
||||
|
||||
amd64-ubuntu1804-container:
|
||||
extends: .container_job_template
|
||||
variables:
|
||||
NAME: ubuntu1804
|
||||
|
||||
amd64-ubuntu2004-container:
|
||||
extends: .container_job_template
|
||||
variables:
|
||||
|
@ -1,6 +1,6 @@
|
||||
# All ubuntu-20.04 jobs should run successfully in an environment
|
||||
# setup by the scripts/ci/setup/qemu/build-environment.yml task
|
||||
# "Install basic packages to build QEMU on Ubuntu 18.04/20.04"
|
||||
# "Install basic packages to build QEMU on Ubuntu 20.04"
|
||||
|
||||
ubuntu-20.04-aarch32-all:
|
||||
needs: []
|
||||
|
@ -1,6 +1,6 @@
|
||||
# All ubuntu-20.04 jobs should run successfully in an environment
|
||||
# setup by the scripts/ci/setup/qemu/build-environment.yml task
|
||||
# "Install basic packages to build QEMU on Ubuntu 18.04/20.04"
|
||||
# "Install basic packages to build QEMU on Ubuntu 20.04"
|
||||
|
||||
ubuntu-20.04-aarch64-all-linux-static:
|
||||
needs: []
|
||||
|
@ -1,12 +1,13 @@
|
||||
check-patch:
|
||||
stage: build
|
||||
image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
|
||||
needs:
|
||||
job: amd64-centos8-container
|
||||
image: python:3.10-alpine
|
||||
needs: []
|
||||
script:
|
||||
- .gitlab-ci.d/check-patch.py
|
||||
variables:
|
||||
GIT_DEPTH: 1000
|
||||
before_script:
|
||||
- apk -U add git perl
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == "qemu-project"'
|
||||
when: never
|
||||
@ -15,12 +16,13 @@ check-patch:
|
||||
|
||||
check-dco:
|
||||
stage: build
|
||||
image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
|
||||
needs:
|
||||
job: amd64-centos8-container
|
||||
image: python:3.10-alpine
|
||||
needs: []
|
||||
script: .gitlab-ci.d/check-dco.py
|
||||
variables:
|
||||
GIT_DEPTH: 1000
|
||||
before_script:
|
||||
- apk -U add git
|
||||
rules:
|
||||
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
||||
when: never
|
||||
|
@ -57,7 +57,7 @@ msys2-64bit:
|
||||
- $env:CHERE_INVOKING = 'yes' # Preserve the current working directory
|
||||
- $env:MSYSTEM = 'MINGW64' # Start a 64 bit Mingw environment
|
||||
- .\msys64\usr\bin\bash -lc './configure --target-list=x86_64-softmmu
|
||||
--enable-capstone=system --without-default-devices'
|
||||
--enable-capstone --without-default-devices'
|
||||
- .\msys64\usr\bin\bash -lc "sed -i '/^ROMS=/d' build/config-host.mak"
|
||||
- .\msys64\usr\bin\bash -lc 'make -j2'
|
||||
- .\msys64\usr\bin\bash -lc 'make check'
|
||||
@ -90,7 +90,6 @@ msys2-32bit:
|
||||
- $env:MSYSTEM = 'MINGW32' # Start a 32-bit MinG environment
|
||||
- mkdir output
|
||||
- cd output
|
||||
- ..\msys64\usr\bin\bash -lc "../configure --target-list=ppc64-softmmu
|
||||
--enable-capstone=system"
|
||||
- ..\msys64\usr\bin\bash -lc "../configure --target-list=ppc64-softmmu"
|
||||
- ..\msys64\usr\bin\bash -lc 'make -j2'
|
||||
- ..\msys64\usr\bin\bash -lc 'make check'
|
||||
|
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -31,9 +31,6 @@
|
||||
[submodule "ui/keycodemapdb"]
|
||||
path = ui/keycodemapdb
|
||||
url = https://gitlab.com/qemu-project/keycodemapdb.git
|
||||
[submodule "capstone"]
|
||||
path = capstone
|
||||
url = https://gitlab.com/qemu-project/capstone.git
|
||||
[submodule "roms/seabios-hppa"]
|
||||
path = roms/seabios-hppa
|
||||
url = https://gitlab.com/qemu-project/seabios-hppa.git
|
||||
|
1
capstone
1
capstone
@ -1 +0,0 @@
|
||||
Subproject commit f8b1b833015a4ae47110ed068e0deb7106ced66d
|
23
configure
vendored
23
configure
vendored
@ -307,10 +307,8 @@ skip_meson=no
|
||||
|
||||
# 1. Track which submodules are needed
|
||||
if test "$default_feature" = no ; then
|
||||
capstone="disabled"
|
||||
slirp="disabled"
|
||||
else
|
||||
capstone="auto"
|
||||
slirp="auto"
|
||||
fi
|
||||
fdt="auto"
|
||||
@ -869,14 +867,6 @@ for opt do
|
||||
--enable-uuid|--disable-uuid)
|
||||
echo "$0: $opt is obsolete, UUID support is always built" >&2
|
||||
;;
|
||||
--disable-capstone) capstone="disabled"
|
||||
;;
|
||||
--enable-capstone) capstone="enabled"
|
||||
;;
|
||||
--enable-capstone=git) capstone="internal"
|
||||
;;
|
||||
--enable-capstone=*) capstone="$optarg"
|
||||
;;
|
||||
--with-git=*) git="$optarg"
|
||||
;;
|
||||
--with-git-submodules=*)
|
||||
@ -1486,6 +1476,8 @@ fi
|
||||
##########################################
|
||||
# glib support probe
|
||||
|
||||
# When bumping glib_req_ver, please check also whether we should increase
|
||||
# the _WIN32_WINNT setting in osdep.h according to the value from glib
|
||||
glib_req_ver=2.56
|
||||
glib_modules=gthread-2.0
|
||||
if test "$modules" = yes; then
|
||||
@ -1564,16 +1556,6 @@ case "$fdt" in
|
||||
;;
|
||||
esac
|
||||
|
||||
##########################################
|
||||
# capstone
|
||||
|
||||
case "$capstone" in
|
||||
auto | enabled | internal)
|
||||
# Simpler to always update submodule, even if not needed.
|
||||
git_submodules="${git_submodules} capstone"
|
||||
;;
|
||||
esac
|
||||
|
||||
##########################################
|
||||
# check and set a backend for coroutine
|
||||
|
||||
@ -2218,7 +2200,6 @@ if test "$skip_meson" = no; then
|
||||
test "$werror" = yes && meson_option_add -Dwerror=true
|
||||
|
||||
# QEMU options
|
||||
test "$capstone" != auto && meson_option_add "-Dcapstone=$capstone"
|
||||
test "$cfi" != false && meson_option_add "-Dcfi=$cfi"
|
||||
test "$fdt" != auto && meson_option_add "-Dfdt=$fdt"
|
||||
test -n "${LIB_FUZZING_ENGINE+xxx}" && meson_option_add "-Dfuzzing_engine=$LIB_FUZZING_ENGINE"
|
||||
|
@ -86,11 +86,15 @@ similar versions.
|
||||
Windows
|
||||
-------
|
||||
|
||||
The project supports building with current versions of the MinGW toolchain,
|
||||
hosted on Linux (Debian/Fedora).
|
||||
The project aims to support the two most recent versions of Windows that are
|
||||
still supported by the vendor. The minimum Windows API that is currently
|
||||
targeted is "Windows 7", so theoretically the QEMU binaries can still be run
|
||||
on older versions of Windows, too. However, such old versions of Windows are
|
||||
not tested anymore, so it is recommended to use one of the latest versions of
|
||||
Windows instead.
|
||||
|
||||
The version of the Windows API that's currently targeted is Vista / Server
|
||||
2008.
|
||||
The project supports building QEMU with current versions of the MinGW
|
||||
toolchain, either hosted on Linux (Debian/Fedora) or via MSYS2 on Windows.
|
||||
|
||||
.. _Homebrew: https://brew.sh/
|
||||
.. _MacPorts: https://www.macports.org/
|
||||
|
@ -75,7 +75,7 @@ QEMU_EXTERN_C int daemon(int, int);
|
||||
#ifdef _WIN32
|
||||
/* as defined in sdkddkver.h */
|
||||
#ifndef _WIN32_WINNT
|
||||
#define _WIN32_WINNT 0x0600 /* Vista */
|
||||
#define _WIN32_WINNT 0x0601 /* Windows 7 API (should be in sync with glib) */
|
||||
#endif
|
||||
/* reduces the number of implicitly included headers */
|
||||
#ifndef WIN32_LEAN_AND_MEAN
|
||||
|
115
meson.build
115
meson.build
@ -2535,13 +2535,10 @@ genh += custom_target('config-poison.h',
|
||||
##############
|
||||
|
||||
capstone = not_found
|
||||
capstone_opt = get_option('capstone')
|
||||
if capstone_opt in ['enabled', 'auto', 'system']
|
||||
have_internal = fs.exists(meson.current_source_dir() / 'capstone/Makefile')
|
||||
capstone = dependency('capstone', version: '>=4.0',
|
||||
if not get_option('capstone').auto() or have_system or have_user
|
||||
capstone = dependency('capstone', version: '>=3.0.5',
|
||||
kwargs: static_kwargs, method: 'pkg-config',
|
||||
required: capstone_opt == 'system' or
|
||||
capstone_opt == 'enabled' and not have_internal)
|
||||
required: get_option('capstone'))
|
||||
|
||||
# Some versions of capstone have broken pkg-config file
|
||||
# that reports a wrong -I path, causing the #include to
|
||||
@ -2550,110 +2547,10 @@ if capstone_opt in ['enabled', 'auto', 'system']
|
||||
if capstone.found() and not cc.compiles('#include <capstone.h>',
|
||||
dependencies: [capstone])
|
||||
capstone = not_found
|
||||
if capstone_opt == 'system'
|
||||
error('system capstone requested, it does not appear to work')
|
||||
if get_option('capstone').enabled()
|
||||
error('capstone requested, but it does not appear to work')
|
||||
endif
|
||||
endif
|
||||
|
||||
if capstone.found()
|
||||
capstone_opt = 'system'
|
||||
elif have_internal
|
||||
capstone_opt = 'internal'
|
||||
else
|
||||
capstone_opt = 'disabled'
|
||||
endif
|
||||
endif
|
||||
if capstone_opt == 'internal'
|
||||
capstone_data = configuration_data()
|
||||
capstone_data.set('CAPSTONE_USE_SYS_DYN_MEM', '1')
|
||||
|
||||
capstone_files = files(
|
||||
'capstone/cs.c',
|
||||
'capstone/MCInst.c',
|
||||
'capstone/MCInstrDesc.c',
|
||||
'capstone/MCRegisterInfo.c',
|
||||
'capstone/SStream.c',
|
||||
'capstone/utils.c'
|
||||
)
|
||||
|
||||
if 'CONFIG_ARM_DIS' in config_all_disas
|
||||
capstone_data.set('CAPSTONE_HAS_ARM', '1')
|
||||
capstone_files += files(
|
||||
'capstone/arch/ARM/ARMDisassembler.c',
|
||||
'capstone/arch/ARM/ARMInstPrinter.c',
|
||||
'capstone/arch/ARM/ARMMapping.c',
|
||||
'capstone/arch/ARM/ARMModule.c'
|
||||
)
|
||||
endif
|
||||
|
||||
# FIXME: This config entry currently depends on a c++ compiler.
|
||||
# Which is needed for building libvixl, but not for capstone.
|
||||
if 'CONFIG_ARM_A64_DIS' in config_all_disas
|
||||
capstone_data.set('CAPSTONE_HAS_ARM64', '1')
|
||||
capstone_files += files(
|
||||
'capstone/arch/AArch64/AArch64BaseInfo.c',
|
||||
'capstone/arch/AArch64/AArch64Disassembler.c',
|
||||
'capstone/arch/AArch64/AArch64InstPrinter.c',
|
||||
'capstone/arch/AArch64/AArch64Mapping.c',
|
||||
'capstone/arch/AArch64/AArch64Module.c'
|
||||
)
|
||||
endif
|
||||
|
||||
if 'CONFIG_PPC_DIS' in config_all_disas
|
||||
capstone_data.set('CAPSTONE_HAS_POWERPC', '1')
|
||||
capstone_files += files(
|
||||
'capstone/arch/PowerPC/PPCDisassembler.c',
|
||||
'capstone/arch/PowerPC/PPCInstPrinter.c',
|
||||
'capstone/arch/PowerPC/PPCMapping.c',
|
||||
'capstone/arch/PowerPC/PPCModule.c'
|
||||
)
|
||||
endif
|
||||
|
||||
if 'CONFIG_S390_DIS' in config_all_disas
|
||||
capstone_data.set('CAPSTONE_HAS_SYSZ', '1')
|
||||
capstone_files += files(
|
||||
'capstone/arch/SystemZ/SystemZDisassembler.c',
|
||||
'capstone/arch/SystemZ/SystemZInstPrinter.c',
|
||||
'capstone/arch/SystemZ/SystemZMapping.c',
|
||||
'capstone/arch/SystemZ/SystemZModule.c',
|
||||
'capstone/arch/SystemZ/SystemZMCTargetDesc.c'
|
||||
)
|
||||
endif
|
||||
|
||||
if 'CONFIG_I386_DIS' in config_all_disas
|
||||
capstone_data.set('CAPSTONE_HAS_X86', 1)
|
||||
capstone_files += files(
|
||||
'capstone/arch/X86/X86Disassembler.c',
|
||||
'capstone/arch/X86/X86DisassemblerDecoder.c',
|
||||
'capstone/arch/X86/X86ATTInstPrinter.c',
|
||||
'capstone/arch/X86/X86IntelInstPrinter.c',
|
||||
'capstone/arch/X86/X86InstPrinterCommon.c',
|
||||
'capstone/arch/X86/X86Mapping.c',
|
||||
'capstone/arch/X86/X86Module.c'
|
||||
)
|
||||
endif
|
||||
|
||||
configure_file(output: 'capstone-defs.h', configuration: capstone_data)
|
||||
|
||||
capstone_cargs = [
|
||||
# FIXME: There does not seem to be a way to completely replace the c_args
|
||||
# that come from add_project_arguments() -- we can only add to them.
|
||||
# So: disable all warnings with a big hammer.
|
||||
'-Wno-error', '-w',
|
||||
|
||||
# Include all configuration defines via a header file, which will wind up
|
||||
# as a dependency on the object file, and thus changes here will result
|
||||
# in a rebuild.
|
||||
'-include', 'capstone-defs.h'
|
||||
]
|
||||
|
||||
libcapstone = static_library('capstone',
|
||||
build_by_default: false,
|
||||
sources: capstone_files,
|
||||
c_args: capstone_cargs,
|
||||
include_directories: 'capstone/include')
|
||||
capstone = declare_dependency(link_with: libcapstone,
|
||||
include_directories: 'capstone/include/capstone')
|
||||
endif
|
||||
|
||||
slirp = not_found
|
||||
@ -3984,7 +3881,7 @@ summary_info += {'bzip2 support': libbzip2}
|
||||
summary_info += {'lzfse support': liblzfse}
|
||||
summary_info += {'zstd support': zstd}
|
||||
summary_info += {'NUMA host support': numa}
|
||||
summary_info += {'capstone': capstone_opt == 'internal' ? capstone_opt : capstone}
|
||||
summary_info += {'capstone': capstone}
|
||||
summary_info += {'libpmem support': libpmem}
|
||||
summary_info += {'libdaxctl support': libdaxctl}
|
||||
summary_info += {'libudev': libudev}
|
||||
|
@ -254,8 +254,7 @@ option('virtfs', type: 'feature', value: 'auto',
|
||||
option('virtiofsd', type: 'feature', value: 'auto',
|
||||
description: 'build virtiofs daemon (virtiofsd)')
|
||||
|
||||
option('capstone', type: 'combo', value: 'auto',
|
||||
choices: ['disabled', 'enabled', 'auto', 'system', 'internal'],
|
||||
option('capstone', type: 'feature', value: 'auto',
|
||||
description: 'Whether and how to find the capstone library')
|
||||
option('slirp', type: 'combo', value: 'auto',
|
||||
choices: ['disabled', 'enabled', 'auto', 'system', 'internal'],
|
||||
|
@ -33,10 +33,9 @@
|
||||
when:
|
||||
- ansible_facts['distribution'] == 'Ubuntu'
|
||||
|
||||
- name: Install basic packages to build QEMU on Ubuntu 18.04/20.04
|
||||
- name: Install basic packages to build QEMU on Ubuntu 20.04
|
||||
package:
|
||||
name:
|
||||
# Originally from tests/docker/dockerfiles/ubuntu1804.docker
|
||||
- ccache
|
||||
- gcc
|
||||
- gettext
|
||||
@ -90,7 +89,7 @@
|
||||
when:
|
||||
- ansible_facts['distribution'] == 'Ubuntu'
|
||||
|
||||
- name: Install packages to build QEMU on Ubuntu 18.04/20.04 on non-s390x
|
||||
- name: Install packages to build QEMU on Ubuntu 20.04 on non-s390x
|
||||
package:
|
||||
name:
|
||||
- libspice-server-dev
|
||||
@ -100,15 +99,6 @@
|
||||
- ansible_facts['distribution'] == 'Ubuntu'
|
||||
- ansible_facts['architecture'] != 's390x'
|
||||
|
||||
- name: Install basic packages to build QEMU on Ubuntu 18.04
|
||||
package:
|
||||
name:
|
||||
# Originally from tests/docker/dockerfiles/ubuntu1804.docker
|
||||
- clang
|
||||
when:
|
||||
- ansible_facts['distribution'] == 'Ubuntu'
|
||||
- ansible_facts['distribution_version'] == '18.04'
|
||||
|
||||
- name: Install basic packages to build QEMU on Ubuntu 20.04
|
||||
package:
|
||||
name:
|
||||
|
@ -16,9 +16,6 @@ meson_options_help() {
|
||||
printf "%s\n" ' --enable-block-drv-whitelist-in-tools'
|
||||
printf "%s\n" ' use block whitelist also in tools instead of only'
|
||||
printf "%s\n" ' QEMU'
|
||||
printf "%s\n" ' --enable-capstone[=CHOICE]'
|
||||
printf "%s\n" ' Whether and how to find the capstone library'
|
||||
printf "%s\n" ' (choices: auto/disabled/enabled/internal/system)'
|
||||
printf "%s\n" ' --enable-cfi Control-Flow Integrity (CFI)'
|
||||
printf "%s\n" ' --enable-cfi-debug Verbose errors in case of CFI violation'
|
||||
printf "%s\n" ' --enable-debug-mutex mutex debugging support'
|
||||
@ -77,6 +74,7 @@ meson_options_help() {
|
||||
printf "%s\n" ' brlapi brlapi character device driver'
|
||||
printf "%s\n" ' bzip2 bzip2 support for DMG images'
|
||||
printf "%s\n" ' cap-ng cap_ng support'
|
||||
printf "%s\n" ' capstone Whether and how to find the capstone library'
|
||||
printf "%s\n" ' cloop cloop image format support'
|
||||
printf "%s\n" ' cocoa Cocoa user interface (macOS only)'
|
||||
printf "%s\n" ' coreaudio CoreAudio sound support'
|
||||
@ -210,7 +208,6 @@ _meson_option_parse() {
|
||||
--disable-cap-ng) printf "%s" -Dcap_ng=disabled ;;
|
||||
--enable-capstone) printf "%s" -Dcapstone=enabled ;;
|
||||
--disable-capstone) printf "%s" -Dcapstone=disabled ;;
|
||||
--enable-capstone=*) quote_sh "-Dcapstone=$2" ;;
|
||||
--enable-cfi) printf "%s" -Dcfi=true ;;
|
||||
--disable-cfi) printf "%s" -Dcfi=false ;;
|
||||
--enable-cfi-debug) printf "%s" -Dcfi_debug=true ;;
|
||||
|
@ -1,144 +0,0 @@
|
||||
# THIS FILE WAS AUTO-GENERATED
|
||||
#
|
||||
# $ lcitool dockerfile --layers all ubuntu-1804 qemu
|
||||
#
|
||||
# https://gitlab.com/libvirt/libvirt-ci
|
||||
|
||||
FROM docker.io/library/ubuntu:18.04
|
||||
|
||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||
apt-get update && \
|
||||
apt-get install -y eatmydata && \
|
||||
eatmydata apt-get dist-upgrade -y && \
|
||||
eatmydata apt-get install --no-install-recommends -y \
|
||||
bash \
|
||||
bc \
|
||||
bsdmainutils \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
ccache \
|
||||
clang \
|
||||
dbus \
|
||||
debianutils \
|
||||
diffutils \
|
||||
exuberant-ctags \
|
||||
findutils \
|
||||
g++ \
|
||||
gcc \
|
||||
gcovr \
|
||||
genisoimage \
|
||||
gettext \
|
||||
git \
|
||||
glusterfs-common \
|
||||
hostname \
|
||||
libaio-dev \
|
||||
libasan5 \
|
||||
libasound2-dev \
|
||||
libattr1-dev \
|
||||
libbrlapi-dev \
|
||||
libbz2-dev \
|
||||
libc6-dev \
|
||||
libcacard-dev \
|
||||
libcap-ng-dev \
|
||||
libcapstone-dev \
|
||||
libcurl4-gnutls-dev \
|
||||
libdaxctl-dev \
|
||||
libdrm-dev \
|
||||
libepoxy-dev \
|
||||
libfdt-dev \
|
||||
libffi-dev \
|
||||
libgbm-dev \
|
||||
libgcrypt20-dev \
|
||||
libglib2.0-dev \
|
||||
libgnutls28-dev \
|
||||
libgtk-3-dev \
|
||||
libibumad-dev \
|
||||
libibverbs-dev \
|
||||
libiscsi-dev \
|
||||
libjemalloc-dev \
|
||||
libjpeg-turbo8-dev \
|
||||
liblttng-ust-dev \
|
||||
liblzo2-dev \
|
||||
libncursesw5-dev \
|
||||
libnfs-dev \
|
||||
libnuma-dev \
|
||||
libpam0g-dev \
|
||||
libpcre2-dev \
|
||||
libpixman-1-dev \
|
||||
libpmem-dev \
|
||||
libpng-dev \
|
||||
libpulse-dev \
|
||||
librbd-dev \
|
||||
librdmacm-dev \
|
||||
libsasl2-dev \
|
||||
libsdl2-dev \
|
||||
libsdl2-image-dev \
|
||||
libseccomp-dev \
|
||||
libselinux1-dev \
|
||||
libsnappy-dev \
|
||||
libspice-protocol-dev \
|
||||
libspice-server-dev \
|
||||
libssh-dev \
|
||||
libsystemd-dev \
|
||||
libtasn1-6-dev \
|
||||
libubsan1 \
|
||||
libudev-dev \
|
||||
libusb-1.0-0-dev \
|
||||
libusbredirhost-dev \
|
||||
libvdeplug-dev \
|
||||
libvirglrenderer-dev \
|
||||
libvte-2.91-dev \
|
||||
libxen-dev \
|
||||
libzstd-dev \
|
||||
llvm \
|
||||
locales \
|
||||
make \
|
||||
multipath-tools \
|
||||
netcat-openbsd \
|
||||
nettle-dev \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
perl-base \
|
||||
pkgconf \
|
||||
python3 \
|
||||
python3-numpy \
|
||||
python3-opencv \
|
||||
python3-pillow \
|
||||
python3-pip \
|
||||
python3-setuptools \
|
||||
python3-sphinx \
|
||||
python3-sphinx-rtd-theme \
|
||||
python3-venv \
|
||||
python3-wheel \
|
||||
python3-yaml \
|
||||
rpm2cpio \
|
||||
sed \
|
||||
sparse \
|
||||
systemtap-sdt-dev \
|
||||
tar \
|
||||
tesseract-ocr \
|
||||
tesseract-ocr-eng \
|
||||
texinfo \
|
||||
xfslibs-dev \
|
||||
zlib1g-dev && \
|
||||
eatmydata apt-get autoremove -y && \
|
||||
eatmydata apt-get autoclean -y && \
|
||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
||||
dpkg-reconfigure locales && \
|
||||
dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
|
||||
mkdir -p /usr/libexec/ccache-wrappers && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
|
||||
|
||||
RUN pip3 install meson==0.56.0
|
||||
|
||||
ENV LANG "en_US.UTF-8"
|
||||
ENV MAKE "/usr/bin/make"
|
||||
ENV NINJA "/usr/bin/ninja"
|
||||
ENV PYTHON "/usr/bin/python3"
|
||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||
# https://bugs.launchpad.net/qemu/+bug/1838763
|
||||
ENV QEMU_CONFIGURE_OPTS --disable-libssh
|
@ -65,11 +65,6 @@ def generate_cirrus(target, trailer=None):
|
||||
cmd = lcitool_cmd + ["variables", target, "qemu"]
|
||||
generate(filename, cmd, trailer)
|
||||
|
||||
ubuntu1804_skipssh = [
|
||||
"# https://bugs.launchpad.net/qemu/+bug/1838763\n",
|
||||
"ENV QEMU_CONFIGURE_OPTS --disable-libssh\n"
|
||||
]
|
||||
|
||||
ubuntu2004_tsanhack = [
|
||||
"# Apply patch https://reviews.llvm.org/D75820\n",
|
||||
"# This is required for TSan in clang-10 to compile with QEMU.\n",
|
||||
@ -85,8 +80,6 @@ def debian_cross_build(prefix, targets):
|
||||
try:
|
||||
generate_dockerfile("centos8", "centos-stream-8")
|
||||
generate_dockerfile("fedora", "fedora-35")
|
||||
generate_dockerfile("ubuntu1804", "ubuntu-1804",
|
||||
trailer="".join(ubuntu1804_skipssh))
|
||||
generate_dockerfile("ubuntu2004", "ubuntu-2004",
|
||||
trailer="".join(ubuntu2004_tsanhack))
|
||||
generate_dockerfile("opensuse-leap", "opensuse-leap-152")
|
||||
|
@ -19,6 +19,9 @@
|
||||
#include <sys/socket.h>
|
||||
#include <sys/wait.h>
|
||||
#include <sys/un.h>
|
||||
#ifdef __linux__
|
||||
#include <sys/prctl.h>
|
||||
#endif /* __linux__ */
|
||||
|
||||
#include "libqtest.h"
|
||||
#include "libqmp.h"
|
||||
@ -197,11 +200,11 @@ static bool hook_list_is_empty(GHookList *hook_list)
|
||||
GHook *hook = g_hook_first_valid(hook_list, TRUE);
|
||||
|
||||
if (!hook) {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
g_hook_unref(hook_list, hook);
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void qtest_add_abrt_handler(GHookFunc fn, const void *data)
|
||||
@ -301,6 +304,20 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
|
||||
s->expected_status = 0;
|
||||
s->qemu_pid = fork();
|
||||
if (s->qemu_pid == 0) {
|
||||
#ifdef __linux__
|
||||
/*
|
||||
* Although we register a ABRT handler to kill off QEMU
|
||||
* when g_assert() triggers, we want an extra safety
|
||||
* net. The QEMU process might be non-functional and
|
||||
* thus not have responded to SIGTERM. The test script
|
||||
* might also have crashed with SEGV, in which case the
|
||||
* cleanup handlers won't ever run.
|
||||
*
|
||||
* This PR_SET_PDEATHSIG setup will ensure any remaining
|
||||
* QEMU will get terminated with SIGKILL in these cases.
|
||||
*/
|
||||
prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0);
|
||||
#endif /* __linux__ */
|
||||
if (!g_setenv("QEMU_AUDIO_DRV", "none", true)) {
|
||||
exit(1);
|
||||
}
|
||||
|
@ -47,6 +47,7 @@ class NetBSDVM(basevm.BaseVM):
|
||||
"png",
|
||||
|
||||
# libs: ui
|
||||
"capstone",
|
||||
"SDL2",
|
||||
"gtk3+",
|
||||
"libxkbcommon",
|
||||
|
@ -49,6 +49,7 @@ class OpenBSDVM(basevm.BaseVM):
|
||||
"png",
|
||||
|
||||
# libs: ui
|
||||
"capstone",
|
||||
"sdl2",
|
||||
"gtk+3",
|
||||
"libxkbcommon",
|
||||
|
Loading…
Reference in New Issue
Block a user