maintainer-feedback requested: [Bug 258377] lang/python36 lang/python37 lang/python38 lang/python39 lang/python310: disable detection of multiarch for clang 13
Date: Wed, 08 Sep 2021 22:14:46 UTC
Bugzilla Automation <bugzilla@FreeBSD.org> has asked freebsd-python (Nobody) <python@FreeBSD.org> for maintainer-feedback: Bug 258377: lang/python36 lang/python37 lang/python38 lang/python39 lang/python310: disable detection of multiarch for clang 13 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258377 --- Description --- During an exp-run for llvm 13 (see bug 258209), it turned out that lang/python3([6-9]|10) do not build with clang 13.0.0 [1][2][3][4][5]: LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python36/work/Python-3.6.14 CC='cc' LDSHARED='cc -shared -lpthread -L/usr/local/lib -fstack-protector-strong ' OPT='-DNDEBUG' _TCLTK_INCLUDES='' _TCLTK_LIBS='' ./python -E ./setup.py -q build Failed to import the site module Traceback (most recent call last): File "/wrkdirs/usr/ports/lang/python36/work/Python-3.6.14/Lib/site.py", line 553, in <module> main() File "/wrkdirs/usr/ports/lang/python36/work/Python-3.6.14/Lib/site.py", line 539, in main known_paths = addusersitepackages(known_paths) File "/wrkdirs/usr/ports/lang/python36/work/Python-3.6.14/Lib/site.py", line 282, in addusersitepackages user_site = getusersitepackages() File "/wrkdirs/usr/ports/lang/python36/work/Python-3.6.14/Lib/site.py", line 258, in getusersitepackages user_base = getuserbase() # this will also set USER_BASE File "/wrkdirs/usr/ports/lang/python36/work/Python-3.6.14/Lib/site.py", line 248, in getuserbase USER_BASE = get_config_var('userbase') File "/wrkdirs/usr/ports/lang/python36/work/Python-3.6.14/Lib/sysconfig.py", line 601, in get_config_var return get_config_vars().get(name) File "/wrkdirs/usr/ports/lang/python36/work/Python-3.6.14/Lib/sysconfig.py", line 550, in get_config_vars _init_posix(_CONFIG_VARS) File "/wrkdirs/usr/ports/lang/python36/work/Python-3.6.14/Lib/sysconfig.py", line 421, in _init_posix _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0) ModuleNotFoundError: No module named '_sysconfigdata_m_freebsd14_x86_64-unknown-freebsd14' *** Error code 1 The reason this breaks with clang >= 13, is that it now started supporting the -print-multiarch option, but in its output it adds a major.minor version number, for example x86_64-unknown-freebsd14.0. The dot confuses Python, as it appends the multiarch name to the sysconfig module name, and then can't load the resulting _sysconfigdata__freebsd14_x86_64-unknown-freebsd14.0.py file: ModuleNotFoundError: No module named '_sysconfigdata__freebsd14_x86_64-unknown-freebsd14' Since we do not support multiarch, and the configure script has no way to disable the multiarch check, I would like to propose to just stub it out during post-patch, as per the attached diff. [1] http://gohan04.nyi.freebsd.org/data/mainamd64PR258209-default/2021-09-05_20h27m 09s/logs/errors/python36-3.6.14.log [2] http://gohan04.nyi.freebsd.org/data/mainamd64PR258209-default/2021-09-05_20h27m 09s/logs/errors/python37-3.7.11.log [3] http://gohan04.nyi.freebsd.org/data/mainamd64PR258209-default/2021-09-05_20h27m 09s/logs/errors/python38-3.8.11.log [4] http://gohan04.nyi.freebsd.org/data/mainamd64PR258209-default/2021-09-05_20h27m 09s/logs/errors/python39-3.9.7.log [5] http://gohan04.nyi.freebsd.org/data/mainamd64PR258209-default/2021-09-05_20h27m 09s/logs/errors/python310-3.10.0.r1.log