Re: [PATCH 1/2] perf: Be compatible with all python versions when fetching ldflags
From: Arnaldo Melo
Date: Wed Mar 25 2020 - 21:13:20 EST
On March 25, 2020 5:31:15 PM GMT-03:00, Sam Lunt <samueljlunt@xxxxxxxxx> wrote:
>On Wed, Mar 25, 2020 at 2:26 PM Arnaldo Carvalho de Melo
><arnaldo.melo@xxxxxxxxx> wrote:
>>
>> Em Wed, Mar 25, 2020 at 09:40:34AM -0500, Sam Lunt escreveu:
>> > 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
>>
>> Humm, but shouldn't this continue to work with python3.7?
>
>Oh, my mistake, I didn't read the output carefully. It should
>obviously still work with old versions, yes. I actually submitted a
>similar patch, and it seemed to work when I used python 3.7. I wonder
>if the issue is the "||" operator in the subshell.
>
>https://lore.kernel.org/lkml/20200131181123.tmamivhq4b7uqasr@xxxxxxxxx/
I'm aware of your path, even for confused by your comment here, will it try it tomorrow
>
>
>> - Arnaldo
>>
>> > > [acme@five perf]$ cat /etc/redhat-release
>> > > Fedora release 31 (Thirty One)
>> > > [acme@five perf]$
>> > >
>> > > - Arnaldo
>>
>> --
>>
>> - Arnaldo
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.