* [Linux-v5.17-rc6] Building tools/perf with perl v5.34
@ 2022-03-05 7:52 Sedat Dilek
2022-03-05 7:57 ` Sedat Dilek
2022-03-05 20:09 ` Jiri Olsa
0 siblings, 2 replies; 10+ messages in thread
From: Sedat Dilek @ 2022-03-05 7:52 UTC (permalink / raw)
To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim
Cc: linux-perf-users, linux-kernel
Hi,
I am here on Debian/unstable AMD64 which switched over to perl v5.34
in February 2022.
Unfortunately, my perf does not build with this (lib)perl version:
$ ~/bin/perf -vv
perf version 5.17-rc6
dwarf: [ on ] # HAVE_DWARF_SUPPORT
dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT
glibc: [ on ] # HAVE_GLIBC_SUPPORT
syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT
libbfd: [ on ] # HAVE_LIBBFD_SUPPORT
libelf: [ on ] # HAVE_LIBELF_SUPPORT
libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
libperl: [ OFF ] # HAVE_LIBPERL_SUPPORT
libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
libslang: [ on ] # HAVE_SLANG_SUPPORT
libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT
libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT
libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT
zlib: [ on ] # HAVE_ZLIB_SUPPORT
lzma: [ on ] # HAVE_LZMA_SUPPORT
get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT
bpf: [ on ] # HAVE_LIBBPF_SUPPORT
aio: [ on ] # HAVE_AIO_SUPPORT
zstd: [ on ] # HAVE_ZSTD_SUPPORT
libpfm4: [ OFF ] # HAVE_LIBPFM
$ grep libperl ../make-log_perf-python3.10-install_bin.txt
9:Makefile.config:788: Missing perl devel files. Disabling perl
scripting support, please install perl-ExtUtils-Embed/libperl-dev
22:... libperl: [ OFF ]
Checking for these requirements:
# dpkg -l | grep perl | grep 5.34 | awk '/^ii/ {print $1 " " $2 " "
$3}' | column -t
ii libperl-dev:amd64 5.34.0-3
ii libperl5.34:amd64 5.34.0-3
ii perl 5.34.0-3
ii perl-base 5.34.0-3
ii perl-modules-5.34 5.34.0-3
# dpkg -L perl-modules-5.34 | grep -i ExtUtils | grep -i Embed
/usr/share/perl/5.34.0/ExtUtils/Embed.pm
Can you please comment on this?
Thanks.
Regards,
- Sedat -
[1] https://unix.stackexchange.com/questions/167292/what-is-debian-equivalent-of-rpm-package-perl-extutils-embed
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Linux-v5.17-rc6] Building tools/perf with perl v5.34
2022-03-05 7:52 [Linux-v5.17-rc6] Building tools/perf with perl v5.34 Sedat Dilek
@ 2022-03-05 7:57 ` Sedat Dilek
2022-03-05 8:26 ` Sedat Dilek
2022-03-05 20:09 ` Jiri Olsa
1 sibling, 1 reply; 10+ messages in thread
From: Sedat Dilek @ 2022-03-05 7:57 UTC (permalink / raw)
To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim
Cc: linux-perf-users, linux-kernel
On Sat, Mar 5, 2022 at 8:52 AM Sedat Dilek <sedat.dilek@gmail.com> wrote:
>
> Hi,
>
> I am here on Debian/unstable AMD64 which switched over to perl v5.34
> in February 2022.
>
> Unfortunately, my perf does not build with this (lib)perl version:
>
> $ ~/bin/perf -vv
> perf version 5.17-rc6
> dwarf: [ on ] # HAVE_DWARF_SUPPORT
> dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT
> glibc: [ on ] # HAVE_GLIBC_SUPPORT
> syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT
> libbfd: [ on ] # HAVE_LIBBFD_SUPPORT
> libelf: [ on ] # HAVE_LIBELF_SUPPORT
> libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
> numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
> libperl: [ OFF ] # HAVE_LIBPERL_SUPPORT
> libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
> libslang: [ on ] # HAVE_SLANG_SUPPORT
> libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT
> libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT
> libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT
> zlib: [ on ] # HAVE_ZLIB_SUPPORT
> lzma: [ on ] # HAVE_LZMA_SUPPORT
> get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT
> bpf: [ on ] # HAVE_LIBBPF_SUPPORT
> aio: [ on ] # HAVE_AIO_SUPPORT
> zstd: [ on ] # HAVE_ZSTD_SUPPORT
> libpfm4: [ OFF ] # HAVE_LIBPFM
>
> $ grep libperl ../make-log_perf-python3.10-install_bin.txt
> 9:Makefile.config:788: Missing perl devel files. Disabling perl
> scripting support, please install perl-ExtUtils-Embed/libperl-dev
> 22:... libperl: [ OFF ]
>
> Checking for these requirements:
>
> # dpkg -l | grep perl | grep 5.34 | awk '/^ii/ {print $1 " " $2 " "
> $3}' | column -t
> ii libperl-dev:amd64 5.34.0-3
> ii libperl5.34:amd64 5.34.0-3
> ii perl 5.34.0-3
> ii perl-base 5.34.0-3
> ii perl-modules-5.34 5.34.0-3
>
> # dpkg -L perl-modules-5.34 | grep -i ExtUtils | grep -i Embed
> /usr/share/perl/5.34.0/ExtUtils/Embed.pm
>
> Can you please comment on this?
>
> Thanks.
>
> Regards,
> - Sedat -
>
> [1] https://unix.stackexchange.com/questions/167292/what-is-debian-equivalent-of-rpm-package-perl-extutils-embed
My command-line:
cd /path/to/linux.git
$ make V=1 -j4 HOSTCC=clang HOSTCXX=clang++ HOSTLD=ld.lld
HOSTAR=llvm-ar CC=clang LD=ld.lld AR=llvm-ar NM=llvm-nm
OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump OBJSIZE=llvm-size
READELF=llvm-readelf STRIP=llvm-strip LLVM_IAS=1 -C tools/perf
PYTHON=python3.10 install-bin
I use the -gnu-std-11 patchset plus some own:
$ git log --oneline v5.17-rc6.. | grep 'std=gnu11'
05d8e9b88918 tools: libtraceevent: Use -std=gnu11
ee44279e6b01 tools: libsubcmd: Use -std=gnu11
411fa2d6da5c tools: libapi: Use -std=gnu11
3f0092b7e1b9 tools: perf: Use -std=gnu11
0cf56ddf2b41 tools: libbpf: Use -std=gnu11
96a4222bdd4c Kbuild: use -std=gnu11 for KBUILD_USERCFLAGS
6a7cc105b238 Kbuild: move to -std=gnu11
If this matters...
- Sedat -
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Linux-v5.17-rc6] Building tools/perf with perl v5.34
2022-03-05 7:57 ` Sedat Dilek
@ 2022-03-05 8:26 ` Sedat Dilek
2022-03-05 11:11 ` Sedat Dilek
0 siblings, 1 reply; 10+ messages in thread
From: Sedat Dilek @ 2022-03-05 8:26 UTC (permalink / raw)
To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim
Cc: linux-perf-users, linux-kernel
On Sat, Mar 5, 2022 at 8:57 AM Sedat Dilek <sedat.dilek@gmail.com> wrote:
>
> On Sat, Mar 5, 2022 at 8:52 AM Sedat Dilek <sedat.dilek@gmail.com> wrote:
> >
> > Hi,
> >
> > I am here on Debian/unstable AMD64 which switched over to perl v5.34
> > in February 2022.
> >
> > Unfortunately, my perf does not build with this (lib)perl version:
> >
> > $ ~/bin/perf -vv
> > perf version 5.17-rc6
> > dwarf: [ on ] # HAVE_DWARF_SUPPORT
> > dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT
> > glibc: [ on ] # HAVE_GLIBC_SUPPORT
> > syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT
> > libbfd: [ on ] # HAVE_LIBBFD_SUPPORT
> > libelf: [ on ] # HAVE_LIBELF_SUPPORT
> > libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
> > numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
> > libperl: [ OFF ] # HAVE_LIBPERL_SUPPORT
> > libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
> > libslang: [ on ] # HAVE_SLANG_SUPPORT
> > libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT
> > libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT
> > libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT
> > zlib: [ on ] # HAVE_ZLIB_SUPPORT
> > lzma: [ on ] # HAVE_LZMA_SUPPORT
> > get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT
> > bpf: [ on ] # HAVE_LIBBPF_SUPPORT
> > aio: [ on ] # HAVE_AIO_SUPPORT
> > zstd: [ on ] # HAVE_ZSTD_SUPPORT
> > libpfm4: [ OFF ] # HAVE_LIBPFM
> >
> > $ grep libperl ../make-log_perf-python3.10-install_bin.txt
> > 9:Makefile.config:788: Missing perl devel files. Disabling perl
> > scripting support, please install perl-ExtUtils-Embed/libperl-dev
> > 22:... libperl: [ OFF ]
> >
> > Checking for these requirements:
> >
> > # dpkg -l | grep perl | grep 5.34 | awk '/^ii/ {print $1 " " $2 " "
> > $3}' | column -t
> > ii libperl-dev:amd64 5.34.0-3
> > ii libperl5.34:amd64 5.34.0-3
> > ii perl 5.34.0-3
> > ii perl-base 5.34.0-3
> > ii perl-modules-5.34 5.34.0-3
> >
> > # dpkg -L perl-modules-5.34 | grep -i ExtUtils | grep -i Embed
> > /usr/share/perl/5.34.0/ExtUtils/Embed.pm
> >
> > Can you please comment on this?
> >
> > Thanks.
> >
> > Regards,
> > - Sedat -
> >
> > [1] https://unix.stackexchange.com/questions/167292/what-is-debian-equivalent-of-rpm-package-perl-extutils-embed
>
> My command-line:
>
> cd /path/to/linux.git
>
> $ make V=1 -j4 HOSTCC=clang HOSTCXX=clang++ HOSTLD=ld.lld
> HOSTAR=llvm-ar CC=clang LD=ld.lld AR=llvm-ar NM=llvm-nm
> OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump OBJSIZE=llvm-size
> READELF=llvm-readelf STRIP=llvm-strip LLVM_IAS=1 -C tools/perf
> PYTHON=python3.10 install-bin
>
> I use the -gnu-std-11 patchset plus some own:
>
> $ git log --oneline v5.17-rc6.. | grep 'std=gnu11'
> 05d8e9b88918 tools: libtraceevent: Use -std=gnu11
> ee44279e6b01 tools: libsubcmd: Use -std=gnu11
> 411fa2d6da5c tools: libapi: Use -std=gnu11
> 3f0092b7e1b9 tools: perf: Use -std=gnu11
> 0cf56ddf2b41 tools: libbpf: Use -std=gnu11
> 96a4222bdd4c Kbuild: use -std=gnu11 for KBUILD_USERCFLAGS
> 6a7cc105b238 Kbuild: move to -std=gnu11
>
> If this matters...
>
[ tools/perf/Makefile.config ]
ifdef NO_LIBPERL
CFLAGS += -DNO_LIBPERL
else
PERL_EMBED_LDOPTS = $(shell perl -MExtUtils::Embed -e ldopts 2>/dev/null)
PERL_EMBED_LDFLAGS = $(call strip-libs,$(PERL_EMBED_LDOPTS))
PERL_EMBED_LIBADD = $(call grep-libs,$(PERL_EMBED_LDOPTS))
PERL_EMBED_CCOPTS = $(shell perl -MExtUtils::Embed -e ccopts 2>/dev/null)
PERL_EMBED_CCOPTS := $(filter-out -specs=%,$(PERL_EMBED_CCOPTS))
PERL_EMBED_CCOPTS := $(filter-out -flto=auto -ffat-lto-objects,
$(PERL_EMBED_CCOPTS))
PERL_EMBED_LDOPTS := $(filter-out -specs=%,$(PERL_EMBED_LDOPTS))
FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS)
ifneq ($(feature-libperl), 1)
CFLAGS += -DNO_LIBPERL
NO_LIBPERL := 1
msg := $(warning Missing perl devel files. Disabling perl
scripting support, please install perl-ExtUtils-Embed/libperl-dev);
else
LDFLAGS += $(PERL_EMBED_LDFLAGS)
EXTLIBS += $(PERL_EMBED_LIBADD)
CFLAGS += -DHAVE_LIBPERL_SUPPORT
$(call detected,CONFIG_LIBPERL)
endif
endif
$ perl -MExtUtils::Embed -e ldopts
-Wl,-E -fstack-protector-strong -L/usr/local/lib
-L/usr/lib/x86_64-linux-gnu/perl/5.34/CORE -lperl -ldl -lm -lpthread
-lc -lcrypt
$ perl -MExtUtils::Embed -e ccopts
-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-I/usr/lib/x86_64-linux-gnu/perl/5.34/CORE
- Sedat -
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Linux-v5.17-rc6] Building tools/perf with perl v5.34
2022-03-05 8:26 ` Sedat Dilek
@ 2022-03-05 11:11 ` Sedat Dilek
0 siblings, 0 replies; 10+ messages in thread
From: Sedat Dilek @ 2022-03-05 11:11 UTC (permalink / raw)
To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim
Cc: linux-perf-users, linux-kernel
On Sat, Mar 5, 2022 at 9:26 AM Sedat Dilek <sedat.dilek@gmail.com> wrote:
>
> On Sat, Mar 5, 2022 at 8:57 AM Sedat Dilek <sedat.dilek@gmail.com> wrote:
> >
> > On Sat, Mar 5, 2022 at 8:52 AM Sedat Dilek <sedat.dilek@gmail.com> wrote:
> > >
> > > Hi,
> > >
> > > I am here on Debian/unstable AMD64 which switched over to perl v5.34
> > > in February 2022.
> > >
> > > Unfortunately, my perf does not build with this (lib)perl version:
> > >
> > > $ ~/bin/perf -vv
> > > perf version 5.17-rc6
> > > dwarf: [ on ] # HAVE_DWARF_SUPPORT
> > > dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT
> > > glibc: [ on ] # HAVE_GLIBC_SUPPORT
> > > syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT
> > > libbfd: [ on ] # HAVE_LIBBFD_SUPPORT
> > > libelf: [ on ] # HAVE_LIBELF_SUPPORT
> > > libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
> > > numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
> > > libperl: [ OFF ] # HAVE_LIBPERL_SUPPORT
> > > libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
> > > libslang: [ on ] # HAVE_SLANG_SUPPORT
> > > libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT
> > > libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT
> > > libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT
> > > zlib: [ on ] # HAVE_ZLIB_SUPPORT
> > > lzma: [ on ] # HAVE_LZMA_SUPPORT
> > > get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT
> > > bpf: [ on ] # HAVE_LIBBPF_SUPPORT
> > > aio: [ on ] # HAVE_AIO_SUPPORT
> > > zstd: [ on ] # HAVE_ZSTD_SUPPORT
> > > libpfm4: [ OFF ] # HAVE_LIBPFM
> > >
> > > $ grep libperl ../make-log_perf-python3.10-install_bin.txt
> > > 9:Makefile.config:788: Missing perl devel files. Disabling perl
> > > scripting support, please install perl-ExtUtils-Embed/libperl-dev
> > > 22:... libperl: [ OFF ]
> > >
> > > Checking for these requirements:
> > >
> > > # dpkg -l | grep perl | grep 5.34 | awk '/^ii/ {print $1 " " $2 " "
> > > $3}' | column -t
> > > ii libperl-dev:amd64 5.34.0-3
> > > ii libperl5.34:amd64 5.34.0-3
> > > ii perl 5.34.0-3
> > > ii perl-base 5.34.0-3
> > > ii perl-modules-5.34 5.34.0-3
> > >
> > > # dpkg -L perl-modules-5.34 | grep -i ExtUtils | grep -i Embed
> > > /usr/share/perl/5.34.0/ExtUtils/Embed.pm
> > >
> > > Can you please comment on this?
> > >
> > > Thanks.
> > >
> > > Regards,
> > > - Sedat -
> > >
> > > [1] https://unix.stackexchange.com/questions/167292/what-is-debian-equivalent-of-rpm-package-perl-extutils-embed
> >
> > My command-line:
> >
> > cd /path/to/linux.git
> >
> > $ make V=1 -j4 HOSTCC=clang HOSTCXX=clang++ HOSTLD=ld.lld
> > HOSTAR=llvm-ar CC=clang LD=ld.lld AR=llvm-ar NM=llvm-nm
> > OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump OBJSIZE=llvm-size
> > READELF=llvm-readelf STRIP=llvm-strip LLVM_IAS=1 -C tools/perf
> > PYTHON=python3.10 install-bin
> >
> > I use the -gnu-std-11 patchset plus some own:
> >
> > $ git log --oneline v5.17-rc6.. | grep 'std=gnu11'
> > 05d8e9b88918 tools: libtraceevent: Use -std=gnu11
> > ee44279e6b01 tools: libsubcmd: Use -std=gnu11
> > 411fa2d6da5c tools: libapi: Use -std=gnu11
> > 3f0092b7e1b9 tools: perf: Use -std=gnu11
> > 0cf56ddf2b41 tools: libbpf: Use -std=gnu11
> > 96a4222bdd4c Kbuild: use -std=gnu11 for KBUILD_USERCFLAGS
> > 6a7cc105b238 Kbuild: move to -std=gnu11
> >
> > If this matters...
> >
>
> [ tools/perf/Makefile.config ]
>
> ifdef NO_LIBPERL
> CFLAGS += -DNO_LIBPERL
> else
> PERL_EMBED_LDOPTS = $(shell perl -MExtUtils::Embed -e ldopts 2>/dev/null)
> PERL_EMBED_LDFLAGS = $(call strip-libs,$(PERL_EMBED_LDOPTS))
> PERL_EMBED_LIBADD = $(call grep-libs,$(PERL_EMBED_LDOPTS))
> PERL_EMBED_CCOPTS = $(shell perl -MExtUtils::Embed -e ccopts 2>/dev/null)
> PERL_EMBED_CCOPTS := $(filter-out -specs=%,$(PERL_EMBED_CCOPTS))
> PERL_EMBED_CCOPTS := $(filter-out -flto=auto -ffat-lto-objects,
> $(PERL_EMBED_CCOPTS))
> PERL_EMBED_LDOPTS := $(filter-out -specs=%,$(PERL_EMBED_LDOPTS))
> FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS)
>
> ifneq ($(feature-libperl), 1)
> CFLAGS += -DNO_LIBPERL
> NO_LIBPERL := 1
> msg := $(warning Missing perl devel files. Disabling perl
> scripting support, please install perl-ExtUtils-Embed/libperl-dev);
> else
> LDFLAGS += $(PERL_EMBED_LDFLAGS)
> EXTLIBS += $(PERL_EMBED_LIBADD)
> CFLAGS += -DHAVE_LIBPERL_SUPPORT
> $(call detected,CONFIG_LIBPERL)
> endif
> endif
>
> $ perl -MExtUtils::Embed -e ldopts
> -Wl,-E -fstack-protector-strong -L/usr/local/lib
> -L/usr/lib/x86_64-linux-gnu/perl/5.34/CORE -lperl -ldl -lm -lpthread
> -lc -lcrypt
>
> $ perl -MExtUtils::Embed -e ccopts
> -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe
> -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
> -I/usr/lib/x86_64-linux-gnu/perl/5.34/CORE
>
Looks like an issue when using LLVM/Clang - distro or selfmade does not matter.
With GCC I can see libperl enabled.
- Sedat -
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Linux-v5.17-rc6] Building tools/perf with perl v5.34
2022-03-05 7:52 [Linux-v5.17-rc6] Building tools/perf with perl v5.34 Sedat Dilek
2022-03-05 7:57 ` Sedat Dilek
@ 2022-03-05 20:09 ` Jiri Olsa
2022-03-06 2:28 ` Sedat Dilek
1 sibling, 1 reply; 10+ messages in thread
From: Jiri Olsa @ 2022-03-05 20:09 UTC (permalink / raw)
To: Sedat Dilek
Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
linux-perf-users, linux-kernel
On Sat, Mar 05, 2022 at 08:52:18AM +0100, Sedat Dilek wrote:
> Hi,
>
> I am here on Debian/unstable AMD64 which switched over to perl v5.34
> in February 2022.
>
> Unfortunately, my perf does not build with this (lib)perl version:
>
> $ ~/bin/perf -vv
> perf version 5.17-rc6
> dwarf: [ on ] # HAVE_DWARF_SUPPORT
> dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT
> glibc: [ on ] # HAVE_GLIBC_SUPPORT
> syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT
> libbfd: [ on ] # HAVE_LIBBFD_SUPPORT
> libelf: [ on ] # HAVE_LIBELF_SUPPORT
> libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
> numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
> libperl: [ OFF ] # HAVE_LIBPERL_SUPPORT
> libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
> libslang: [ on ] # HAVE_SLANG_SUPPORT
> libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT
> libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT
> libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT
> zlib: [ on ] # HAVE_ZLIB_SUPPORT
> lzma: [ on ] # HAVE_LZMA_SUPPORT
> get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT
> bpf: [ on ] # HAVE_LIBBPF_SUPPORT
> aio: [ on ] # HAVE_AIO_SUPPORT
> zstd: [ on ] # HAVE_ZSTD_SUPPORT
> libpfm4: [ OFF ] # HAVE_LIBPFM
>
> $ grep libperl ../make-log_perf-python3.10-install_bin.txt
> 9:Makefile.config:788: Missing perl devel files. Disabling perl
> scripting support, please install perl-ExtUtils-Embed/libperl-dev
> 22:... libperl: [ OFF ]
>
> Checking for these requirements:
>
> # dpkg -l | grep perl | grep 5.34 | awk '/^ii/ {print $1 " " $2 " "
> $3}' | column -t
> ii libperl-dev:amd64 5.34.0-3
> ii libperl5.34:amd64 5.34.0-3
> ii perl 5.34.0-3
> ii perl-base 5.34.0-3
> ii perl-modules-5.34 5.34.0-3
>
> # dpkg -L perl-modules-5.34 | grep -i ExtUtils | grep -i Embed
> /usr/share/perl/5.34.0/ExtUtils/Embed.pm
>
> Can you please comment on this?
hi,
is there something in tools/build/feature/test-libperl.make.output ?
jirka
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Linux-v5.17-rc6] Building tools/perf with perl v5.34
2022-03-05 20:09 ` Jiri Olsa
@ 2022-03-06 2:28 ` Sedat Dilek
2022-03-06 3:18 ` Sedat Dilek
2022-03-06 15:42 ` Jiri Olsa
0 siblings, 2 replies; 10+ messages in thread
From: Sedat Dilek @ 2022-03-06 2:28 UTC (permalink / raw)
To: Jiri Olsa
Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
linux-perf-users, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 3008 bytes --]
On Sat, Mar 5, 2022 at 9:09 PM Jiri Olsa <olsajiri@gmail.com> wrote:
>
> On Sat, Mar 05, 2022 at 08:52:18AM +0100, Sedat Dilek wrote:
> > Hi,
> >
> > I am here on Debian/unstable AMD64 which switched over to perl v5.34
> > in February 2022.
> >
> > Unfortunately, my perf does not build with this (lib)perl version:
> >
> > $ ~/bin/perf -vv
> > perf version 5.17-rc6
> > dwarf: [ on ] # HAVE_DWARF_SUPPORT
> > dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT
> > glibc: [ on ] # HAVE_GLIBC_SUPPORT
> > syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT
> > libbfd: [ on ] # HAVE_LIBBFD_SUPPORT
> > libelf: [ on ] # HAVE_LIBELF_SUPPORT
> > libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
> > numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
> > libperl: [ OFF ] # HAVE_LIBPERL_SUPPORT
> > libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
> > libslang: [ on ] # HAVE_SLANG_SUPPORT
> > libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT
> > libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT
> > libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT
> > zlib: [ on ] # HAVE_ZLIB_SUPPORT
> > lzma: [ on ] # HAVE_LZMA_SUPPORT
> > get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT
> > bpf: [ on ] # HAVE_LIBBPF_SUPPORT
> > aio: [ on ] # HAVE_AIO_SUPPORT
> > zstd: [ on ] # HAVE_ZSTD_SUPPORT
> > libpfm4: [ OFF ] # HAVE_LIBPFM
> >
> > $ grep libperl ../make-log_perf-python3.10-install_bin.txt
> > 9:Makefile.config:788: Missing perl devel files. Disabling perl
> > scripting support, please install perl-ExtUtils-Embed/libperl-dev
> > 22:... libperl: [ OFF ]
> >
> > Checking for these requirements:
> >
> > # dpkg -l | grep perl | grep 5.34 | awk '/^ii/ {print $1 " " $2 " "
> > $3}' | column -t
> > ii libperl-dev:amd64 5.34.0-3
> > ii libperl5.34:amd64 5.34.0-3
> > ii perl 5.34.0-3
> > ii perl-base 5.34.0-3
> > ii perl-modules-5.34 5.34.0-3
> >
> > # dpkg -L perl-modules-5.34 | grep -i ExtUtils | grep -i Embed
> > /usr/share/perl/5.34.0/ExtUtils/Embed.pm
> >
> > Can you please comment on this?
>
> hi,
> is there something in tools/build/feature/test-libperl.make.output ?
>
Hey jirka!
Indeed there is such a file.
$ LC_ALL=C ll tools/build/feature/test-libperl.make.output
-rw-r--r-- 1 dileks dileks 24K Mar 6 03:22
tools/build/feature/test-libperl.make.output
Reproducer:
make distclean
make -C tools/perf clean
MAKE="make"
MAKE_OPTS="HOSTCC=clang-13 HOSTCXX=clang++-13 HOSTLD=ld.lld-13
HOSTAR=llvm-ar-13 CC=clang-13 LD=ld.lld-13 AR=llvm-ar-13 NM=llvm-nm-13
OBJCOPY=llvm-objcopy-13 OBJDUMP=llvm-objdump-13 OBJSIZE=llvm-size-13
READELF=llvm-readelf-13 STRIP=llvm-strip-13 LLVM_IAS=1"
LC_ALL=C $MAKE V=1 $MAKE_OPTS -C tools/perf PYTHON=python3 install-bin
- Sedat -
[-- Attachment #2: test-libperl.make.output --]
[-- Type: application/octet-stream, Size: 24131 bytes --]
In file included from test-libperl.c:3:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:4085:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv.h:659:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv_func.h:34:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/sbox32_hash.h:4:
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:150:5: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_SCRAMBLE32(state[0],0x9fade23b);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:80:38: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
#define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START { \
^~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:737:29: note: expanded from macro 'STMT_START'
# define STMT_START (void)( /* gcc supports "({ STATEMENTS; })" */
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:150:5: note: '{' token is here
ZAPHOD32_SCRAMBLE32(state[0],0x9fade23b);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:80:49: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
#define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START { \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:150:5: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_SCRAMBLE32(state[0],0x9fade23b);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:87:41: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
v ^= (v>>23); \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:150:5: note: ')' token is here
ZAPHOD32_SCRAMBLE32(state[0],0x9fade23b);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:88:3: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
} STMT_END
^~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:738:21: note: expanded from macro 'STMT_END'
# define STMT_END )
^
In file included from test-libperl.c:3:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:4085:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv.h:659:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv_func.h:34:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/sbox32_hash.h:4:
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:151:5: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_SCRAMBLE32(state[1],0xaa6f908d);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:80:38: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
#define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START { \
^~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:737:29: note: expanded from macro 'STMT_START'
# define STMT_START (void)( /* gcc supports "({ STATEMENTS; })" */
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:151:5: note: '{' token is here
ZAPHOD32_SCRAMBLE32(state[1],0xaa6f908d);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:80:49: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
#define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START { \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:151:5: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_SCRAMBLE32(state[1],0xaa6f908d);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:87:41: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
v ^= (v>>23); \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:151:5: note: ')' token is here
ZAPHOD32_SCRAMBLE32(state[1],0xaa6f908d);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:88:3: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
} STMT_END
^~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:738:21: note: expanded from macro 'STMT_END'
# define STMT_END )
^
In file included from test-libperl.c:3:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:4085:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv.h:659:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv_func.h:34:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/sbox32_hash.h:4:
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:152:5: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_SCRAMBLE32(state[2],0xcdf6b72d);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:80:38: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
#define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START { \
^~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:737:29: note: expanded from macro 'STMT_START'
# define STMT_START (void)( /* gcc supports "({ STATEMENTS; })" */
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:152:5: note: '{' token is here
ZAPHOD32_SCRAMBLE32(state[2],0xcdf6b72d);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:80:49: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
#define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START { \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:152:5: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_SCRAMBLE32(state[2],0xcdf6b72d);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:87:41: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
v ^= (v>>23); \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:152:5: note: ')' token is here
ZAPHOD32_SCRAMBLE32(state[2],0xcdf6b72d);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:88:3: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
} STMT_END
^~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:738:21: note: expanded from macro 'STMT_END'
# define STMT_END )
^
In file included from test-libperl.c:3:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:4085:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv.h:659:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv_func.h:34:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/sbox32_hash.h:4:
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:156:5: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 1/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:116:37: note: expanded from macro 'ZAPHOD32_MIX'
#define ZAPHOD32_MIX(v0,v1,v2,text) STMT_START { \
^~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:737:29: note: expanded from macro 'STMT_START'
# define STMT_START (void)( /* gcc supports "({ STATEMENTS; })" */
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:156:5: note: '{' token is here
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 1/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:116:48: note: expanded from macro 'ZAPHOD32_MIX'
#define ZAPHOD32_MIX(v0,v1,v2,text) STMT_START { \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:156:5: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 1/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:124:32: note: expanded from macro 'ZAPHOD32_MIX'
v2 = ROTR32(v2, 7) ^ v0; \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:156:5: note: ')' token is here
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 1/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:125:3: note: expanded from macro 'ZAPHOD32_MIX'
} STMT_END
^~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:738:21: note: expanded from macro 'STMT_END'
# define STMT_END )
^
In file included from test-libperl.c:3:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:4085:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv.h:659:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv_func.h:34:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/sbox32_hash.h:4:
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:157:5: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 2/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:116:37: note: expanded from macro 'ZAPHOD32_MIX'
#define ZAPHOD32_MIX(v0,v1,v2,text) STMT_START { \
^~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:737:29: note: expanded from macro 'STMT_START'
# define STMT_START (void)( /* gcc supports "({ STATEMENTS; })" */
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:157:5: note: '{' token is here
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 2/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:116:48: note: expanded from macro 'ZAPHOD32_MIX'
#define ZAPHOD32_MIX(v0,v1,v2,text) STMT_START { \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:157:5: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 2/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:124:32: note: expanded from macro 'ZAPHOD32_MIX'
v2 = ROTR32(v2, 7) ^ v0; \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:157:5: note: ')' token is here
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 2/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:125:3: note: expanded from macro 'ZAPHOD32_MIX'
} STMT_END
^~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:738:21: note: expanded from macro 'STMT_END'
# define STMT_END )
^
In file included from test-libperl.c:3:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:4085:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv.h:659:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv_func.h:34:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/sbox32_hash.h:4:
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:158:5: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 3/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:116:37: note: expanded from macro 'ZAPHOD32_MIX'
#define ZAPHOD32_MIX(v0,v1,v2,text) STMT_START { \
^~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:737:29: note: expanded from macro 'STMT_START'
# define STMT_START (void)( /* gcc supports "({ STATEMENTS; })" */
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:158:5: note: '{' token is here
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 3/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:116:48: note: expanded from macro 'ZAPHOD32_MIX'
#define ZAPHOD32_MIX(v0,v1,v2,text) STMT_START { \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:158:5: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 3/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:124:32: note: expanded from macro 'ZAPHOD32_MIX'
v2 = ROTR32(v2, 7) ^ v0; \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:158:5: note: ')' token is here
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 3/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:125:3: note: expanded from macro 'ZAPHOD32_MIX'
} STMT_END
^~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:738:21: note: expanded from macro 'STMT_END'
# define STMT_END )
^
In file included from test-libperl.c:3:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:4085:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv.h:659:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv_func.h:34:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/sbox32_hash.h:4:
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:159:5: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 4/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:116:37: note: expanded from macro 'ZAPHOD32_MIX'
#define ZAPHOD32_MIX(v0,v1,v2,text) STMT_START { \
^~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:737:29: note: expanded from macro 'STMT_START'
# define STMT_START (void)( /* gcc supports "({ STATEMENTS; })" */
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:159:5: note: '{' token is here
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 4/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:116:48: note: expanded from macro 'ZAPHOD32_MIX'
#define ZAPHOD32_MIX(v0,v1,v2,text) STMT_START { \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:159:5: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 4/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:124:32: note: expanded from macro 'ZAPHOD32_MIX'
v2 = ROTR32(v2, 7) ^ v0; \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:159:5: note: ')' token is here
ZAPHOD32_MIX(state[0],state[1],state[2],"ZAPHOD32 SEED-STATE A 4/4");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:125:3: note: expanded from macro 'ZAPHOD32_MIX'
} STMT_END
^~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:738:21: note: expanded from macro 'STMT_END'
# define STMT_END )
^
In file included from test-libperl.c:3:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:4085:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv.h:659:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv_func.h:34:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/sbox32_hash.h:4:
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:162:5: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_SCRAMBLE32(state[0],0xc95d22a9);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:80:38: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
#define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START { \
^~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:737:29: note: expanded from macro 'STMT_START'
# define STMT_START (void)( /* gcc supports "({ STATEMENTS; })" */
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:162:5: note: '{' token is here
ZAPHOD32_SCRAMBLE32(state[0],0xc95d22a9);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:80:49: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
#define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START { \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:162:5: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_SCRAMBLE32(state[0],0xc95d22a9);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:87:41: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
v ^= (v>>23); \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:162:5: note: ')' token is here
ZAPHOD32_SCRAMBLE32(state[0],0xc95d22a9);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:88:3: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
} STMT_END
^~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:738:21: note: expanded from macro 'STMT_END'
# define STMT_END )
^
In file included from test-libperl.c:3:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:4085:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv.h:659:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv_func.h:34:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/sbox32_hash.h:4:
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:163:5: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_SCRAMBLE32(state[1],0x8497242b);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:80:38: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
#define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START { \
^~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:737:29: note: expanded from macro 'STMT_START'
# define STMT_START (void)( /* gcc supports "({ STATEMENTS; })" */
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:163:5: note: '{' token is here
ZAPHOD32_SCRAMBLE32(state[1],0x8497242b);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:80:49: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
#define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START { \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:163:5: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_SCRAMBLE32(state[1],0x8497242b);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:87:41: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
v ^= (v>>23); \
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:163:5: note: ')' token is here
ZAPHOD32_SCRAMBLE32(state[1],0x8497242b);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:88:3: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
} STMT_END
^~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:738:21: note: expanded from macro 'STMT_END'
# define STMT_END )
^
In file included from test-libperl.c:3:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:4085:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv.h:659:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/hv_func.h:34:
In file included from /usr/lib/x86_64-linux-gnu/perl/5.34/CORE/sbox32_hash.h:4:
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:164:5: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
ZAPHOD32_SCRAMBLE32(state[2],0x9c5cc4e9);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:80:38: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
#define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START { \
^~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/perl.h:737:29: note: expanded from macro 'STMT_START'
# define STMT_START (void)( /* gcc supports "({ STATEMENTS; })" */
^
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:164:5: note: '{' token is here
ZAPHOD32_SCRAMBLE32(state[2],0x9c5cc4e9);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/x86_64-linux-gnu/perl/5.34/CORE/zaphod32_hash.h:80:49: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
#define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START { \
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Linux-v5.17-rc6] Building tools/perf with perl v5.34
2022-03-06 2:28 ` Sedat Dilek
@ 2022-03-06 3:18 ` Sedat Dilek
2022-03-06 15:42 ` Jiri Olsa
1 sibling, 0 replies; 10+ messages in thread
From: Sedat Dilek @ 2022-03-06 3:18 UTC (permalink / raw)
To: Jiri Olsa
Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
linux-perf-users, linux-kernel
On Sun, Mar 6, 2022 at 3:28 AM Sedat Dilek <sedat.dilek@gmail.com> wrote:
>
> On Sat, Mar 5, 2022 at 9:09 PM Jiri Olsa <olsajiri@gmail.com> wrote:
> >
> > On Sat, Mar 05, 2022 at 08:52:18AM +0100, Sedat Dilek wrote:
> > > Hi,
> > >
> > > I am here on Debian/unstable AMD64 which switched over to perl v5.34
> > > in February 2022.
> > >
> > > Unfortunately, my perf does not build with this (lib)perl version:
> > >
> > > $ ~/bin/perf -vv
> > > perf version 5.17-rc6
> > > dwarf: [ on ] # HAVE_DWARF_SUPPORT
> > > dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT
> > > glibc: [ on ] # HAVE_GLIBC_SUPPORT
> > > syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT
> > > libbfd: [ on ] # HAVE_LIBBFD_SUPPORT
> > > libelf: [ on ] # HAVE_LIBELF_SUPPORT
> > > libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
> > > numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
> > > libperl: [ OFF ] # HAVE_LIBPERL_SUPPORT
> > > libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
> > > libslang: [ on ] # HAVE_SLANG_SUPPORT
> > > libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT
> > > libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT
> > > libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT
> > > zlib: [ on ] # HAVE_ZLIB_SUPPORT
> > > lzma: [ on ] # HAVE_LZMA_SUPPORT
> > > get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT
> > > bpf: [ on ] # HAVE_LIBBPF_SUPPORT
> > > aio: [ on ] # HAVE_AIO_SUPPORT
> > > zstd: [ on ] # HAVE_ZSTD_SUPPORT
> > > libpfm4: [ OFF ] # HAVE_LIBPFM
> > >
> > > $ grep libperl ../make-log_perf-python3.10-install_bin.txt
> > > 9:Makefile.config:788: Missing perl devel files. Disabling perl
> > > scripting support, please install perl-ExtUtils-Embed/libperl-dev
> > > 22:... libperl: [ OFF ]
> > >
> > > Checking for these requirements:
> > >
> > > # dpkg -l | grep perl | grep 5.34 | awk '/^ii/ {print $1 " " $2 " "
> > > $3}' | column -t
> > > ii libperl-dev:amd64 5.34.0-3
> > > ii libperl5.34:amd64 5.34.0-3
> > > ii perl 5.34.0-3
> > > ii perl-base 5.34.0-3
> > > ii perl-modules-5.34 5.34.0-3
> > >
> > > # dpkg -L perl-modules-5.34 | grep -i ExtUtils | grep -i Embed
> > > /usr/share/perl/5.34.0/ExtUtils/Embed.pm
> > >
> > > Can you please comment on this?
> >
> > hi,
> > is there something in tools/build/feature/test-libperl.make.output ?
> >
>
> Hey jirka!
>
> Indeed there is such a file.
>
> $ LC_ALL=C ll tools/build/feature/test-libperl.make.output
> -rw-r--r-- 1 dileks dileks 24K Mar 6 03:22
> tools/build/feature/test-libperl.make.output
>
> Reproducer:
>
> make distclean
> make -C tools/perf clean
>
> MAKE="make"
> MAKE_OPTS="HOSTCC=clang-13 HOSTCXX=clang++-13 HOSTLD=ld.lld-13
> HOSTAR=llvm-ar-13 CC=clang-13 LD=ld.lld-13 AR=llvm-ar-13 NM=llvm-nm-13
> OBJCOPY=llvm-objcopy-13 OBJDUMP=llvm-objdump-13 OBJSIZE=llvm-size-13
> READELF=llvm-readelf-13 STRIP=llvm-strip-13 LLVM_IAS=1"
>
> LC_ALL=C $MAKE V=1 $MAKE_OPTS -C tools/perf PYTHON=python3 install-bin
>
> - Sedat -
With this diff:
$ git diff
diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
index 1480910c792e..ef9b37c5c652 100644
--- a/tools/build/feature/Makefile
+++ b/tools/build/feature/Makefile
@@ -81,7 +81,7 @@ PKG_CONFIG ?= $(CROSS_COMPILE)pkg-config
all: $(FILES)
-__BUILD = $(CC) $(CFLAGS) -MD -Wall -Werror -o $@ $(patsubst
%.bin,%.c,$(@F)) $(LDFLAGS)
+__BUILD = $(CC) $(CFLAGS) -MD -Wall -Werror
-Wno-compound-token-split-by-macro -o $@ $(patsubst %.bin,%.c,$(@F))
$(LDFLAGS)
BUILD = $(__BUILD) > $(@:.bin=.make.output) 2>&1
__BUILDXX = $(CXX) $(CXXFLAGS) -MD -Wall -Werror -o $@ $(patsubst
%.bin,%.cpp,$(@F)) $(LDFLAGS)
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index 913bf509bd17..c3e5bcf5264a 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -213,7 +213,7 @@ endif
# Treat warnings as errors unless directed not to
ifneq ($(WERROR),0)
- CORE_CFLAGS += -Werror
+ CORE_CFLAGS += -Werror -Wno-compound-token-split-by-macro
CXXFLAGS += -Werror
HOSTCFLAGS += -Werror
endif
I am able to build with libperl support:
$ ~/bin/perf -vv
perf version 5.17-rc6
dwarf: [ on ] # HAVE_DWARF_SUPPORT
dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT
glibc: [ on ] # HAVE_GLIBC_SUPPORT
syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT
libbfd: [ on ] # HAVE_LIBBFD_SUPPORT
libelf: [ on ] # HAVE_LIBELF_SUPPORT
libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
libperl: [ on ] # HAVE_LIBPERL_SUPPORT
libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
libslang: [ on ] # HAVE_SLANG_SUPPORT
libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT
libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT
libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT
zlib: [ on ] # HAVE_ZLIB_SUPPORT
lzma: [ on ] # HAVE_LZMA_SUPPORT
get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT
bpf: [ on ] # HAVE_LIBBPF_SUPPORT
aio: [ on ] # HAVE_AIO_SUPPORT
zstd: [ on ] # HAVE_ZSTD_SUPPORT
libpfm4: [ OFF ] # HAVE_LIBPFM
Dunno if I need "-Werror -Wno-compound-token-split-by-macro" for any
HOSTCXX/CXX flags.
- Sedat -
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [Linux-v5.17-rc6] Building tools/perf with perl v5.34
2022-03-06 2:28 ` Sedat Dilek
2022-03-06 3:18 ` Sedat Dilek
@ 2022-03-06 15:42 ` Jiri Olsa
2022-03-06 16:00 ` Sedat Dilek
1 sibling, 1 reply; 10+ messages in thread
From: Jiri Olsa @ 2022-03-06 15:42 UTC (permalink / raw)
To: Sedat Dilek
Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
linux-perf-users, linux-kernel
On Sun, Mar 06, 2022 at 03:28:09AM +0100, Sedat Dilek wrote:
> On Sat, Mar 5, 2022 at 9:09 PM Jiri Olsa <olsajiri@gmail.com> wrote:
> >
> > On Sat, Mar 05, 2022 at 08:52:18AM +0100, Sedat Dilek wrote:
> > > Hi,
> > >
> > > I am here on Debian/unstable AMD64 which switched over to perl v5.34
> > > in February 2022.
> > >
> > > Unfortunately, my perf does not build with this (lib)perl version:
> > >
> > > $ ~/bin/perf -vv
> > > perf version 5.17-rc6
> > > dwarf: [ on ] # HAVE_DWARF_SUPPORT
> > > dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT
> > > glibc: [ on ] # HAVE_GLIBC_SUPPORT
> > > syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT
> > > libbfd: [ on ] # HAVE_LIBBFD_SUPPORT
> > > libelf: [ on ] # HAVE_LIBELF_SUPPORT
> > > libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
> > > numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
> > > libperl: [ OFF ] # HAVE_LIBPERL_SUPPORT
> > > libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
> > > libslang: [ on ] # HAVE_SLANG_SUPPORT
> > > libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT
> > > libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT
> > > libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT
> > > zlib: [ on ] # HAVE_ZLIB_SUPPORT
> > > lzma: [ on ] # HAVE_LZMA_SUPPORT
> > > get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT
> > > bpf: [ on ] # HAVE_LIBBPF_SUPPORT
> > > aio: [ on ] # HAVE_AIO_SUPPORT
> > > zstd: [ on ] # HAVE_ZSTD_SUPPORT
> > > libpfm4: [ OFF ] # HAVE_LIBPFM
> > >
> > > $ grep libperl ../make-log_perf-python3.10-install_bin.txt
> > > 9:Makefile.config:788: Missing perl devel files. Disabling perl
> > > scripting support, please install perl-ExtUtils-Embed/libperl-dev
> > > 22:... libperl: [ OFF ]
> > >
> > > Checking for these requirements:
> > >
> > > # dpkg -l | grep perl | grep 5.34 | awk '/^ii/ {print $1 " " $2 " "
> > > $3}' | column -t
> > > ii libperl-dev:amd64 5.34.0-3
> > > ii libperl5.34:amd64 5.34.0-3
> > > ii perl 5.34.0-3
> > > ii perl-base 5.34.0-3
> > > ii perl-modules-5.34 5.34.0-3
> > >
> > > # dpkg -L perl-modules-5.34 | grep -i ExtUtils | grep -i Embed
> > > /usr/share/perl/5.34.0/ExtUtils/Embed.pm
> > >
> > > Can you please comment on this?
> >
> > hi,
> > is there something in tools/build/feature/test-libperl.make.output ?
> >
>
> Hey jirka!
>
> Indeed there is such a file.
>
> $ LC_ALL=C ll tools/build/feature/test-libperl.make.output
> -rw-r--r-- 1 dileks dileks 24K Mar 6 03:22
> tools/build/feature/test-libperl.make.output
>
> Reproducer:
>
> make distclean
> make -C tools/perf clean
>
> MAKE="make"
> MAKE_OPTS="HOSTCC=clang-13 HOSTCXX=clang++-13 HOSTLD=ld.lld-13
> HOSTAR=llvm-ar-13 CC=clang-13 LD=ld.lld-13 AR=llvm-ar-13 NM=llvm-nm-13
> OBJCOPY=llvm-objcopy-13 OBJDUMP=llvm-objdump-13 OBJSIZE=llvm-size-13
> READELF=llvm-readelf-13 STRIP=llvm-strip-13 LLVM_IAS=1"
>
> LC_ALL=C $MAKE V=1 $MAKE_OPTS -C tools/perf PYTHON=python3 install-bin
yea, looks like we can't compile perl devel includes with clang,
we use simple perl test program:
$ cd tools/build/feature/
$ cat test-libperl.c
// SPDX-License-Identifier: GPL-2.0
#include <EXTERN.h>
#include <perl.h>
int main(void)
{
perl_alloc();
return 0;
}
and if I compile it with:
$ CC=clang make test-libperl.bin
clang -MD -Wall -Werror -o test-libperl.bin test-libperl.c > test-libperl.make.output 2>&1 `perl -MExtUtils::Embed -e ccopts 2>/dev/null` -Wl,--enable-new-dtags -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fstack-protector-strong -L/usr/local/lib -L/usr/lib64/perl5/CORE -lperl -lpthread -lresolv -ldl -lm -lcrypt -lutil -lc
make: *** [Makefile:224: test-libperl.bin] Error 1
I'm getting some other lto related error:
$ cat test-libperl.make.output
clang-13: error: optimization flag '-ffat-lto-objects' is not supported [-Werror,-Wignored-optimization-argument]
with my clang version:
$ clang --version
clang version 13.0.0 (Fedora 13.0.0-3.fc35)
Target: x86_64-redhat-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
so you need to figure out how to compile the test program
above first with clang
jirka
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Linux-v5.17-rc6] Building tools/perf with perl v5.34
2022-03-06 15:42 ` Jiri Olsa
@ 2022-03-06 16:00 ` Sedat Dilek
2022-03-07 16:35 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 10+ messages in thread
From: Sedat Dilek @ 2022-03-06 16:00 UTC (permalink / raw)
To: Jiri Olsa
Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
linux-perf-users, linux-kernel
On Sun, Mar 6, 2022 at 4:42 PM Jiri Olsa <olsajiri@gmail.com> wrote:
>
> On Sun, Mar 06, 2022 at 03:28:09AM +0100, Sedat Dilek wrote:
> > On Sat, Mar 5, 2022 at 9:09 PM Jiri Olsa <olsajiri@gmail.com> wrote:
> > >
> > > On Sat, Mar 05, 2022 at 08:52:18AM +0100, Sedat Dilek wrote:
> > > > Hi,
> > > >
> > > > I am here on Debian/unstable AMD64 which switched over to perl v5.34
> > > > in February 2022.
> > > >
> > > > Unfortunately, my perf does not build with this (lib)perl version:
> > > >
> > > > $ ~/bin/perf -vv
> > > > perf version 5.17-rc6
> > > > dwarf: [ on ] # HAVE_DWARF_SUPPORT
> > > > dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT
> > > > glibc: [ on ] # HAVE_GLIBC_SUPPORT
> > > > syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT
> > > > libbfd: [ on ] # HAVE_LIBBFD_SUPPORT
> > > > libelf: [ on ] # HAVE_LIBELF_SUPPORT
> > > > libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
> > > > numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
> > > > libperl: [ OFF ] # HAVE_LIBPERL_SUPPORT
> > > > libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
> > > > libslang: [ on ] # HAVE_SLANG_SUPPORT
> > > > libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT
> > > > libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT
> > > > libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT
> > > > zlib: [ on ] # HAVE_ZLIB_SUPPORT
> > > > lzma: [ on ] # HAVE_LZMA_SUPPORT
> > > > get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT
> > > > bpf: [ on ] # HAVE_LIBBPF_SUPPORT
> > > > aio: [ on ] # HAVE_AIO_SUPPORT
> > > > zstd: [ on ] # HAVE_ZSTD_SUPPORT
> > > > libpfm4: [ OFF ] # HAVE_LIBPFM
> > > >
> > > > $ grep libperl ../make-log_perf-python3.10-install_bin.txt
> > > > 9:Makefile.config:788: Missing perl devel files. Disabling perl
> > > > scripting support, please install perl-ExtUtils-Embed/libperl-dev
> > > > 22:... libperl: [ OFF ]
> > > >
> > > > Checking for these requirements:
> > > >
> > > > # dpkg -l | grep perl | grep 5.34 | awk '/^ii/ {print $1 " " $2 " "
> > > > $3}' | column -t
> > > > ii libperl-dev:amd64 5.34.0-3
> > > > ii libperl5.34:amd64 5.34.0-3
> > > > ii perl 5.34.0-3
> > > > ii perl-base 5.34.0-3
> > > > ii perl-modules-5.34 5.34.0-3
> > > >
> > > > # dpkg -L perl-modules-5.34 | grep -i ExtUtils | grep -i Embed
> > > > /usr/share/perl/5.34.0/ExtUtils/Embed.pm
> > > >
> > > > Can you please comment on this?
> > >
> > > hi,
> > > is there something in tools/build/feature/test-libperl.make.output ?
> > >
> >
> > Hey jirka!
> >
> > Indeed there is such a file.
> >
> > $ LC_ALL=C ll tools/build/feature/test-libperl.make.output
> > -rw-r--r-- 1 dileks dileks 24K Mar 6 03:22
> > tools/build/feature/test-libperl.make.output
> >
> > Reproducer:
> >
> > make distclean
> > make -C tools/perf clean
> >
> > MAKE="make"
> > MAKE_OPTS="HOSTCC=clang-13 HOSTCXX=clang++-13 HOSTLD=ld.lld-13
> > HOSTAR=llvm-ar-13 CC=clang-13 LD=ld.lld-13 AR=llvm-ar-13 NM=llvm-nm-13
> > OBJCOPY=llvm-objcopy-13 OBJDUMP=llvm-objdump-13 OBJSIZE=llvm-size-13
> > READELF=llvm-readelf-13 STRIP=llvm-strip-13 LLVM_IAS=1"
> >
> > LC_ALL=C $MAKE V=1 $MAKE_OPTS -C tools/perf PYTHON=python3 install-bin
>
> yea, looks like we can't compile perl devel includes with clang,
> we use simple perl test program:
>
> $ cd tools/build/feature/
> $ cat test-libperl.c
> // SPDX-License-Identifier: GPL-2.0
> #include <EXTERN.h>
> #include <perl.h>
>
> int main(void)
> {
> perl_alloc();
>
> return 0;
> }
>
>
> and if I compile it with:
>
> $ CC=clang make test-libperl.bin
> clang -MD -Wall -Werror -o test-libperl.bin test-libperl.c > test-libperl.make.output 2>&1 `perl -MExtUtils::Embed -e ccopts 2>/dev/null` -Wl,--enable-new-dtags -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fstack-protector-strong -L/usr/local/lib -L/usr/lib64/perl5/CORE -lperl -lpthread -lresolv -ldl -lm -lcrypt -lutil -lc
> make: *** [Makefile:224: test-libperl.bin] Error 1
>
>
> I'm getting some other lto related error:
>
> $ cat test-libperl.make.output
> clang-13: error: optimization flag '-ffat-lto-objects' is not supported [-Werror,-Wignored-optimization-argument]
>
Hehe.
I was thinking about syncing the flags for both feature test-perl and
perf/libperl-support.
tools/build/feature/Makefile
tools/perf/Makefile.config
So, I guess FLAGS_PERL_EMBED differs.
For building perf '-ffat-lto-objects' is filtered-out...
$ git grep ffat-lto-objects tools/perf/
tools/perf/Makefile.config: PERL_EMBED_CCOPTS := $(filter-out
-flto=auto -ffat-lto-objects, $(PERL_EMBED_CCOPTS))
- Sedat -
>
> with my clang version:
>
> $ clang --version
> clang version 13.0.0 (Fedora 13.0.0-3.fc35)
> Target: x86_64-redhat-linux-gnu
> Thread model: posix
> InstalledDir: /usr/bin
>
> so you need to figure out how to compile the test program
> above first with clang
>
> jirka
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Linux-v5.17-rc6] Building tools/perf with perl v5.34
2022-03-06 16:00 ` Sedat Dilek
@ 2022-03-07 16:35 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 10+ messages in thread
From: Arnaldo Carvalho de Melo @ 2022-03-07 16:35 UTC (permalink / raw)
To: Sedat Dilek
Cc: Jiri Olsa, Peter Zijlstra, Ingo Molnar, Mark Rutland,
Alexander Shishkin, Jiri Olsa, Namhyung Kim, linux-perf-users,
linux-kernel
Em Sun, Mar 06, 2022 at 05:00:22PM +0100, Sedat Dilek escreveu:
> On Sun, Mar 6, 2022 at 4:42 PM Jiri Olsa <olsajiri@gmail.com> wrote:
> > I'm getting some other lto related error:
> >
> > $ cat test-libperl.make.output
> > clang-13: error: optimization flag '-ffat-lto-objects' is not supported [-Werror,-Wignored-optimization-argument]
> >
> I was thinking about syncing the flags for both feature test-perl and
> perf/libperl-support.
> tools/build/feature/Makefile
> tools/perf/Makefile.config
> So, I guess FLAGS_PERL_EMBED differs.
> For building perf '-ffat-lto-objects' is filtered-out...
> $ git grep ffat-lto-objects tools/perf/
> tools/perf/Makefile.config: PERL_EMBED_CCOPTS := $(filter-out
> -flto=auto -ffat-lto-objects, $(PERL_EMBED_CCOPTS))
Right, with the patch below I can build with clang 13. It would be nice
to have this defined into just one place, but for now, for 5.17 the
minimal fix is preferred, can you send a proper patch, s-o-b, etc?
- Arnaldo
diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
index 1480910c792e2cb3..869073cf84493083 100644
--- a/tools/build/feature/Makefile
+++ b/tools/build/feature/Makefile
@@ -218,6 +218,7 @@ PERL_EMBED_LDOPTS = $(shell perl -MExtUtils::Embed -e ldopts 2>/dev/null)
PERL_EMBED_LDFLAGS = $(call strip-libs,$(PERL_EMBED_LDOPTS))
PERL_EMBED_LIBADD = $(call grep-libs,$(PERL_EMBED_LDOPTS))
PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts 2>/dev/null`
+PERL_EMBED_CCOPTS := $(filter-out -ffat-lto-objects, $(PERL_EMBED_CCOPTS))
FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS)
$(OUTPUT)test-libperl.bin:
^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-03-07 16:36 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-03-05 7:52 [Linux-v5.17-rc6] Building tools/perf with perl v5.34 Sedat Dilek
2022-03-05 7:57 ` Sedat Dilek
2022-03-05 8:26 ` Sedat Dilek
2022-03-05 11:11 ` Sedat Dilek
2022-03-05 20:09 ` Jiri Olsa
2022-03-06 2:28 ` Sedat Dilek
2022-03-06 3:18 ` Sedat Dilek
2022-03-06 15:42 ` Jiri Olsa
2022-03-06 16:00 ` Sedat Dilek
2022-03-07 16:35 ` Arnaldo Carvalho de Melo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox