mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging
* build system and Python cleanups * fix netbsd VM build * allow non-relocatable installs * allow using command line options to configure qemu-ga * target/i386: check intercept for XSETBV * target/i386: fix CPUID_HT exposure # -----BEGIN PGP SIGNATURE----- # # iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmUvkQQUHHBib256aW5p # QHJlZGhhdC5jb20ACgkQv/vSX3jHroM3pQgArXCsmnsjlng1chjCvKnIuVmaTYZ5 # aC9pcx7TlyM0+XWtTN0NQhFt71Te+3ioReXIQRvy5O68RNbEkiu8LXfOJhWAHbWk # vZVtzHQuOZVizeZtUruKlDaw0nZ8bg+NI4aGLs6rs3WphEAM+tiLnZJ0BouiedKS # e/COB/Hqjok+Ntksbfv5q7XpWjwQB0y2073vM1Mcf0ToOWFLFdL7x0SZ3hxyYlYl # eoefp/8kbWeUWA7HuoOKmpiLIxmKnY7eXp+UCvdnEhnSce9sCxpn2nzqqLuPItTK # V3GrJ2//+lrekPHyQvb8IjUMUrPOmzf8GadIE0tkfdHjEP72IsHk0VX81A== # =rPte # -----END PGP SIGNATURE----- # gpg: Signature made Wed 18 Oct 2023 04:02:12 EDT # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full] # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * tag 'for-upstream' of https://gitlab.com/bonzini/qemu: (32 commits) configure: define "pkg-config" in addition to "pkgconfig" meson: add a note on why we use config_host for program paths meson-buildoptions: document the data at the top configure, meson: use command line options to configure qemu-ga configure: unify handling of several Debian cross containers configure: move environment-specific defaults to config-meson.cross configure: move target-specific defaults to an external machine file configure: remove some dead cruft configure: clean up PIE option handling configure: clean up plugin option handling configure, tests/tcg: simplify GDB conditionals tests/tcg/arm: move non-SVE tests out of conditional hw/remote: move stub vfu_object_set_bus_irq out of stubs/ hw/xen: cleanup sourcesets configure: clean up handling of CFI option meson, cutils: allow non-relocatable installs meson: do not use set10 meson: do not build shaders by default tracetool: avoid invalid escape in Python string tests/vm: avoid invalid escape in Python string ... Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
# target-specific defaults, can still be overridden on
|
||||
# the command line
|
||||
|
||||
[built-in options]
|
||||
bindir = ''
|
||||
prefix = '/qemu'
|
||||
|
||||
[project options]
|
||||
qemu_suffix = ''
|
||||
@@ -49,7 +49,7 @@ def serror(file, lnum, errtext):
|
||||
|
||||
def parse_directive(line):
|
||||
"""Return first word of line, if any"""
|
||||
return re.split('\W', line)[0]
|
||||
return re.split(r'\W', line)[0]
|
||||
|
||||
def parse_defheading(file, lnum, line):
|
||||
"""Handle a DEFHEADING directive"""
|
||||
|
||||
@@ -64,7 +64,6 @@ arm_ss.add(when: 'CONFIG_ARM_SMMUV3', if_true: files('smmuv3.c'))
|
||||
arm_ss.add(when: 'CONFIG_FSL_IMX6UL', if_true: files('fsl-imx6ul.c', 'mcimx6ul-evk.c'))
|
||||
arm_ss.add(when: 'CONFIG_NRF51_SOC', if_true: files('nrf51_soc.c'))
|
||||
arm_ss.add(when: 'CONFIG_XEN', if_true: files('xen_arm.c'))
|
||||
arm_ss.add_all(xen_ss)
|
||||
|
||||
system_ss.add(when: 'CONFIG_ARM_SMMUV3', if_true: files('smmu-common.c'))
|
||||
system_ss.add(when: 'CONFIG_EXYNOS4', if_true: files('exynos4_boards.c'))
|
||||
|
||||
@@ -32,6 +32,5 @@ subdir('kvm')
|
||||
subdir('xen')
|
||||
|
||||
i386_ss.add_all(xenpv_ss)
|
||||
i386_ss.add_all(xen_ss)
|
||||
|
||||
hw_arch += {'i386': i386_ss}
|
||||
|
||||
@@ -7,9 +7,11 @@ remote_ss.add(when: 'CONFIG_MULTIPROCESS', if_true: files('remote-obj.c'))
|
||||
remote_ss.add(when: 'CONFIG_MULTIPROCESS', if_true: files('proxy.c'))
|
||||
remote_ss.add(when: 'CONFIG_MULTIPROCESS', if_true: files('iohub.c'))
|
||||
remote_ss.add(when: 'CONFIG_MULTIPROCESS', if_true: files('iommu.c'))
|
||||
remote_ss.add(when: 'CONFIG_VFIO_USER_SERVER', if_true: files('vfio-user-obj.c'))
|
||||
|
||||
remote_ss.add(when: 'CONFIG_VFIO_USER_SERVER', if_true: libvfio_user_dep)
|
||||
remote_ss.add(when: 'CONFIG_VFIO_USER_SERVER', if_true: files('vfio-user-obj.c'),
|
||||
if_false: files('vfio-user-obj-stub.c'))
|
||||
remote_ss.add(when: 'CONFIG_ALL', if_true: files('vfio-user-obj-stub.c'))
|
||||
|
||||
specific_ss.add(when: 'CONFIG_MULTIPROCESS', if_true: files('memory.c'))
|
||||
specific_ss.add(when: 'CONFIG_MULTIPROCESS', if_true: files('proxy-memory-listener.c'))
|
||||
|
||||
+4
-7
@@ -12,6 +12,10 @@ system_ss.add(when: ['CONFIG_XEN', xen], if_true: files(
|
||||
))
|
||||
|
||||
xen_specific_ss = ss.source_set()
|
||||
xen_specific_ss.add(files(
|
||||
'xen-mapcache.c',
|
||||
'xen-hvm-common.c',
|
||||
))
|
||||
if have_xen_pci_passthrough
|
||||
xen_specific_ss.add(files(
|
||||
'xen-host-pci-device.c',
|
||||
@@ -26,10 +30,3 @@ else
|
||||
endif
|
||||
|
||||
specific_ss.add_all(when: ['CONFIG_XEN', xen], if_true: xen_specific_ss)
|
||||
|
||||
xen_ss = ss.source_set()
|
||||
|
||||
xen_ss.add(when: 'CONFIG_XEN', if_true: files(
|
||||
'xen-mapcache.c',
|
||||
'xen-hvm-common.c',
|
||||
))
|
||||
|
||||
@@ -212,4 +212,19 @@
|
||||
# define QEMU_USED
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Ugly CPP trick that is like "defined FOO", but also works in C
|
||||
* code. Useful to replace #ifdef with "if" statements; assumes
|
||||
* the symbol was defined with Meson's "config.set()", so it is empty
|
||||
* if defined.
|
||||
*/
|
||||
#define IS_ENABLED(x) IS_EMPTY(x)
|
||||
|
||||
#define IS_EMPTY_JUNK_ junk,
|
||||
#define IS_EMPTY(value) IS_EMPTY_(IS_EMPTY_JUNK_##value)
|
||||
|
||||
/* Expands to either SECOND_ARG(junk, 1, 0) or SECOND_ARG(IS_EMPTY_JUNK_CONFIG_FOO 1, 0) */
|
||||
#define SECOND_ARG(first, second, ...) second
|
||||
#define IS_EMPTY_(junk_maybecomma) SECOND_ARG(junk_maybecomma 1, 0)
|
||||
|
||||
#endif /* COMPILER_H */
|
||||
|
||||
+28
-3
@@ -2117,6 +2117,7 @@ config_host_data.set('CONFIG_OPENGL', opengl.found())
|
||||
config_host_data.set('CONFIG_PLUGIN', get_option('plugins'))
|
||||
config_host_data.set('CONFIG_RBD', rbd.found())
|
||||
config_host_data.set('CONFIG_RDMA', rdma.found())
|
||||
config_host_data.set('CONFIG_RELOCATABLE', get_option('relocatable'))
|
||||
config_host_data.set('CONFIG_SAFESTACK', get_option('safe_stack'))
|
||||
config_host_data.set('CONFIG_SDL', sdl.found())
|
||||
config_host_data.set('CONFIG_SDL_IMAGE', sdl_image.found())
|
||||
@@ -2200,7 +2201,7 @@ if get_option('debug_stack_usage') and have_coroutine_pool
|
||||
message('Disabling coroutine pool to measure stack usage')
|
||||
have_coroutine_pool = false
|
||||
endif
|
||||
config_host_data.set10('CONFIG_COROUTINE_POOL', have_coroutine_pool)
|
||||
config_host_data.set('CONFIG_COROUTINE_POOL', have_coroutine_pool)
|
||||
config_host_data.set('CONFIG_DEBUG_GRAPH_LOCK', get_option('debug_graph_lock'))
|
||||
config_host_data.set('CONFIG_DEBUG_MUTEX', get_option('debug_mutex'))
|
||||
config_host_data.set('CONFIG_DEBUG_STACK_USAGE', get_option('debug_stack_usage'))
|
||||
@@ -4026,8 +4027,13 @@ summary(summary_info, bool_yn: true, section: 'Directories')
|
||||
summary_info = {}
|
||||
summary_info += {'python': '@0@ (version: @1@)'.format(python.full_path(), python.language_version())}
|
||||
summary_info += {'sphinx-build': sphinx_build}
|
||||
if config_host.has_key('HAVE_GDB_BIN')
|
||||
summary_info += {'gdb': config_host['HAVE_GDB_BIN']}
|
||||
|
||||
# FIXME: the [binaries] section of machine files, which can be probed
|
||||
# with find_program(), would be great for passing gdb and genisoimage
|
||||
# paths from configure to Meson. However, there seems to be no way to
|
||||
# hide a program (for example if gdb is too old).
|
||||
if config_host.has_key('GDB')
|
||||
summary_info += {'gdb': config_host['GDB']}
|
||||
endif
|
||||
summary_info += {'iasl': iasl}
|
||||
summary_info += {'genisoimage': config_host['GENISOIMAGE']}
|
||||
@@ -4060,6 +4066,7 @@ if 'simple' in get_option('trace_backends')
|
||||
endif
|
||||
summary_info += {'D-Bus display': dbus_display}
|
||||
summary_info += {'QOM debugging': get_option('qom_cast_debug')}
|
||||
summary_info += {'Relocatable install': get_option('relocatable')}
|
||||
summary_info += {'vhost-kernel support': have_vhost_kernel}
|
||||
summary_info += {'vhost-net support': have_vhost_net}
|
||||
summary_info += {'vhost-user support': have_vhost_user}
|
||||
@@ -4363,3 +4370,21 @@ if host_arch == 'unknown' or not supported_oses.contains(targetos)
|
||||
message('If you want to help supporting QEMU on this platform, please')
|
||||
message('contact the developers at qemu-devel@nongnu.org.')
|
||||
endif
|
||||
|
||||
actually_reloc = get_option('relocatable')
|
||||
# check if get_relocated_path() is actually able to relocate paths
|
||||
if get_option('relocatable') and \
|
||||
not (get_option('prefix') / get_option('bindir')).startswith(get_option('prefix') / '')
|
||||
message()
|
||||
warning('bindir not included within prefix, the installation will not be relocatable.')
|
||||
actually_reloc = false
|
||||
endif
|
||||
if not actually_reloc and (targetos == 'windows' or get_option('relocatable'))
|
||||
if targetos == 'windows'
|
||||
message()
|
||||
warning('Windows installs should usually be relocatable.')
|
||||
endif
|
||||
message()
|
||||
message('QEMU will have to be installed under ' + get_option('prefix') + '.')
|
||||
message('Use --disable-relocatable to remove this warning.')
|
||||
endif
|
||||
|
||||
@@ -101,6 +101,8 @@ option('cfi_debug', type: 'boolean', value: false,
|
||||
description: 'Verbose errors in case of CFI violation')
|
||||
option('multiprocess', type: 'feature', value: 'auto',
|
||||
description: 'Out of process device emulation support')
|
||||
option('relocatable', type : 'boolean', value : 'true',
|
||||
description: 'toggle relocatable install')
|
||||
option('vfio_user_server', type: 'feature', value: 'disabled',
|
||||
description: 'vfio-user server support')
|
||||
option('dbus_display', type: 'feature', value: 'auto',
|
||||
@@ -353,5 +355,12 @@ option('qom_cast_debug', type: 'boolean', value: true,
|
||||
option('slirp_smbd', type : 'feature', value : 'auto',
|
||||
description: 'use smbd (at path --smbd=*) in slirp networking')
|
||||
|
||||
option('qemu_ga_manufacturer', type: 'string', value: 'QEMU',
|
||||
description: '"manufacturer" name for qemu-ga registry entries')
|
||||
option('qemu_ga_distro', type: 'string', value: 'Linux',
|
||||
description: 'second path element in qemu-ga registry entries')
|
||||
option('qemu_ga_version', type: 'string', value: '',
|
||||
description: 'version number for qemu-ga installer')
|
||||
|
||||
option('hexagon_idef_parser', type : 'boolean', value : true,
|
||||
description: 'use idef-parser to automatically generate TCG code for the Hexagon frontend')
|
||||
|
||||
+6
-3
@@ -145,6 +145,9 @@ if targetos == 'windows'
|
||||
else
|
||||
libpcre = 'libpcre2'
|
||||
endif
|
||||
qga_msi_version = get_option('qemu_ga_version') == '' \
|
||||
? project.version() \
|
||||
: get_option('qemu_ga_version')
|
||||
qga_msi = custom_target('QGA MSI',
|
||||
input: files('installer/qemu-ga.wxs'),
|
||||
output: 'qemu-ga-@0@.msi'.format(host_arch),
|
||||
@@ -155,9 +158,9 @@ if targetos == 'windows'
|
||||
qemu_ga_msi_vss,
|
||||
'-D', 'BUILD_DIR=' + meson.project_build_root(),
|
||||
'-D', 'BIN_DIR=' + glib_pc.get_variable('bindir'),
|
||||
'-D', 'QEMU_GA_VERSION=' + config_host['QEMU_GA_VERSION'],
|
||||
'-D', 'QEMU_GA_MANUFACTURER=' + config_host['QEMU_GA_MANUFACTURER'],
|
||||
'-D', 'QEMU_GA_DISTRO=' + config_host['QEMU_GA_DISTRO'],
|
||||
'-D', 'QEMU_GA_VERSION=' + qga_msi_version,
|
||||
'-D', 'QEMU_GA_MANUFACTURER=' + get_option('qemu_ga_manufacturer'),
|
||||
'-D', 'QEMU_GA_DISTRO=' + get_option('qemu_ga_distro'),
|
||||
'-D', 'LIBPCRE=' + libpcre,
|
||||
])
|
||||
all_qga += [qga_msi]
|
||||
|
||||
Executable → Regular
@@ -907,6 +907,7 @@ sub get_subsystem_name {
|
||||
if (length($subsystem) > 20) {
|
||||
$subsystem = substr($subsystem, 0, 17);
|
||||
$subsystem =~ s/\s*$//;
|
||||
$subsystem =~ s/[()]//g;
|
||||
$subsystem = $subsystem . "...";
|
||||
}
|
||||
return $subsystem;
|
||||
|
||||
@@ -25,13 +25,15 @@ import textwrap
|
||||
import shlex
|
||||
import sys
|
||||
|
||||
# Options with nonstandard names (e.g. --with/--without) or OS-dependent
|
||||
# defaults. Try not to add any.
|
||||
SKIP_OPTIONS = {
|
||||
"default_devices",
|
||||
"fuzzing_engine",
|
||||
"qemu_suffix",
|
||||
"smbd",
|
||||
}
|
||||
|
||||
# Options whose name doesn't match the option for backwards compatibility
|
||||
# reasons, because Meson gives them a funny name, or both
|
||||
OPTION_NAMES = {
|
||||
"b_coverage": "gcov",
|
||||
"b_lto": "lto",
|
||||
@@ -40,13 +42,25 @@ OPTION_NAMES = {
|
||||
"malloc": "enable-malloc",
|
||||
"pkgversion": "with-pkgversion",
|
||||
"qemu_firmwarepath": "firmwarepath",
|
||||
"qemu_suffix": "with-suffix",
|
||||
"trace_backends": "enable-trace-backends",
|
||||
"trace_file": "with-trace-file",
|
||||
}
|
||||
|
||||
# Options that configure autodetects, even though meson defines them as boolean
|
||||
AUTO_OPTIONS = {
|
||||
"plugins",
|
||||
"werror",
|
||||
}
|
||||
|
||||
# Builtin options that should be definable via configure. Some of the others
|
||||
# we really do not want (e.g. c_args is defined via the native file, not
|
||||
# via -D, because it's a mix of CFLAGS and --extra-cflags); for specific
|
||||
# cases "../configure -D" can be used as an escape hatch.
|
||||
BUILTIN_OPTIONS = {
|
||||
"b_coverage",
|
||||
"b_lto",
|
||||
"bindir",
|
||||
"datadir",
|
||||
"debug",
|
||||
"includedir",
|
||||
@@ -55,8 +69,10 @@ BUILTIN_OPTIONS = {
|
||||
"localedir",
|
||||
"localstatedir",
|
||||
"mandir",
|
||||
"prefix",
|
||||
"strip",
|
||||
"sysconfdir",
|
||||
"werror",
|
||||
}
|
||||
|
||||
LINE_WIDTH = 76
|
||||
@@ -168,6 +184,7 @@ def cli_metavar(opt):
|
||||
|
||||
def print_help(options):
|
||||
print("meson_options_help() {")
|
||||
feature_opts = []
|
||||
for opt in sorted(options, key=cli_help_key):
|
||||
key = cli_help_key(opt)
|
||||
# The first section includes options that have an arguments,
|
||||
@@ -176,7 +193,7 @@ def print_help(options):
|
||||
metavar = cli_metavar(opt)
|
||||
left = f"--{key}={metavar}"
|
||||
help_line(left, opt, 27, True)
|
||||
elif opt["type"] == "boolean":
|
||||
elif opt["type"] == "boolean" and opt["name"] not in AUTO_OPTIONS:
|
||||
left = f"--{key}"
|
||||
help_line(left, opt, 27, False)
|
||||
elif allow_arg(opt):
|
||||
@@ -185,16 +202,17 @@ def print_help(options):
|
||||
else:
|
||||
left = f"--{key}=CHOICE"
|
||||
help_line(left, opt, 27, True)
|
||||
else:
|
||||
feature_opts.append(opt)
|
||||
|
||||
sh_print()
|
||||
sh_print("Optional features, enabled with --enable-FEATURE and")
|
||||
sh_print("disabled with --disable-FEATURE, default is enabled if available")
|
||||
sh_print("(unless built with --without-default-features):")
|
||||
sh_print()
|
||||
for opt in options:
|
||||
key = opt["name"].replace("_", "-")
|
||||
if opt["type"] != "boolean" and not allow_arg(opt):
|
||||
help_line(key, opt, 18, False)
|
||||
for opt in sorted(feature_opts, key=cli_option):
|
||||
key = cli_option(opt)
|
||||
help_line(key, opt, 18, False)
|
||||
print("}")
|
||||
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ meson_options_help() {
|
||||
printf "%s\n" ' --audio-drv-list=CHOICES Set audio driver list [default] (choices: alsa/co'
|
||||
printf "%s\n" ' reaudio/default/dsound/jack/oss/pa/pipewire/sdl/s'
|
||||
printf "%s\n" ' ndio)'
|
||||
printf "%s\n" ' --bindir=VALUE Executable directory [bin]'
|
||||
printf "%s\n" ' --block-drv-ro-whitelist=VALUE'
|
||||
printf "%s\n" ' set block driver read-only whitelist (by default'
|
||||
printf "%s\n" ' affects only QEMU, not tools like qemu-img)'
|
||||
@@ -17,6 +18,7 @@ meson_options_help() {
|
||||
printf "%s\n" ' code for the Hexagon frontend'
|
||||
printf "%s\n" ' --disable-install-blobs install provided firmware blobs'
|
||||
printf "%s\n" ' --disable-qom-cast-debug cast debugging support'
|
||||
printf "%s\n" ' --disable-relocatable toggle relocatable install'
|
||||
printf "%s\n" ' --docdir=VALUE Base directory for documentation installation'
|
||||
printf "%s\n" ' (can be empty) [share/doc]'
|
||||
printf "%s\n" ' --enable-block-drv-whitelist-in-tools'
|
||||
@@ -39,7 +41,6 @@ meson_options_help() {
|
||||
printf "%s\n" ' jemalloc/system/tcmalloc)'
|
||||
printf "%s\n" ' --enable-module-upgrades try to load modules from alternate paths for'
|
||||
printf "%s\n" ' upgrades'
|
||||
printf "%s\n" ' --enable-plugins TCG plugins via shared library loading'
|
||||
printf "%s\n" ' --enable-rng-none dummy RNG, avoid using /dev/(u)random and'
|
||||
printf "%s\n" ' getrandom()'
|
||||
printf "%s\n" ' --enable-safe-stack SafeStack Stack Smash Protection (requires'
|
||||
@@ -62,6 +63,14 @@ meson_options_help() {
|
||||
printf "%s\n" ' --localedir=VALUE Locale data directory [share/locale]'
|
||||
printf "%s\n" ' --localstatedir=VALUE Localstate data directory [/var/local]'
|
||||
printf "%s\n" ' --mandir=VALUE Manual page directory [share/man]'
|
||||
printf "%s\n" ' --prefix=VALUE Installation prefix [/usr/local]'
|
||||
printf "%s\n" ' --qemu-ga-distro=VALUE second path element in qemu-ga registry entries'
|
||||
printf "%s\n" ' [Linux]'
|
||||
printf "%s\n" ' --qemu-ga-manufacturer=VALUE'
|
||||
printf "%s\n" ' "manufacturer" name for qemu-ga registry entries'
|
||||
printf "%s\n" ' [QEMU]'
|
||||
printf "%s\n" ' --qemu-ga-version=VALUE version number for qemu-ga installer'
|
||||
printf "%s\n" ' --smbd=VALUE Path to smbd for slirp networking'
|
||||
printf "%s\n" ' --sysconfdir=VALUE Sysconf data directory [etc]'
|
||||
printf "%s\n" ' --tls-priority=VALUE Default TLS protocol/cipher priority string'
|
||||
printf "%s\n" ' [NORMAL]'
|
||||
@@ -69,6 +78,8 @@ meson_options_help() {
|
||||
printf "%s\n" ' auto/sigaltstack/ucontext/windows)'
|
||||
printf "%s\n" ' --with-pkgversion=VALUE use specified string as sub-version of the'
|
||||
printf "%s\n" ' package'
|
||||
printf "%s\n" ' --with-suffix=VALUE Suffix for QEMU data/modules/config directories'
|
||||
printf "%s\n" ' (can be empty) [qemu]'
|
||||
printf "%s\n" ' --with-trace-file=VALUE Trace file prefix for simple backend [trace]'
|
||||
printf "%s\n" ''
|
||||
printf "%s\n" 'Optional features, enabled with --enable-FEATURE and'
|
||||
@@ -148,6 +159,7 @@ meson_options_help() {
|
||||
printf "%s\n" ' pa PulseAudio sound support'
|
||||
printf "%s\n" ' parallels parallels image format support'
|
||||
printf "%s\n" ' pipewire PipeWire sound support'
|
||||
printf "%s\n" ' plugins TCG plugins via shared library loading'
|
||||
printf "%s\n" ' png PNG support with libpng'
|
||||
printf "%s\n" ' pvrdma Enable PVRDMA support'
|
||||
printf "%s\n" ' qcow1 qcow1 image format support'
|
||||
@@ -201,6 +213,7 @@ meson_options_help() {
|
||||
printf "%s\n" ' vpc vpc image format support'
|
||||
printf "%s\n" ' vte vte support for the gtk UI'
|
||||
printf "%s\n" ' vvfat vvfat image format support'
|
||||
printf "%s\n" ' werror Treat warnings as errors'
|
||||
printf "%s\n" ' whpx WHPX acceleration support'
|
||||
printf "%s\n" ' xen Xen backend support'
|
||||
printf "%s\n" ' xen-pci-passthrough'
|
||||
@@ -229,6 +242,7 @@ _meson_option_parse() {
|
||||
--disable-gcov) printf "%s" -Db_coverage=false ;;
|
||||
--enable-lto) printf "%s" -Db_lto=true ;;
|
||||
--disable-lto) printf "%s" -Db_lto=false ;;
|
||||
--bindir=*) quote_sh "-Dbindir=$2" ;;
|
||||
--enable-blkio) printf "%s" -Dblkio=enabled ;;
|
||||
--disable-blkio) printf "%s" -Dblkio=disabled ;;
|
||||
--block-drv-ro-whitelist=*) quote_sh "-Dblock_drv_ro_whitelist=$2" ;;
|
||||
@@ -407,6 +421,7 @@ _meson_option_parse() {
|
||||
--disable-plugins) printf "%s" -Dplugins=false ;;
|
||||
--enable-png) printf "%s" -Dpng=enabled ;;
|
||||
--disable-png) printf "%s" -Dpng=disabled ;;
|
||||
--prefix=*) quote_sh "-Dprefix=$2" ;;
|
||||
--enable-pvrdma) printf "%s" -Dpvrdma=enabled ;;
|
||||
--disable-pvrdma) printf "%s" -Dpvrdma=disabled ;;
|
||||
--enable-qcow1) printf "%s" -Dqcow1=enabled ;;
|
||||
@@ -414,6 +429,10 @@ _meson_option_parse() {
|
||||
--enable-qed) printf "%s" -Dqed=enabled ;;
|
||||
--disable-qed) printf "%s" -Dqed=disabled ;;
|
||||
--firmwarepath=*) quote_sh "-Dqemu_firmwarepath=$(meson_option_build_array $2)" ;;
|
||||
--qemu-ga-distro=*) quote_sh "-Dqemu_ga_distro=$2" ;;
|
||||
--qemu-ga-manufacturer=*) quote_sh "-Dqemu_ga_manufacturer=$2" ;;
|
||||
--qemu-ga-version=*) quote_sh "-Dqemu_ga_version=$2" ;;
|
||||
--with-suffix=*) quote_sh "-Dqemu_suffix=$2" ;;
|
||||
--enable-qga-vss) printf "%s" -Dqga_vss=enabled ;;
|
||||
--disable-qga-vss) printf "%s" -Dqga_vss=disabled ;;
|
||||
--enable-qom-cast-debug) printf "%s" -Dqom_cast_debug=true ;;
|
||||
@@ -422,6 +441,8 @@ _meson_option_parse() {
|
||||
--disable-rbd) printf "%s" -Drbd=disabled ;;
|
||||
--enable-rdma) printf "%s" -Drdma=enabled ;;
|
||||
--disable-rdma) printf "%s" -Drdma=disabled ;;
|
||||
--enable-relocatable) printf "%s" -Drelocatable=true ;;
|
||||
--disable-relocatable) printf "%s" -Drelocatable=false ;;
|
||||
--enable-replication) printf "%s" -Dreplication=enabled ;;
|
||||
--disable-replication) printf "%s" -Dreplication=disabled ;;
|
||||
--enable-rng-none) printf "%s" -Drng_none=true ;;
|
||||
@@ -446,6 +467,7 @@ _meson_option_parse() {
|
||||
--disable-slirp-smbd) printf "%s" -Dslirp_smbd=disabled ;;
|
||||
--enable-smartcard) printf "%s" -Dsmartcard=enabled ;;
|
||||
--disable-smartcard) printf "%s" -Dsmartcard=disabled ;;
|
||||
--smbd=*) quote_sh "-Dsmbd=$2" ;;
|
||||
--enable-snappy) printf "%s" -Dsnappy=enabled ;;
|
||||
--disable-snappy) printf "%s" -Dsnappy=disabled ;;
|
||||
--enable-sndio) printf "%s" -Dsndio=enabled ;;
|
||||
@@ -522,6 +544,8 @@ _meson_option_parse() {
|
||||
--disable-vte) printf "%s" -Dvte=disabled ;;
|
||||
--enable-vvfat) printf "%s" -Dvvfat=enabled ;;
|
||||
--disable-vvfat) printf "%s" -Dvvfat=disabled ;;
|
||||
--enable-werror) printf "%s" -Dwerror=true ;;
|
||||
--disable-werror) printf "%s" -Dwerror=false ;;
|
||||
--enable-whpx) printf "%s" -Dwhpx=enabled ;;
|
||||
--disable-whpx) printf "%s" -Dwhpx=disabled ;;
|
||||
--enable-xen) printf "%s" -Dxen=enabled ;;
|
||||
|
||||
@@ -210,12 +210,12 @@ class Event(object):
|
||||
|
||||
"""
|
||||
|
||||
_CRE = re.compile("((?P<props>[\w\s]+)\s+)?"
|
||||
"(?P<name>\w+)"
|
||||
"\((?P<args>[^)]*)\)"
|
||||
"\s*"
|
||||
"(?:(?:(?P<fmt_trans>\".+),)?\s*(?P<fmt>\".+))?"
|
||||
"\s*")
|
||||
_CRE = re.compile(r"((?P<props>[\w\s]+)\s+)?"
|
||||
r"(?P<name>\w+)"
|
||||
r"\((?P<args>[^)]*)\)"
|
||||
r"\s*"
|
||||
r"(?:(?:(?P<fmt_trans>\".+),)?\s*(?P<fmt>\".+))?"
|
||||
r"\s*")
|
||||
|
||||
_VALID_PROPS = set(["disable", "vcpu"])
|
||||
|
||||
@@ -326,7 +326,7 @@ class Event(object):
|
||||
fmt)
|
||||
# Star matching on PRI is dangerous as one might have multiple
|
||||
# arguments with that format, hence the non-greedy version of it.
|
||||
_FMT = re.compile("(%[\d\.]*\w+|%.*?PRI\S+)")
|
||||
_FMT = re.compile(r"(%[\d\.]*\w+|%.*?PRI\S+)")
|
||||
|
||||
def formats(self):
|
||||
"""List conversion specifiers in the argument print format string."""
|
||||
|
||||
@@ -83,7 +83,7 @@ def c_fmt_to_stap(fmt):
|
||||
# and "%ll" is not valid at all. Similarly the size_t
|
||||
# based "%z" size qualifier is not valid. We just
|
||||
# strip all size qualifiers for sanity.
|
||||
fmt = re.sub("%(\d*)(l+|z)(x|u|d)", "%\\1\\3", "".join(bits))
|
||||
fmt = re.sub(r"%(\d*)(l+|z)(x|u|d)", r"%\1\3", "".join(bits))
|
||||
return fmt
|
||||
|
||||
def generate(events, backend, group):
|
||||
|
||||
@@ -65,4 +65,3 @@ else
|
||||
stub_ss.add(files('qdev.c'))
|
||||
endif
|
||||
stub_ss.add(files('semihost-all.c'))
|
||||
stub_ss.add(when: 'CONFIG_VFIO_USER_SERVER', if_false: files('vfio-user-obj.c'))
|
||||
|
||||
@@ -45,7 +45,7 @@ regre = re.compile(r"((?<!DUP)[MNORCPQXSGVZA])([stuvwxyzdefg]+)([.]?[LlHh]?)(\d+
|
||||
immre = re.compile(r"[#]([rRsSuUm])(\d+)(?:[:](\d+))?")
|
||||
reg_or_immre = re.compile(
|
||||
r"(((?<!DUP)[MNRCOPQXSGVZA])([stuvwxyzdefg]+)"
|
||||
+ "([.]?[LlHh]?)(\d+S?))|([#]([rRsSuUm])(\d+)[:]?(\d+)?)"
|
||||
r"([.]?[LlHh]?)(\d+S?))|([#]([rRsSuUm])(\d+)[:]?(\d+)?)"
|
||||
)
|
||||
relimmre = re.compile(r"[#]([rR])(\d+)(?:[:](\d+))?")
|
||||
absimmre = re.compile(r"[#]([sSuUm])(\d+)(?:[:](\d+))?")
|
||||
@@ -337,7 +337,7 @@ def read_attribs_file(name):
|
||||
|
||||
|
||||
def read_overrides_file(name):
|
||||
overridere = re.compile("#define fGEN_TCG_([A-Za-z0-9_]+)\(.*")
|
||||
overridere = re.compile(r"#define fGEN_TCG_([A-Za-z0-9_]+)\(.*")
|
||||
for line in open(name, "rt").readlines():
|
||||
if not overridere.match(line):
|
||||
continue
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user