diff options
author | Brent Cook <busterb@gmail.com> | 2019-01-20 19:56:07 -0600 |
---|---|---|
committer | Brent Cook <busterb@gmail.com> | 2019-01-20 20:03:37 -0600 |
commit | 72bb1ed61834c37819c9d4fce516a0360ca0095e (patch) | |
tree | 2921206ebe196551cf3d74b5a759653fa4836460 | |
parent | 74553e53aa4a5486b800f91bf42c50fedb16d65d (diff) | |
download | portable-72bb1ed61834c37819c9d4fce516a0360ca0095e.tar.gz portable-72bb1ed61834c37819c9d4fce516a0360ca0095e.tar.bz2 portable-72bb1ed61834c37819c9d4fce516a0360ca0095e.zip |
generate masm and mingw64 assembly
-rw-r--r-- | crypto/Makefile.am | 6 | ||||
-rw-r--r-- | crypto/Makefile.am.masm-x86_64 | 41 | ||||
-rw-r--r-- | crypto/Makefile.am.mingw64-x86_64 | 41 | ||||
-rwxr-xr-x | update.sh | 14 |
4 files changed, 99 insertions, 3 deletions
diff --git a/crypto/Makefile.am b/crypto/Makefile.am index 716003c..ce846b4 100644 --- a/crypto/Makefile.am +++ b/crypto/Makefile.am | |||
@@ -197,10 +197,14 @@ EXTRA_libcrypto_la_SOURCES = | |||
197 | include Makefile.am.elf-arm | 197 | include Makefile.am.elf-arm |
198 | include Makefile.am.elf-x86_64 | 198 | include Makefile.am.elf-x86_64 |
199 | include Makefile.am.macosx-x86_64 | 199 | include Makefile.am.macosx-x86_64 |
200 | include Makefile.am.masm-x86_64 | ||
201 | include Makefile.am.mingw64-x86_64 | ||
200 | 202 | ||
201 | if !HOST_ASM_ELF_ARM | 203 | if !HOST_ASM_ELF_ARM |
202 | if !HOST_ASM_ELF_X86_64 | 204 | if !HOST_ASM_ELF_X86_64 |
203 | if !HOST_ASM_MACOSX_X86_64 | 205 | if !HOST_ASM_MACOSX_X86_64 |
206 | if !HOST_ASM_MASM_X86_64 | ||
207 | if !HOST_ASM_MINGW64_X86_64 | ||
204 | libcrypto_la_SOURCES += aes/aes_cbc.c | 208 | libcrypto_la_SOURCES += aes/aes_cbc.c |
205 | libcrypto_la_SOURCES += aes/aes_core.c | 209 | libcrypto_la_SOURCES += aes/aes_core.c |
206 | libcrypto_la_SOURCES += camellia/camellia.c | 210 | libcrypto_la_SOURCES += camellia/camellia.c |
@@ -211,6 +215,8 @@ libcrypto_la_SOURCES += whrlpool/wp_block.c | |||
211 | endif | 215 | endif |
212 | endif | 216 | endif |
213 | endif | 217 | endif |
218 | endif | ||
219 | endif | ||
214 | 220 | ||
215 | libcrypto_la_SOURCES += cpt_err.c | 221 | libcrypto_la_SOURCES += cpt_err.c |
216 | libcrypto_la_SOURCES += cryptlib.c | 222 | libcrypto_la_SOURCES += cryptlib.c |
diff --git a/crypto/Makefile.am.masm-x86_64 b/crypto/Makefile.am.masm-x86_64 new file mode 100644 index 0000000..27094c0 --- /dev/null +++ b/crypto/Makefile.am.masm-x86_64 | |||
@@ -0,0 +1,41 @@ | |||
1 | |||
2 | ASM_X86_64_MASM = aes/aes-masm-x86_64.S | ||
3 | ASM_X86_64_MASM += aes/bsaes-masm-x86_64.S | ||
4 | ASM_X86_64_MASM += aes/vpaes-masm-x86_64.S | ||
5 | ASM_X86_64_MASM += aes/aesni-masm-x86_64.S | ||
6 | ASM_X86_64_MASM += aes/aesni-sha1-masm-x86_64.S | ||
7 | ASM_X86_64_MASM += bn/modexp512-masm-x86_64.S | ||
8 | ASM_X86_64_MASM += bn/mont-masm-x86_64.S | ||
9 | ASM_X86_64_MASM += bn/mont5-masm-x86_64.S | ||
10 | ASM_X86_64_MASM += bn/gf2m-masm-x86_64.S | ||
11 | ASM_X86_64_MASM += camellia/cmll-masm-x86_64.S | ||
12 | ASM_X86_64_MASM += md5/md5-masm-x86_64.S | ||
13 | ASM_X86_64_MASM += modes/ghash-masm-x86_64.S | ||
14 | ASM_X86_64_MASM += rc4/rc4-masm-x86_64.S | ||
15 | ASM_X86_64_MASM += rc4/rc4-md5-masm-x86_64.S | ||
16 | ASM_X86_64_MASM += sha/sha1-masm-x86_64.S | ||
17 | ASM_X86_64_MASM += sha/sha256-masm-x86_64.S | ||
18 | ASM_X86_64_MASM += sha/sha512-masm-x86_64.S | ||
19 | ASM_X86_64_MASM += whrlpool/wp-masm-x86_64.S | ||
20 | ASM_X86_64_MASM += cpuid-masm-x86_64.S | ||
21 | |||
22 | EXTRA_DIST += $(ASM_X86_64_MASM) | ||
23 | |||
24 | if HOST_ASM_MASM_X86_64 | ||
25 | libcrypto_la_CPPFLAGS += -DAES_ASM | ||
26 | libcrypto_la_CPPFLAGS += -DBSAES_ASM | ||
27 | libcrypto_la_CPPFLAGS += -DVPAES_ASM | ||
28 | libcrypto_la_CPPFLAGS += -DOPENSSL_IA32_SSE2 | ||
29 | libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT | ||
30 | libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT5 | ||
31 | libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_GF2m | ||
32 | libcrypto_la_CPPFLAGS += -DMD5_ASM | ||
33 | libcrypto_la_CPPFLAGS += -DGHASH_ASM | ||
34 | libcrypto_la_CPPFLAGS += -DRSA_ASM | ||
35 | libcrypto_la_CPPFLAGS += -DSHA1_ASM | ||
36 | libcrypto_la_CPPFLAGS += -DSHA256_ASM | ||
37 | libcrypto_la_CPPFLAGS += -DSHA512_ASM | ||
38 | libcrypto_la_CPPFLAGS += -DWHIRLPOOL_ASM | ||
39 | libcrypto_la_CPPFLAGS += -DOPENSSL_CPUID_OBJ | ||
40 | libcrypto_la_SOURCES += $(ASM_X86_64_MASM) | ||
41 | endif | ||
diff --git a/crypto/Makefile.am.mingw64-x86_64 b/crypto/Makefile.am.mingw64-x86_64 new file mode 100644 index 0000000..4afac19 --- /dev/null +++ b/crypto/Makefile.am.mingw64-x86_64 | |||
@@ -0,0 +1,41 @@ | |||
1 | |||
2 | ASM_X86_64_MINGW64 = aes/aes-mingw64-x86_64.S | ||
3 | ASM_X86_64_MINGW64 += aes/bsaes-mingw64-x86_64.S | ||
4 | ASM_X86_64_MINGW64 += aes/vpaes-mingw64-x86_64.S | ||
5 | ASM_X86_64_MINGW64 += aes/aesni-mingw64-x86_64.S | ||
6 | ASM_X86_64_MINGW64 += aes/aesni-sha1-mingw64-x86_64.S | ||
7 | ASM_X86_64_MINGW64 += bn/modexp512-mingw64-x86_64.S | ||
8 | ASM_X86_64_MINGW64 += bn/mont-mingw64-x86_64.S | ||
9 | ASM_X86_64_MINGW64 += bn/mont5-mingw64-x86_64.S | ||
10 | ASM_X86_64_MINGW64 += bn/gf2m-mingw64-x86_64.S | ||
11 | ASM_X86_64_MINGW64 += camellia/cmll-mingw64-x86_64.S | ||
12 | ASM_X86_64_MINGW64 += md5/md5-mingw64-x86_64.S | ||
13 | ASM_X86_64_MINGW64 += modes/ghash-mingw64-x86_64.S | ||
14 | ASM_X86_64_MINGW64 += rc4/rc4-mingw64-x86_64.S | ||
15 | ASM_X86_64_MINGW64 += rc4/rc4-md5-mingw64-x86_64.S | ||
16 | ASM_X86_64_MINGW64 += sha/sha1-mingw64-x86_64.S | ||
17 | ASM_X86_64_MINGW64 += sha/sha256-mingw64-x86_64.S | ||
18 | ASM_X86_64_MINGW64 += sha/sha512-mingw64-x86_64.S | ||
19 | ASM_X86_64_MINGW64 += whrlpool/wp-mingw64-x86_64.S | ||
20 | ASM_X86_64_MINGW64 += cpuid-mingw64-x86_64.S | ||
21 | |||
22 | EXTRA_DIST += $(ASM_X86_64_MINGW64) | ||
23 | |||
24 | if HOST_ASM_MINGW64_X86_64 | ||
25 | libcrypto_la_CPPFLAGS += -DAES_ASM | ||
26 | libcrypto_la_CPPFLAGS += -DBSAES_ASM | ||
27 | libcrypto_la_CPPFLAGS += -DVPAES_ASM | ||
28 | libcrypto_la_CPPFLAGS += -DOPENSSL_IA32_SSE2 | ||
29 | libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT | ||
30 | libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT5 | ||
31 | libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_GF2m | ||
32 | libcrypto_la_CPPFLAGS += -DMD5_ASM | ||
33 | libcrypto_la_CPPFLAGS += -DGHASH_ASM | ||
34 | libcrypto_la_CPPFLAGS += -DRSA_ASM | ||
35 | libcrypto_la_CPPFLAGS += -DSHA1_ASM | ||
36 | libcrypto_la_CPPFLAGS += -DSHA256_ASM | ||
37 | libcrypto_la_CPPFLAGS += -DSHA512_ASM | ||
38 | libcrypto_la_CPPFLAGS += -DWHIRLPOOL_ASM | ||
39 | libcrypto_la_CPPFLAGS += -DOPENSSL_CPUID_OBJ | ||
40 | libcrypto_la_SOURCES += $(ASM_X86_64_MINGW64) | ||
41 | endif | ||
@@ -161,7 +161,11 @@ $GREP -v OPENSSL_ia32cap_P $libcrypto_src/Symbols.list | $GREP '^[A-Za-z0-9_]' > | |||
161 | # generate assembly crypto algorithms | 161 | # generate assembly crypto algorithms |
162 | asm_src=$libcrypto_src | 162 | asm_src=$libcrypto_src |
163 | gen_asm_stdout() { | 163 | gen_asm_stdout() { |
164 | perl $asm_src/$2 $1 > $3.tmp | 164 | if [ $1 = "mingw64" ]; then |
165 | CC=true perl $asm_src/$2 $1 > $3.tmp | ||
166 | else | ||
167 | perl $asm_src/$2 $1 > $3.tmp | ||
168 | fi | ||
165 | [ $1 = "elf" ] && cat <<-EOF >> $3.tmp | 169 | [ $1 = "elf" ] && cat <<-EOF >> $3.tmp |
166 | #if defined(HAVE_GNU_STACK) | 170 | #if defined(HAVE_GNU_STACK) |
167 | .section .note.GNU-stack,"",%progbits | 171 | .section .note.GNU-stack,"",%progbits |
@@ -170,7 +174,11 @@ gen_asm_stdout() { | |||
170 | $MV $3.tmp $3 | 174 | $MV $3.tmp $3 |
171 | } | 175 | } |
172 | gen_asm() { | 176 | gen_asm() { |
173 | perl $asm_src/$2 $1 $3.tmp | 177 | if [ $1 = "mingw64" ]; then |
178 | CC=true perl $asm_src/$2 $1 $3.tmp | ||
179 | else | ||
180 | perl $asm_src/$2 $1 $3.tmp | ||
181 | fi | ||
174 | [ $1 = "elf" ] && cat <<-EOF >> $3.tmp | 182 | [ $1 = "elf" ] && cat <<-EOF >> $3.tmp |
175 | #if defined(HAVE_GNU_STACK) | 183 | #if defined(HAVE_GNU_STACK) |
176 | .section .note.GNU-stack,"",%progbits | 184 | .section .note.GNU-stack,"",%progbits |
@@ -191,7 +199,7 @@ $CP $libcrypto_src/armv4cpuid.S crypto | |||
191 | $CP $libcrypto_src/armcap.c crypto | 199 | $CP $libcrypto_src/armcap.c crypto |
192 | $CP $libcrypto_src/arm_arch.h crypto | 200 | $CP $libcrypto_src/arm_arch.h crypto |
193 | 201 | ||
194 | for abi in elf macosx; do | 202 | for abi in elf macosx masm mingw64; do |
195 | echo generating x86_64 ASM source for $abi | 203 | echo generating x86_64 ASM source for $abi |
196 | gen_asm_stdout $abi aes/asm/aes-x86_64.pl crypto/aes/aes-$abi-x86_64.S | 204 | gen_asm_stdout $abi aes/asm/aes-x86_64.pl crypto/aes/aes-$abi-x86_64.S |
197 | gen_asm_stdout $abi aes/asm/vpaes-x86_64.pl crypto/aes/vpaes-$abi-x86_64.S | 205 | gen_asm_stdout $abi aes/asm/vpaes-x86_64.pl crypto/aes/vpaes-$abi-x86_64.S |