> You could build a separate dictionary in trace/meson.build. Instead of
> using the 'hw_display_qxl' group, you use the module name i.e.
> 'hw-display-qxl'. trace/meson.build does:
>
> module_trace = {}
>
> and in trace/meson.build
>
> module_trace_src = []
> foreach c : ...
> ...
> group = '--group=' + c['name'].underscorify()
> module_trace_src += [trace_h, trace_c]
> ...
> module_trace += { c['name']: module_trace_src }
> endforeach
>
> Then when building the shared_module you add the trace files to the sources,
> like
>
> module_trace_src = module_trace.get(d + '-' + m, [])
> sl = static_library(d + '-' + m,
> [genh, module_ss.sources(), module_trace_src],
> dependencies: ...)
So basically keep track of the objects separately. Got that working
for the modular builds. Progress!!!
Non-modular builds fail due to missing qxl tracepoints. Tried to fix
that with a simple 'softmmu_ss.add(module_trace_src)'. Now I get:
../../meson.build:1802:2: ERROR: Object extraction arguments must be strings or
Files.
/me looks surprised. Doing trace_ss.add(module_trace_src) in
trace/meson.buikd works just fine ...
Branch available at git://git.kraxel.org/qemu sirius/trace-modules
Running "qemu -device qxl" segfaults. Not investigated yet, but I guess
this is just modular tracepoint not being properly initialized. Will
check later, have to run pick up my daughter now.
take care,
Gerd