[issue45573] Use pkg-config autoconf macros to detect flags for Modules/Setup

Christian Heimes report at bugs.python.org
Fri Oct 22 11:28:16 EDT 2021


Christian Heimes <lists at cheimes.de> added the comment:

I added some whitespace to Modules/Setup. All lines starting with ``#([a-z_])`` compile cleanly on Fedora 34 with all dependencies available. dbm, tkinter, and sqlite are missing or untested.


$ sed -E -i 's/^#([a-z_])/\1/g' Modules/Setup
$ make
...
The following modules found by detect_modules() in setup.py, have been
built by the Makefile instead, as configured by the Setup files:
_abc               _asyncio           _bisect         
_blake2            _bz2               _codecs_cn      
_codecs_hk         _codecs_iso2022    _codecs_jp      
_codecs_kr         _codecs_tw         _contextvars    
_crypt             _csv               _curses         
_curses_panel      _datetime          _elementtree    
_hashlib           _heapq             _json           
_lsprof            _lzma              _md5            
_multibytecodec    _opcode            _pickle         
_posixsubprocess   _queue             _random         
_sha1              _sha256            _sha3           
_sha512            _socket            _ssl            
_statistics        _struct            _testbuffer     
_testimportmultiple   _testinternalcapi   _testmultiphase 
_typing            _xxsubinterpreters   _xxtestfuzz     
_zoneinfo          array              audioop         
binascii           cmath              fcntl           
grp                math               mmap            
nis                ossaudiodev        pwd             
pyexpat            readline           resource        
select             spwd               syslog          
termios            time               unicodedata     
xxlimited          xxlimited_35       zlib   

$  ./python -c "import sys; print(sys.builtin_module_names)"
('_abc', '_ast', '_asyncio', '_bisect', '_blake2', '_bz2', '_codecs', '_codecs_cn', '_codecs_hk', '_codecs_iso2022', '_codecs_jp', '_codecs_kr', '_codecs_tw', '_collections', '_contextvars', '_crypt', '_csv', '_curses', '_curses_panel', '_datetime', '_elementtree', '_functools', '_hashlib', '_heapq', '_imp', '_io', '_json', '_locale', '_lsprof', '_lzma', '_md5', '_multibytecodec', '_opcode', '_operator', '_pickle', '_posixsubprocess', '_queue', '_random', '_sha1', '_sha256', '_sha3', '_sha512', '_signal', '_socket', '_sre', '_ssl', '_stat', '_statistics', '_string', '_struct', '_symtable', '_testbuffer', '_testimportmultiple', '_testinternalcapi', '_testmultiphase', '_thread', '_tokenize', '_tracemalloc', '_typing', '_warnings', '_weakref', '_xxsubinterpreters', '_xxtestfuzz', '_zoneinfo', 'array', 'atexit', 'audioop', 'binascii', 'builtins', 'cmath', 'errno', 'faulthandler', 'fcntl', 'gc', 'grp', 'itertools', 'marshal', 'math', 'mmap', 'nis', 'ossaudiodev', 'posix', 'pwd', 'pyexpat', 'readline', 'resource', 'select', 'spwd', 'sys', 'syslog', 'termios', 'time', 'unicodedata', 'xx', 'xxlimited', 'xxlimited_35', 'xxsubtype', 'zlib')
$ ldd python
        linux-vdso.so.1 (0x00007fffa1f40000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6032fe2000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f6032fdb000)
        libutil.so.1 => /lib64/libutil.so.1 (0x00007f6032fd6000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f6032e92000)
        libcrypt.so.2 => /lib64/libcrypt.so.2 (0x00007f6032e58000)
        libnsl.so.2 => /lib64/libnsl.so.2 (0x00007f6032e3c000)
        libtirpc.so.3 => /lib64/libtirpc.so.3 (0x00007f6032e0a000)
        libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f6032df7000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f6032dcb000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f6032db1000)
        libreadline.so.8 => /lib64/libreadline.so.8 (0x00007f6032d59000)
        libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007f6032cbc000)
        libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f60329cc000)
        libncursesw.so.6 => /lib64/libncursesw.so.6 (0x00007f603298d000)
        libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f603295e000)
        libpanel.so.6 => /lib64/libpanel.so.6 (0x00007f6032958000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f6032789000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f6033029000)
        libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f6032732000)
        libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f6032652000)
        libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f603263a000)
        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f6032633000)
        libncurses.so.6 => /lib64/libncurses.so.6 (0x00007f6032606000)
        libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f60325f5000)
        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f60325ec000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f60325d2000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f60325a6000)
        libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f603250f000)

----------
nosy: +brett.cannon, twouters

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue45573>
_______________________________________


More information about the Python-bugs-list mailing list