Re: [PATCH 2/2] trace-cmd: Change the way of getting python ldflags.
From: Zamir SUN
Date: Fri Mar 23 2018 - 08:20:04 EST
On 03/23/2018 07:13 AM, Steven Rostedt wrote:
> On Sun, 4 Feb 2018 11:20:14 +0800
> sztsian@xxxxxxxxx wrote:
>
>> From: Zamir SUN <sztsian@xxxxxxxxx>
>>
>> Prior than this patch, Makefile detects python ldflags using a hardcoded
>> python command. It will cause problems if we are building against
>> python3 in the future when ldflags for python2 and python3 are
>> different. With this patch, python ldflags are detected by
>> corresponding python{,3}-config which will detect the right config for
>> python plugins.
>>
>> Signed-off-by: Zamir SUN (Red Hat) <sztsian@xxxxxxxxx>
>> ---
>> Makefile | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/Makefile b/Makefile
>> index 7c0d1a6..f41e399 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -636,7 +636,7 @@ report_noswig: force
>>
>> PYTHON_INCLUDES = `pkg-config --cflags $(PYTHON_VERS)`
>> PYTHON_LDFLAGS = `pkg-config --libs $(PYTHON_VERS)` \
>> - $(shell python2 -c "import distutils.sysconfig; print distutils.sysconfig.get_config_var('LINKFORSHARED')")
>> + $(shell $(PYTHON_VERS)-config --ldflags)
>> PYGTK_CFLAGS = `pkg-config --cflags pygtk-2.0`
>>
>> ctracecmd.so: $(TCMD_LIB_OBJS) ctracecmd.i
>
> BTW, I did have this applied, but when testing it caused warnings. I
> had to apply this patch to fix it:
>
> -- Steve
Thanks for the info!
I am always using Fedora and Python is always preloaded so I did not
think of this scenario.
>
> From d5579b729114135da20bcee6896a0683ff54f33a Mon Sep 17 00:00:00 2001
> From: "Steven Rostedt (VMware)" <rostedt@xxxxxxxxxxx>
> Date: Thu, 22 Mar 2018 18:38:22 -0400
> Subject: [PATCH] trace-cmd build: Do not execute python scripts if there is no
> python
>
> I was triggering the following build messages when not having swig installed:
>
> make: -config: Command not found
>
> NO_PYTHON forced: swig not installed, not compiling python plugins
>
> make: -config: Command not found
> UPDATE trace_python_dir
> make: -config: Command not found
>
> This is due to the executing of $(PYTHON_VERS)-config, which would just turn
> into "-config". Do not assign the PYTHON_* variables if NO_PYTHON is
> defined.
>
> Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
> ---
> Makefile | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/Makefile b/Makefile
> index 2c82301..26fd42b 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -373,10 +373,16 @@ report_nopythondev: force
> $(Q)echo " python-dev is not installed, not compiling python plugins"
> $(Q)echo
>
> +ifndef NO_PYTHON
> PYTHON_INCLUDES = `pkg-config --cflags $(PYTHON_VERS)`
> PYTHON_LDFLAGS = `pkg-config --libs $(PYTHON_VERS)` \
> $(shell $(PYTHON_VERS)-config --ldflags)
> PYGTK_CFLAGS = `pkg-config --cflags pygtk-2.0`
> +else
> +PYTHON_INCLUDES =
> +PYTHON_LDFLAGS =
> +PYGTK_CFLAGS =
> +endif
>
> export PYTHON_INCLUDES
> export PYTHON_LDFLAGS
>
--
Zamir SUN
Fedora user
GPG : 1D86 6D4A 49CE 4BBD 72CF FCF5 D856 6E11 F2A0 525E