Re: [PATCH] perf tools: Fix build failture on perl script context

From: Arnaldo Carvalho de Melo
Date: Tue Aug 02 2016 - 09:29:22 EST


Em Tue, Aug 02, 2016 at 11:43:17AM +0900, Namhyung Kim escreveu:
> On my Archlinux machine, perf faild to build like below:
>
> CC scripts/perl/Perf-Trace-Util/Context.o
> In file included from /usr/lib/perl5/core/perl/CORE/perl.h:3905:0,
> from Context.xs:23:
> /usr/lib/perl5/core/perl/CORE/inline.h: In function :
> /usr/lib/perl5/core/perl/CORE/cop.h:612:13: warning: declaration of 'av'
> shadows a previous local [-Werror-shadow]
> AV *av =3D GvAV(PL_defgv);
> ^
> /usr/lib/perl5/core/perl/CORE/inline.h:526:5: note: in expansion of
> macro 'CX_POP_SAVEARRAY'
> CX_POP_SAVEARRAY(cx);
> ^~~~~~~~~~~~~~~~
> In file included from /usr/lib/perl5/core/perl/CORE/perl.h:5853:0,
> from Context.xs:23:
> /usr/lib/perl5/core/perl/CORE/inline.h:518:9: note:
> shadowed declaration is here
> AV *av;
> ^~

Ok, reproduced here with yet another container image for regularly
building perf:

CC /tmp/build/perf/util/usage.o
In file included from /usr/lib/perl5/core_perl/CORE/perl.h:3905:0,
from Context.xs:23:
/usr/lib/perl5/core_perl/CORE/inline.h: In function 'S_cx_popsub_args':
/usr/lib/perl5/core_perl/CORE/cop.h:612:13: error: declaration of 'av'
shadows a previous local [-Werror=shadow]
AV *av = GvAV(PL_defgv);
\
^
/usr/lib/perl5/core_perl/CORE/inline.h:526:5: note: in expansion of
macro 'CX_POP_SAVEARRAY'
CX_POP_SAVEARRAY(cx);
^~~~~~~~~~~~~~~~
In file included from /usr/lib/perl5/core_perl/CORE/perl.h:5853:0,
from Context.xs:23:
/usr/lib/perl5/core_perl/CORE/inline.h:518:9: note: shadowed declaration
is here
AV *av;
^~
CC /tmp/build/perf/util/dso.o
cc1: all warnings being treated as errors
mv: cannot stat
'/tmp/build/perf/scripts/perl/Perf-Trace-Util/.Context.o.tmp': No such
file or directory
make[4]: *** [/git/linux/tools/build/Makefile.build:78:
/tmp/build/perf/scripts/perl/Perf-Trace-Util/Context.o] Error 1
make[3]: *** [/git/linux/tools/build/Makefile.build:116:
perl/Perf-Trace-Util] Error 2
make[2]: *** [/git/linux/tools/build/Makefile.build:116: scripts] Error
2
make[2]: *** Waiting for unfinished jobs....
CC /tmp/build/perf/util/symbol.o

---------------------------------------------------

this time based on:

docker run -v /home/acme/git:/git:Z --rm -ti docker.io/base/archlinux:2015.06.01 /bin/bash
pacman -Syu --noconfirm && pacman -Sy --noconfirm make gcc flex bison

----

thanks for the patch, will test and push out.

- Arnaldo

>
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> ---
> tools/perf/scripts/perl/Perf-Trace-Util/Build | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Build b/tools/perf/scripts/perl/Perf-Trace-Util/Build
> index 928e110179cb..34faecf774ae 100644
> --- a/tools/perf/scripts/perl/Perf-Trace-Util/Build
> +++ b/tools/perf/scripts/perl/Perf-Trace-Util/Build
> @@ -1,3 +1,5 @@
> libperf-y += Context.o
>
> -CFLAGS_Context.o += $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs -Wno-undef -Wno-switch-default
> +CFLAGS_Context.o += $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes
> +CFLAGS_Context.o += -Wno-unused-parameter -Wno-nested-externs -Wno-undef
> +CFLAGS_Context.o += -Wno-switch-default -Wno-shadow
> --
> 2.9.2