From ae112294c86386f5480cd49668d81f32a71470e7 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 3 Apr 2018 10:13:18 +0530 Subject: [PATCH] Fix compilation on Travis --- setup.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index faf6f7e40..0bffd8668 100755 --- a/setup.py +++ b/setup.py @@ -337,6 +337,14 @@ def parallel_run(todo, desc='Compiling {} ...'): run_tool(failed[1]) +def safe_remove(items, *removals): + for x in removals: + try: + items.remove(x) + except ValueError: + pass + + def compile_c_extension(kenv, module, incremental, compilation_database, all_keys, sources, headers): prefix = os.path.basename(module) objects = [ @@ -370,7 +378,12 @@ def compile_c_extension(kenv, module, incremental, compilation_database, all_key parallel_run(todo) dest = os.path.join(base, module + '.so') if not incremental or newer(dest, *objects): - run_tool([kenv.cc] + kenv.cflags + kenv.ldflags + objects + kenv.ldpaths + ['-o', dest], desc='Linking {} ...'.format(emphasis(module))) + linker_cflags = list(kenv.cflags) + # Old versions of clang dont like -pthread being passed to the linker + # Dont treat linker warnings as errors (linker generates spurious + # warnings on some old systems) + safe_remove(linker_cflags, '-pthread', '-Werror', '-pedantic-errors') + run_tool([kenv.cc] + linker_cflags + kenv.ldflags + objects + kenv.ldpaths + ['-o', dest], desc='Linking {} ...'.format(emphasis(module))) def find_c_files():