diff options
-rw-r--r-- | Lib/test/test_cext/setup.py | 23 | ||||
-rw-r--r-- | Lib/test/test_cppext/__init__.py | 3 | ||||
-rw-r--r-- | Lib/test/test_cppext/setup.py | 24 |
3 files changed, 30 insertions, 20 deletions
diff --git a/Lib/test/test_cext/setup.py b/Lib/test/test_cext/setup.py index d6c4410..17a90ca 100644 --- a/Lib/test/test_cext/setup.py +++ b/Lib/test/test_cext/setup.py @@ -39,19 +39,22 @@ def main(): if std: if support.MS_WINDOWS: cflags.append(f'/std:{std}') - std_prefix = '/std' else: cflags.append(f'-std={std}') - std_prefix = '-std' - # Remove existing -std options to only test ours - cmd = (sysconfig.get_config_var('CC') or '') - if cmd is not None: - cmd = shlex.split(cmd) - cmd = [arg for arg in cmd if not arg.startswith(std_prefix)] - cmd = shlex.join(cmd) - # CC env var overrides sysconfig CC variable in setuptools - os.environ['CC'] = cmd + # Remove existing -std or /std options from CC command line. + # Python adds -std=c11 option. + cmd = (sysconfig.get_config_var('CC') or '') + if cmd is not None: + if support.MS_WINDOWS: + std_prefix = '/std' + else: + std_prefix = '-std' + cmd = shlex.split(cmd) + cmd = [arg for arg in cmd if not arg.startswith(std_prefix)] + cmd = shlex.join(cmd) + # CC env var overrides sysconfig CC variable in setuptools + os.environ['CC'] = cmd # Define Py_LIMITED_API macro if limited: diff --git a/Lib/test/test_cppext/__init__.py b/Lib/test/test_cppext/__init__.py index b8414f2..00a2840 100644 --- a/Lib/test/test_cppext/__init__.py +++ b/Lib/test/test_cppext/__init__.py @@ -35,6 +35,9 @@ class TestCPPExt(unittest.TestCase): def test_build_cpp11(self): self.check_build('_testcpp11ext', std='c++11') + # Only test C++14 on MSVC. + # On s390x RHEL7, GCC 4.8.5 doesn't support C++14. + @unittest.skipIf(not support.MS_WINDOWS, "need Windows") def test_build_cpp14(self): self.check_build('_testcpp14ext', std='c++14') diff --git a/Lib/test/test_cppext/setup.py b/Lib/test/test_cppext/setup.py index 77e47bc..80b3e0d 100644 --- a/Lib/test/test_cppext/setup.py +++ b/Lib/test/test_cppext/setup.py @@ -35,19 +35,23 @@ def main(): if std: if support.MS_WINDOWS: cppflags.append(f'/std:{std}') - std_prefix = '/std' else: cppflags.append(f'-std={std}') - std_prefix = '-std' - # Remove existing -std options to only test ours - cmd = (sysconfig.get_config_var('CC') or '') - if cmd is not None: - cmd = shlex.split(cmd) - cmd = [arg for arg in cmd if not arg.startswith(std_prefix)] - cmd = shlex.join(cmd) - # CC env var overrides sysconfig CC variable in setuptools - os.environ['CC'] = cmd + # gh-105776: When "gcc -std=11" is used as the C++ compiler, -std=c11 + # option emits a C++ compiler warning. Remove "-std11" option from the + # CC command. + cmd = (sysconfig.get_config_var('CC') or '') + if cmd is not None: + if support.MS_WINDOWS: + std_prefix = '/std' + else: + std_prefix = '-std' + cmd = shlex.split(cmd) + cmd = [arg for arg in cmd if not arg.startswith(std_prefix)] + cmd = shlex.join(cmd) + # CC env var overrides sysconfig CC variable in setuptools + os.environ['CC'] = cmd # On Windows, add PCbuild\amd64\ to include and library directories include_dirs = [] |