|
|
|
@ -111,6 +111,22 @@ foreach target : edk2_targets |
|
|
|
endif |
|
|
|
endforeach |
|
|
|
|
|
|
|
dtrace = not_found |
|
|
|
stap = not_found |
|
|
|
if 'dtrace' in get_option('trace_backends') |
|
|
|
dtrace = find_program('dtrace', required: true) |
|
|
|
stap = find_program('stap', required: false) |
|
|
|
if stap.found() |
|
|
|
# Workaround to avoid dtrace(1) producing a file with 'hidden' symbol |
|
|
|
# visibility. Define STAP_SDT_V2 to produce 'default' symbol visibility |
|
|
|
# instead. QEMU --enable-modules depends on this because the SystemTap |
|
|
|
# semaphores are linked into the main binary and not the module's shared |
|
|
|
# object. |
|
|
|
add_global_arguments('-DSTAP_SDT_V2', |
|
|
|
native: false, language: ['c', 'cpp', 'objc']) |
|
|
|
endif |
|
|
|
endif |
|
|
|
|
|
|
|
################## |
|
|
|
# Compiler flags # |
|
|
|
################## |
|
|
|
@ -201,6 +217,19 @@ if get_option('fuzzing') and get_option('fuzzing_engine') == '' and \ |
|
|
|
error('Your compiler does not support -fsanitize=fuzzer') |
|
|
|
endif |
|
|
|
|
|
|
|
if 'ftrace' in get_option('trace_backends') and targetos != 'linux' |
|
|
|
error('ftrace is supported only on Linux') |
|
|
|
endif |
|
|
|
if 'syslog' in get_option('trace_backends') and not cc.compiles(''' |
|
|
|
#include <syslog.h> |
|
|
|
int main(void) { |
|
|
|
openlog("qemu", LOG_PID, LOG_DAEMON); |
|
|
|
syslog(LOG_INFO, "configure"); |
|
|
|
return 0; |
|
|
|
}''') |
|
|
|
error('syslog is not supported on this system') |
|
|
|
endif |
|
|
|
|
|
|
|
if targetos != 'linux' and get_option('mpath').enabled() |
|
|
|
error('Multipath is supported only on Linux') |
|
|
|
endif |
|
|
|
@ -359,8 +388,9 @@ if 'CONFIG_GIO' in config_host |
|
|
|
link_args: config_host['GIO_LIBS'].split()) |
|
|
|
endif |
|
|
|
lttng = not_found |
|
|
|
if 'CONFIG_TRACE_UST' in config_host |
|
|
|
lttng = declare_dependency(link_args: config_host['LTTNG_UST_LIBS'].split()) |
|
|
|
if 'ust' in get_option('trace_backends') |
|
|
|
lttng = dependency('lttng-ust', required: true, method: 'pkg-config', |
|
|
|
kwargs: static_kwargs) |
|
|
|
endif |
|
|
|
pixman = not_found |
|
|
|
if have_system or have_tools |
|
|
|
@ -1347,6 +1377,11 @@ elif get_option('virtfs').disabled() |
|
|
|
have_virtfs = false |
|
|
|
endif |
|
|
|
|
|
|
|
foreach k : get_option('trace_backends') |
|
|
|
config_host_data.set('CONFIG_TRACE_' + k.to_upper(), true) |
|
|
|
endforeach |
|
|
|
config_host_data.set_quoted('CONFIG_TRACE_FILE', get_option('trace_file')) |
|
|
|
|
|
|
|
config_host_data.set_quoted('CONFIG_BINDIR', get_option('prefix') / get_option('bindir')) |
|
|
|
config_host_data.set_quoted('CONFIG_PREFIX', get_option('prefix')) |
|
|
|
config_host_data.set_quoted('CONFIG_QEMU_CONFDIR', get_option('prefix') / qemu_confdir) |
|
|
|
@ -1571,7 +1606,7 @@ config_host_data.set('HAVE_BROKEN_SIZE_MAX', not cc.compiles(''' |
|
|
|
|
|
|
|
ignored = ['CONFIG_QEMU_INTERP_PREFIX'] # actually per-target |
|
|
|
arrays = ['CONFIG_BDRV_RW_WHITELIST', 'CONFIG_BDRV_RO_WHITELIST'] |
|
|
|
strings = ['HOST_DSOSUF', 'CONFIG_IASL', 'CONFIG_TRACE_FILE'] |
|
|
|
strings = ['HOST_DSOSUF', 'CONFIG_IASL'] |
|
|
|
foreach k, v: config_host |
|
|
|
if ignored.contains(k) |
|
|
|
# do nothing |
|
|
|
@ -2109,7 +2144,7 @@ qapi_gen_depends = [ meson.current_source_dir() / 'scripts/qapi/__init__.py', |
|
|
|
|
|
|
|
tracetool = [ |
|
|
|
python, files('scripts/tracetool.py'), |
|
|
|
'--backend=' + config_host['TRACE_BACKENDS'] |
|
|
|
'--backend=' + ','.join(get_option('trace_backends')) |
|
|
|
] |
|
|
|
tracetool_depends = files( |
|
|
|
'scripts/tracetool/backend/log.py', |
|
|
|
@ -2826,7 +2861,7 @@ foreach target : target_dirs |
|
|
|
emulators += {exe['name']: emulator} |
|
|
|
endif |
|
|
|
|
|
|
|
if 'CONFIG_TRACE_SYSTEMTAP' in config_host |
|
|
|
if stap.found() |
|
|
|
foreach stp: [ |
|
|
|
{'ext': '.stp-build', 'fmt': 'stap', 'bin': meson.current_build_dir() / exe['name'], 'install': false}, |
|
|
|
{'ext': '.stp', 'fmt': 'stap', 'bin': get_option('prefix') / get_option('bindir') / exe['name'], 'install': true}, |
|
|
|
@ -3007,9 +3042,9 @@ summary_info += {'fuzzing support': get_option('fuzzing')} |
|
|
|
if have_system |
|
|
|
summary_info += {'Audio drivers': ' '.join(audio_drivers_selected)} |
|
|
|
endif |
|
|
|
summary_info += {'Trace backends': config_host['TRACE_BACKENDS']} |
|
|
|
if config_host['TRACE_BACKENDS'].split().contains('simple') |
|
|
|
summary_info += {'Trace output file': config_host['CONFIG_TRACE_FILE'] + '-<pid>'} |
|
|
|
summary_info += {'Trace backends': ','.join(get_option('trace_backends'))} |
|
|
|
if 'simple' in get_option('trace_backends') |
|
|
|
summary_info += {'Trace output file': get_option('trace_file') + '-<pid>'} |
|
|
|
endif |
|
|
|
summary_info += {'QOM debugging': config_host.has_key('CONFIG_QOM_CAST_DEBUG')} |
|
|
|
summary_info += {'vhost-kernel support': config_host.has_key('CONFIG_VHOST_KERNEL')} |
|
|
|
|