Re: [PATCH 1/2] perf: Be compatible with all python versions when fetching ldflags

From: Arnaldo Carvalho de Melo
Date: Wed Mar 25 2020 - 09:30:20 EST


Em Mon, Feb 17, 2020 at 10:24:27AM +0800, He Zhe escreveu:
>
>
> On 2/17/20 6:22 AM, Jiri Olsa wrote:
> > On Fri, Feb 14, 2020 at 02:21:05AM +0800, zhe.he@xxxxxxxxxxxxx wrote:
> >> From: He Zhe <zhe.he@xxxxxxxxxxxxx>
> >>
> >> Since Python v3.8.0, with the following commit
> >> 0a8e57248b91 ("bpo-36721: Add --embed option to python-config (GH-13500)"),
> > we got similar change recently.. might have not been picked up yet
> >
> > https://lore.kernel.org/lkml/20200131181123.tmamivhq4b7uqasr@xxxxxxxxx/
>
> Thanks for pointing out.

So, just with your patch:

[acme@five perf]$ rm -rf /tmp/build/perf ; mkdir -p /tmp/build/perf
[acme@five perf]$ make PYTHON=python3 -C tools/perf O=/tmp/build/perf install-bin |& grep python
... libpython: [ OFF ]
Makefile.config:750: No 'Python.h' (for Python 2.x support) was found: disables Python support - please install python-devel/python-dev
CC /tmp/build/perf/tests/python-use.o
[acme@five perf]$

[acme@five perf]$ rpm -q python2-devel python3-devel python-devel
package python2-devel is not installed
python3-devel-3.7.6-2.fc31.x86_64
package python-devel is not installed
[acme@five perf]$

[acme@five perf]$ cat /tmp/build/perf/feature/test-libpython.make.output
/bin/sh: --configdir: command not found
[acme@five perf]$ cat /tmp/build/perf/feature/test-libpython
test-libpython.make.output test-libpython-version.make.output
[acme@five perf]$ cat /tmp/build/perf/feature/test-libpython-version.make.output
/bin/sh: --configdir: command not found
[acme@five perf]$


Without your patch:

[acme@five perf]$ rm -rf /tmp/build/perf ; mkdir -p /tmp/build/perf
[acme@five perf]$ make PYTHON=python3 -C tools/perf O=/tmp/build/perf install-bin |& grep python
... libpython: [ on ]
GEN /tmp/build/perf/python/perf.so
MKDIR /tmp/build/perf/scripts/python/Perf-Trace-Util/
CC /tmp/build/perf/scripts/python/Perf-Trace-Util/Context.o
LD /tmp/build/perf/scripts/python/Perf-Trace-Util/perf-in.o
CC /tmp/build/perf/tests/python-use.o
CC /tmp/build/perf/util/scripting-engines/trace-event-python.o
INSTALL python-scripts
[acme@five perf]$

[acme@five perf]$ ldd /tmp/build/perf/perf |& grep python
libpython3.7m.so.1.0 => /lib64/libpython3.7m.so.1.0 (0x00007f11dd1ee000)
[acme@five perf]$ perf -vv |& grep -i python
libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
[acme@five perf]$

What am I missing?


[acme@five perf]$ cat /etc/redhat-release
Fedora release 31 (Thirty One)
[acme@five perf]$

- Arnaldo