Matej Stuchlik 0624726
diff --git a/Makefile.pre.in b/Makefile.pre.in
Matej Stuchlik 0624726
--- a/Makefile.pre.in
Matej Stuchlik 0624726
+++ b/Makefile.pre.in
Matej Stuchlik 0624726
@@ -71,12 +71,17 @@
Matej Stuchlik 0624726
 BASECFLAGS=	@BASECFLAGS@
Matej Stuchlik 0624726
 BASECPPFLAGS=	@BASECPPFLAGS@
Matej Stuchlik 0624726
 CONFIGURE_CFLAGS=	@CFLAGS@
Matej Stuchlik 0624726
+# CFLAGS_NODIST is used for building the interpreter and stdlib C extensions.
Matej Stuchlik 0624726
+# Use it when a compiler flag should _not_ be part of the distutils CFLAGS
Matej Stuchlik 0624726
+# once Python is installed (Issue #21121).
Matej Stuchlik 0624726
+CONFIGURE_CFLAGS_NODIST=@CFLAGS_NODIST@
Matej Stuchlik 0624726
 CONFIGURE_CPPFLAGS=	@CPPFLAGS@
Matej Stuchlik 0624726
 CONFIGURE_LDFLAGS=	@LDFLAGS@
Matej Stuchlik 0624726
 # Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the
Matej Stuchlik 0624726
 # command line to append to these values without stomping the pre-set
Matej Stuchlik 0624726
 # values.
Matej Stuchlik 0624726
 PY_CFLAGS=	$(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
Matej Stuchlik 0624726
+PY_CFLAGS_NODIST=$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST)
Matej Stuchlik 0624726
 # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to
Matej Stuchlik 0624726
 # be able to build extension modules using the directories specified in the
Matej Stuchlik 0624726
 # environment variables
Matej Stuchlik 0624726
@@ -91,7 +96,7 @@
Matej Stuchlik 0624726
 # Extra C flags added for building the interpreter object files.
Matej Stuchlik 0624726
 CFLAGSFORSHARED=@CFLAGSFORSHARED@
Matej Stuchlik 0624726
 # C flags used for building the interpreter object files
Matej Stuchlik 0624726
-PY_CORE_CFLAGS=	$(PY_CFLAGS) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
Matej Stuchlik 0624726
+PY_CORE_CFLAGS=	$(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
Matej Stuchlik 0624726
 
Matej Stuchlik 0624726
 
Matej Stuchlik 0624726
 # Machine-dependent subdirectories
Matej Stuchlik 0624726
diff --git a/configure b/configure
Matej Stuchlik 0624726
--- a/configure
Matej Stuchlik 0624726
+++ b/configure
Matej Stuchlik 0624726
@@ -662,6 +662,7 @@
Matej Stuchlik 0624726
 LIBTOOL_CRUFT
Matej Stuchlik 0624726
 OTHER_LIBTOOL_OPT
Matej Stuchlik 0624726
 UNIVERSAL_ARCH_FLAGS
Matej Stuchlik 0624726
+CFLAGS_NODIST
Matej Stuchlik 0624726
 BASECFLAGS
Matej Stuchlik 0624726
 OPT
Matej Stuchlik 0624726
 ABIFLAGS
Matej Stuchlik 0624726
@@ -6504,7 +6505,7 @@
Matej Stuchlik 0624726
 
Matej Stuchlik 0624726
     if test $ac_cv_declaration_after_statement_warning = yes
Matej Stuchlik 0624726
     then
Matej Stuchlik 0624726
-      BASECFLAGS="$BASECFLAGS -Werror=declaration-after-statement"
Matej Stuchlik 0624726
+      CFLAGS_NODIST="$CFLAGS_NODIST -Werror=declaration-after-statement"
Matej Stuchlik 0624726
     fi
Matej Stuchlik 0624726
 
Matej Stuchlik 0624726
     # if using gcc on alpha, use -mieee to get (near) full IEEE 754
Matej Stuchlik 0624726
diff --git a/configure.ac b/configure.ac
Matej Stuchlik 0624726
--- a/configure.ac
Matej Stuchlik 0624726
+++ b/configure.ac
Matej Stuchlik 0624726
@@ -1147,6 +1147,7 @@
Matej Stuchlik 0624726
 fi
Matej Stuchlik 0624726
 
Matej Stuchlik 0624726
 AC_SUBST(BASECFLAGS)
Matej Stuchlik 0624726
+AC_SUBST(CFLAGS_NODIST)
Matej Stuchlik 0624726
 
Matej Stuchlik 0624726
 # The -arch flags for universal builds on OSX
Matej Stuchlik 0624726
 UNIVERSAL_ARCH_FLAGS=
Matej Stuchlik 0624726
@@ -1231,7 +1232,7 @@
Matej Stuchlik 0624726
 
Matej Stuchlik 0624726
     if test $ac_cv_declaration_after_statement_warning = yes
Matej Stuchlik 0624726
     then
Matej Stuchlik 0624726
-      BASECFLAGS="$BASECFLAGS -Werror=declaration-after-statement"
Matej Stuchlik 0624726
+      CFLAGS_NODIST="$CFLAGS_NODIST -Werror=declaration-after-statement"
Matej Stuchlik 0624726
     fi
Matej Stuchlik 0624726
 
Matej Stuchlik 0624726
     # if using gcc on alpha, use -mieee to get (near) full IEEE 754
Matej Stuchlik 0624726
diff --git a/setup.py b/setup.py
Matej Stuchlik 0624726
--- a/setup.py
Matej Stuchlik 0624726
+++ b/setup.py
Matej Stuchlik 0624726
@@ -19,6 +19,12 @@
Matej Stuchlik 0624726
 
Matej Stuchlik 0624726
 cross_compiling = "_PYTHON_HOST_PLATFORM" in os.environ
Matej Stuchlik 0624726
 
Matej Stuchlik 0624726
+# Add special CFLAGS reserved for building the interpreter and the stdlib
Matej Stuchlik 0624726
+# modules (Issue #21121).
Matej Stuchlik 0624726
+cflags = sysconfig.get_config_var('CFLAGS')
Matej Stuchlik 0624726
+py_cflags_nodist = sysconfig.get_config_var('PY_CFLAGS_NODIST')
Matej Stuchlik 0624726
+sysconfig.get_config_vars()['CFLAGS'] = cflags + ' ' + py_cflags_nodist
Matej Stuchlik 0624726
+
Matej Stuchlik 0624726
 def get_platform():
Matej Stuchlik 0624726
     # cross build
Matej Stuchlik 0624726
     if "_PYTHON_HOST_PLATFORM" in os.environ: