@@ -48,7 +48,7 @@ RUN apt-get update && \
4848
4949# matches our production except -march=haswell, we have to downgrade -march because of GHA
5050ENV OPT="-pipe -fno-semantic-interposition -march=haswell -mabm -maes -mno-pku -mno-sgx --param l1-cache-line-size=64 --param l1-cache-size=32 --param l2-cache-size=33792"
51- # Bolt: -Wl,--emit-relocs -fno-reorder-blocks-and-partition
51+ ADD patches/cpython_configure_ac.patch patches/cpython_makefile.patch patches/cpython_rules.patch /
5252
5353# runtime environment
5454RUN echo 'deb-src http://archive.ubuntu.com/ubuntu/ jammy main restricted' >>/etc/apt/sources.list && \
@@ -61,18 +61,27 @@ RUN echo 'deb-src http://archive.ubuntu.com/ubuntu/ jammy main restricted' >>/et
6161 python3-distutils html2text libjs-sphinxdoc && \
6262 echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
6363 locale-gen && \
64+ echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy main" >>/etc/apt/sources.list.d/llvm.list && \
65+ wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
66+ apt-get update && \
67+ apt-get install -y bolt llvm && \
68+ export LLVM_SYMBOLIZER_PATH=/usr/lib/llvm-16/bin/llvm-symbolizer && \
6469 add-apt-repository -s ppa:deadsnakes/ppa && \
6570 mkdir /cpython && \
6671 cd /cpython && \
6772 apt-get source python$PYTHON_VERSION && \
6873 apt-get -s build-dep python$PYTHON_VERSION | grep "Inst " | cut -d" " -f2 | sort | tr '\n ' ' ' >build_bloat && \
6974 DEBIAN_FRONTEND="noninteractive" TZ="Europe/Madrid" apt-get build-dep -y python$PYTHON_VERSION && \
70- rm /etc/apt/sources.list.d/deadsnakes* && \
75+ rm /etc/apt/sources.list.d/deadsnakes* /etc/apt/sources.list.d/llvm.list && \
7176 cd python$PYTHON_VERSION* && \
7277 sed -i 's/__main__/__skip__/g' Tools/scripts/run_tests.py && \
7378 dch --bin-nmu -Dunstable "Optimized build" && \
7479 echo 11 >debian/compat && \
7580 sed -i 's/debhelper (>= 9)/debhelper (>= 11)/g' debian/control.in && \
81+ patch configure.ac </cpython_configure_ac.patch && \
82+ patch Makefile.pre.in </cpython_makefile.patch && \
83+ patch debian/rules </cpython_rules.patch && \
84+ rm /cpython_configure_ac.patch /cpython_makefile.patch /cpython_rules.patch && \
7685 DEB_CFLAGS_SET="$OPT" DEB_LDFLAGS_SET="$OPT" dpkg-buildpackage -uc -b -j$(getconf _NPROCESSORS_ONLN) && \
7786 cd .. && \
7887 apt-get source python3 && \
@@ -101,7 +110,7 @@ RUN echo 'deb-src http://archive.ubuntu.com/ubuntu/ jammy main restricted' >>/et
101110 python$PYTHON_VERSION-venv* \
102111 python$PYTHON_VERSION-full* && \
103112 echo "========" && ls && \
104- apt-get purge -y dpkg-dev devscripts software-properties-common html2text $(cat build_bloat) && \
113+ apt-get purge -y dpkg-dev devscripts software-properties-common html2text bolt llvm $(cat build_bloat) && \
105114 apt-get autoremove -y && \
106115 dpkg -i *python3.11*.deb && \
107116 dpkg -i python3-minimal*.deb libpython3-stdlib*.deb && \
0 commit comments