STINNER Victor <vstin...@redhat.com> added the comment:
I wrote the PR 9912 to ensure that C extensions are never linked to libpython. I tested my change using: git clean -fdx ./configure --with-pydebug --enable-shared make for SO in build/lib.*/*.so Modules/*.so; do ldd $SO|grep libpython; done # grep must not display anything I tested 3 configurations on my Fedora 28 (Linux): * ./configure --with-pydebug --enable-shared: NEVER linked * Modified Modules/Setup (*) with ./configure --with-pydebug --enable-shared: NEVER linked * ./configure --with-pydebug: NEVER linked (well, it doesn't use libpython, but I wanted to test all cases :-)) (*) I modified Modules/Setup to compile 37 C extensions as shared libraries using Makefile. Extract of Modules/Setup: errno errnomodule.c # posix (UNIX) errno values pwd pwdmodule.c # this is needed to find out the user's home dir _sre _sre.c # Fredrik Lundh's new regular expressions _codecs _codecsmodule.c # access to the builtin codecs and codec registry _weakref _weakref.c # weak references _operator _operator.c # operator.add() and similar goodies _collections _collectionsmodule.c # Container types _abc _abc.c # Abstract base classes itertools itertoolsmodule.c # Functions creating iterators for efficient looping atexit atexitmodule.c # Register functions to be run at interpreter-shutdown _stat _stat.c # stat.h interface _locale _localemodule.c # -lintl faulthandler faulthandler.c _tracemalloc _tracemalloc.c hashtable.c _symtable symtablemodule.c readline readline.c -lreadline -ltermcap array arraymodule.c # array objects cmath cmathmodule.c _math.c # -lm # complex math library functions math mathmodule.c _math.c # -lm # math library functions, e.g. sin() _contextvars _contextvarsmodule.c # Context Variables _struct _struct.c # binary structure packing/unpacking _weakref _weakref.c # basic weak reference support _testcapi _testcapimodule.c # Python C API test module _random _randommodule.c # Random number generator _pickle _pickle.c # pickle accelerator _datetime _datetimemodule.c # datetime accelerator _bisect _bisectmodule.c # Bisection algorithms _heapq _heapqmodule.c # Heap queue algorithm _asyncio _asynciomodule.c # Fast asyncio Future unicodedata unicodedata.c # static Unicode character database fcntl fcntlmodule.c # fcntl(2) and ioctl(2) spwd spwdmodule.c # spwd(3) grp grpmodule.c # grp(3) select selectmodule.c # select(2); not on ancient System V mmap mmapmodule.c _csv _csv.c _socket socketmodule.c _crypt _cryptmodule.c # -lcrypt # crypt(3); needs -lcrypt on some systems termios termios.c # Steen Lumholt's termios module resource resource.c # Jeremy Hylton's rlimit interface _posixsubprocess _posixsubprocess.c # POSIX subprocess module helper audioop audioop.c # Operations on audio samples _md5 md5module.c _sha1 sha1module.c _sha256 sha256module.c _sha512 sha512module.c syslog syslogmodule.c # syslog daemon interface _gdbm _gdbmmodule.c -I/usr/local/include -L/usr/local/lib -lgdbm binascii binascii.c parser parsermodule.c zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz xxsubtype xxsubtype.c ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue34814> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com