Signed-off-by: Gerd Hoffmann <kra...@redhat.com> --- meson.build | 32 ++++++++++++++++++++++++++++++++ trace/meson.build | 5 +++-- 2 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build index 0e1c2f995d79..51fc261a22d3 100644 --- a/meson.build +++ b/meson.build @@ -2020,6 +2020,7 @@ foreach d, list : modules module_ss = module_ss.apply(config_all, strict: false) module_trace_cfg = module_trace.get(d + '-' + m, {}) module_trace_src = module_trace_cfg.get('src', []) + module_trace_evt = module_trace_cfg.get('evt', '') sl = static_library(d + '-' + m, [genh, module_ss.sources(), module_trace_src], dependencies: [modulecommon, module_ss.dependencies()], pic: true) if d == 'block' @@ -2027,6 +2028,37 @@ foreach d, list : modules else softmmu_mods += sl endif + if 'CONFIG_TRACE_SYSTEMTAP' in config_host and module_trace_evt != '' + modname = d + '-' + m + modlib = modname + '.so' + foreach stp: [ + {'ext': '.stp-build', 'fmt': 'stap', 'bin': meson.current_build_dir() / modlib, 'install': false}, + {'ext': '.stp', 'fmt': 'stap', 'bin': get_option('prefix') / qemu_moddir / modlib, 'install': true}, + {'ext': '-simpletrace.stp', 'fmt': 'simpletrace-stap', 'bin': '', 'install': true}, + {'ext': '-log.stp', 'fmt': 'log-stap', 'bin': '', 'install': true}, + ] + foreach target : target_dirs + config_target = config_target_mak[target] + target_name = config_target['TARGET_NAME'] + if target.endswith('-softmmu') + custom_target(modname + '-' + target_name + stp['ext'], + input: module_trace_evt, + output: modname + '-' + target_name + stp['ext'], + install: stp['install'], + install_dir: get_option('datadir') / 'systemtap/tapset', + command: [ + tracetool, '--group=all', '--format=' + stp['fmt'], + '--binary=' + stp['bin'], + '--target-name=' + target_name, + '--target-type=system', + '--probe-prefix=qemu.system.' + target_name, + '@INPUT@', '@OUTPUT@' + ], + depend_files: tracetool_depends) + endif + endforeach + endforeach + endif else if d == 'block' block_ss.add_all(module_ss) diff --git a/trace/meson.build b/trace/meson.build index 834ebaa7cc5f..82332a4a772b 100644 --- a/trace/meson.build +++ b/trace/meson.build @@ -16,7 +16,6 @@ endforeach foreach c : trace_events_config trace_events_file = c.get('file') - trace_events_files += [ trace_events_file ] module_name = c.get('module', '') group_name = c.get('group', module_name.underscorify()) group = '--group=' + group_name @@ -66,9 +65,11 @@ foreach c : trace_events_config genh += trace_dtrace_h endif if enable_modules and module_name != '' - module_trace += { module_name : { 'src' : module_trace_src } } + module_trace += { module_name : { 'src' : module_trace_src, + 'evt' : trace_events_file } } else trace_ss.add(module_trace_src) + trace_events_files += [ trace_events_file ] endif endforeach -- 2.31.1