summaryrefslogtreecommitdiff
path: root/numpy/core/setup_common.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/core/setup_common.py')
-rw-r--r--numpy/core/setup_common.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/numpy/core/setup_common.py b/numpy/core/setup_common.py
index 97608d18a..f6544e954 100644
--- a/numpy/core/setup_common.py
+++ b/numpy/core/setup_common.py
@@ -216,6 +216,24 @@ def check_long_double_representation(cmd):
except (AttributeError, ValueError):
pass
+ # Disable multi-file interprocedural optimization in the Intel compiler on Linux
+ # which generates intermediary object files and prevents checking the
+ # float representation.
+ elif sys.platform != "win32" and cmd.compiler.compiler_type.startswith('intel') \
+ and '-ipo' in cmd.compiler.cc_exe:
+ try:
+ newcompiler = cmd.compiler.cc_exe.replace(' -ipo', '')
+ cmd.compiler.set_executables(
+ compiler=newcompiler,
+ compiler_so=newcompiler,
+ compiler_cxx=newcompiler,
+ linker_exe=newcompiler,
+ linker_so=newcompiler + ' -shared'
+ )
+ except (AttributeError, ValueError):
+ pass
+
+
# We need to use _compile because we need the object filename
src, obj = cmd._compile(body, None, None, 'c')
try: