[Python-Dev] Use C extensions compiled in release mode on a Python compiled in debug mode (original) (raw)
Matthias Klose doko at ubuntu.com
Thu Apr 25 07:41:38 EDT 2019
- Previous message (by thread): [Python-Dev] Use C extensions compiled in release mode on a Python compiled in debug mode
- Next message (by thread): [Python-Dev] Use C extensions compiled in release mode on a Python compiled in debug mode
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 25.04.19 13:26, Victor Stinner wrote:
I looked how fonforge gets compiler and linker flags to embed Python: it seems like to "pkg-config --libs python-2.7" which returns "-lpython2.7". My PR doesn't change Misc/python.pc. Should I modify Misc/python.pc as well... or not? :-) I'm not used to pkg-config. I don't know if it's common that C extensions are built using pkg-config. I guess that distutils is more commonly used to build C extensions.
... except for all the software which is doing some embedding (e.g. vim), or is building some bindings as part of the upstream software. So yes, there is some stuff ...
The tendency seems to deprecate your own config helper in favor of pkgconfig. However I'm not sure how this would do with the current MacOS python-config python script. If we want to differentiate between embedding and extensions, then we need two different module names, maybe keeping the current one for extensions, and having a new one for embedding.
Not sure about python-config, if we want a new helper for embedding, or add new options for the existing script.
Victor
Le jeu. 25 avr. 2019 à 12:53, Victor Stinner <vstinner at redhat.com> a écrit : Le jeu. 25 avr. 2019 à 09:30, Matthias Klose <doko at ubuntu.com> a écrit :
the purpose of python-config here is not clear. Whether it's intended to be used for linking extensions, or embedded interpreters. Currently you are using the same for both use cases.
My PR 12946 removes libpython from distutils, python-config and python-config.py: https://github.com/python/cpython/pull/12946 Do you mean that this change will break the build of applications embedding Python? If yes, what can done to fix that? Provide a different script to the specific case of embedded Python? Or add a new option to specify that you are embedding Python? In Python 3.7, the required linker flag is "-lpython3.7m". It's not trivial to guess the "m" suffix. FYI Python 3.8 it becames just "-lpython3.8": I removed the "m" suffix which was useless. Victor -- Night gathers, and now my watch begins. It shall not end until my death.
- Previous message (by thread): [Python-Dev] Use C extensions compiled in release mode on a Python compiled in debug mode
- Next message (by thread): [Python-Dev] Use C extensions compiled in release mode on a Python compiled in debug mode
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]