From a1c9ef314207c0ca6c1a6878543bec6c910f3667 Mon Sep 17 00:00:00 2001 From: Shigeki Ohtsu Date: Tue, 31 Mar 2015 14:16:10 +0900 Subject: [PATCH] deps, build: add support older assembler Asm files for OpenSSL depends on the version of assembler. We provide two sets of asm files, one is asm_latest(avx2 and addx supported) and the other asm_obsolute(without avx1/2 and addx) The asm_latest needs the version of gas >= 2.23, llvm >= 3.3 or ml64 >= 12 as defined in https://github.com/openssl/openssl/blob/OpenSSL_1_0_2-stable/crypto/sha/asm/sha512-x86_64.pl#L112-L129 , otherwise asm_obsolute are used. We take MSVS_VERSION in gyp as a version check of assembler on Windows because the path to ml64.exe was set after configure in vcbuild.bat and executing ml64.exe was failed in configure. Fixes: https://github.com/iojs/io.js/issues/589 PR-URL: https://github.com/iojs/io.js/pull/1389 Reviewed-By: Fedor Indutny Reviewed-By: Ben Noordhuis --- configure | 83 ++++++- deps/openssl/asm_obsolete/Makefile | 376 +++++++++++++++++++++++++++++ deps/openssl/openssl-cli.gypi | 1 + deps/openssl/openssl.gyp | 7 +- deps/openssl/openssl.gypi | 207 +++++++++++++++- 5 files changed, 653 insertions(+), 21 deletions(-) create mode 100644 deps/openssl/asm_obsolete/Makefile diff --git a/configure b/configure index 67440a2257c..25e54020c35 100755 --- a/configure +++ b/configure @@ -357,11 +357,63 @@ def try_check_compiler(cc, lang): return (True, is_clang, clang_version, gcc_version) +# +# The version of asm compiler is needed for building openssl asm files. +# See deps/openssl/openssl.gypi for detail. +# Commands and reglar expressions to obtain its version number is 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): + try: + proc = subprocess.Popen(shlex.split(cc) + ['-v'], stdin=subprocess.PIPE, + stderr=subprocess.PIPE, stdout=subprocess.PIPE) + except OSError: + print '''Node.js configure error: No acceptable C compiler found! + + Please make sure you have a C compiler installed on your system and/or + consider adjusting the CC environment variable if you installed + it in a non-standard prefix. + ''' + sys.exit() + + match = re.search(r"(^clang version|based on LLVM) ([3-9]\.[0-9]+)", + proc.communicate()[1]) + + if match: + return match.group(2) + else: + return 0 + + +def get_gas_version(cc): + try: + proc = subprocess.Popen(shlex.split(cc) + ['-Wa,-v', '-c', '-o', + '/dev/null', '-x', + 'assembler', '/dev/null'], + stdin=subprocess.PIPE, stderr=subprocess.PIPE, + stdout=subprocess.PIPE) + except OSError: + print '''Node.js configure error: No acceptable C compiler found! + + Please make sure you have a C compiler installed on your system and/or + consider adjusting the CC environment variable if you installed + it in a non-standard prefix. + ''' + sys.exit() + + match = re.match(r"GNU assembler version ([2-9]\.[0-9]+)", + proc.communicate()[1]) + + if match: + return match.group(1) + else: + return 0 + # Note: Apple clang self-reports as clang 4.2.0 and gcc 4.2.1. It passes # the version check more by accident than anything else but a more rigorous # check involves checking the build number against a whitelist. I'm not # quite prepared to go that far yet. -def check_compiler(): +def check_compiler(o): if sys.platform == 'win32': return @@ -380,6 +432,15 @@ def check_compiler(): # to a version that is not completely ancient. warn('C compiler too old, need gcc 4.2 or clang 3.2 (CC=%s)' % CC) + # Need llvm_version or gas_version when openssl asm files are compiled + if options.without_ssl or options.openssl_no_asm or options.shared_openssl: + return + + if is_clang: + o['variables']['llvm_version'] = get_llvm_version(CC) + else: + o['variables']['gas_version'] = get_gas_version(CC) + def cc_macros(): """Checks predefined macros using the CC command.""" @@ -935,16 +996,6 @@ def configure_intl(o): pprint.pformat(icu_config, indent=2) + '\n') return # end of configure_intl -# Print a warning when the compiler is too old. -check_compiler() - -# determine the "flavor" (operating system) we're building for, -# leveraging gyp's GetFlavor function -flavor_params = {} -if (options.dest_os): - flavor_params['flavor'] = options.dest_os -flavor = GetFlavor(flavor_params) - output = { 'variables': { 'python': sys.executable }, 'include_dirs': [], @@ -953,6 +1004,16 @@ output = { 'cflags': [], } +# Print a warning when the compiler is too old. +check_compiler(output) + +# determine the "flavor" (operating system) we're building for, +# leveraging gyp's GetFlavor function +flavor_params = {} +if (options.dest_os): + flavor_params['flavor'] = options.dest_os +flavor = GetFlavor(flavor_params) + configure_node(output) configure_libz(output) configure_http_parser(output) diff --git a/deps/openssl/asm_obsolete/Makefile b/deps/openssl/asm_obsolete/Makefile new file mode 100644 index 00000000000..c3ccfa43ce4 --- /dev/null +++ b/deps/openssl/asm_obsolete/Makefile @@ -0,0 +1,376 @@ +PERL ?= perl +PERL += -I../openssl/crypto/perlasm -I../openssl/crypto/bn/asm + +# OPENSSL_IA32_SSE2 flag is needed for checking the sse2 feature on ia32 +# see https://github.com/openssl/openssl/blob/OpenSSL_1_0_2-stable/crypto/sha/asm/sha512-586.pl#L56 +SSE2 = -DOPENSSL_IA32_SSE2 + +# CC and ASM enviroments are not needed for generating obsoluted asm files +CC = '' +ASM = '' + +OUTPUTS = \ + x86-elf-gas/aes/aes-586.s \ + x86-elf-gas/aes/aesni-x86.s \ + x86-elf-gas/aes/vpaes-x86.s \ + x86-elf-gas/bf/bf-586.s \ + x86-elf-gas/bn/bn-586.s \ + x86-elf-gas/bn/co-586.s \ + x86-elf-gas/bn/x86-mont.s \ + x86-elf-gas/bn/x86-gf2m.s \ + x86-elf-gas/camellia/cmll-x86.s \ + x86-elf-gas/cast/cast-586.s \ + x86-elf-gas/des/crypt586.s \ + x86-elf-gas/des/des-586.s \ + x86-elf-gas/md5/md5-586.s \ + x86-elf-gas/rc4/rc4-586.s \ + x86-elf-gas/ripemd/rmd-586.s \ + x86-elf-gas/sha/sha1-586.s \ + x86-elf-gas/sha/sha256-586.s \ + x86-elf-gas/sha/sha512-586.s \ + x86-elf-gas/whrlpool/wp-mmx.s \ + x86-elf-gas/modes/ghash-x86.s \ + x86-elf-gas/x86cpuid.s \ + x64-elf-gas/aes/aes-x86_64.s \ + x64-elf-gas/aes/aesni-mb-x86_64.s \ + x64-elf-gas/aes/aesni-sha256-x86_64.s \ + x64-elf-gas/aes/aesni-x86_64.s \ + x64-elf-gas/aes/vpaes-x86_64.s \ + x64-elf-gas/aes/bsaes-x86_64.s \ + x64-elf-gas/aes/aesni-sha1-x86_64.s \ + x64-elf-gas/bn/rsaz-avx2.s \ + x64-elf-gas/bn/rsaz-x86_64.s \ + x64-elf-gas/bn/x86_64-mont.s \ + x64-elf-gas/bn/x86_64-mont5.s \ + x64-elf-gas/bn/x86_64-gf2m.s \ + x64-elf-gas/camellia/cmll-x86_64.s \ + x64-elf-gas/ec/ecp_nistz256-x86_64.s \ + x64-elf-gas/md5/md5-x86_64.s \ + x64-elf-gas/rc4/rc4-x86_64.s \ + x64-elf-gas/rc4/rc4-md5-x86_64.s \ + x64-elf-gas/sha/sha1-mb-x86_64.s \ + x64-elf-gas/sha/sha1-x86_64.s \ + x64-elf-gas/sha/sha256-mb-x86_64.s \ + x64-elf-gas/sha/sha256-x86_64.s \ + x64-elf-gas/sha/sha512-x86_64.s \ + x64-elf-gas/whrlpool/wp-x86_64.s \ + x64-elf-gas/modes/aesni-gcm-x86_64.s \ + x64-elf-gas/modes/ghash-x86_64.s \ + x64-elf-gas/x86_64cpuid.s \ + arm-void-gas/aes/aes-armv4.S \ + arm-void-gas/aes/bsaes-armv7.S \ + arm-void-gas/aes/aesv8-armx.S \ + arm-void-gas/bn/armv4-mont.S \ + arm-void-gas/bn/armv4-gf2m.S \ + arm-void-gas/sha/sha1-armv4-large.S \ + arm-void-gas/sha/sha256-armv4.S \ + arm-void-gas/sha/sha512-armv4.S \ + arm-void-gas/modes/ghash-armv4.S \ + arm-void-gas/modes/ghashv8-armx.S \ + arm64-linux64-gas/aes/aesv8-armx.S \ + arm64-linux64-gas/modes/ghashv8-armx.S \ + arm64-linux64-gas/sha/sha1-armv8.S \ + arm64-linux64-gas/sha/sha256-armv8.S \ + arm64-linux64-gas/sha/sha512-armv8.S \ + x86-macosx-gas/aes/aes-586.s \ + x86-macosx-gas/aes/aesni-x86.s \ + x86-macosx-gas/aes/vpaes-x86.s \ + x86-macosx-gas/bf/bf-586.s \ + x86-macosx-gas/bn/bn-586.s \ + x86-macosx-gas/bn/co-586.s \ + x86-macosx-gas/bn/x86-mont.s \ + x86-macosx-gas/bn/x86-gf2m.s \ + x86-macosx-gas/camellia/cmll-x86.s \ + x86-macosx-gas/cast/cast-586.s \ + x86-macosx-gas/des/crypt586.s \ + x86-macosx-gas/des/des-586.s \ + x86-macosx-gas/md5/md5-586.s \ + x86-macosx-gas/rc4/rc4-586.s \ + x86-macosx-gas/ripemd/rmd-586.s \ + x86-macosx-gas/sha/sha1-586.s \ + x86-macosx-gas/sha/sha256-586.s \ + x86-macosx-gas/sha/sha512-586.s \ + x86-macosx-gas/whrlpool/wp-mmx.s \ + x86-macosx-gas/modes/ghash-x86.s \ + x86-macosx-gas/x86cpuid.s \ + x64-macosx-gas/aes/aes-x86_64.s \ + x64-macosx-gas/aes/aesni-x86_64.s \ + x64-macosx-gas/aes/vpaes-x86_64.s \ + x64-macosx-gas/aes/aesni-mb-x86_64.s \ + x64-macosx-gas/aes/aesni-sha256-x86_64.s \ + x64-macosx-gas/aes/bsaes-x86_64.s \ + x64-macosx-gas/aes/aesni-sha1-x86_64.s \ + x64-macosx-gas/bn/rsaz-avx2.s \ + x64-macosx-gas/bn/rsaz-x86_64.s \ + x64-macosx-gas/bn/x86_64-mont.s \ + x64-macosx-gas/bn/x86_64-mont5.s \ + x64-macosx-gas/bn/x86_64-gf2m.s \ + x64-macosx-gas/camellia/cmll-x86_64.s \ + x64-macosx-gas/ec/ecp_nistz256-x86_64.s \ + x64-macosx-gas/md5/md5-x86_64.s \ + x64-macosx-gas/sha/sha1-mb-x86_64.s \ + x64-macosx-gas/sha/sha1-x86_64.s \ + x64-macosx-gas/sha/sha256-mb-x86_64.s \ + x64-macosx-gas/sha/sha256-x86_64.s \ + x64-macosx-gas/sha/sha512-x86_64.s \ + x64-macosx-gas/whrlpool/wp-x86_64.s \ + x64-macosx-gas/modes/aesni-gcm-x86_64.s \ + x64-macosx-gas/modes/ghash-x86_64.s \ + x64-macosx-gas/x86_64cpuid.s \ + x86-win32-masm/aes/aes-586.asm \ + x86-win32-masm/aes/aesni-x86.asm \ + x86-win32-masm/aes/vpaes-x86.asm \ + x86-win32-masm/bf/bf-586.asm \ + x86-win32-masm/bn/bn-586.asm \ + x86-win32-masm/bn/co-586.asm \ + x86-win32-masm/bn/x86-mont.asm \ + x86-win32-masm/bn/x86-gf2m.asm \ + x86-win32-masm/camellia/cmll-x86.asm \ + x86-win32-masm/cast/cast-586.asm \ + x86-win32-masm/des/crypt586.asm \ + x86-win32-masm/des/des-586.asm \ + x86-win32-masm/md5/md5-586.asm \ + x86-win32-masm/rc4/rc4-586.asm \ + x86-win32-masm/ripemd/rmd-586.asm \ + x86-win32-masm/sha/sha1-586.asm \ + x86-win32-masm/sha/sha256-586.asm \ + x86-win32-masm/sha/sha512-586.asm \ + x86-win32-masm/whrlpool/wp-mmx.asm \ + x86-win32-masm/modes/ghash-x86.asm \ + x86-win32-masm/x86cpuid.asm \ + x64-win32-masm/aes/aes-x86_64.asm \ + x64-win32-masm/aes/aesni-mb-x86_64.asm \ + x64-win32-masm/aes/aesni-sha256-x86_64.asm \ + x64-win32-masm/aes/aesni-x86_64.asm \ + x64-win32-masm/aes/vpaes-x86_64.asm \ + x64-win32-masm/aes/bsaes-x86_64.asm \ + x64-win32-masm/aes/aesni-sha1-x86_64.asm \ + x64-win32-masm/bn/rsaz-avx2.asm \ + x64-win32-masm/bn/rsaz-x86_64.asm \ + x64-win32-masm/bn/x86_64-mont.asm \ + x64-win32-masm/bn/x86_64-mont5.asm \ + x64-win32-masm/bn/x86_64-gf2m.asm \ + x64-win32-masm/camellia/cmll-x86_64.asm \ + x64-win32-masm/ec/ecp_nistz256-x86_64.asm \ + x64-win32-masm/md5/md5-x86_64.asm \ + x64-win32-masm/rc4/rc4-x86_64.asm \ + x64-win32-masm/rc4/rc4-md5-x86_64.asm \ + x64-win32-masm/sha/sha1-mb-x86_64.asm \ + x64-win32-masm/sha/sha1-x86_64.asm \ + x64-win32-masm/sha/sha256-mb-x86_64.asm \ + x64-win32-masm/sha/sha256-x86_64.asm \ + x64-win32-masm/sha/sha512-x86_64.asm \ + x64-win32-masm/whrlpool/wp-x86_64.asm \ + x64-win32-masm/modes/aesni-gcm-x86_64.asm \ + x64-win32-masm/modes/ghash-x86_64.asm \ + x64-win32-masm/x86_64cpuid.asm \ + +# sha512 asm files for x86_64 need 512 in the filenames for outputs +# so that we add new rules to generate sha512 asm files with +# specifying its filename in the second argument. See +# https://github.com/openssl/openssl/blob/OpenSSL_1_0_2-stable/crypto/sha/asm/sha512-x86_64.pl#L137-L149 + +x64-elf-gas/sha/sha512-%.s: + $(PERL) $< elf $@ + +x64-elf-gas/%.s: + $(PERL) $< elf > $@ + +arm-void-gas/%.S: + $(PERL) $< void > $@ + +arm64-linux64-gas/sha/sha512-%.S: + $(PERL) $< linux64 $@ + +arm64-linux64-gas/%.S: + $(PERL) $< linux64 > $@ + +x64-macosx-gas/sha/sha512-%.s: + $(PERL) $< macosx $@ + +x64-macosx-gas/%.s: + $(PERL) $< macosx > $@ + +x64-win32-masm/sha/sha512-%.asm: + $(PERL) $< masm $@ + +x64-win32-masm/%.asm: + $(PERL) $< masm > $@ + +x86-elf-gas/%.s: + $(PERL) $< elf $(SSE2) > $@ + +x86-macosx-gas/%.s: + $(PERL) $< macosx $(SSE2) > $@ + +x86-win32-masm/%.asm: + $(PERL) $< win32 $(SSE2) > $@ + +.PHONY: all clean + +all: $(OUTPUTS) + # strip trailing whitespace and final blank newline + $(PERL) -pi -e 's/\s+$$/\n/; s/^\n$$// if eof' $^ + +clean: + find . -iname '*.asm' -exec rm "{}" \; + find . -iname '*.s' -exec rm "{}" \; + find . -iname '*.S' -exec rm "{}" \; + + +x64-elf-gas/aes/aes-x86_64.s: ../openssl/crypto/aes/asm/aes-x86_64.pl +x64-elf-gas/aes/aesni-x86_64.s: ../openssl/crypto/aes/asm/aesni-x86_64.pl +x64-elf-gas/aes/aesni-mb-x86_64.s: ../openssl/crypto/aes/asm/aesni-mb-x86_64.pl +x64-elf-gas/aes/aesni-sha256-x86_64.s: ../openssl/crypto/aes/asm/aesni-sha256-x86_64.pl +x64-elf-gas/aes/vpaes-x86_64.s: ../openssl/crypto/aes/asm/vpaes-x86_64.pl +x64-elf-gas/aes/bsaes-x86_64.s: ../openssl/crypto/aes/asm/bsaes-x86_64.pl +x64-elf-gas/aes/aesni-sha1-x86_64.s: ../openssl/crypto/aes/asm/aesni-sha1-x86_64.pl +x64-elf-gas/bn/rsaz-avx2.s: ../openssl/crypto/bn/asm/rsaz-avx2.pl +x64-elf-gas/bn/rsaz-x86_64.s: ../openssl/crypto/bn/asm/rsaz-x86_64.pl +x64-elf-gas/bn/x86_64-mont.s: ../openssl/crypto/bn/asm/x86_64-mont.pl +x64-elf-gas/bn/x86_64-mont5.s: ../openssl/crypto/bn/asm/x86_64-mont5.pl +x64-elf-gas/bn/x86_64-gf2m.s: ../openssl/crypto/bn/asm/x86_64-gf2m.pl +x64-elf-gas/camellia/cmll-x86_64.s: ../openssl/crypto/camellia/asm/cmll-x86_64.pl +x64-elf-gas/ec/ecp_nistz256-x86_64.s: ../openssl/crypto/ec/asm/ecp_nistz256-x86_64.pl +x64-elf-gas/md5/md5-x86_64.s: ../openssl/crypto/md5/asm/md5-x86_64.pl +x64-elf-gas/rc4/rc4-x86_64.s: ../openssl/crypto/rc4/asm/rc4-x86_64.pl +x64-elf-gas/rc4/rc4-md5-x86_64.s: ../openssl/crypto/rc4/asm/rc4-md5-x86_64.pl +x64-elf-gas/sha/sha1-mb-x86_64.s: ../openssl/crypto/sha/asm/sha1-mb-x86_64.pl +x64-elf-gas/sha/sha1-x86_64.s: ../openssl/crypto/sha/asm/sha1-x86_64.pl +x64-elf-gas/sha/sha512-x86_64.s: ../openssl/crypto/sha/asm/sha512-x86_64.pl +x64-elf-gas/sha/sha256-mb-x86_64.s: ../openssl/crypto/sha/asm/sha256-mb-x86_64.pl +x64-elf-gas/sha/sha256-x86_64.s: ../openssl/crypto/sha/asm/sha512-x86_64.pl +x64-elf-gas/whrlpool/wp-x86_64.s: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl +x64-elf-gas/modes/aesni-gcm-x86_64.s: ../openssl/crypto/modes/asm/aesni-gcm-x86_64.pl +x64-elf-gas/modes/ghash-x86_64.s: ../openssl/crypto/modes/asm/ghash-x86_64.pl +x64-elf-gas/x86_64cpuid.s: ../openssl/crypto/x86_64cpuid.pl +x64-macosx-gas/aes/aes-x86_64.s: ../openssl/crypto/aes/asm/aes-x86_64.pl +x64-macosx-gas/aes/aesni-x86_64.s: ../openssl/crypto/aes/asm/aesni-x86_64.pl +x64-macosx-gas/aes/vpaes-x86_64.s: ../openssl/crypto/aes/asm/vpaes-x86_64.pl +x64-macosx-gas/aes/aesni-mb-x86_64.s: ../openssl/crypto/aes/asm/aesni-mb-x86_64.pl +x64-macosx-gas/aes/aesni-sha256-x86_64.s: ../openssl/crypto/aes/asm/aesni-sha256-x86_64.pl +x64-macosx-gas/aes/bsaes-x86_64.s: ../openssl/crypto/aes/asm/bsaes-x86_64.pl +x64-macosx-gas/aes/aesni-sha1-x86_64.s: ../openssl/crypto/aes/asm/aesni-sha1-x86_64.pl +x64-macosx-gas/bn/rsaz-avx2.s: ../openssl/crypto/bn/asm/rsaz-avx2.pl +x64-macosx-gas/bn/rsaz-x86_64.s: ../openssl/crypto/bn/asm/rsaz-x86_64.pl +x64-macosx-gas/bn/x86_64-mont.s: ../openssl/crypto/bn/asm/x86_64-mont.pl +x64-macosx-gas/bn/x86_64-mont5.s: ../openssl/crypto/bn/asm/x86_64-mont5.pl +x64-macosx-gas/bn/x86_64-gf2m.s: ../openssl/crypto/bn/asm/x86_64-gf2m.pl +x64-macosx-gas/camellia/cmll-x86_64.s: ../openssl/crypto/camellia/asm/cmll-x86_64.pl +x64-macosx-gas/ec/ecp_nistz256-x86_64.s: ../openssl/crypto/ec/asm/ecp_nistz256-x86_64.pl +x64-macosx-gas/md5/md5-x86_64.s: ../openssl/crypto/md5/asm/md5-x86_64.pl +x64-macosx-gas/sha/sha1-x86_64.s: ../openssl/crypto/sha/asm/sha1-x86_64.pl +x64-macosx-gas/sha/sha1-mb-x86_64.s: ../openssl/crypto/sha/asm/sha1-mb-x86_64.pl +x64-macosx-gas/sha/sha256-mb-x86_64.s: ../openssl/crypto/sha/asm/sha256-mb-x86_64.pl +x64-macosx-gas/sha/sha256-x86_64.s: ../openssl/crypto/sha/asm/sha512-x86_64.pl +x64-macosx-gas/sha/sha512-x86_64.s: ../openssl/crypto/sha/asm/sha512-x86_64.pl +x64-macosx-gas/whrlpool/wp-x86_64.s: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl +x64-macosx-gas/modes/aesni-gcm-x86_64.s: ../openssl/crypto/modes/asm/aesni-gcm-x86_64.pl +x64-macosx-gas/modes/ghash-x86_64.s: ../openssl/crypto/modes/asm/ghash-x86_64.pl +x64-macosx-gas/x86_64cpuid.s: ../openssl/crypto/x86_64cpuid.pl +x64-win32-masm/aes/aes-x86_64.asm: ../openssl/crypto/aes/asm/aes-x86_64.pl +x64-win32-masm/aes/aesni-x86_64.asm: ../openssl/crypto/aes/asm/aesni-x86_64.pl +x64-win32-masm/aes/aesni-mb-x86_64.asm: ../openssl/crypto/aes/asm/aesni-mb-x86_64.pl +x64-win32-masm/aes/aesni-sha256-x86_64.asm: ../openssl/crypto/aes/asm/aesni-sha256-x86_64.pl +x64-win32-masm/aes/vpaes-x86_64.asm: ../openssl/crypto/aes/asm/vpaes-x86_64.pl +x64-win32-masm/aes/bsaes-x86_64.asm: ../openssl/crypto/aes/asm/bsaes-x86_64.pl +x64-win32-masm/aes/aesni-sha1-x86_64.asm: ../openssl/crypto/aes/asm/aesni-sha1-x86_64.pl +x64-win32-masm/bn/rsaz-avx2.asm: ../openssl/crypto/bn/asm/rsaz-avx2.pl +x64-win32-masm/bn/rsaz-x86_64.asm: ../openssl/crypto/bn/asm/rsaz-x86_64.pl +x64-win32-masm/bn/x86_64-mont.asm: ../openssl/crypto/bn/asm/x86_64-mont.pl +x64-win32-masm/bn/x86_64-mont5.asm: ../openssl/crypto/bn/asm/x86_64-mont5.pl +x64-win32-masm/bn/x86_64-gf2m.asm: ../openssl/crypto/bn/asm/x86_64-gf2m.pl +x64-win32-masm/camellia/cmll-x86_64.asm: ../openssl/crypto/camellia/asm/cmll-x86_64.pl +x64-win32-masm/ec/ecp_nistz256-x86_64.asm: ../openssl/crypto/ec/asm/ecp_nistz256-x86_64.pl +x64-win32-masm/md5/md5-x86_64.asm: ../openssl/crypto/md5/asm/md5-x86_64.pl +x64-win32-masm/rc4/rc4-x86_64.asm: ../openssl/crypto/rc4/asm/rc4-x86_64.pl +x64-win32-masm/rc4/rc4-md5-x86_64.asm: ../openssl/crypto/rc4/asm/rc4-md5-x86_64.pl +x64-win32-masm/sha/sha1-mb-x86_64.asm: ../openssl/crypto/sha/asm/sha1-mb-x86_64.pl +x64-win32-masm/sha/sha1-x86_64.asm: ../openssl/crypto/sha/asm/sha1-x86_64.pl +x64-win32-masm/sha/sha256-mb-x86_64.asm: ../openssl/crypto/sha/asm/sha256-mb-x86_64.pl +x64-win32-masm/sha/sha256-x86_64.asm: ../openssl/crypto/sha/asm/sha512-x86_64.pl +x64-win32-masm/sha/sha512-x86_64.asm: ../openssl/crypto/sha/asm/sha512-x86_64.pl +x64-win32-masm/whrlpool/wp-x86_64.asm: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl +x64-win32-masm/modes/aesni-gcm-x86_64.asm: ../openssl/crypto/modes/asm/aesni-gcm-x86_64.pl +x64-win32-masm/modes/ghash-x86_64.asm: ../openssl/crypto/modes/asm/ghash-x86_64.pl +x64-win32-masm/x86_64cpuid.asm: ../openssl/crypto/x86_64cpuid.pl +x86-elf-gas/aes/aes-586.s: ../openssl/crypto/aes/asm/aes-586.pl +x86-elf-gas/aes/aesni-x86.s: ../openssl/crypto/aes/asm/aesni-x86.pl +x86-elf-gas/aes/vpaes-x86.s: ../openssl/crypto/aes/asm/vpaes-x86.pl +x86-elf-gas/bf/bf-586.s: ../openssl/crypto/bf/asm/bf-586.pl +x86-elf-gas/bn/bn-586.s: ../openssl/crypto/bn/asm/bn-586.pl +x86-elf-gas/bn/co-586.s: ../openssl/crypto/bn/asm/co-586.pl +x86-elf-gas/bn/x86-mont.s: ../openssl/crypto/bn/asm/x86-mont.pl +x86-elf-gas/bn/x86-gf2m.s: ../openssl/crypto/bn/asm/x86-gf2m.pl +x86-elf-gas/camellia/cmll-x86.s: ../openssl/crypto/camellia/asm/cmll-x86.pl +x86-elf-gas/cast/cast-586.s: ../openssl/crypto/cast/asm/cast-586.pl +x86-elf-gas/des/crypt586.s: ../openssl/crypto/des/asm/crypt586.pl +x86-elf-gas/des/des-586.s: ../openssl/crypto/des/asm/des-586.pl +x86-elf-gas/md5/md5-586.s: ../openssl/crypto/md5/asm/md5-586.pl +x86-elf-gas/rc4/rc4-586.s: ../openssl/crypto/rc4/asm/rc4-586.pl +x86-elf-gas/rc5/rc5-586.s: ../openssl/crypto/rc5/asm/rc5-586.pl +x86-elf-gas/ripemd/rmd-586.s: ../openssl/crypto/ripemd/asm/rmd-586.pl +x86-elf-gas/sha/sha1-586.s: ../openssl/crypto/sha/asm/sha1-586.pl +x86-elf-gas/sha/sha256-586.s: ../openssl/crypto/sha/asm/sha256-586.pl +x86-elf-gas/sha/sha512-586.s: ../openssl/crypto/sha/asm/sha512-586.pl +x86-elf-gas/whrlpool/wp-mmx.s: ../openssl/crypto/whrlpool/asm/wp-mmx.pl +x86-elf-gas/modes/ghash-x86.s: ../openssl/crypto/modes/asm/ghash-x86.pl +x86-elf-gas/x86cpuid.s: ../openssl/crypto/x86cpuid.pl +x86-macosx-gas/aes/aes-586.s: ../openssl/crypto/aes/asm/aes-586.pl +x86-macosx-gas/aes/aesni-x86.s: ../openssl/crypto/aes/asm/aesni-x86.pl +x86-macosx-gas/aes/vpaes-x86.s: ../openssl/crypto/aes/asm/vpaes-x86.pl +x86-macosx-gas/bf/bf-586.s: ../openssl/crypto/bf/asm/bf-686.pl +x86-macosx-gas/bn/bn-586.s: ../openssl/crypto/bn/asm/bn-586.pl +x86-macosx-gas/bn/co-586.s: ../openssl/crypto/bn/asm/co-586.pl +x86-macosx-gas/bn/x86-mont.s: ../openssl/crypto/bn/asm/x86-mont.pl +x86-macosx-gas/bn/x86-gf2m.s: ../openssl/crypto/bn/asm/x86-gf2m.pl +x86-macosx-gas/camellia/cmll-x86.s: ../openssl/crypto/camellia/asm/cmll-x86.pl +x86-macosx-gas/cast/cast-586.s: ../openssl/crypto/cast/asm/cast-586.pl +x86-macosx-gas/des/crypt586.s: ../openssl/crypto/des/asm/crypt586.pl +x86-macosx-gas/des/des-586.s: ../openssl/crypto/des/asm/des-586.pl +x86-macosx-gas/md5/md5-586.s: ../openssl/crypto/md5/asm/md5-586.pl +x86-macosx-gas/rc4/rc4-586.s: ../openssl/crypto/rc4/asm/rc4-586.pl +x86-macosx-gas/rc5/rc5-586.s: ../openssl/crypto/rc5/asm/rc5-586.pl +x86-macosx-gas/ripemd/rmd-586.s: ../openssl/crypto/ripemd/asm/rmd-586.pl +x86-macosx-gas/sha/sha1-586.s: ../openssl/crypto/sha/asm/sha1-586.pl +x86-macosx-gas/sha/sha256-586.s: ../openssl/crypto/sha/asm/sha256-586.pl +x86-macosx-gas/sha/sha512-586.s: ../openssl/crypto/sha/asm/sha512-586.pl +x86-macosx-gas/whrlpool/wp-mmx.s: ../openssl/crypto/whrlpool/asm/wp-mmx.pl +x86-macosx-gas/modes/ghash-x86.s: ../openssl/crypto/modes/asm/ghash-x86.pl +x86-macosx-gas/x86cpuid.s: ../openssl/crypto/x86cpuid.pl +x86-win32-masm/aes/aes-586.asm: ../openssl/crypto/aes/asm/aes-586.pl +x86-win32-masm/aes/aesni-x86.asm: ../openssl/crypto/aes/asm/aesni-x86.pl +x86-win32-masm/aes/vpaes-x86.asm: ../openssl/crypto/aes/asm/vpaes-x86.pl +x86-win32-masm/bf/bf-586.asm: ../openssl/crypto/bf/asm/bf-586.pl +x86-win32-masm/bn/bn-586.asm: ../openssl/crypto/bn/asm/bn-586.pl +x86-win32-masm/bn/co-586.asm: ../openssl/crypto/bn/asm/co-586.pl +x86-win32-masm/bn/x86-gf2m.asm: ../openssl/crypto/bn/asm/x86-gf2m.pl +x86-win32-masm/bn/x86-mont.asm: ../openssl/crypto/bn/asm/x86-mont.pl +x86-win32-masm/camellia/cmll-x86.asm: ../openssl/crypto/camellia/asm/cmll-x86.pl +x86-win32-masm/cast/cast-586.asm: ../openssl/crypto/cast/asm/cast-586.pl +x86-win32-masm/des/crypt586.asm: ../openssl/crypto/des/asm/crypt586.pl +x86-win32-masm/des/des-586.asm: ../openssl/crypto/des/asm/des-586.pl +x86-win32-masm/md5/md5-586.asm: ../openssl/crypto/md5/asm/md5-586.pl +x86-win32-masm/rc4/rc4-586.asm: ../openssl/crypto/rc4/asm/rc4-586.pl +x86-win32-masm/ripemd/rmd-586.asm: ../openssl/crypto/ripemd/asm/rmd-586.pl +x86-win32-masm/sha/sha1-586.asm: ../openssl/crypto/sha/asm/sha1-586.pl +x86-win32-masm/sha/sha256-586.asm: ../openssl/crypto/sha/asm/sha256-586.pl +x86-win32-masm/sha/sha512-586.asm: ../openssl/crypto/sha/asm/sha512-586.pl +x86-win32-masm/whrlpool/wp-mmx.asm: ../openssl/crypto/whrlpool/asm/wp-mmx.pl +x86-win32-masm/modes/ghash-x86.asm: ../openssl/crypto/modes/asm/ghash-x86.pl +x86-win32-masm/x86cpuid.asm: ../openssl/crypto/x86cpuid.pl +arm-void-gas/aes/aes-armv4.S: ../openssl/crypto/aes/asm/aes-armv4.pl +arm-void-gas/aes/bsaes-armv7.S: ../openssl/crypto/aes/asm/bsaes-armv7.pl +arm-void-gas/aes/aesv8-armx.S: ../openssl/crypto/aes/asm/aesv8-armx.pl +arm-void-gas/bn/armv4-mont.S: ../openssl/crypto/bn/asm/armv4-mont.pl +arm-void-gas/bn/armv4-gf2m.S: ../openssl/crypto/bn/asm/armv4-gf2m.pl +arm-void-gas/sha/sha1-armv4-large.S: ../openssl/crypto/sha/asm/sha1-armv4-large.pl +arm-void-gas/sha/sha512-armv4.S: ../openssl/crypto/sha/asm/sha512-armv4.pl +arm-void-gas/sha/sha256-armv4.S: ../openssl/crypto/sha/asm/sha256-armv4.pl +arm-void-gas/modes/ghash-armv4.S: ../openssl/crypto/modes/asm/ghash-armv4.pl +arm-void-gas/modes/ghashv8-armx.S: ../openssl/crypto/modes/asm/ghashv8-armx.pl +arm64-linux64-gas/aes/aesv8-armx.S: ../openssl/crypto/aes/asm/aesv8-armx.pl +arm64-linux64-gas/modes/ghashv8-armx.S: ../openssl/crypto/modes/asm/ghashv8-armx.pl +arm64-linux64-gas/sha/sha1-armv8.S: ../openssl/crypto/sha/asm/sha1-armv8.pl +arm64-linux64-gas/sha/sha256-armv8.S: ../openssl/crypto/sha/asm/sha512-armv8.pl +arm64-linux64-gas/sha/sha512-armv8.S: ../openssl/crypto/sha/asm/sha512-armv8.pl diff --git a/deps/openssl/openssl-cli.gypi b/deps/openssl/openssl-cli.gypi index c0d4a2a6449..1209d64e46d 100644 --- a/deps/openssl/openssl-cli.gypi +++ b/deps/openssl/openssl-cli.gypi @@ -5,6 +5,7 @@ 'defines': [ 'MONOLITH' ], + 'includes': ['openssl.gypi'], 'sources': ['<@(openssl_cli_sources)'], 'conditions': [ ['OS=="solaris"', { diff --git a/deps/openssl/openssl.gyp b/deps/openssl/openssl.gyp index 6d8b10d6902..5a3dc9b6c74 100644 --- a/deps/openssl/openssl.gyp +++ b/deps/openssl/openssl.gyp @@ -6,13 +6,15 @@ 'variables': { 'is_clang': 0, 'gcc_version': 0, - 'openssl_no_asm%': 0 + 'openssl_no_asm%': 0, + 'llvm_version%': 0, + 'gas_version%': 0, }, - 'includes': ['openssl.gypi'], 'targets': [ { 'target_name': 'openssl', 'type': '<(library)', + 'includes': ['openssl.gypi'], 'sources': ['<@(openssl_sources)'], 'sources/': [ ['exclude', 'md2/.*$'], @@ -99,6 +101,7 @@ } ], 'target_defaults': { + 'includes': ['openssl.gypi'], 'include_dirs': ['<@(openssl_default_include_dirs)'], 'defines': ['<@(openssl_default_defines_all)'], 'conditions': [ diff --git a/deps/openssl/openssl.gypi b/deps/openssl/openssl.gypi index 4082e9bcce0..840b479e05d 100644 --- a/deps/openssl/openssl.gypi +++ b/deps/openssl/openssl.gypi @@ -651,7 +651,7 @@ 'openssl/crypto/rc4/rc4_skey.c', 'openssl/crypto/whrlpool/wp_block.c' ], - 'openssl_sources_ia32_elf_gas': [ + 'openssl_sources_asm_latest_ia32_elf_gas': [ 'asm/x86-elf-gas/aes/aes-586.s', 'asm/x86-elf-gas/aes/aesni-x86.s', 'asm/x86-elf-gas/aes/vpaes-x86.s', @@ -673,9 +673,34 @@ 'asm/x86-elf-gas/whrlpool/wp-mmx.s', 'asm/x86-elf-gas/modes/ghash-x86.s', 'asm/x86-elf-gas/x86cpuid.s', + ], + 'openssl_sources_asm_obsolete_ia32_elf_gas': [ + 'asm_obsolete/x86-elf-gas/aes/aes-586.s', + 'asm_obsolete/x86-elf-gas/aes/aesni-x86.s', + 'asm_obsolete/x86-elf-gas/aes/vpaes-x86.s', + 'asm_obsolete/x86-elf-gas/bf/bf-586.s', + 'asm_obsolete/x86-elf-gas/bn/bn-586.s', + 'asm_obsolete/x86-elf-gas/bn/co-586.s', + 'asm_obsolete/x86-elf-gas/bn/x86-mont.s', + 'asm_obsolete/x86-elf-gas/bn/x86-gf2m.s', + 'asm_obsolete/x86-elf-gas/camellia/cmll-x86.s', + 'asm_obsolete/x86-elf-gas/cast/cast-586.s', + 'asm_obsolete/x86-elf-gas/des/crypt586.s', + 'asm_obsolete/x86-elf-gas/des/des-586.s', + 'asm_obsolete/x86-elf-gas/md5/md5-586.s', + 'asm_obsolete/x86-elf-gas/rc4/rc4-586.s', + 'asm_obsolete/x86-elf-gas/ripemd/rmd-586.s', + 'asm_obsolete/x86-elf-gas/sha/sha1-586.s', + 'asm_obsolete/x86-elf-gas/sha/sha256-586.s', + 'asm_obsolete/x86-elf-gas/sha/sha512-586.s', + 'asm_obsolete/x86-elf-gas/whrlpool/wp-mmx.s', + 'asm_obsolete/x86-elf-gas/modes/ghash-x86.s', + 'asm_obsolete/x86-elf-gas/x86cpuid.s', + ], + 'openssl_sources_common_ia32': [ 'openssl/crypto/whrlpool/wp_block.c' ], - 'openssl_sources_x64_elf_gas': [ + 'openssl_sources_asm_latest_x64_elf_gas': [ 'asm/x64-elf-gas/aes/aes-x86_64.s', 'asm/x64-elf-gas/aes/aesni-mb-x86_64.s', 'asm/x64-elf-gas/aes/aesni-sha256-x86_64.s', @@ -702,6 +727,36 @@ 'asm/x64-elf-gas/modes/aesni-gcm-x86_64.s', 'asm/x64-elf-gas/modes/ghash-x86_64.s', 'asm/x64-elf-gas/x86_64cpuid.s', + ], + 'openssl_sources_asm_obsolete_x64_elf_gas': [ + 'asm_obsolete/x64-elf-gas/aes/aes-x86_64.s', + 'asm_obsolete/x64-elf-gas/aes/aesni-mb-x86_64.s', + 'asm_obsolete/x64-elf-gas/aes/aesni-sha256-x86_64.s', + 'asm_obsolete/x64-elf-gas/aes/aesni-x86_64.s', + 'asm_obsolete/x64-elf-gas/aes/vpaes-x86_64.s', + 'asm_obsolete/x64-elf-gas/aes/bsaes-x86_64.s', + 'asm_obsolete/x64-elf-gas/aes/aesni-sha1-x86_64.s', + 'asm_obsolete/x64-elf-gas/bn/rsaz-avx2.s', + 'asm_obsolete/x64-elf-gas/bn/rsaz-x86_64.s', + 'asm_obsolete/x64-elf-gas/bn/x86_64-mont.s', + 'asm_obsolete/x64-elf-gas/bn/x86_64-mont5.s', + 'asm_obsolete/x64-elf-gas/bn/x86_64-gf2m.s', + 'asm_obsolete/x64-elf-gas/camellia/cmll-x86_64.s', + 'asm_obsolete/x64-elf-gas/ec/ecp_nistz256-x86_64.s', + 'asm_obsolete/x64-elf-gas/md5/md5-x86_64.s', + 'asm_obsolete/x64-elf-gas/rc4/rc4-x86_64.s', + 'asm_obsolete/x64-elf-gas/rc4/rc4-md5-x86_64.s', + 'asm_obsolete/x64-elf-gas/sha/sha1-mb-x86_64.s', + 'asm_obsolete/x64-elf-gas/sha/sha1-x86_64.s', + 'asm_obsolete/x64-elf-gas/sha/sha256-mb-x86_64.s', + 'asm_obsolete/x64-elf-gas/sha/sha256-x86_64.s', + 'asm_obsolete/x64-elf-gas/sha/sha512-x86_64.s', + 'asm_obsolete/x64-elf-gas/whrlpool/wp-x86_64.s', + 'asm_obsolete/x64-elf-gas/modes/aesni-gcm-x86_64.s', + 'asm_obsolete/x64-elf-gas/modes/ghash-x86_64.s', + 'asm_obsolete/x64-elf-gas/x86_64cpuid.s', + ], + 'openssl_sources_common_x64_elf_gas': [ # Non-generated asm 'openssl/crypto/bn/asm/x86_64-gcc.c', # No asm available @@ -714,7 +769,7 @@ 'openssl/crypto/ec/ecp_nistz256.c', 'openssl/crypto/ui/ui_compat.c' ], - 'openssl_sources_ia32_mac_gas': [ + 'openssl_sources_asm_latest_ia32_mac_gas': [ 'asm/x86-macosx-gas/aes/aes-586.s', 'asm/x86-macosx-gas/aes/aesni-x86.s', 'asm/x86-macosx-gas/aes/vpaes-x86.s', @@ -736,9 +791,31 @@ 'asm/x86-macosx-gas/whrlpool/wp-mmx.s', 'asm/x86-macosx-gas/modes/ghash-x86.s', 'asm/x86-macosx-gas/x86cpuid.s', - 'openssl/crypto/whrlpool/wp_block.c', ], - 'openssl_sources_x64_mac_gas': [ + 'openssl_sources_asm_obsolete_ia32_mac_gas': [ + 'asm_obsolete/x86-macosx-gas/aes/aes-586.s', + 'asm_obsolete/x86-macosx-gas/aes/aesni-x86.s', + 'asm_obsolete/x86-macosx-gas/aes/vpaes-x86.s', + 'asm_obsolete/x86-macosx-gas/bf/bf-586.s', + 'asm_obsolete/x86-macosx-gas/bn/bn-586.s', + 'asm_obsolete/x86-macosx-gas/bn/co-586.s', + 'asm_obsolete/x86-macosx-gas/bn/x86-mont.s', + 'asm_obsolete/x86-macosx-gas/bn/x86-gf2m.s', + 'asm_obsolete/x86-macosx-gas/camellia/cmll-x86.s', + 'asm_obsolete/x86-macosx-gas/cast/cast-586.s', + 'asm_obsolete/x86-macosx-gas/des/crypt586.s', + 'asm_obsolete/x86-macosx-gas/des/des-586.s', + 'asm_obsolete/x86-macosx-gas/md5/md5-586.s', + 'asm_obsolete/x86-macosx-gas/rc4/rc4-586.s', + 'asm_obsolete/x86-macosx-gas/ripemd/rmd-586.s', + 'asm_obsolete/x86-macosx-gas/sha/sha1-586.s', + 'asm_obsolete/x86-macosx-gas/sha/sha256-586.s', + 'asm_obsolete/x86-macosx-gas/sha/sha512-586.s', + 'asm_obsolete/x86-macosx-gas/whrlpool/wp-mmx.s', + 'asm_obsolete/x86-macosx-gas/modes/ghash-x86.s', + 'asm_obsolete/x86-macosx-gas/x86cpuid.s', + ], + 'openssl_sources_asm_latest_x64_mac_gas': [ 'asm/x64-macosx-gas/aes/aes-x86_64.s', 'asm/x64-macosx-gas/aes/aesni-x86_64.s', 'asm/x64-macosx-gas/aes/vpaes-x86_64.s', @@ -763,6 +840,34 @@ 'asm/x64-macosx-gas/modes/aesni-gcm-x86_64.s', 'asm/x64-macosx-gas/modes/ghash-x86_64.s', 'asm/x64-macosx-gas/x86_64cpuid.s', + ], + 'openssl_sources_asm_obsolete_x64_mac_gas': [ + 'asm_obsolete/x64-macosx-gas/aes/aes-x86_64.s', + 'asm_obsolete/x64-macosx-gas/aes/aesni-x86_64.s', + 'asm_obsolete/x64-macosx-gas/aes/vpaes-x86_64.s', + 'asm_obsolete/x64-macosx-gas/aes/aesni-mb-x86_64.s', + 'asm_obsolete/x64-macosx-gas/aes/aesni-sha256-x86_64.s', + 'asm_obsolete/x64-macosx-gas/aes/bsaes-x86_64.s', + 'asm_obsolete/x64-macosx-gas/aes/aesni-sha1-x86_64.s', + 'asm_obsolete/x64-macosx-gas/bn/rsaz-avx2.s', + 'asm_obsolete/x64-macosx-gas/bn/rsaz-x86_64.s', + 'asm_obsolete/x64-macosx-gas/bn/x86_64-mont.s', + 'asm_obsolete/x64-macosx-gas/bn/x86_64-mont5.s', + 'asm_obsolete/x64-macosx-gas/bn/x86_64-gf2m.s', + 'asm_obsolete/x64-macosx-gas/camellia/cmll-x86_64.s', + 'asm_obsolete/x64-macosx-gas/ec/ecp_nistz256-x86_64.s', + 'asm_obsolete/x64-macosx-gas/md5/md5-x86_64.s', + 'asm_obsolete/x64-macosx-gas/sha/sha1-mb-x86_64.s', + 'asm_obsolete/x64-macosx-gas/sha/sha1-x86_64.s', + 'asm_obsolete/x64-macosx-gas/sha/sha256-mb-x86_64.s', + 'asm_obsolete/x64-macosx-gas/sha/sha256-x86_64.s', + 'asm_obsolete/x64-macosx-gas/sha/sha512-x86_64.s', + 'asm_obsolete/x64-macosx-gas/whrlpool/wp-x86_64.s', + 'asm_obsolete/x64-macosx-gas/modes/aesni-gcm-x86_64.s', + 'asm_obsolete/x64-macosx-gas/modes/ghash-x86_64.s', + 'asm_obsolete/x64-macosx-gas/x86_64cpuid.s', + ], + 'openssl_sources_common_x64_mac_gas': [ # Non-generated asm 'openssl/crypto/bn/asm/x86_64-gcc.c', # No asm available @@ -831,7 +936,7 @@ 'openssl/crypto/armcap.c', 'openssl/crypto/arm64cpuid.S', ], - 'openssl_sources_ia32_win_masm': [ + 'openssl_sources_asm_ia32_win_masm': [ 'asm/x86-win32-masm/aes/aes-586.asm', 'asm/x86-win32-masm/aes/aesni-x86.asm', 'asm/x86-win32-masm/aes/vpaes-x86.asm', @@ -853,9 +958,8 @@ 'asm/x86-win32-masm/whrlpool/wp-mmx.asm', 'asm/x86-win32-masm/modes/ghash-x86.asm', 'asm/x86-win32-masm/x86cpuid.asm', - 'openssl/crypto/whrlpool/wp_block.c' ], - 'openssl_sources_x64_win_masm': [ + 'openssl_sources_asm_latest_x64_win_masm': [ 'asm/x64-win32-masm/aes/aes-x86_64.asm', 'asm/x64-win32-masm/aes/aesni-x86_64.asm', 'asm/x64-win32-masm/aes/aesni-mb-x86_64.asm', @@ -882,6 +986,36 @@ 'asm/x64-win32-masm/modes/aesni-gcm-x86_64.asm', 'asm/x64-win32-masm/modes/ghash-x86_64.asm', 'asm/x64-win32-masm/x86_64cpuid.asm', + ], + 'openssl_sources_asm_obsolete_x64_win_masm': [ + 'asm_obsolete/x64-win32-masm/aes/aes-x86_64.asm', + 'asm_obsolete/x64-win32-masm/aes/aesni-x86_64.asm', + 'asm_obsolete/x64-win32-masm/aes/aesni-mb-x86_64.asm', + 'asm_obsolete/x64-win32-masm/aes/aesni-sha256-x86_64.asm', + 'asm_obsolete/x64-win32-masm/aes/vpaes-x86_64.asm', + 'asm_obsolete/x64-win32-masm/aes/bsaes-x86_64.asm', + 'asm_obsolete/x64-win32-masm/aes/aesni-sha1-x86_64.asm', + 'asm_obsolete/x64-win32-masm/bn/rsaz-avx2.asm', + 'asm_obsolete/x64-win32-masm/bn/rsaz-x86_64.asm', + 'asm_obsolete/x64-win32-masm/bn/x86_64-mont.asm', + 'asm_obsolete/x64-win32-masm/bn/x86_64-mont5.asm', + 'asm_obsolete/x64-win32-masm/bn/x86_64-gf2m.asm', + 'asm_obsolete/x64-win32-masm/camellia/cmll-x86_64.asm', + 'asm_obsolete/x64-win32-masm/ec/ecp_nistz256-x86_64.asm', + 'asm_obsolete/x64-win32-masm/md5/md5-x86_64.asm', + 'asm_obsolete/x64-win32-masm/rc4/rc4-x86_64.asm', + 'asm_obsolete/x64-win32-masm/rc4/rc4-md5-x86_64.asm', + 'asm_obsolete/x64-win32-masm/sha/sha1-mb-x86_64.asm', + 'asm_obsolete/x64-win32-masm/sha/sha1-x86_64.asm', + 'asm_obsolete/x64-win32-masm/sha/sha256-mb-x86_64.asm', + 'asm_obsolete/x64-win32-masm/sha/sha256-x86_64.asm', + 'asm_obsolete/x64-win32-masm/sha/sha512-x86_64.asm', + 'asm_obsolete/x64-win32-masm/whrlpool/wp-x86_64.asm', + 'asm_obsolete/x64-win32-masm/modes/aesni-gcm-x86_64.asm', + 'asm_obsolete/x64-win32-masm/modes/ghash-x86_64.asm', + 'asm_obsolete/x64-win32-masm/x86_64cpuid.asm', + ], + 'openssl_sources_common_x64_win_masm': [ # No asm available 'openssl/crypto/bn/bn_asm.c', 'openssl/crypto/bf/bf_enc.c', @@ -893,6 +1027,63 @@ 'openssl/crypto/ec/ecp_nistz256.c', 'openssl/crypto/ui/ui_compat.c' ], + 'openssl_sources_ia32_win_masm': [ + '<@(openssl_sources_asm_ia32_win_masm)', + '<@(openssl_sources_common_ia32)', + ], + # + # Asm files are changed depending on the version of assembler. + # We provide two sets of asm files, one is asm_latest(avx2 and + # addx supported) and the other asm_obsolete(without avx1/2 and addx) + # The asm_latest follows the version as defined in + # https://github.com/openssl/openssl/blob/OpenSSL_1_0_2-stable/crypto/ec/asm/ecp_nistz256-avx2.pl#L45-L67 + # + 'conditions': [ + ['(OS=="win" and MSVS_VERSION>="2012") or ' + 'llvm_version>="3.3" or gas_version>="2.23"', { + 'openssl_sources_x64_win_masm': [ + '<@(openssl_sources_asm_latest_x64_win_masm)', + '<@(openssl_sources_common_x64_win_masm)', + ], + 'openssl_sources_ia32_mac_gas': [ + '<@(openssl_sources_asm_latest_ia32_mac_gas)', + '<@(openssl_sources_common_ia32)', + ], + 'openssl_sources_x64_mac_gas': [ + '<@(openssl_sources_asm_latest_x64_mac_gas)', + '<@(openssl_sources_common_x64_mac_gas)', + ], + 'openssl_sources_ia32_elf_gas': [ + '<@(openssl_sources_asm_latest_ia32_elf_gas)', + '<@(openssl_sources_common_ia32)', + ], + 'openssl_sources_x64_elf_gas': [ + '<@(openssl_sources_asm_latest_x64_elf_gas)', + '<@(openssl_sources_common_x64_elf_gas)', + ], + }, { + 'openssl_sources_x64_win_masm': [ + '<@(openssl_sources_asm_obsolete_x64_win_masm)', + '<@(openssl_sources_common_x64_win_masm)', + ], + 'openssl_sources_ia32_mac_gas': [ + '<@(openssl_sources_asm_obsolete_ia32_mac_gas)', + '<@(openssl_sources_common_ia32)', + ], + 'openssl_sources_x64_mac_gas': [ + '<@(openssl_sources_asm_obsolete_x64_mac_gas)', + '<@(openssl_sources_common_x64_mac_gas)', + ], + 'openssl_sources_ia32_elf_gas': [ + '<@(openssl_sources_asm_obsolete_ia32_elf_gas)', + '<@(openssl_sources_common_ia32)', + ], + 'openssl_sources_x64_elf_gas': [ + '<@(openssl_sources_asm_obsolete_x64_elf_gas)', + '<@(openssl_sources_common_x64_elf_gas)', + ], + }] + ], 'openssl_cli_sources': [ 'openssl/apps/app_rand.c', 'openssl/apps/apps.c',