lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 5 Jun 2024 08:55:51 -0700
From: Ian Rogers <irogers@...gle.com>
To: Clément Le Goffic <clement.legoffic@...s.st.com>
Cc: Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...hat.com>, 
	Arnaldo Carvalho de Melo <acme@...nel.org>, Namhyung Kim <namhyung@...nel.org>, 
	Mark Rutland <mark.rutland@....com>, 
	Alexander Shishkin <alexander.shishkin@...ux.intel.com>, Jiri Olsa <jolsa@...nel.org>, 
	Adrian Hunter <adrian.hunter@...el.com>, "Liang, Kan" <kan.liang@...ux.intel.com>, 
	John Garry <john.g.garry@...cle.com>, James Clark <james.clark@....com>, 
	linux-perf-users@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [RFC PATCH] perf: parse-events: Fix compilation error while
 defining DEBUG_PARSER

On Wed, Jun 5, 2024 at 7:06 AM Clément Le Goffic
<clement.legoffic@...s.st.com> wrote:
>
> Compiling perf tool with 'DEBUG_PARSER=1' leads to errors:
>
> $> make -C tools/perf PARSER_DEBUG=1 NO_LIBTRACEEVENT=1
> ...
>   CC      util/expr-flex.o
>   CC      util/expr.o
> util/parse-events.c:33:12: error: redundant redeclaration of ‘parse_events_debug’ [-Werror=redundant-decls]
>    33 | extern int parse_events_debug;
>       |            ^~~~~~~~~~~~~~~~~~
> In file included from util/parse-events.c:18:
> util/parse-events-bison.h:43:12: note: previous declaration of ‘parse_events_debug’ with type ‘int’
>    43 | extern int parse_events_debug;
>       |            ^~~~~~~~~~~~~~~~~~
> util/expr.c:27:12: error: redundant redeclaration of ‘expr_debug’ [-Werror=redundant-decls]
>    27 | extern int expr_debug;
>       |            ^~~~~~~~~~
> In file included from util/expr.c:11:
> util/expr-bison.h:43:12: note: previous declaration of ‘expr_debug’ with type ‘int’
>    43 | extern int expr_debug;
>       |            ^~~~~~~~~~
> cc-1: all warnings being treated as errors
>
> Remove extern declaration from the parse-envents.c file as there is a
> conflict with the ones generated using bison and yacc tools from the file
> parse-events.[ly].

I encounter the same problem and routinely just do a local change to
comment out the declaration. The definition comes from the original
patch adding debug support, Commit 82ba1f2f6148 ("perf tools: Add
support for displaying event parser debug info") and so I believe
older flex/yacc tools needed the declaration. I think the right thing
to do is to remove them.

Reviewed-by: Ian Rogers <irogers@...gle.com>

Thanks,
Ian

> Signed-off-by: Clément Le Goffic <clement.legoffic@...s.st.com>
> ---
> I don't know how bison and yacc work together.
> To me if those symbols are already generated (I don't know how), we
> should get rid of them in the source file `parse-events.c`.
> For my knowledge, if someone has the explanation of how they are
> generated, I am interested as I didn't find any link to some part of
> parse-events.[yl] files.
>
> To: Peter Zijlstra <peterz@...radead.org>
> To: Ingo Molnar <mingo@...hat.com>
> To: Arnaldo Carvalho de Melo <acme@...nel.org>
> To: Namhyung Kim <namhyung@...nel.org>
> To: Mark Rutland <mark.rutland@....com>
> To: Alexander Shishkin <alexander.shishkin@...ux.intel.com>
> To: Jiri Olsa <jolsa@...nel.org>
> To: Ian Rogers <irogers@...gle.com>
> To: Adrian Hunter <adrian.hunter@...el.com>
> To: "Liang, Kan" <kan.liang@...ux.intel.com>
> To: John Garry <john.g.garry@...cle.com>
> To: James Clark <james.clark@....com>
> Cc: linux-perf-users@...r.kernel.org
> Cc: linux-kernel@...r.kernel.org
> ---
>  tools/perf/util/expr.c         | 4 ----
>  tools/perf/util/parse-events.c | 3 ---
>  2 files changed, 7 deletions(-)
>
> diff --git a/tools/perf/util/expr.c b/tools/perf/util/expr.c
> index b8875aac8f87..b2536a59c44e 100644
> --- a/tools/perf/util/expr.c
> +++ b/tools/perf/util/expr.c
> @@ -25,10 +25,6 @@
>  #include <math.h>
>  #include "pmu.h"
>
> -#ifdef PARSER_DEBUG
> -extern int expr_debug;
> -#endif
> -
>  struct expr_id_data {
>         union {
>                 struct {
> diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
> index 6ed0f9c5581d..8d5fb05f20c2 100644
> --- a/tools/perf/util/parse-events.c
> +++ b/tools/perf/util/parse-events.c
> @@ -31,9 +31,6 @@
>
>  #define MAX_NAME_LEN 100
>
> -#ifdef PARSER_DEBUG
> -extern int parse_events_debug;
> -#endif
>  static int get_config_terms(const struct parse_events_terms *head_config,
>                             struct list_head *head_terms);
>  static int parse_events_terms__copy(const struct parse_events_terms *src,
>
> base-commit: c3f38fa61af77b49866b006939479069cd451173
> --
> 2.34.1
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ