Re: [PATCH v1 4/6] perf build: Disable fewer flex warnings

From: Arnaldo Carvalho de Melo
Date: Fri Jul 28 2023 - 10:02:45 EST


Em Fri, Jul 28, 2023 at 10:59:38AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Fri, Jul 28, 2023 at 09:50:59AM +0100, James Clark escreveu:
> >
> >
> > On 28/07/2023 07:49, Ian Rogers wrote:
> > > If flex is version 2.6.4, reduce the number of flex C warnings
> > > disabled. Earlier flex versions have all C warnings disabled.
> >
> > Hi Ian,
> >
> > I get a build error with either this one or the bison warning change:
> >
> > $ make LLVM=1 -C tools/perf NO_BPF_SKEL=1 DEBUG=1
> >
> > util/pmu-bison.c:855:9: error: variable 'perf_pmu_nerrs' set but not
> > used [-Werror,-Wunused-but-set-variable]
> > int yynerrs = 0;
> >
> > I tried a clean build which normally fixes these kind of bison errors.
> > Let me know if you need any version info.
>
> Trying to build it with the command line above I get:
>
> CC util/expr.o
> CC util/parse-events.o
> CC util/parse-events-flex.o
> util/parse-events-flex.c:7503:13: error: misleading indentation; statement is not part of the previous 'if' [-Werror,-Wmisleading-indentation]
> if ( ! yyg->yy_state_buf )
> ^
> util/parse-events-flex.c:7501:9: note: previous statement is here
> if ( ! yyg->yy_state_buf )
> ^

I added this to the patch to get it moving:

make: Leaving directory '/var/home/acme/git/perf-tools-next/tools/perf'
⬢[acme@toolbox perf-tools-next]$ git diff
diff --git a/tools/perf/util/Build b/tools/perf/util/Build
index 32239c4b0393c319..afa93eff495811cf 100644
--- a/tools/perf/util/Build
+++ b/tools/perf/util/Build
@@ -281,7 +281,7 @@ $(OUTPUT)util/bpf-filter-bison.c $(OUTPUT)util/bpf-filter-bison.h: util/bpf-filt

FLEX_GE_264 := $(shell expr $(shell $(FLEX) --version | sed -e 's/flex \([0-9]\+\).\([0-9]\+\).\([0-9]\+\)/\1\2\3/g') \>\= 264)
ifeq ($(FLEX_GE_264),1)
- flex_flags := -Wno-redundant-decls -Wno-switch-default -Wno-unused-function
+ flex_flags := -Wno-redundant-decls -Wno-switch-default -Wno-unused-function -Wno-misleading-indentation
else
flex_flags := -w
endif
⬢[acme@toolbox perf-tools-next]$


> 1 error generated.
> make[4]: *** [/var/home/acme/git/perf-tools-next/tools/build/Makefile.build:97: util/parse-events-flex.o] Error 1
> make[4]: *** Waiting for unfinished jobs....
> LD util/scripting-engines/perf-in.o
> make[3]: *** [/var/home/acme/git/perf-tools-next/tools/build/Makefile.build:140: util] Error 2
> make[2]: *** [Makefile.perf:682: perf-in.o] Error 2
> make[2]: *** Waiting for unfinished jobs....
> CC pmu-events/pmu-events.o
> LD pmu-events/pmu-events-in.o
> make[1]: *** [Makefile.perf:242: sub-make] Error 2
> make: *** [Makefile:70: all] Error 2
>
> ⬢[acme@toolbox perf-tools-next]$ clang --version
> clang version 14.0.5 (Fedora 14.0.5-2.fc36)
> Target: x86_64-redhat-linux-gnu
> Thread model: posix
> InstalledDir: /usr/bin
> ⬢[acme@toolbox perf-tools-next]$

--

- Arnaldo