Re: [PATCH] perf: Add missing sys/types.h include

From: Arnaldo Carvalho de Melo
Date: Wed Jan 04 2023 - 14:42:49 EST


Em Wed, Jan 04, 2023 at 04:13:47PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Wed, Jan 04, 2023 at 10:23:13AM -0800, Jesus Sanchez-Palencia escreveu:
> > Not all libc implementations define ssize_t as part of stdio.h like
> > glibc does since the standard only requires this type to be defined by
> > unistd.h and sys/types.h. For this reason the perf build is currently
> > broken for toolchains based on uClibc, for instance.
> >
> > Include sys/types.h explicitly to fix that. This is a follow up to
> > commit 378ef0f5d9d7 ("perf build: Use libtraceevent from the system").
>
> Do you mean this problem started with the 378ef0f5d9d7 commit? If so
> then this is the fase for adding:

Yeah, it was:

tools/perf/util/trace-event.h
/usr/include/traceevent/event_parse.h # This got removed from util/trace-event.h in 378ef0f5d9d7
/usr/include/regex.h
/usr/include/sys/types.h
typedef __ssize_t ssize_t;

So sys/types.h was _always_ missing in tools/perf/util/trace-event.h,
that got it by luck.

I'm adding these details and the Fixes tag pointed to that 378ef0f5d9d7
commit.

For the curious:

http://vger.kernel.org/~acme/perf/size_t_from_trace-event.h.ps

Using an old tool I wrote around graphviz :-)

- Arnaldo

> Fixes: 378ef0f5d9d7 ("perf build: Use libtraceevent from the system")
>
> To this patch, ok?

> > Signed-off-by: Jesus Sanchez-Palencia <jesussanp@xxxxxxxxxx>
> > ---
> > tools/perf/util/trace-event.h | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/tools/perf/util/trace-event.h b/tools/perf/util/trace-event.h
> > index add6c5d9531c..9b3cd79cca12 100644
> > --- a/tools/perf/util/trace-event.h
> > +++ b/tools/perf/util/trace-event.h
> > @@ -4,6 +4,7 @@
> >
> > #include <stdbool.h>
> > #include <stdio.h>
> > +#include <sys/types.h>
> > #include <linux/types.h>
> >
> > struct evlist;
> > --
> > 2.39.0.314.g84b9a713c41-goog