Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update python #18388

Merged
merged 1 commit into from
Feb 6, 2025
Merged

Update python #18388

merged 1 commit into from
Feb 6, 2025

Conversation

yosifkit
Copy link
Member

@yosifkit yosifkit commented Feb 5, 2025

Changes:

Changes:

- docker-library/python@0330f0ba: Update 3.13 to 3.13.2
- docker-library/python@9c50e071: Update 3.12 to 3.12.9
- docker-library/python@393cf619: Merge pull request docker-library/python#1003 from infosiftr/less-leaf
- docker-library/python@3186ee40: Fix builds for `arm32vX`, `mips64le`, `ppc64le`, `riscv64`, and `s390x`
Copy link

github-actions bot commented Feb 5, 2025

Diff for 93a749d:
diff --git a/_bashbrew-cat b/_bashbrew-cat
index 5a17af0..7e2423e 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -95,145 +95,145 @@ Architectures: amd64, arm32v7, arm64v8, i386
 GitCommit: ded42cf92d68bb878c8a1a9a4f3c86bad6023f4e
 Directory: 3.11/slim-bullseye
 
-Tags: 3.12.8-alpine3.20, 3.12-alpine3.20
+Tags: 3.12.9-alpine3.20, 3.12-alpine3.20
 Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 9c50e071f7445d04776485e28d208d39c25fbbaa
 Directory: 3.12/alpine3.20
 
-Tags: 3.12.8-alpine3.21, 3.12-alpine3.21, 3.12.8-alpine, 3.12-alpine
+Tags: 3.12.9-alpine3.21, 3.12-alpine3.21, 3.12.9-alpine, 3.12-alpine
 Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 9c50e071f7445d04776485e28d208d39c25fbbaa
 Directory: 3.12/alpine3.21
 
-Tags: 3.12.8-bookworm, 3.12-bookworm
-SharedTags: 3.12.8, 3.12
+Tags: 3.12.9-bookworm, 3.12-bookworm
+SharedTags: 3.12.9, 3.12
 Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 9c50e071f7445d04776485e28d208d39c25fbbaa
 Directory: 3.12/bookworm
 
-Tags: 3.12.8-bullseye, 3.12-bullseye
+Tags: 3.12.9-bullseye, 3.12-bullseye
 Architectures: amd64, arm32v7, arm64v8, i386
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 9c50e071f7445d04776485e28d208d39c25fbbaa
 Directory: 3.12/bullseye
 
-Tags: 3.12.8-slim-bookworm, 3.12-slim-bookworm, 3.12.8-slim, 3.12-slim
+Tags: 3.12.9-slim-bookworm, 3.12-slim-bookworm, 3.12.9-slim, 3.12-slim
 Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 9c50e071f7445d04776485e28d208d39c25fbbaa
 Directory: 3.12/slim-bookworm
 
-Tags: 3.12.8-slim-bullseye, 3.12-slim-bullseye
+Tags: 3.12.9-slim-bullseye, 3.12-slim-bullseye
 Architectures: amd64, arm32v7, arm64v8, i386
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 9c50e071f7445d04776485e28d208d39c25fbbaa
 Directory: 3.12/slim-bullseye
 
-Tags: 3.12.8-windowsservercore-1809, 3.12-windowsservercore-1809
-SharedTags: 3.12.8-windowsservercore, 3.12-windowsservercore, 3.12.8, 3.12
+Tags: 3.12.9-windowsservercore-1809, 3.12-windowsservercore-1809
+SharedTags: 3.12.9-windowsservercore, 3.12-windowsservercore, 3.12.9, 3.12
 Architectures: windows-amd64
-GitCommit: 23c83c5a82646e123df33d056f7dfbe1d78cfc8b
+GitCommit: 9c50e071f7445d04776485e28d208d39c25fbbaa
 Directory: 3.12/windows/windowsservercore-1809
 Builder: classic
 Constraints: windowsservercore-1809
 
-Tags: 3.12.8-windowsservercore-ltsc2022, 3.12-windowsservercore-ltsc2022
-SharedTags: 3.12.8-windowsservercore, 3.12-windowsservercore, 3.12.8, 3.12
+Tags: 3.12.9-windowsservercore-ltsc2022, 3.12-windowsservercore-ltsc2022
+SharedTags: 3.12.9-windowsservercore, 3.12-windowsservercore, 3.12.9, 3.12
 Architectures: windows-amd64
-GitCommit: 23c83c5a82646e123df33d056f7dfbe1d78cfc8b
+GitCommit: 9c50e071f7445d04776485e28d208d39c25fbbaa
 Directory: 3.12/windows/windowsservercore-ltsc2022
 Builder: classic
 Constraints: windowsservercore-ltsc2022
 
-Tags: 3.12.8-windowsservercore-ltsc2025, 3.12-windowsservercore-ltsc2025
-SharedTags: 3.12.8-windowsservercore, 3.12-windowsservercore, 3.12.8, 3.12
+Tags: 3.12.9-windowsservercore-ltsc2025, 3.12-windowsservercore-ltsc2025
+SharedTags: 3.12.9-windowsservercore, 3.12-windowsservercore, 3.12.9, 3.12
 Architectures: windows-amd64
-GitCommit: 3a0299db7160774f6927c944acc9485730b13015
+GitCommit: 9c50e071f7445d04776485e28d208d39c25fbbaa
 Directory: 3.12/windows/windowsservercore-ltsc2025
 Builder: classic
 Constraints: windowsservercore-ltsc2025
 
-Tags: 3.13.1-alpine3.20, 3.13-alpine3.20, 3-alpine3.20, alpine3.20
+Tags: 3.13.2-alpine3.20, 3.13-alpine3.20, 3-alpine3.20, alpine3.20
 Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 0330f0baedb296c8806a869d04fe76838f721647
 Directory: 3.13/alpine3.20
 
-Tags: 3.13.1-alpine3.21, 3.13-alpine3.21, 3-alpine3.21, alpine3.21, 3.13.1-alpine, 3.13-alpine, 3-alpine, alpine
+Tags: 3.13.2-alpine3.21, 3.13-alpine3.21, 3-alpine3.21, alpine3.21, 3.13.2-alpine, 3.13-alpine, 3-alpine, alpine
 Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 0330f0baedb296c8806a869d04fe76838f721647
 Directory: 3.13/alpine3.21
 
-Tags: 3.13.1-bookworm, 3.13-bookworm, 3-bookworm, bookworm
-SharedTags: 3.13.1, 3.13, 3, latest
+Tags: 3.13.2-bookworm, 3.13-bookworm, 3-bookworm, bookworm
+SharedTags: 3.13.2, 3.13, 3, latest
 Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 0330f0baedb296c8806a869d04fe76838f721647
 Directory: 3.13/bookworm
 
-Tags: 3.13.1-bullseye, 3.13-bullseye, 3-bullseye, bullseye
+Tags: 3.13.2-bullseye, 3.13-bullseye, 3-bullseye, bullseye
 Architectures: amd64, arm32v7, arm64v8, i386
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 0330f0baedb296c8806a869d04fe76838f721647
 Directory: 3.13/bullseye
 
-Tags: 3.13.1-slim-bookworm, 3.13-slim-bookworm, 3-slim-bookworm, slim-bookworm, 3.13.1-slim, 3.13-slim, 3-slim, slim
+Tags: 3.13.2-slim-bookworm, 3.13-slim-bookworm, 3-slim-bookworm, slim-bookworm, 3.13.2-slim, 3.13-slim, 3-slim, slim
 Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 0330f0baedb296c8806a869d04fe76838f721647
 Directory: 3.13/slim-bookworm
 
-Tags: 3.13.1-slim-bullseye, 3.13-slim-bullseye, 3-slim-bullseye, slim-bullseye
+Tags: 3.13.2-slim-bullseye, 3.13-slim-bullseye, 3-slim-bullseye, slim-bullseye
 Architectures: amd64, arm32v7, arm64v8, i386
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 0330f0baedb296c8806a869d04fe76838f721647
 Directory: 3.13/slim-bullseye
 
-Tags: 3.13.1-windowsservercore-1809, 3.13-windowsservercore-1809, 3-windowsservercore-1809, windowsservercore-1809
-SharedTags: 3.13.1-windowsservercore, 3.13-windowsservercore, 3-windowsservercore, windowsservercore, 3.13.1, 3.13, 3, latest
+Tags: 3.13.2-windowsservercore-1809, 3.13-windowsservercore-1809, 3-windowsservercore-1809, windowsservercore-1809
+SharedTags: 3.13.2-windowsservercore, 3.13-windowsservercore, 3-windowsservercore, windowsservercore, 3.13.2, 3.13, 3, latest
 Architectures: windows-amd64
-GitCommit: da7ef3c71d3ecd87a43018a372b3e3590d88dd98
+GitCommit: 0330f0baedb296c8806a869d04fe76838f721647
 Directory: 3.13/windows/windowsservercore-1809
 Builder: classic
 Constraints: windowsservercore-1809
 
-Tags: 3.13.1-windowsservercore-ltsc2022, 3.13-windowsservercore-ltsc2022, 3-windowsservercore-ltsc2022, windowsservercore-ltsc2022
-SharedTags: 3.13.1-windowsservercore, 3.13-windowsservercore, 3-windowsservercore, windowsservercore, 3.13.1, 3.13, 3, latest
+Tags: 3.13.2-windowsservercore-ltsc2022, 3.13-windowsservercore-ltsc2022, 3-windowsservercore-ltsc2022, windowsservercore-ltsc2022
+SharedTags: 3.13.2-windowsservercore, 3.13-windowsservercore, 3-windowsservercore, windowsservercore, 3.13.2, 3.13, 3, latest
 Architectures: windows-amd64
-GitCommit: da7ef3c71d3ecd87a43018a372b3e3590d88dd98
+GitCommit: 0330f0baedb296c8806a869d04fe76838f721647
 Directory: 3.13/windows/windowsservercore-ltsc2022
 Builder: classic
 Constraints: windowsservercore-ltsc2022
 
-Tags: 3.13.1-windowsservercore-ltsc2025, 3.13-windowsservercore-ltsc2025, 3-windowsservercore-ltsc2025, windowsservercore-ltsc2025
-SharedTags: 3.13.1-windowsservercore, 3.13-windowsservercore, 3-windowsservercore, windowsservercore, 3.13.1, 3.13, 3, latest
+Tags: 3.13.2-windowsservercore-ltsc2025, 3.13-windowsservercore-ltsc2025, 3-windowsservercore-ltsc2025, windowsservercore-ltsc2025
+SharedTags: 3.13.2-windowsservercore, 3.13-windowsservercore, 3-windowsservercore, windowsservercore, 3.13.2, 3.13, 3, latest
 Architectures: windows-amd64
-GitCommit: 3a0299db7160774f6927c944acc9485730b13015
+GitCommit: 0330f0baedb296c8806a869d04fe76838f721647
 Directory: 3.13/windows/windowsservercore-ltsc2025
 Builder: classic
 Constraints: windowsservercore-ltsc2025
 
 Tags: 3.14.0a4-alpine3.20, 3.14-rc-alpine3.20
 Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 3186ee4081313711105e1e30a163248db67d5618
 Directory: 3.14-rc/alpine3.20
 
 Tags: 3.14.0a4-alpine3.21, 3.14-rc-alpine3.21, 3.14.0a4-alpine, 3.14-rc-alpine
 Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 3186ee4081313711105e1e30a163248db67d5618
 Directory: 3.14-rc/alpine3.21
 
 Tags: 3.14.0a4-bookworm, 3.14-rc-bookworm
 SharedTags: 3.14.0a4, 3.14-rc
 Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 3186ee4081313711105e1e30a163248db67d5618
 Directory: 3.14-rc/bookworm
 
 Tags: 3.14.0a4-bullseye, 3.14-rc-bullseye
 Architectures: amd64, arm32v7, arm64v8, i386
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 3186ee4081313711105e1e30a163248db67d5618
 Directory: 3.14-rc/bullseye
 
 Tags: 3.14.0a4-slim-bookworm, 3.14-rc-slim-bookworm, 3.14.0a4-slim, 3.14-rc-slim
 Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 3186ee4081313711105e1e30a163248db67d5618
 Directory: 3.14-rc/slim-bookworm
 
 Tags: 3.14.0a4-slim-bullseye, 3.14-rc-slim-bullseye
 Architectures: amd64, arm32v7, arm64v8, i386
-GitCommit: 5b0aaddf4f4e887cad27aee3ca99a0c698693c5a
+GitCommit: 3186ee4081313711105e1e30a163248db67d5618
 Directory: 3.14-rc/slim-bullseye
 
 Tags: 3.14.0a4-windowsservercore-1809, 3.14-rc-windowsservercore-1809
diff --git a/_bashbrew-list b/_bashbrew-list
index 53da0b7..f4f4074 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -78,19 +78,19 @@ python:3.12-windowsservercore
 python:3.12-windowsservercore-1809
 python:3.12-windowsservercore-ltsc2022
 python:3.12-windowsservercore-ltsc2025
-python:3.12.8
-python:3.12.8-alpine
-python:3.12.8-alpine3.20
-python:3.12.8-alpine3.21
-python:3.12.8-bookworm
-python:3.12.8-bullseye
-python:3.12.8-slim
-python:3.12.8-slim-bookworm
-python:3.12.8-slim-bullseye
-python:3.12.8-windowsservercore
-python:3.12.8-windowsservercore-1809
-python:3.12.8-windowsservercore-ltsc2022
-python:3.12.8-windowsservercore-ltsc2025
+python:3.12.9
+python:3.12.9-alpine
+python:3.12.9-alpine3.20
+python:3.12.9-alpine3.21
+python:3.12.9-bookworm
+python:3.12.9-bullseye
+python:3.12.9-slim
+python:3.12.9-slim-bookworm
+python:3.12.9-slim-bullseye
+python:3.12.9-windowsservercore
+python:3.12.9-windowsservercore-1809
+python:3.12.9-windowsservercore-ltsc2022
+python:3.12.9-windowsservercore-ltsc2025
 python:3.13
 python:3.13-alpine
 python:3.13-alpine3.20
@@ -104,19 +104,19 @@ python:3.13-windowsservercore
 python:3.13-windowsservercore-1809
 python:3.13-windowsservercore-ltsc2022
 python:3.13-windowsservercore-ltsc2025
-python:3.13.1
-python:3.13.1-alpine
-python:3.13.1-alpine3.20
-python:3.13.1-alpine3.21
-python:3.13.1-bookworm
-python:3.13.1-bullseye
-python:3.13.1-slim
-python:3.13.1-slim-bookworm
-python:3.13.1-slim-bullseye
-python:3.13.1-windowsservercore
-python:3.13.1-windowsservercore-1809
-python:3.13.1-windowsservercore-ltsc2022
-python:3.13.1-windowsservercore-ltsc2025
+python:3.13.2
+python:3.13.2-alpine
+python:3.13.2-alpine3.20
+python:3.13.2-alpine3.21
+python:3.13.2-bookworm
+python:3.13.2-bullseye
+python:3.13.2-slim
+python:3.13.2-slim-bookworm
+python:3.13.2-slim-bullseye
+python:3.13.2-windowsservercore
+python:3.13.2-windowsservercore-1809
+python:3.13.2-windowsservercore-ltsc2022
+python:3.13.2-windowsservercore-ltsc2025
 python:3.14-rc
 python:3.14-rc-alpine
 python:3.14-rc-alpine3.20
diff --git a/python_3.12-alpine/Dockerfile b/python_3.12-alpine/Dockerfile
index ecfa2e5..e99437d 100644
--- a/python_3.12-alpine/Dockerfile
+++ b/python_3.12-alpine/Dockerfile
@@ -22,8 +22,8 @@ RUN set -eux; \
 	;
 
 ENV GPG_KEY 7169605F62C751356D054A26A821E680E5FA6305
-ENV PYTHON_VERSION 3.12.8
-ENV PYTHON_SHA256 c909157bb25ec114e5869124cc2a9c4a4d4c1e957ca4ff553f1edc692101154e
+ENV PYTHON_VERSION 3.12.9
+ENV PYTHON_SHA256 7220835d9f90b37c006e9842a8dff4580aaca4318674f947302b8d28f3f81112
 
 RUN set -eux; \
 	\
@@ -84,10 +84,24 @@ RUN set -eux; \
 # https://github.com/alpinelinux/aports/commit/2026e1259422d4e0cf92391ca2d3844356c649d0
 	EXTRA_CFLAGS="-DTHREAD_STACK_SIZE=0x100000"; \
 	LDFLAGS="${LDFLAGS:--Wl},--strip-all"; \
+		arch="$(apk --print-arch)"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			x86_64|aarch64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			x86) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_3.12-alpine3.20/Dockerfile b/python_3.12-alpine3.20/Dockerfile
index 738425f..72c66a1 100644
--- a/python_3.12-alpine3.20/Dockerfile
+++ b/python_3.12-alpine3.20/Dockerfile
@@ -22,8 +22,8 @@ RUN set -eux; \
 	;
 
 ENV GPG_KEY 7169605F62C751356D054A26A821E680E5FA6305
-ENV PYTHON_VERSION 3.12.8
-ENV PYTHON_SHA256 c909157bb25ec114e5869124cc2a9c4a4d4c1e957ca4ff553f1edc692101154e
+ENV PYTHON_VERSION 3.12.9
+ENV PYTHON_SHA256 7220835d9f90b37c006e9842a8dff4580aaca4318674f947302b8d28f3f81112
 
 RUN set -eux; \
 	\
@@ -84,10 +84,24 @@ RUN set -eux; \
 # https://github.com/alpinelinux/aports/commit/2026e1259422d4e0cf92391ca2d3844356c649d0
 	EXTRA_CFLAGS="-DTHREAD_STACK_SIZE=0x100000"; \
 	LDFLAGS="${LDFLAGS:--Wl},--strip-all"; \
+		arch="$(apk --print-arch)"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			x86_64|aarch64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			x86) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_3.12-bookworm/Dockerfile b/python_3.12-bookworm/Dockerfile
index 03a5677..4b68e5c 100644
--- a/python_3.12-bookworm/Dockerfile
+++ b/python_3.12-bookworm/Dockerfile
@@ -25,8 +25,8 @@ RUN set -eux; \
 	rm -rf /var/lib/apt/lists/*
 
 ENV GPG_KEY 7169605F62C751356D054A26A821E680E5FA6305
-ENV PYTHON_VERSION 3.12.8
-ENV PYTHON_SHA256 c909157bb25ec114e5869124cc2a9c4a4d4c1e957ca4ff553f1edc692101154e
+ENV PYTHON_VERSION 3.12.9
+ENV PYTHON_SHA256 7220835d9f90b37c006e9842a8dff4580aaca4318674f947302b8d28f3f81112
 
 RUN set -eux; \
 	\
@@ -56,10 +56,24 @@ RUN set -eux; \
 	nproc="$(nproc)"; \
 	EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \
 	LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; \
+		arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			amd64|arm64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			i386) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_3.12-bullseye/Dockerfile b/python_3.12-bullseye/Dockerfile
index c50e64a..822284f 100644
--- a/python_3.12-bullseye/Dockerfile
+++ b/python_3.12-bullseye/Dockerfile
@@ -25,8 +25,8 @@ RUN set -eux; \
 	rm -rf /var/lib/apt/lists/*
 
 ENV GPG_KEY 7169605F62C751356D054A26A821E680E5FA6305
-ENV PYTHON_VERSION 3.12.8
-ENV PYTHON_SHA256 c909157bb25ec114e5869124cc2a9c4a4d4c1e957ca4ff553f1edc692101154e
+ENV PYTHON_VERSION 3.12.9
+ENV PYTHON_SHA256 7220835d9f90b37c006e9842a8dff4580aaca4318674f947302b8d28f3f81112
 
 RUN set -eux; \
 	\
@@ -56,10 +56,24 @@ RUN set -eux; \
 	nproc="$(nproc)"; \
 	EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \
 	LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; \
+		arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			amd64|arm64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			i386) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_3.12-slim-bullseye/Dockerfile b/python_3.12-slim-bullseye/Dockerfile
index cfc48bc..3e20ec1 100644
--- a/python_3.12-slim-bullseye/Dockerfile
+++ b/python_3.12-slim-bullseye/Dockerfile
@@ -25,8 +25,8 @@ RUN set -eux; \
 	rm -rf /var/lib/apt/lists/*
 
 ENV GPG_KEY 7169605F62C751356D054A26A821E680E5FA6305
-ENV PYTHON_VERSION 3.12.8
-ENV PYTHON_SHA256 c909157bb25ec114e5869124cc2a9c4a4d4c1e957ca4ff553f1edc692101154e
+ENV PYTHON_VERSION 3.12.9
+ENV PYTHON_SHA256 7220835d9f90b37c006e9842a8dff4580aaca4318674f947302b8d28f3f81112
 
 RUN set -eux; \
 	\
@@ -82,10 +82,24 @@ RUN set -eux; \
 	EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \
 	LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; \
 	LDFLAGS="${LDFLAGS:--Wl},--strip-all"; \
+		arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			amd64|arm64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			i386) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_3.12-slim/Dockerfile b/python_3.12-slim/Dockerfile
index f2f30c0..216e4b9 100644
--- a/python_3.12-slim/Dockerfile
+++ b/python_3.12-slim/Dockerfile
@@ -25,8 +25,8 @@ RUN set -eux; \
 	rm -rf /var/lib/apt/lists/*
 
 ENV GPG_KEY 7169605F62C751356D054A26A821E680E5FA6305
-ENV PYTHON_VERSION 3.12.8
-ENV PYTHON_SHA256 c909157bb25ec114e5869124cc2a9c4a4d4c1e957ca4ff553f1edc692101154e
+ENV PYTHON_VERSION 3.12.9
+ENV PYTHON_SHA256 7220835d9f90b37c006e9842a8dff4580aaca4318674f947302b8d28f3f81112
 
 RUN set -eux; \
 	\
@@ -82,10 +82,24 @@ RUN set -eux; \
 	EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \
 	LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; \
 	LDFLAGS="${LDFLAGS:--Wl},--strip-all"; \
+		arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			amd64|arm64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			i386) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_3.12-windowsservercore-1809/Dockerfile b/python_3.12-windowsservercore-1809/Dockerfile
index da58b94..f183af9 100644
--- a/python_3.12-windowsservercore-1809/Dockerfile
+++ b/python_3.12-windowsservercore-1809/Dockerfile
@@ -11,8 +11,8 @@ SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPref
 # https://github.com/docker-library/python/pull/557
 ENV PYTHONIOENCODING UTF-8
 
-ENV PYTHON_VERSION 3.12.8
-ENV PYTHON_SHA256 71bd44e6b0e91c17558963557e4cdb80b483de9b0a0a9717f06cf896f95ab598
+ENV PYTHON_VERSION 3.12.9
+ENV PYTHON_SHA256 2a52993092a19cfdffe126e2eeac46a4265e25705614546604ad44988e040c0f
 
 RUN $url = ('https://www.python.org/ftp/python/{0}/python-{1}-amd64.exe' -f ($env:PYTHON_VERSION -replace '[a-z]+[0-9]*$', ''), $env:PYTHON_VERSION); \
 	Write-Host ('Downloading {0} ...' -f $url); \
diff --git a/python_3.12-windowsservercore-ltsc2022/Dockerfile b/python_3.12-windowsservercore-ltsc2022/Dockerfile
index cfbea35..08d77fb 100644
--- a/python_3.12-windowsservercore-ltsc2022/Dockerfile
+++ b/python_3.12-windowsservercore-ltsc2022/Dockerfile
@@ -11,8 +11,8 @@ SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPref
 # https://github.com/docker-library/python/pull/557
 ENV PYTHONIOENCODING UTF-8
 
-ENV PYTHON_VERSION 3.12.8
-ENV PYTHON_SHA256 71bd44e6b0e91c17558963557e4cdb80b483de9b0a0a9717f06cf896f95ab598
+ENV PYTHON_VERSION 3.12.9
+ENV PYTHON_SHA256 2a52993092a19cfdffe126e2eeac46a4265e25705614546604ad44988e040c0f
 
 RUN $url = ('https://www.python.org/ftp/python/{0}/python-{1}-amd64.exe' -f ($env:PYTHON_VERSION -replace '[a-z]+[0-9]*$', ''), $env:PYTHON_VERSION); \
 	Write-Host ('Downloading {0} ...' -f $url); \
diff --git a/python_3.12-windowsservercore-ltsc2025/Dockerfile b/python_3.12-windowsservercore-ltsc2025/Dockerfile
index 24c711b..97cf61e 100644
--- a/python_3.12-windowsservercore-ltsc2025/Dockerfile
+++ b/python_3.12-windowsservercore-ltsc2025/Dockerfile
@@ -11,8 +11,8 @@ SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPref
 # https://github.com/docker-library/python/pull/557
 ENV PYTHONIOENCODING UTF-8
 
-ENV PYTHON_VERSION 3.12.8
-ENV PYTHON_SHA256 71bd44e6b0e91c17558963557e4cdb80b483de9b0a0a9717f06cf896f95ab598
+ENV PYTHON_VERSION 3.12.9
+ENV PYTHON_SHA256 2a52993092a19cfdffe126e2eeac46a4265e25705614546604ad44988e040c0f
 
 RUN $url = ('https://www.python.org/ftp/python/{0}/python-{1}-amd64.exe' -f ($env:PYTHON_VERSION -replace '[a-z]+[0-9]*$', ''), $env:PYTHON_VERSION); \
 	Write-Host ('Downloading {0} ...' -f $url); \
diff --git a/python_3.14-rc-alpine/Dockerfile b/python_3.14-rc-alpine/Dockerfile
index aef7089..3d3a528 100644
--- a/python_3.14-rc-alpine/Dockerfile
+++ b/python_3.14-rc-alpine/Dockerfile
@@ -72,10 +72,24 @@ RUN set -eux; \
 # https://github.com/alpinelinux/aports/commit/2026e1259422d4e0cf92391ca2d3844356c649d0
 	EXTRA_CFLAGS="-DTHREAD_STACK_SIZE=0x100000"; \
 	LDFLAGS="${LDFLAGS:--Wl},--strip-all"; \
+		arch="$(apk --print-arch)"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			x86_64|aarch64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			x86) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_3.14-rc-alpine3.20/Dockerfile b/python_3.14-rc-alpine3.20/Dockerfile
index 9ecd7cc..8549564 100644
--- a/python_3.14-rc-alpine3.20/Dockerfile
+++ b/python_3.14-rc-alpine3.20/Dockerfile
@@ -72,10 +72,24 @@ RUN set -eux; \
 # https://github.com/alpinelinux/aports/commit/2026e1259422d4e0cf92391ca2d3844356c649d0
 	EXTRA_CFLAGS="-DTHREAD_STACK_SIZE=0x100000"; \
 	LDFLAGS="${LDFLAGS:--Wl},--strip-all"; \
+		arch="$(apk --print-arch)"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			x86_64|aarch64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			x86) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_3.14-rc-bookworm/Dockerfile b/python_3.14-rc-bookworm/Dockerfile
index 87bcfdb..0ee240f 100644
--- a/python_3.14-rc-bookworm/Dockerfile
+++ b/python_3.14-rc-bookworm/Dockerfile
@@ -44,10 +44,24 @@ RUN set -eux; \
 	nproc="$(nproc)"; \
 	EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \
 	LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; \
+		arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			amd64|arm64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			i386) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_3.14-rc-bullseye/Dockerfile b/python_3.14-rc-bullseye/Dockerfile
index 503461b..2f5fbf4 100644
--- a/python_3.14-rc-bullseye/Dockerfile
+++ b/python_3.14-rc-bullseye/Dockerfile
@@ -44,10 +44,24 @@ RUN set -eux; \
 	nproc="$(nproc)"; \
 	EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \
 	LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; \
+		arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			amd64|arm64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			i386) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_3.14-rc-slim-bullseye/Dockerfile b/python_3.14-rc-slim-bullseye/Dockerfile
index d449c28..bd59101 100644
--- a/python_3.14-rc-slim-bullseye/Dockerfile
+++ b/python_3.14-rc-slim-bullseye/Dockerfile
@@ -70,10 +70,24 @@ RUN set -eux; \
 	EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \
 	LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; \
 	LDFLAGS="${LDFLAGS:--Wl},--strip-all"; \
+		arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			amd64|arm64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			i386) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_3.14-rc-slim/Dockerfile b/python_3.14-rc-slim/Dockerfile
index 74ad70f..c3e7e6b 100644
--- a/python_3.14-rc-slim/Dockerfile
+++ b/python_3.14-rc-slim/Dockerfile
@@ -70,10 +70,24 @@ RUN set -eux; \
 	EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \
 	LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; \
 	LDFLAGS="${LDFLAGS:--Wl},--strip-all"; \
+		arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			amd64|arm64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			i386) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_alpine/Dockerfile b/python_alpine/Dockerfile
index 2fb507f..4201a67 100644
--- a/python_alpine/Dockerfile
+++ b/python_alpine/Dockerfile
@@ -17,8 +17,8 @@ RUN set -eux; \
 	;
 
 ENV GPG_KEY 7169605F62C751356D054A26A821E680E5FA6305
-ENV PYTHON_VERSION 3.13.1
-ENV PYTHON_SHA256 9cf9427bee9e2242e3877dd0f6b641c1853ca461f39d6503ce260a59c80bf0d9
+ENV PYTHON_VERSION 3.13.2
+ENV PYTHON_SHA256 d984bcc57cd67caab26f7def42e523b1c015bbc5dc07836cf4f0b63fa159eb56
 
 RUN set -eux; \
 	\
@@ -79,10 +79,24 @@ RUN set -eux; \
 # https://github.com/alpinelinux/aports/commit/2026e1259422d4e0cf92391ca2d3844356c649d0
 	EXTRA_CFLAGS="-DTHREAD_STACK_SIZE=0x100000"; \
 	LDFLAGS="${LDFLAGS:--Wl},--strip-all"; \
+		arch="$(apk --print-arch)"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			x86_64|aarch64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			x86) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_alpine3.20/Dockerfile b/python_alpine3.20/Dockerfile
index 4782178..0ef6abd 100644
--- a/python_alpine3.20/Dockerfile
+++ b/python_alpine3.20/Dockerfile
@@ -17,8 +17,8 @@ RUN set -eux; \
 	;
 
 ENV GPG_KEY 7169605F62C751356D054A26A821E680E5FA6305
-ENV PYTHON_VERSION 3.13.1
-ENV PYTHON_SHA256 9cf9427bee9e2242e3877dd0f6b641c1853ca461f39d6503ce260a59c80bf0d9
+ENV PYTHON_VERSION 3.13.2
+ENV PYTHON_SHA256 d984bcc57cd67caab26f7def42e523b1c015bbc5dc07836cf4f0b63fa159eb56
 
 RUN set -eux; \
 	\
@@ -79,10 +79,24 @@ RUN set -eux; \
 # https://github.com/alpinelinux/aports/commit/2026e1259422d4e0cf92391ca2d3844356c649d0
 	EXTRA_CFLAGS="-DTHREAD_STACK_SIZE=0x100000"; \
 	LDFLAGS="${LDFLAGS:--Wl},--strip-all"; \
+		arch="$(apk --print-arch)"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			x86_64|aarch64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			x86) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_bookworm/Dockerfile b/python_bookworm/Dockerfile
index 96f6389..852f6bc 100644
--- a/python_bookworm/Dockerfile
+++ b/python_bookworm/Dockerfile
@@ -20,8 +20,8 @@ RUN set -eux; \
 	rm -rf /var/lib/apt/lists/*
 
 ENV GPG_KEY 7169605F62C751356D054A26A821E680E5FA6305
-ENV PYTHON_VERSION 3.13.1
-ENV PYTHON_SHA256 9cf9427bee9e2242e3877dd0f6b641c1853ca461f39d6503ce260a59c80bf0d9
+ENV PYTHON_VERSION 3.13.2
+ENV PYTHON_SHA256 d984bcc57cd67caab26f7def42e523b1c015bbc5dc07836cf4f0b63fa159eb56
 
 RUN set -eux; \
 	\
@@ -51,10 +51,24 @@ RUN set -eux; \
 	nproc="$(nproc)"; \
 	EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \
 	LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; \
+		arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			amd64|arm64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			i386) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_bullseye/Dockerfile b/python_bullseye/Dockerfile
index d1a2581..2d73736 100644
--- a/python_bullseye/Dockerfile
+++ b/python_bullseye/Dockerfile
@@ -20,8 +20,8 @@ RUN set -eux; \
 	rm -rf /var/lib/apt/lists/*
 
 ENV GPG_KEY 7169605F62C751356D054A26A821E680E5FA6305
-ENV PYTHON_VERSION 3.13.1
-ENV PYTHON_SHA256 9cf9427bee9e2242e3877dd0f6b641c1853ca461f39d6503ce260a59c80bf0d9
+ENV PYTHON_VERSION 3.13.2
+ENV PYTHON_SHA256 d984bcc57cd67caab26f7def42e523b1c015bbc5dc07836cf4f0b63fa159eb56
 
 RUN set -eux; \
 	\
@@ -51,10 +51,24 @@ RUN set -eux; \
 	nproc="$(nproc)"; \
 	EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \
 	LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; \
+		arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			amd64|arm64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			i386) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_slim-bullseye/Dockerfile b/python_slim-bullseye/Dockerfile
index d3a069c..14bde75 100644
--- a/python_slim-bullseye/Dockerfile
+++ b/python_slim-bullseye/Dockerfile
@@ -20,8 +20,8 @@ RUN set -eux; \
 	rm -rf /var/lib/apt/lists/*
 
 ENV GPG_KEY 7169605F62C751356D054A26A821E680E5FA6305
-ENV PYTHON_VERSION 3.13.1
-ENV PYTHON_SHA256 9cf9427bee9e2242e3877dd0f6b641c1853ca461f39d6503ce260a59c80bf0d9
+ENV PYTHON_VERSION 3.13.2
+ENV PYTHON_SHA256 d984bcc57cd67caab26f7def42e523b1c015bbc5dc07836cf4f0b63fa159eb56
 
 RUN set -eux; \
 	\
@@ -77,10 +77,24 @@ RUN set -eux; \
 	EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \
 	LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; \
 	LDFLAGS="${LDFLAGS:--Wl},--strip-all"; \
+		arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			amd64|arm64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			i386) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_slim/Dockerfile b/python_slim/Dockerfile
index daba872..f97b08f 100644
--- a/python_slim/Dockerfile
+++ b/python_slim/Dockerfile
@@ -20,8 +20,8 @@ RUN set -eux; \
 	rm -rf /var/lib/apt/lists/*
 
 ENV GPG_KEY 7169605F62C751356D054A26A821E680E5FA6305
-ENV PYTHON_VERSION 3.13.1
-ENV PYTHON_SHA256 9cf9427bee9e2242e3877dd0f6b641c1853ca461f39d6503ce260a59c80bf0d9
+ENV PYTHON_VERSION 3.13.2
+ENV PYTHON_SHA256 d984bcc57cd67caab26f7def42e523b1c015bbc5dc07836cf4f0b63fa159eb56
 
 RUN set -eux; \
 	\
@@ -77,10 +77,24 @@ RUN set -eux; \
 	EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \
 	LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; \
 	LDFLAGS="${LDFLAGS:--Wl},--strip-all"; \
+		arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
 # https://docs.python.org/3.12/howto/perf_profiling.html
-# But don't enable frame-pointers on 32bit x86 due to performance drop.
 # https://github.com/docker-library/python/pull/1000#issuecomment-2597021615
-	test "$gnuArch" != 'i686-linux-gnu' && EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+		case "$arch" in \
+			amd64|arm64) \
+				# only add "-mno-omit-leaf" on arches that support it
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2
+				# https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \
+				;; \
+			i386) \
+				# don't enable frame-pointers on 32bit x86 due to performance drop.
+				;; \
+			*) \
+				# other arches don't support "-mno-omit-leaf"
+				EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \
+				;; \
+		esac; \
 	make -j "$nproc" \
 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \
 		"LDFLAGS=${LDFLAGS:-}" \
diff --git a/python_windowsservercore-1809/Dockerfile b/python_windowsservercore-1809/Dockerfile
index 3669507..7736ce9 100644
--- a/python_windowsservercore-1809/Dockerfile
+++ b/python_windowsservercore-1809/Dockerfile
@@ -11,8 +11,8 @@ SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPref
 # https://github.com/docker-library/python/pull/557
 ENV PYTHONIOENCODING UTF-8
 
-ENV PYTHON_VERSION 3.13.1
-ENV PYTHON_SHA256 6b33fa9a439a86f553f9f60e538ccabc857d2f308bc77c477c04a46552ade81f
+ENV PYTHON_VERSION 3.13.2
+ENV PYTHON_SHA256 9aaa1075d0bd3e8abd0623d2d05de692ff00780579e1b232f259028bac19bb51
 
 RUN $url = ('https://www.python.org/ftp/python/{0}/python-{1}-amd64.exe' -f ($env:PYTHON_VERSION -replace '[a-z]+[0-9]*$', ''), $env:PYTHON_VERSION); \
 	Write-Host ('Downloading {0} ...' -f $url); \
diff --git a/python_windowsservercore-ltsc2022/Dockerfile b/python_windowsservercore-ltsc2022/Dockerfile
index 614c653..f15b5a9 100644
--- a/python_windowsservercore-ltsc2022/Dockerfile
+++ b/python_windowsservercore-ltsc2022/Dockerfile
@@ -11,8 +11,8 @@ SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPref
 # https://github.com/docker-library/python/pull/557
 ENV PYTHONIOENCODING UTF-8
 
-ENV PYTHON_VERSION 3.13.1
-ENV PYTHON_SHA256 6b33fa9a439a86f553f9f60e538ccabc857d2f308bc77c477c04a46552ade81f
+ENV PYTHON_VERSION 3.13.2
+ENV PYTHON_SHA256 9aaa1075d0bd3e8abd0623d2d05de692ff00780579e1b232f259028bac19bb51
 
 RUN $url = ('https://www.python.org/ftp/python/{0}/python-{1}-amd64.exe' -f ($env:PYTHON_VERSION -replace '[a-z]+[0-9]*$', ''), $env:PYTHON_VERSION); \
 	Write-Host ('Downloading {0} ...' -f $url); \
diff --git a/python_windowsservercore-ltsc2025/Dockerfile b/python_windowsservercore-ltsc2025/Dockerfile
index c0fa47f..3f6e7b1 100644
--- a/python_windowsservercore-ltsc2025/Dockerfile
+++ b/python_windowsservercore-ltsc2025/Dockerfile
@@ -11,8 +11,8 @@ SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPref
 # https://github.com/docker-library/python/pull/557
 ENV PYTHONIOENCODING UTF-8
 
-ENV PYTHON_VERSION 3.13.1
-ENV PYTHON_SHA256 6b33fa9a439a86f553f9f60e538ccabc857d2f308bc77c477c04a46552ade81f
+ENV PYTHON_VERSION 3.13.2
+ENV PYTHON_SHA256 9aaa1075d0bd3e8abd0623d2d05de692ff00780579e1b232f259028bac19bb51
 
 RUN $url = ('https://www.python.org/ftp/python/{0}/python-{1}-amd64.exe' -f ($env:PYTHON_VERSION -replace '[a-z]+[0-9]*$', ''), $env:PYTHON_VERSION); \
 	Write-Host ('Downloading {0} ...' -f $url); \

Relevant Maintainers:

@tianon tianon merged commit 275e462 into docker-library:master Feb 6, 2025
50 checks passed
@tianon tianon deleted the python branch February 6, 2025 21:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants