Message ID | 20210125110958.214017-1-stefanha@redhat.com |
---|---|
State | New |
Headers | show |
Series | trace: add meson custom_target() depend_files for tracetool | expand |
On 25/01/21 12:09, Stefan Hajnoczi wrote: > Re-generate tracetool output when the tracetool source code changes. Use > the same approach as qapi_gen_depends and introduce a tracetool_depends > files list so meson is aware of the dependencies. > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> > --- > meson.build | 28 +++++++++++++++++++++++++++- > trace/meson.build | 21 ++++++++++++++------- > 2 files changed, 41 insertions(+), 8 deletions(-) > > diff --git a/meson.build b/meson.build > index 35a9eddf5c..3909d6b4c1 100644 > --- a/meson.build > +++ b/meson.build > @@ -1626,6 +1626,31 @@ tracetool = [ > python, files('scripts/tracetool.py'), > '--backend=' + config_host['TRACE_BACKENDS'] > ] > +tracetool_depends = files( > + 'scripts/tracetool/backend/log.py', > + 'scripts/tracetool/backend/__init__.py', > + 'scripts/tracetool/backend/dtrace.py', > + 'scripts/tracetool/backend/ftrace.py', > + 'scripts/tracetool/backend/simple.py', > + 'scripts/tracetool/backend/syslog.py', > + 'scripts/tracetool/backend/ust.py', > + 'scripts/tracetool/format/tcg_h.py', > + 'scripts/tracetool/format/ust_events_c.py', > + 'scripts/tracetool/format/ust_events_h.py', > + 'scripts/tracetool/format/__init__.py', > + 'scripts/tracetool/format/d.py', > + 'scripts/tracetool/format/tcg_helper_c.py', > + 'scripts/tracetool/format/simpletrace_stap.py', > + 'scripts/tracetool/format/c.py', > + 'scripts/tracetool/format/h.py', > + 'scripts/tracetool/format/tcg_helper_h.py', > + 'scripts/tracetool/format/log_stap.py', > + 'scripts/tracetool/format/stap.py', > + 'scripts/tracetool/format/tcg_helper_wrapper_h.py', > + 'scripts/tracetool/__init__.py', > + 'scripts/tracetool/transform.py', > + 'scripts/tracetool/vcpu.py' > +) > > qemu_version_cmd = [find_program('scripts/qemu-version.sh'), > meson.current_source_dir(), > @@ -2192,7 +2217,8 @@ foreach target : target_dirs > '--target-type=' + target_type, > '--probe-prefix=qemu.' + target_type + '.' + target_name, > '@INPUT@', '@OUTPUT@' > - ]) > + ], > + depend_files: tracetool_depends) > endforeach > endif > endforeach > diff --git a/trace/meson.build b/trace/meson.build > index a0be8f9b0d..08f83a15c3 100644 > --- a/trace/meson.build > +++ b/trace/meson.build > @@ -12,17 +12,20 @@ foreach dir : [ '.' ] + trace_events_subdirs > trace_h = custom_target(fmt.format('trace', 'h'), > output: fmt.format('trace', 'h'), > input: trace_events_file, > - command: [ tracetool, group, '--format=h', '@INPUT@', '@OUTPUT@' ]) > + command: [ tracetool, group, '--format=h', '@INPUT@', '@OUTPUT@' ], > + depend_files: tracetool_depends) > genh += trace_h > trace_c = custom_target(fmt.format('trace', 'c'), > output: fmt.format('trace', 'c'), > input: trace_events_file, > - command: [ tracetool, group, '--format=c', '@INPUT@', '@OUTPUT@' ]) > + command: [ tracetool, group, '--format=c', '@INPUT@', '@OUTPUT@' ], > + depend_files: tracetool_depends) > if 'CONFIG_TRACE_UST' in config_host > trace_ust_h = custom_target(fmt.format('trace-ust', 'h'), > output: fmt.format('trace-ust', 'h'), > input: trace_events_file, > - command: [ tracetool, group, '--format=ust-events-h', '@INPUT@', '@OUTPUT@' ]) > + command: [ tracetool, group, '--format=ust-events-h', '@INPUT@', '@OUTPUT@' ], > + depend_files: tracetool_depends) > trace_ss.add(trace_ust_h, lttng, urcubp) > genh += trace_ust_h > endif > @@ -31,7 +34,8 @@ foreach dir : [ '.' ] + trace_events_subdirs > trace_dtrace = custom_target(fmt.format('trace-dtrace', 'dtrace'), > output: fmt.format('trace-dtrace', 'dtrace'), > input: trace_events_file, > - command: [ tracetool, group, '--format=d', '@INPUT@', '@OUTPUT@' ]) > + command: [ tracetool, group, '--format=d', '@INPUT@', '@OUTPUT@' ], > + depend_files: tracetool_depends) > trace_dtrace_h = custom_target(fmt.format('trace-dtrace', 'h'), > output: fmt.format('trace-dtrace', 'h'), > input: trace_dtrace, > @@ -66,7 +70,8 @@ foreach d : [ > gen = custom_target(d[0], > output: d[0], > input: meson.source_root() / 'trace-events', > - command: [ tracetool, '--group=root', '--format=@0@'.format(d[1]), '@INPUT@', '@OUTPUT@' ]) > + command: [ tracetool, '--group=root', '--format=@0@'.format(d[1]), '@INPUT@', '@OUTPUT@' ], > + depend_files: tracetool_depends) > specific_ss.add(when: 'CONFIG_TCG', if_true: gen) > endforeach > > @@ -74,11 +79,13 @@ if 'CONFIG_TRACE_UST' in config_host > trace_ust_all_h = custom_target('trace-ust-all.h', > output: 'trace-ust-all.h', > input: trace_events_files, > - command: [ tracetool, '--group=all', '--format=ust-events-h', '@INPUT@', '@OUTPUT@' ]) > + command: [ tracetool, '--group=all', '--format=ust-events-h', '@INPUT@', '@OUTPUT@' ], > + depend_files: tracetool_depends) > trace_ust_all_c = custom_target('trace-ust-all.c', > output: 'trace-ust-all.c', > input: trace_events_files, > - command: [ tracetool, '--group=all', '--format=ust-events-c', '@INPUT@', '@OUTPUT@' ]) > + command: [ tracetool, '--group=all', '--format=ust-events-c', '@INPUT@', '@OUTPUT@' ], > + depend_files: tracetool_depends) > trace_ss.add(trace_ust_all_h, trace_ust_all_c) > genh += trace_ust_all_h > endif > Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
On Mon, Jan 25, 2021 at 11:09:58AM +0000, Stefan Hajnoczi wrote: > Re-generate tracetool output when the tracetool source code changes. Use > the same approach as qapi_gen_depends and introduce a tracetool_depends > files list so meson is aware of the dependencies. > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> > --- > meson.build | 28 +++++++++++++++++++++++++++- > trace/meson.build | 21 ++++++++++++++------- > 2 files changed, 41 insertions(+), 8 deletions(-) (Additional comments welcome, I can drop this patch from my queue changes are requested.) Thanks, applied to my tracing tree: https://gitlab.com/stefanha/qemu/commits/tracing Stefan
On 1/25/21 12:09 PM, Stefan Hajnoczi wrote: > Re-generate tracetool output when the tracetool source code changes. Use > the same approach as qapi_gen_depends and introduce a tracetool_depends > files list so meson is aware of the dependencies. > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> > --- > meson.build | 28 +++++++++++++++++++++++++++- > trace/meson.build | 21 ++++++++++++++------- > 2 files changed, 41 insertions(+), 8 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Hi Stefan, On Mon, Jan 25, 2021 at 5:40 PM Philippe Mathieu-Daudé <philmd@redhat.com> wrote:> > On 1/25/21 12:09 PM, Stefan Hajnoczi wrote: > > Re-generate tracetool output when the tracetool source code changes. Use > > the same approach as qapi_gen_depends and introduce a tracetool_depends > > files list so meson is aware of the dependencies. > > > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> > > --- > > meson.build | 28 +++++++++++++++++++++++++++- > > trace/meson.build | 21 ++++++++++++++------- > > 2 files changed, 41 insertions(+), 8 deletions(-) Please do not merge "trace: make the 'log' backend timestamp configurable" without this patch -- even better, queue this one directly after it -- as this gave me troubles with the multiple directories I'm using to build: In file included from trace/trace-io.c:5: trace/trace-io.h: In function ‘_nocheck__trace_qio_channel_command_wait’: trace/trace-io.h:1756:13: error: ‘message_with_timestamp’ undeclared (first use in this function); did you mean ‘error_with_timestamp’? 1756 | if (message_with_timestamp) { | ^~~~~~~~~~~~~~~~~~~~~~ | error_with_timestamp ninja: build stopped: subcommand failed.
On 1/27/21 9:56 PM, Philippe Mathieu-Daudé wrote: > Hi Stefan, > > On Mon, Jan 25, 2021 at 5:40 PM Philippe Mathieu-Daudé > <philmd@redhat.com> wrote:> >> On 1/25/21 12:09 PM, Stefan Hajnoczi wrote: >>> Re-generate tracetool output when the tracetool source code changes. Use >>> the same approach as qapi_gen_depends and introduce a tracetool_depends >>> files list so meson is aware of the dependencies. >>> >>> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> >>> --- >>> meson.build | 28 +++++++++++++++++++++++++++- >>> trace/meson.build | 21 ++++++++++++++------- >>> 2 files changed, 41 insertions(+), 8 deletions(-) > > Please do not merge "trace: make the 'log' backend timestamp configurable" > without this patch -- even better, queue this one directly after it -- as this > gave me troubles with the multiple directories I'm using to build: > > In file included from trace/trace-io.c:5: > trace/trace-io.h: In function ‘_nocheck__trace_qio_channel_command_wait’: > trace/trace-io.h:1756:13: error: ‘message_with_timestamp’ undeclared > (first use in this function); did you mean ‘error_with_timestamp’? > 1756 | if (message_with_timestamp) { > | ^~~~~~~~~~~~~~~~~~~~~~ > | error_with_timestamp > ninja: build stopped: subcommand failed. I just realized bisecting, this problem is present when jumping from *after* 0572d6cd29d to *before* it. Range [7fd51e68c34 -> 0572d6cd29d]. I doubt there is much we can do :(
diff --git a/meson.build b/meson.build index 35a9eddf5c..3909d6b4c1 100644 --- a/meson.build +++ b/meson.build @@ -1626,6 +1626,31 @@ tracetool = [ python, files('scripts/tracetool.py'), '--backend=' + config_host['TRACE_BACKENDS'] ] +tracetool_depends = files( + 'scripts/tracetool/backend/log.py', + 'scripts/tracetool/backend/__init__.py', + 'scripts/tracetool/backend/dtrace.py', + 'scripts/tracetool/backend/ftrace.py', + 'scripts/tracetool/backend/simple.py', + 'scripts/tracetool/backend/syslog.py', + 'scripts/tracetool/backend/ust.py', + 'scripts/tracetool/format/tcg_h.py', + 'scripts/tracetool/format/ust_events_c.py', + 'scripts/tracetool/format/ust_events_h.py', + 'scripts/tracetool/format/__init__.py', + 'scripts/tracetool/format/d.py', + 'scripts/tracetool/format/tcg_helper_c.py', + 'scripts/tracetool/format/simpletrace_stap.py', + 'scripts/tracetool/format/c.py', + 'scripts/tracetool/format/h.py', + 'scripts/tracetool/format/tcg_helper_h.py', + 'scripts/tracetool/format/log_stap.py', + 'scripts/tracetool/format/stap.py', + 'scripts/tracetool/format/tcg_helper_wrapper_h.py', + 'scripts/tracetool/__init__.py', + 'scripts/tracetool/transform.py', + 'scripts/tracetool/vcpu.py' +) qemu_version_cmd = [find_program('scripts/qemu-version.sh'), meson.current_source_dir(), @@ -2192,7 +2217,8 @@ foreach target : target_dirs '--target-type=' + target_type, '--probe-prefix=qemu.' + target_type + '.' + target_name, '@INPUT@', '@OUTPUT@' - ]) + ], + depend_files: tracetool_depends) endforeach endif endforeach diff --git a/trace/meson.build b/trace/meson.build index a0be8f9b0d..08f83a15c3 100644 --- a/trace/meson.build +++ b/trace/meson.build @@ -12,17 +12,20 @@ foreach dir : [ '.' ] + trace_events_subdirs trace_h = custom_target(fmt.format('trace', 'h'), output: fmt.format('trace', 'h'), input: trace_events_file, - command: [ tracetool, group, '--format=h', '@INPUT@', '@OUTPUT@' ]) + command: [ tracetool, group, '--format=h', '@INPUT@', '@OUTPUT@' ], + depend_files: tracetool_depends) genh += trace_h trace_c = custom_target(fmt.format('trace', 'c'), output: fmt.format('trace', 'c'), input: trace_events_file, - command: [ tracetool, group, '--format=c', '@INPUT@', '@OUTPUT@' ]) + command: [ tracetool, group, '--format=c', '@INPUT@', '@OUTPUT@' ], + depend_files: tracetool_depends) if 'CONFIG_TRACE_UST' in config_host trace_ust_h = custom_target(fmt.format('trace-ust', 'h'), output: fmt.format('trace-ust', 'h'), input: trace_events_file, - command: [ tracetool, group, '--format=ust-events-h', '@INPUT@', '@OUTPUT@' ]) + command: [ tracetool, group, '--format=ust-events-h', '@INPUT@', '@OUTPUT@' ], + depend_files: tracetool_depends) trace_ss.add(trace_ust_h, lttng, urcubp) genh += trace_ust_h endif @@ -31,7 +34,8 @@ foreach dir : [ '.' ] + trace_events_subdirs trace_dtrace = custom_target(fmt.format('trace-dtrace', 'dtrace'), output: fmt.format('trace-dtrace', 'dtrace'), input: trace_events_file, - command: [ tracetool, group, '--format=d', '@INPUT@', '@OUTPUT@' ]) + command: [ tracetool, group, '--format=d', '@INPUT@', '@OUTPUT@' ], + depend_files: tracetool_depends) trace_dtrace_h = custom_target(fmt.format('trace-dtrace', 'h'), output: fmt.format('trace-dtrace', 'h'), input: trace_dtrace, @@ -66,7 +70,8 @@ foreach d : [ gen = custom_target(d[0], output: d[0], input: meson.source_root() / 'trace-events', - command: [ tracetool, '--group=root', '--format=@0@'.format(d[1]), '@INPUT@', '@OUTPUT@' ]) + command: [ tracetool, '--group=root', '--format=@0@'.format(d[1]), '@INPUT@', '@OUTPUT@' ], + depend_files: tracetool_depends) specific_ss.add(when: 'CONFIG_TCG', if_true: gen) endforeach @@ -74,11 +79,13 @@ if 'CONFIG_TRACE_UST' in config_host trace_ust_all_h = custom_target('trace-ust-all.h', output: 'trace-ust-all.h', input: trace_events_files, - command: [ tracetool, '--group=all', '--format=ust-events-h', '@INPUT@', '@OUTPUT@' ]) + command: [ tracetool, '--group=all', '--format=ust-events-h', '@INPUT@', '@OUTPUT@' ], + depend_files: tracetool_depends) trace_ust_all_c = custom_target('trace-ust-all.c', output: 'trace-ust-all.c', input: trace_events_files, - command: [ tracetool, '--group=all', '--format=ust-events-c', '@INPUT@', '@OUTPUT@' ]) + command: [ tracetool, '--group=all', '--format=ust-events-c', '@INPUT@', '@OUTPUT@' ], + depend_files: tracetool_depends) trace_ss.add(trace_ust_all_h, trace_ust_all_c) genh += trace_ust_all_h endif
Re-generate tracetool output when the tracetool source code changes. Use the same approach as qapi_gen_depends and introduce a tracetool_depends files list so meson is aware of the dependencies. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- meson.build | 28 +++++++++++++++++++++++++++- trace/meson.build | 21 ++++++++++++++------- 2 files changed, 41 insertions(+), 8 deletions(-)