Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

Commit

Permalink
build: improve c compiler detection
Browse files Browse the repository at this point in the history
  • Loading branch information
sdqali authored and bnoordhuis committed May 15, 2012
1 parent 9ae6d8f commit c9676c9
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions configure
Expand Up @@ -224,18 +224,22 @@ def host_arch():
def target_arch():
return host_arch()


def gcc_version():
def cc_version():
try:
proc = subprocess.Popen([CC, '-v'], stderr=subprocess.PIPE)
except OSError:
return None
# TODO parse clang output
version = proc.communicate()[1].split('\n')[-2]
match = re.match('gcc version (\d+)\.(\d+)\.(\d+)', version)
if not match: return None
return ['LLVM' in version] + map(int, match.groups())

lines = proc.communicate()[1].split('\n')
version_line = None
for i, line in enumerate(lines):
if 'version' in line:
version_line = line
if not version_line:
return None
version = version_line.split("version")[1].strip().split()[0].split(".")
if not version:
return None
return ['LLVM' in version_line] + version

def configure_node(o):
# TODO add gdb
Expand All @@ -250,10 +254,10 @@ def configure_node(o):
# see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45883
# see http://code.google.com/p/v8/issues/detail?id=884
o['variables']['strict_aliasing'] = b(
'clang' in CC or gcc_version() >= [False, 4, 6, 0])
'clang' in CC or cc_version() >= [False, 4, 6, 0])

# clang has always supported -fvisibility=hidden, right?
if 'clang' not in CC and gcc_version() < [False, 4, 0, 0]:
if 'clang' not in CC and cc_version() < [False, 4, 0, 0]:
o['variables']['visibility'] = ''

# By default, enable DTrace on SunOS systems. Don't allow it on other
Expand Down

0 comments on commit c9676c9

Please sign in to comment.