Issue 36722: In debug build, load also C extensions compiled in release mode or compiled using the stable ABI (original) (raw)
bpo-36465 modified the ABI of debug build so release and debug build now have the same ABI.
bpo-21536 modified how C extensions are built: they are no longer linked to libpython.
In a debug build, it becomes possible to load a C extension built in release mode: https://bugs.python.org/issue21536#msg340821
But I had to modify SOABI for that.
I propose to modify how Python looks for C extensions: look also for dynamic libraries without the "d" SOABI flag and for C extensions built using the stable ABI.
Release build:
$ ./python -c 'import _imp; print(_imp.extension_suffixes())' ['.cpython-38-x86_64-linux-gnu.so', '.abi3.so', '.so']
Debug build, WITHOUT my change:
$ ./python -c 'import _imp; print(_imp.extension_suffixes())' ['.cpython-38d-x86_64-linux-gnu.so', '.so']
Debug build, WITH my change:
$ ./python -c 'import _imp; print(_imp.extension_suffixes())' ['.cpython-38d-x86_64-linux-gnu.so', '.cpython-38-x86_64-linux-gnu.so', '.abi3.so', '.so']