[issue35257] Avoid leaking linker flags into distutils: add PY_LDFLAGS_NODIST
STINNER Victor
report at bugs.python.org
Wed Dec 19 11:38:36 EST 2018
STINNER Victor <vstinner at redhat.com> added the comment:
TL; DR PR 10900 passed my manual tests ;-)
I made some tests on PR 10900, commit d1655f939d0eeeca24c2a4fee635da087e0d499b, using 3 shell scripts.
(1) step1.sh:
--
set -x -e
git clean -fdx
./configure CC=clang --with-lto --prefix /opt/py38
make 2>&1|tee log
grep -E -- '-o python|-o Python/bltinmodule.o|Modules/_asynciomodule.o' log|grep -c lto
# 4 expected: -flto passed to compiler *and* linker
--
(2) step2.sh:
--
set -e -x
rm -rf /opt/py38
mkdir /opt/py38
make install
/opt/py38/bin/python3.8-config --cflags --ldflags --libs|grep -c lto ||:
# "0" expected here: no LTO
LD_LIBRARY_PATH=/opt/py38/lib /opt/py38/bin/python3.8 -c 'import sysconfig; print("lto" in sysconfig.get_config_var("LDFLAGS"))'
# "False" expected: no LTO in LDFLAGS
--
(3) step3.sh:
--
set -e -x
tar -xf ../Pillow-5.3.0.tar.gz
cd Pillow-5.3.0/
LD_LIBRARY_PATH=/opt/py38/lib /opt/py38/bin/python3.8 setup.py install 2>&1|tee log
grep -c lto log
--
Get Pillow tarball using:
wget https://files.pythonhosted.org/packages/1b/e1/1118d60e9946e4e77872b69c58bc2f28448ec02c99a2ce456cd1a272c5fd/Pillow-5.3.0.tar.gz
== master ==
master branch, ./configure CC=clang --with-lto:
(1) 4
(2) 0, True => ERR
(3) 5 => ERR
master branch, ./configure CC=clang --with-lto --enable-shared:
(1) 4
(2) 0, True => ERR
(3) 5 => ERR
== PR ==
With PR 10900, ./configure CC=clang --with-lto:
(1) 4
(2) 0, False => OK!
(3) 0 => OK!
With PR 10900, ./configure CC=clang --with-lto --enable-shared:
(1) 4
(2) 0, False => OK!
(3) 0 => OK!
----------
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue35257>
_______________________________________
More information about the Python-bugs-list
mailing list