Browse Source

build: correctly detect clang version

Use the "Apple LLVM" version number since the banner has changed in
newer versions of Mac OS X, resulting in the obsolete assembler path
being used to compile OpenSSL.

PR-URL: https://github.com/nodejs/node/pull/5553
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
v4.x
Stefan Budeanu 9 years ago
committed by Myles Borins
parent
commit
9058fc0383
  1. 14
      configure
  2. 1
      deps/openssl/openssl.gyp
  3. 2
      deps/openssl/openssl.gypi

14
configure

@ -433,7 +433,7 @@ def try_check_compiler(cc, lang):
# Commands and regular expressions to obtain its version number are taken from
# https://github.com/openssl/openssl/blob/OpenSSL_1_0_2-stable/crypto/sha/asm/sha512-x86_64.pl#L112-L129
#
def get_llvm_version(cc):
def get_version_helper(cc, regexp):
try:
proc = subprocess.Popen(shlex.split(cc) + ['-v'], stdin=subprocess.PIPE,
stderr=subprocess.PIPE, stdout=subprocess.PIPE)
@ -446,14 +446,20 @@ def get_llvm_version(cc):
'''
sys.exit()
match = re.search(r"(^clang version|based on LLVM) ([3-9]\.[0-9]+)",
proc.communicate()[1])
match = re.search(regexp, proc.communicate()[1])
if match:
return match.group(2)
else:
return 0
def get_llvm_version(cc):
return get_version_helper(
cc, r"(^clang version|based on LLVM) ([3-9]\.[0-9]+)")
def get_xcode_version(cc):
return get_version_helper(
cc, r"(^Apple LLVM version) ([5-9]\.[0-9]+)")
def get_gas_version(cc):
try:
@ -508,6 +514,8 @@ def check_compiler(o):
if is_clang:
o['variables']['llvm_version'] = get_llvm_version(CC)
if sys.platform == 'darwin':
o['variables']['xcode_version'] = get_xcode_version(CC)
else:
o['variables']['gas_version'] = get_gas_version(CC)

1
deps/openssl/openssl.gyp

@ -8,6 +8,7 @@
'gcc_version': 0,
'openssl_no_asm%': 0,
'llvm_version%': 0,
'xcode_version%': 0,
'gas_version%': 0,
'openssl_fips%': 'false',
},

2
deps/openssl/openssl.gypi

@ -1040,7 +1040,7 @@
#
'conditions': [
['(OS=="win" and MSVS_VERSION>="2012") or '
'llvm_version>="3.3" or gas_version>="2.23"', {
'llvm_version>="3.3" or xcode_version>="5.0" or gas_version>="2.23"', {
'openssl_sources_x64_win_masm': [
'<@(openssl_sources_asm_latest_x64_win_masm)',
'<@(openssl_sources_common_x64_win_masm)',

Loading…
Cancel
Save