perf python: More portable way to make CFLAGS work with clang

The existing code that tries to make CFLAGS compatible with clang
doesn't work with Python 3.

Instead of trying to touch _sysconfigdata.build_time_vars directly,
change the dictionary returned by disutils.sysconfig.get_config_vars().
This works on both Python 2 and Python 3.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20181005204058.7966-3-ehabkost@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Eduardo Habkost 2018-10-05 17:40:58 -03:00 committed by Arnaldo Carvalho de Melo
parent e13a5d69c3
commit 8b2f245faa

View File

@ -9,12 +9,14 @@ def clang_has_option(option):
cc = getenv("CC") cc = getenv("CC")
if cc == "clang": if cc == "clang":
from _sysconfigdata import build_time_vars from distutils.sysconfig import get_config_vars
build_time_vars["CFLAGS"] = sub("-specs=[^ ]+", "", build_time_vars["CFLAGS"]) vars = get_config_vars()
if not clang_has_option("-mcet"): for var in ('CFLAGS', 'OPT'):
build_time_vars["CFLAGS"] = sub("-mcet", "", build_time_vars["CFLAGS"]) vars[var] = sub("-specs=[^ ]+", "", vars[var])
if not clang_has_option("-fcf-protection"): if not clang_has_option("-mcet"):
build_time_vars["CFLAGS"] = sub("-fcf-protection", "", build_time_vars["CFLAGS"]) vars[var] = sub("-mcet", "", vars[var])
if not clang_has_option("-fcf-protection"):
vars[var] = sub("-fcf-protection", "", vars[var])
from distutils.core import setup, Extension from distutils.core import setup, Extension