[Python-checkins] bpo-30923: Silence fall-through warnings in libexpat build. (#3205)

Stefan Krah webhook-mailer at python.org
Fri Aug 25 08:07:52 EDT 2017


https://github.com/python/cpython/commit/9e1e6f528f3fec16b9bd99f5ee38048ffec04a81
commit: 9e1e6f528f3fec16b9bd99f5ee38048ffec04a81
branch: master
author: Stefan Krah <skrah at bytereef.org>
committer: GitHub <noreply at github.com>
date: 2017-08-25T14:07:50+02:00
summary:

bpo-30923: Silence fall-through warnings in libexpat build. (#3205)

files:
M setup.py

diff --git a/setup.py b/setup.py
index f3c2538345e..36a52bc6aac 100644
--- a/setup.py
+++ b/setup.py
@@ -1518,6 +1518,7 @@ class db_found(Exception): pass
         if '--with-system-expat' in sysconfig.get_config_var("CONFIG_ARGS"):
             expat_inc = []
             define_macros = []
+            extra_compile_args = []
             expat_lib = ['expat']
             expat_sources = []
             expat_depends = []
@@ -1529,6 +1530,7 @@ class db_found(Exception): pass
                 # call XML_SetHashSalt(), expat entropy sources are not needed
                 ('XML_POOR_ENTROPY', '1'),
             ]
+            extra_compile_args = []
             expat_lib = []
             expat_sources = ['expat/xmlparse.c',
                              'expat/xmlrole.c',
@@ -1546,8 +1548,15 @@ class db_found(Exception): pass
                              'expat/xmltok_impl.h'
                              ]
 
+            cc = sysconfig.get_config_var('CC').split()[0]
+            ret = os.system(
+                      '"%s" -Werror -Wimplicit-fallthrough -E -xc /dev/null >/dev/null 2>&1' % cc)
+            if ret >> 8 == 0:
+                extra_compile_args.append('-Wno-implicit-fallthrough')
+
         exts.append(Extension('pyexpat',
                               define_macros = define_macros,
+                              extra_compile_args = extra_compile_args,
                               include_dirs = expat_inc,
                               libraries = expat_lib,
                               sources = ['pyexpat.c'] + expat_sources,



More information about the Python-checkins mailing list