On 27/07/19 09:16, Markus Armbruster wrote: > We started with a single trace-events. That wasn't good, so we split it > up into one per directory. That isn't good, so what about splitting it > up into one per source file? Pass -DTRACE_HEADER='"trace-DIR-FOO.h" > instead of -DTRACE_HEADER='"trace-DIR.h"' when compiling DIR/FOO.c.
For Make this would all work great, however not for Meson because it doesn't allow per-file compile flags. Meson maintainers suggest building a static library for each special set of compile flags; we could do that automatically per-directory(*) but it would be harder to scale that to per-file. (*) Still, I'd rather go on with the forwarding headers and look into that later, to ease review. Paolo > This is admittedly a half-baked idea. It doesn't address tracepoints in > headers, yet. But those headers are rare. A quick grep finds some > twenty possibles. Perhaps we can tolerate manual #include there. > > Since we're discussing half-baked ideas already, let me throw out > another one: move the tracepoint declarations from trace-events into the > source files. No more silly merge conflicts between patches related > only through a shared trace-events file. > > One more: make the format string optional, default to one containing the > declared parameter names and the obvious conversion specifications. > Because format strings like this one > > visit_start_struct(void *v, const char *name, void *obj, size_t size) > "v=%p name=%s obj=%p size=%zu" > > add zero bits of information to the declaration preceding it :) > > [...] >