diff options
author | E. M. Bray <erik.bray@lri.fr> | 2019-05-24 15:33:47 (GMT) |
---|---|---|
committer | Victor Stinner <vstinner@redhat.com> | 2019-05-24 15:33:47 (GMT) |
commit | c994c8fc196a167c57c8850e8abdee170d366eec (patch) | |
tree | 91b6151165264da2965ef85baaa0cbb420ed67f5 /Doc/whatsnew | |
parent | 438a12dd9d85f463c0bb7bf1505cd87b98b98170 (diff) | |
download | cpython-c994c8fc196a167c57c8850e8abdee170d366eec.zip cpython-c994c8fc196a167c57c8850e8abdee170d366eec.tar.gz cpython-c994c8fc196a167c57c8850e8abdee170d366eec.tar.bz2 |
bpo-21536: On Cygwin, C extensions must be linked with libpython (GH-13549)
It is also possible to link against a library or executable with a
statically linked libpython, but not both with the same DLL. In fact
building a statically linked python is currently broken on Cygwin
for other (related) reasons.
The same problem applies to other POSIX-like layers over Windows
(MinGW, MSYS) but Python's build system does not seem to attempt
to support those platforms at the moment.
Diffstat (limited to 'Doc/whatsnew')
-rw-r--r-- | Doc/whatsnew/3.8.rst | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst index b91f7bc..b5d70b5 100644 --- a/Doc/whatsnew/3.8.rst +++ b/Doc/whatsnew/3.8.rst @@ -138,7 +138,8 @@ environment variable, can be set using the new ``./configure --with-trace-refs`` build option. (Contributed by Victor Stinner in :issue:`36465`.) -On Unix, C extensions are no longer linked to libpython except on Android. +On Unix, C extensions are no longer linked to libpython except on Android +and Cygwin. It is now possible for a statically linked Python to load a C extension built using a shared library Python. @@ -163,8 +164,8 @@ previous command fails (replace ``X.Y`` with the Python version). On the other hand, ``pkg-config python3.8 --libs`` no longer contains ``-lpython3.8``. C extensions must not be linked to libpython (except on -Android, case handled by the script); this change is backward incompatible on -purpose. +Android and Cygwin, whose cases are handled by the script); +this change is backward incompatible on purpose. (Contributed by Victor Stinner in :issue:`36721`.) f-strings now support = for quick and easy debugging @@ -1061,12 +1062,12 @@ Changes in the C API instead. (Contributed by Victor Stinner in :issue:`36728`.) -* On Unix, C extensions are no longer linked to libpython except on - Android. When Python is embedded, ``libpython`` must not be loaded with +* On Unix, C extensions are no longer linked to libpython except on Android + and Cygwin. When Python is embedded, ``libpython`` must not be loaded with ``RTLD_LOCAL``, but ``RTLD_GLOBAL`` instead. Previously, using - ``RTLD_LOCAL``, it was already not possible to load C extensions which were - not linked to ``libpython``, like C extensions of the standard library built - by the ``*shared*`` section of ``Modules/Setup``. + ``RTLD_LOCAL``, it was already not possible to load C extensions which + were not linked to ``libpython``, like C extensions of the standard + library built by the ``*shared*`` section of ``Modules/Setup``. * Use of ``#`` variants of formats in parsing or building value (e.g. :c:func:`PyArg_ParseTuple`, :c:func:`Py_BuildValue`, :c:func:`PyObject_CallFunction`, |