Re: [PATCH 2/3] perf build: Use libtraceevent from the system

From: Arnaldo Carvalho de Melo
Date: Tue Dec 06 2022 - 11:30:47 EST


Em Tue, Dec 06, 2022 at 01:23:45PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Tue, Dec 06, 2022 at 01:20:12PM -0300, Arnaldo Carvalho de Melo escreveu:
> >
> > util/scripting-engines/trace-event-perl.c:104:43: error: ‘struct tep_print_flag_sym’ declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
> > 104 | static void define_symbolic_values(struct tep_print_flag_sym *field,
> > | ^~~~~~~~~~~~~~~~~~
> > util/scripting-engines/trace-event-perl.c: In function ‘define_symbolic_values’:
>
> This cured it, folding into your patch:
>
> diff --git a/tools/perf/util/scripting-engines/trace-event-perl.c b/tools/perf/util/scripting-engines/trace-event-perl.c
> index 5b602b6d46854133..0bacb49408f84adf 100644
> --- a/tools/perf/util/scripting-engines/trace-event-perl.c
> +++ b/tools/perf/util/scripting-engines/trace-event-perl.c
> @@ -27,6 +27,7 @@
> #include <errno.h>
> #include <linux/bitmap.h>
> #include <linux/time64.h>
> +#include <traceevent/event-parse.h>
>
> #include <stdbool.h>
> /* perl needs the following define, right after including stdbool.h */

Building with NO_LIBTRACEEVENT=1 I get:

CC /tmp/build/perf/util/cap.o
util/data-convert-bt.c: In function ‘get_tracepoint_field_type’:
util/data-convert-bt.c:194:36: error: invalid use of undefined type ‘struct tep_format_field’
194 | unsigned long flags = field->flags;
| ^~
util/data-convert-bt.c:196:21: error: ‘TEP_FIELD_IS_STRING’ undeclared (first use in this function)
196 | if (flags & TEP_FIELD_IS_STRING)
| ^~~~~~~~~~~~~~~~~~~
util/data-convert-bt.c:196:21: note: each undeclared identifier is reported only once for each function it appears in
util/data-convert-bt.c:199:23: error: ‘TEP_FIELD_IS_SIGNED’ undeclared (first use in this function)
199 | if (!(flags & TEP_FIELD_IS_SIGNED)) {
| ^~~~~~~~~~~~~~~~~~~
util/data-convert-bt.c:201:29: error: ‘TEP_FIELD_IS_LONG’ undeclared (first use in this function)
201 | if (flags & TEP_FIELD_IS_LONG || flags & TEP_FIELD_IS_POINTER)
| ^~~~~~~~~~~~~~~~~


working on it...