python-utils-r1.eclass: Enable hardlinking of identical pyc files for py3.9+

Python 3.9 includes a new feature for compileall to automatically hardlink
different optimization level cache files if they are identical. Make use of it
for python_optimize for some space savings.
This however does not cover distutils use cases and python itself.

Signed-off-by: Mart Raudsepp <leio@gentoo.org>
Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
Mart Raudsepp
2021-08-12 19:04:19 +02:00
committed by Michał Górny
parent bd906f543d
commit 7a9b4f552e
+4 -1
View File
@@ -601,12 +601,15 @@ python_optimize() {
"${PYTHON}" -m compileall -q -f -d "${instpath}" "${d}"
"${PYTHON}" -OO -m compileall -q -f -d "${instpath}" "${d}"
;;
python*|pypy3)
python3.[5678]|pypy3)
# both levels of optimization are separate since 3.5
"${PYTHON}" -m compileall -q -f -d "${instpath}" "${d}"
"${PYTHON}" -O -m compileall -q -f -d "${instpath}" "${d}"
"${PYTHON}" -OO -m compileall -q -f -d "${instpath}" "${d}"
;;
python*)
"${PYTHON}" -m compileall -o 0 -o 1 -o 2 --hardlink-dupes -q -f -d "${instpath}" "${d}"
;;
*)
"${PYTHON}" -m compileall -q -f -d "${instpath}" "${d}"
;;