From: Taegyun Kim Date: Tue, 26 Aug 2025 23:00:43 +0000 (+0900) Subject: gh-128042: Emit a ``configure`` warning when ``-O0`` and ``--enable-optimizations... X-Git-Tag: v3.15.0a1~584 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ffaec6e2a11fb7b41facfec7d99e41b29d9d7967;p=thirdparty%2FPython%2Fcpython.git gh-128042: Emit a ``configure`` warning when ``-O0`` and ``--enable-optimizations`` are combined (#137975) Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> --- diff --git a/Misc/NEWS.d/next/Build/2025-08-26-21-18-32.gh-issue-128042.5voC8H.rst b/Misc/NEWS.d/next/Build/2025-08-26-21-18-32.gh-issue-128042.5voC8H.rst new file mode 100644 index 000000000000..fd85e0fee216 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2025-08-26-21-18-32.gh-issue-128042.5voC8H.rst @@ -0,0 +1 @@ +``./configure`` now warns when ``--enable-optimizations`` and ``CFLAGS=-O0`` are both set, suggesting removing ``-O0`` from ``CFLAGS`` for optimal performance. Patch by Taegyun Kim. diff --git a/configure b/configure index 568db406dbc6..bdeab8a6d126 100755 --- a/configure +++ b/configure @@ -8407,6 +8407,13 @@ fi if test "$Py_OPT" = 'true' ; then + # Check for conflicting CFLAGS=-O0 and --enable-optimizations + case "$CFLAGS" in + *-O0*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: CFLAGS contains -O0 which may conflict with --enable-optimizations. Consider removing -O0 from CFLAGS for optimal performance." >&5 +printf "%s\n" "$as_me: WARNING: CFLAGS contains -O0 which may conflict with --enable-optimizations. Consider removing -O0 from CFLAGS for optimal performance." >&2;} + ;; + esac # Intentionally not forcing Py_LTO='true' here. Too many toolchains do not # compile working code using it and both test_distutils and test_gdb are # broken when you do manage to get a toolchain that works with it. People diff --git a/configure.ac b/configure.ac index bbaff7f80352..991fa40746be 100644 --- a/configure.ac +++ b/configure.ac @@ -1823,6 +1823,14 @@ fi], [AC_MSG_RESULT([no])]) if test "$Py_OPT" = 'true' ; then + # Check for conflicting CFLAGS=-O0 and --enable-optimizations + case "$CFLAGS" in + *-O0*) + AC_MSG_WARN([m4_normalize([ + CFLAGS contains -O0 which may conflict with --enable-optimizations. + Consider removing -O0 from CFLAGS for optimal performance.])]) + ;; + esac # Intentionally not forcing Py_LTO='true' here. Too many toolchains do not # compile working code using it and both test_distutils and test_gdb are # broken when you do manage to get a toolchain that works with it. People