Re: [PATCH 2/3] perf build: Use libtraceevent from the system

From: Arnaldo Carvalho de Melo
Date: Tue Dec 06 2022 - 12:14:09 EST


Em Tue, Dec 06, 2022 at 02:07:32PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Tue, Dec 06, 2022 at 02:01:43PM -0300, Arnaldo Carvalho de Melo escreveu:
> > Em Tue, Dec 06, 2022 at 01:41:41PM -0300, Arnaldo Carvalho de Melo escreveu:
> > > Now to look at the BUILD_BPF_SKEL=1 kaboom:
> > >
> > > [acme@quaco perf]$ alias m
> > > alias m='rm -rf ~/libexec/perf-core/ ; make -k NO_LIBTRACEEVENT=1 BUILD_BPF_SKEL=1 O=/tmp/build/perf -C tools/perf install-bin && perf test python'
> > > [acme@quaco perf]$ m
> > > make: Entering directory '/home/acme/git/perf/tools/perf'
> > > BUILD: Doing 'make -j8' parallel build
> > > <SNIP>
> > > /usr/bin/ld: /tmp/build/perf/perf-in.o: in function `add_work':
> > > /home/acme/git/perf/tools/perf/util/bpf_kwork.c:285: undefined reference to `perf_kwork_add_work'
> > > /usr/bin/ld: /tmp/build/perf/perf-in.o: in function `lock_contention_read':
>
> For that bpf_kwork.c see below. Now to see why the python binding is not
> building, I guess is unrelated and you have some other outstanding
> patch?

Its related:

[acme@quaco perf]$ perf test -v python
Couldn't bump rlimit(MEMLOCK), failures may take place when creating BPF maps, etc
14: 'import perf' in python :
--- start ---
test child forked, pid 1669872
python usage test: "echo "import sys ; sys.path.append('/tmp/build/perf/python'); import perf" | '/usr/bin/python3' "
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: /tmp/build/perf/python/perf.cpython-310-x86_64-linux-gnu.so: undefined symbol: tep_unload_plugins
test child finished with -1
---- end ----
'import perf' in python: FAILED!
[acme@quaco perf]$

Now checking why NO_LIBTRACEEVENT=1 fails with this...

[acme@quaco perf]$ find tools/perf/ -name "*.c" | xargs grep tep_unload_plugins
tools/perf/util/trace-event.c: tep_unload_plugins(t->plugin_list, t->pevent);
[acme@quaco perf]$

[acme@quaco perf]$ grep trace-event tools/perf/util/python-ext-sources
util/trace-event.c
[acme@quaco perf]$

Trying to fix...