Re: [PATCH] building libtraceevent with clang

From: Arnaldo Carvalho de Melo
Date: Fri Feb 17 2017 - 08:45:05 EST


Em Thu, Feb 16, 2017 at 09:00:23PM -0500, Steven Rostedt escreveu:
> On Mon, 13 Feb 2017 14:20:20 -0300
> Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> wrote:
> > +++ b/tools/lib/traceevent/plugin_function.c
> > @@ -130,7 +130,7 @@ static int function_handler(struct trace_seq *s, struct pevent_record *record,
> > unsigned long long pfunction;
> > const char *func;
> > const char *parent;
> > - int index;
> > + int index = 0;

> I went to apply this to trace-cmd's version, and it failed to apply. Then I
> realized that I had this fixed back in 2015, but missed sending it.

> That's because I don't strictly follow the 80 column limit for some of the if
> statements (I find the break up ugly), and when doing diffs, this got lost in
> the diffs of the 80 column limits ones done with the port to the kernel tree.
> :-/

I'm not strict about it either:

$ find tools/perf/ -name "*.[ch]" | xargs cat | wc -l
161984
$ find tools/perf/ -name "*.[ch]" | xargs expand | cut -c80- | grep -v ^$ | wc -l
3706
$

2.29%

You (well, libtracevent) are a bit more strict:

$ find tools/lib/traceevent/ -name "*.[ch]" | xargs cat | wc -l
13814
$ find tools/lib/traceevent/ -name "*.[ch]" | xargs expand | cut -c80- | grep -v ^$ | wc -l
184
$

1.33%

For reference, the whole kernel, modulo tools/

$ find . -name "*.[ch]" | grep -v ^\.\/tools | xargs cat | wc -l
20162880
$ find . -name "*.[ch]" | grep -v ^\.\/tools | xargs expand | cut -c80- | grep -v ^$ | wc -l
439722
$

2.18%

Using functions to avoid too deep if statements usually helps here tho :-)

- Arnaldo

> -- Steve
>
>
> >
> > if (pevent_get_field_val(s, event, "ip", record, &function, 1))
> > return trace_seq_putc(s, '!');
> >