Issue 29641: ./configure --enable-optimizations && make && make install compiles Python twice (original) (raw)

Hi,

I compiled Python 3.7 using PGO+LTO with "make && make install", but it seems like it lacks the _sysconfigdata module.

Moreover, I don't see any "Makefile" file in the installed directory, so the "~/installed/3.7/bin/python3 -S -m sysconfig --generate-posix-vars" command fails on trying to import _sysconfigdata_m_linux_x86_64-linux-gnu ...

$ find /home/haypo/installed/3.7 -name "Makefile"

Is it correct to use "make && make install" using PGO?

cd ~/cpython make distclean ||: ./configure --enable-optimizations --with-lto --prefix=/home/haypo/installed/3.7 make clean make make install

haypo@speed-python$ ~/installed/3.7/bin/python3 Failed to import the site module Traceback (most recent call last): File "/home/haypo/installed/3.7/lib/python3.7/site.py", line 544, in main() File "/home/haypo/installed/3.7/lib/python3.7/site.py", line 530, in main known_paths = addusersitepackages(known_paths) File "/home/haypo/installed/3.7/lib/python3.7/site.py", line 282, in addusersitepackages user_site = getusersitepackages() File "/home/haypo/installed/3.7/lib/python3.7/site.py", line 258, in getusersitepackages user_base = getuserbase() # this will also set USER_BASE File "/home/haypo/installed/3.7/lib/python3.7/site.py", line 248, in getuserbase USER_BASE = get_config_var('userbase') File "/home/haypo/installed/3.7/lib/python3.7/sysconfig.py", line 601, in get_config_var return get_config_vars().get(name) File "/home/haypo/installed/3.7/lib/python3.7/sysconfig.py", line 550, in get_config_vars _init_posix(_CONFIG_VARS) File "/home/haypo/installed/3.7/lib/python3.7/sysconfig.py", line 421, in _init_posix _temp = import(name, globals(), locals(), ['build_time_vars'], 0) ModuleNotFoundError: No module named '_sysconfigdata_m_linux_x86_64-linux-gnu'

Ok, I tested again: in fact, "it works" but "make install" recompiles Python from scratch (1st build with -fprofile-generate, profile task, 2nd build with -fprofile-use) whereas "make" just succeeded to build Python!?