aboutsummaryrefslogtreecommitdiffstats
path: root/src/_cffi_src/build_openssl.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/_cffi_src/build_openssl.py')
-rw-r--r--src/_cffi_src/build_openssl.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/_cffi_src/build_openssl.py b/src/_cffi_src/build_openssl.py
index d3d27df6..1740cc59 100644
--- a/src/_cffi_src/build_openssl.py
+++ b/src/_cffi_src/build_openssl.py
@@ -6,6 +6,9 @@ from __future__ import absolute_import, division, print_function
import os
import sys
+from distutils import dist
+from distutils.ccompiler import get_default_compiler
+from distutils.command.config import config
from _cffi_src.utils import (
build_ffi_for_binding, compiler_type, extra_link_args
@@ -47,7 +50,16 @@ def _extra_compile_args(platform):
When we drop support for CRYPTOGRAPHY_OPENSSL_LESS_THAN_110 we can
revisit this.
"""
- if platform not in ["win32", "hp-ux11", "sunos5"]:
+ # make sure the compiler used supports the flags to be added
+ is_gcc = False
+ if get_default_compiler() == "unix":
+ d = dist.Distribution()
+ cmd = config(d)
+ cmd._check_compiler()
+ is_gcc = ("gcc" in cmd.compiler.compiler[0] or
+ "clang" in cmd.compiler.compiler[0])
+ if is_gcc or not (platform in ["win32", "hp-ux11", "sunos5"] or
+ platform.startswith("aix")):
return ["-Wconversion", "-Wno-error=sign-conversion"]
else:
return []