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

From: Sam Lunt
Date: Wed Mar 25 2020 - 10:40:50 EST


On Wed, Mar 25, 2020 at 8:30 AM Arnaldo Carvalho de Melo
<arnaldo.melo@xxxxxxxxx> wrote:
>
> 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?

It looks like you are using python3.7, but the change in behavior for
python-config happened in version 3.8

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