summaryrefslogtreecommitdiffstats
path: root/Doc/whatsnew
diff options
context:
space:
mode:
authorE. M. Bray <erik.bray@lri.fr>2019-05-24 15:33:47 (GMT)
committerVictor Stinner <vstinner@redhat.com>2019-05-24 15:33:47 (GMT)
commitc994c8fc196a167c57c8850e8abdee170d366eec (patch)
tree91b6151165264da2965ef85baaa0cbb420ed67f5 /Doc/whatsnew
parent438a12dd9d85f463c0bb7bf1505cd87b98b98170 (diff)
downloadcpython-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.rst17
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`,