Having CFLAGS come before OPT prevents silencing certain classes of warnings
from the fact that OPT contains -Wall be default. This is annoying when
compilers like clang have thorough debugging information about things that
Python does extensively (e.g. -Wunused-value for unused return values caused by
a macro use).
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 69a3199..2b36b87 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -59,7 +59,7 @@
 # Compiler options
 OPT=		@OPT@
 BASECFLAGS=	@BASECFLAGS@
-CFLAGS=		$(BASECFLAGS) @CFLAGS@ $(OPT) $(EXTRA_CFLAGS)
+CFLAGS=		$(BASECFLAGS) $(OPT) @CFLAGS@ $(EXTRA_CFLAGS)
 # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to
 # be able to build extension modules using the directories specified in the
 # environment variables
diff --git a/Misc/NEWS b/Misc/NEWS
index 982ef70..a9b19dc 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -1461,6 +1461,8 @@
 Build
 -----
 
+- Have CFLAGS come after OPT to allow for overriding warnings flags.
+
 - Issue #8854: Fix finding Visual Studio 2008 on Windows x64.
 
 - Issue #1759169, #8864: Drop _XOPEN_SOURCE on Solaris, define it for