> 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