提交 e14455c3 authored 作者: lamblin's avatar lamblin

Merge pull request #1266 from nouiz/march

don't use the equivalent flags for -march=native for llvm
......@@ -1474,6 +1474,37 @@ def gcc_version():
return gcc_version_str
def gcc_llvm():
""" Detect if the g++ version used is the llvm one or not.
It don't support all g++ parameters even if it support many of them.
"""
if gcc_llvm.is_llvm is None:
pass
dummy_in = open(os.devnull)
p = None
try:
p = call_subprocess_Popen(['g++', '--version'],
stdout=subprocess.PIPE,
stdin=dummy_in.fileno(),
stderr=subprocess.PIPE)
p.wait()
output = p.stdout.read() + p.stderr.read()
except OSError:
# Typically means g++ cannot be found.
# So it is not an llvm compiler.
# Normally this should not happen as we should not try to
# compile when g++ is not available. If this happen, it
# will crash later so supposing it is not llvm is "safe".
output = ''
del p
del dummy_in
gcc_llvm.is_llvm = "llvm" in output
return gcc_llvm.is_llvm
gcc_llvm.is_llvm = None
class GCC_compiler(object):
# The equivalent flags of --march=native used by g++.
march_flags = None
......@@ -1495,6 +1526,9 @@ class GCC_compiler(object):
# http://en.gentoo-wiki.com/wiki/Safe_Cflags#-march.3Dnative
# http://en.gentoo-wiki.com/wiki/Hardware_CFLAGS
detect_march = GCC_compiler.march_flags is None
if detect_march and gcc_llvm():
detect_march = False
GCC_compiler.march_flags = []
if detect_march:
for f in cxxflags:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论