diff options
Diffstat (limited to 'numpy/core/setup_common.py')
-rw-r--r-- | numpy/core/setup_common.py | 18 |
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: |