Re: [GIT PULL 0/6] perf/urgent fixes

From: Arnaldo Carvalho de Melo
Date: Fri Dec 06 2019 - 09:44:00 EST


Em Fri, Dec 06, 2019 at 03:25:16PM +0100, Jiri Olsa escreveu:
> On Fri, Dec 06, 2019 at 08:57:01AM +0100, Ingo Molnar wrote:
>
> SNIP
>
> > > tools/include/uapi/drm/drm.h | 3 +-
> > > tools/include/uapi/drm/i915_drm.h | 128 +++++++++++++++++++++++++++++++++++++-
> > > tools/perf/builtin-inject.c | 13 +---
> > > tools/perf/builtin-report.c | 8 +++
> > > tools/perf/util/sort.c | 16 +++--
> > > 5 files changed, 147 insertions(+), 21 deletions(-)
> >
> > Pulled, thanks a lot Arnaldo!
> >
> > JFYI, on my system the default perf/urgent build still has this noise
> > generated by util/parse-events.y and util/expr.y:
> >
> > util/parse-events.y:1.1-12: warning: deprecated directive, use â%define api.pureâ [-Wdeprecated]
> > 1 | %pure-parser
> > | ^~~~~~~~~~~~
> > util/parse-events.y: warning: fix-its can be applied. Rerun with option '--update'. [-Wother]
> > util/expr.y:15.1-12: warning: deprecated directive, use â%define api.pureâ [-Wdeprecated]
> > 15 | %pure-parser
> > | ^~~~~~~~~~~~
> > util/expr.y: warning: fix-its can be applied. Rerun with option '--update'. [-Wother]
>
> just saw it in fedora 31 with new bison, change below
> should fix it, I'll post it with other fixes later

As I explained to Ingo, this will make it fail with older systems, for
now this is just a warning, thus I've not been eager to get this merged,
Andi alredy submitted this, for instance.

Is there some way to have some sort of ifdef based on bison's version so
that we can have both?

At some point I'll just bite the bullet and stop testing on such older
systems, but while this is not strictly needed...

- Arnaldo

> jirka
>
> ---
> diff --git a/tools/perf/util/expr.y b/tools/perf/util/expr.y
> index f9a20a39b64a..4ef801334b9d 100644
> --- a/tools/perf/util/expr.y
> +++ b/tools/perf/util/expr.y
> @@ -12,7 +12,7 @@
> #define MAXIDLEN 256
> %}
>
> -%pure-parser
> +%define api.pure
> %parse-param { double *final_val }
> %parse-param { struct parse_ctx *ctx }
> %parse-param { const char **pp }
> diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y
> index e2eea4e601b4..87a0d11676f0 100644
> --- a/tools/perf/util/parse-events.y
> +++ b/tools/perf/util/parse-events.y
> @@ -1,4 +1,4 @@
> -%pure-parser
> +%define api.pure
> %parse-param {void *_parse_state}
> %parse-param {void *scanner}
> %lex-param {void* scanner}

--

- Arnaldo