setup: relax -Werror for declaration-after-statement on Python 3.9
authorAugie Fackler <augie@google.com>
Wed, 25 Mar 2020 11:56:47 -0400
changeset 44605 960770add699
parent 44602 a89aa2d7b34d
child 44606 862025f108c7
setup: relax -Werror for declaration-after-statement on Python 3.9 It turns out Python 3.9 introduces such declarations in the headers, eg cpython/abstract.h:189:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] so we have to be more relaxed when compiling for 3.9. Differential Revision: https://phab.mercurial-scm.org/D8327
setup.py
--- a/setup.py	Wed Mar 25 08:28:20 2020 -0700
+++ b/setup.py	Wed Mar 25 11:56:47 2020 -0400
@@ -1270,8 +1270,9 @@
 
 common_cflags = []
 
-# MSVC 2008 still needs declarations at the top of the scope.
-if os.name != 'nt':
+# MSVC 2008 still needs declarations at the top of the scope, but Python 3.9
+# makes declarations not at the top of a scope in the headers.
+if os.name != 'nt' and sys.version_info[1] < 9:
     common_cflags = ['-Werror=declaration-after-statement']
 
 osutil_cflags = []