build: try calling python-config with --embed
authorSimon Marchi <simon.marchi@efficios.com>
Sun, 29 Dec 2019 22:27:04 +0000 (17:27 -0500)
committerSimon Marchi <simon.marchi@efficios.com>
Tue, 7 Jan 2020 15:27:33 +0000 (15:27 +0000)
commit2d786d152cfbc684e9c800929debd423d6c56812
tree06eb1cfa8f24bcea1761f0e39eaad2efabc3b623
parent5c61fb9d5be835a0efc87f7764117c4d05e0ae5a
build: try calling python-config with --embed

To get the flags required to link an application with Python 3.8 (such
as to embed Python in the application), it is necessary to use the
"--embed" flag of python-config.  These flags include "-lpython3.8".
Without "--embed", the printed flags are for building a Python
extension.  These don't require being linked with the Python library,
since they are dlopen'ed by the library itself.

Our Python plugin provider requires being linked with Python, since it
embeds a Python interpreter.  Since we don't use "--embed" currently
when getting link flags, we don't link with the Python library, and
therefore the provider is not usable with Python 3.8.

The solution proposed here:

  https://docs.python.org/3/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build

is to try calling python-config with --embed first, and then without if
that didn't work.  With this patch, I am able to use the Python plugin
provider with Python 3.8.

Change-Id: I0c0e61dd3bded853abf124c651efe98ee7700101
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/2726
Reviewed-by: Michael Jeanson <mjeanson@efficios.com>
configure.ac
This page took 0.024464 seconds and 4 git commands to generate.