Patchwork D8327: setup: relax -Werror for declaration-after-statement on Python 3.9

login
register
mail settings
Submitter phabricator
Date March 25, 2020, 4:12 p.m.
Message ID <differential-rev-PHID-DREV-cix7ctxhouytgscrmc5f-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/45881/
State Superseded
Headers show

Comments

phabricator - March 25, 2020, 4:12 p.m.
durin42 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  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.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D8327

AFFECTED FILES
  setup.py

CHANGE DETAILS




To: durin42, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -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 = []