Skip to content

Commit

Permalink
build: correctly detect clang version
Browse files Browse the repository at this point in the history
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: #5553
Reviewed-By: Ben Noordhuis <[email protected]>
  • Loading branch information
Stefan Budeanu authored and Myles Borins committed Mar 21, 2016
1 parent 1f5f341 commit e987929
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 4 deletions.
14 changes: 11 additions & 3 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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:
Expand Down Expand Up @@ -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)

Expand Down
1 change: 1 addition & 0 deletions deps/openssl/openssl.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
'gcc_version': 0,
'openssl_no_asm%': 0,
'llvm_version%': 0,
'xcode_version%': 0,
'gas_version%': 0,
'openssl_fips%': 'false',
},
Expand Down
2 changes: 1 addition & 1 deletion deps/openssl/openssl.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -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)',
Expand Down

0 comments on commit e987929

Please sign in to comment.