Take gcm128.c and ghash assembler modules into the build loop.
authorAndy Polyakov <appro@openssl.org>
Thu, 22 Apr 2010 21:36:26 +0000 (21:36 +0000)
committerAndy Polyakov <appro@openssl.org>
Thu, 22 Apr 2010 21:36:26 +0000 (21:36 +0000)
Configure
Makefile.org
TABLE
crypto/modes/Makefile

index 5fd0eda8442866edcc638743599c04ccb5c478c0..3b605878c8ba9320d5f01b9e581007cfb1912113 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -123,23 +123,23 @@ my $tlib="-lnsl -lsocket";
 my $bits1="THIRTY_TWO_BIT ";
 my $bits2="SIXTY_FOUR_BIT ";
 
-my $x86_asm="x86cpuid.o:bn-586.o co-586.o x86-mont.o:des-586.o crypt586.o:aes_ctr.o aes-586.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o:cmll-x86.o";
+my $x86_asm="x86cpuid.o:bn-586.o co-586.o x86-mont.o:des-586.o crypt586.o:aes_ctr.o aes-586.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o:cmll-x86.o:ghash-x86.o";
 
 my $x86_elf_asm="$x86_asm:elf";
 
-my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o::aes_ctr.o aes-x86_64.o aesni-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o";
-my $ia64_asm="ia64cpuid.o:bn-ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes_ctr.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o:::::void";
-my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes_ctr.o aes-sparcv9.o:::sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::void";
-my $sparcv8_asm=":sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::::void";
-my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o:::::sha1-alpha.o:::::::void";
-my $mips3_asm=":bn-mips3.o::::::::::::void";
-my $s390x_asm="s390xcap.o s390xcpuid.o:bn-s390x.o s390x-mont.o::aes_ctr.o aes-s390x.o:::sha1-s390x.o sha256-s390x.o sha512-s390x.o::rc4-s390x.o:::::void";
-my $armv4_asm=":bn_asm.o armv4-mont.o::aes_cbc.o aes_ctr.o aes-armv4.o:::sha1-armv4-large.o sha256-armv4.o sha512-armv4.o:::::::void";
-my $parisc11_asm="pariscid.o:bn_asm.o parisc-mont.o::aes_core.o aes_cbc.o aes_ctr.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::32";
-my $parisc20_asm="pariscid.o:pa-risc2W.o parisc-mont.o::aes_core.o aes_cbc.o aes_ctr.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::64";
-my $ppc32_asm="ppccpuid.o ppccap.o:bn-ppc.o ppc-mont.o ppc64-mont.o::aes_core.o aes_cbc.o aes_ctr.o aes-ppc.o:::sha1-ppc.o sha256-ppc.o::::::";
-my $ppc64_asm="ppccpuid.o ppccap.o:bn-ppc.o ppc-mont.o ppc64-mont.o::aes_core.o aes_cbc.o aes_ctr.o aes-ppc.o:::sha1-ppc.o sha256-ppc.o sha512-ppc.o::::::";
-my $no_asm=":::::::::::::void";
+my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o::aes_ctr.o aes-x86_64.o aesni-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o:ghash-x86_64.o";
+my $ia64_asm="ia64cpuid.o:bn-ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes_ctr.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o:::::ghash-ia64.o:void";
+my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes_ctr.o aes-sparcv9.o:::sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o:void";
+my $sparcv8_asm=":sparcv8.o:des_enc-sparc.o fcrypt_b.o::::::::::::void";
+my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o:::::sha1-alpha.o:::::::ghash-alpha.o:void";
+my $mips3_asm=":bn-mips3.o:::::::::::::void";
+my $s390x_asm="s390xcap.o s390xcpuid.o:bn-s390x.o s390x-mont.o::aes_ctr.o aes-s390x.o:::sha1-s390x.o sha256-s390x.o sha512-s390x.o::rc4-s390x.o::::::void";
+my $armv4_asm=":bn_asm.o armv4-mont.o::aes_cbc.o aes_ctr.o aes-armv4.o:::sha1-armv4-large.o sha256-armv4.o sha512-armv4.o::::::::void";
+my $parisc11_asm="pariscid.o:bn_asm.o parisc-mont.o::aes_core.o aes_cbc.o aes_ctr.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o::::::32";
+my $parisc20_asm="pariscid.o:pa-risc2W.o parisc-mont.o::aes_core.o aes_cbc.o aes_ctr.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o::::::64";
+my $ppc32_asm="ppccpuid.o ppccap.o:bn-ppc.o ppc-mont.o ppc64-mont.o::aes_core.o aes_cbc.o aes_ctr.o aes-ppc.o:::sha1-ppc.o sha256-ppc.o:::::::";
+my $ppc64_asm="ppccpuid.o ppccap.o:bn-ppc.o ppc-mont.o ppc64-mont.o::aes_core.o aes_cbc.o aes_ctr.o aes-ppc.o:::sha1-ppc.o sha256-ppc.o sha512-ppc.o:::::::";
+my $no_asm="::::::::::::::void";
 
 # As for $BSDthreads. Idea is to maintain "collective" set of flags,
 # which would cover all BSD flavors. -pthread applies to them all, 
@@ -150,7 +150,7 @@ my $no_asm=":::::::::::::void";
 # seems to be sufficient?
 my $BSDthreads="-pthread -D_THREAD_SAFE -D_REENTRANT";
 
-#config-string $cc : $cflags : $unistd : $thread_cflag : $sys_id : $lflags : $bn_ops : $cpuid_obj : $bn_obj : $des_obj : $aes_obj : $bf_obj : $md5_obj : $sha1_obj : $cast_obj : $rc4_obj : $rmd160_obj : $rc5_obj : $wp_obj : $cmll_obj : $dso_scheme : $shared_target : $shared_cflag : $shared_ldflag : $shared_extension : $ranlib : $arflags : $multilib
+#config-string $cc : $cflags : $unistd : $thread_cflag : $sys_id : $lflags : $bn_ops : $cpuid_obj : $bn_obj : $des_obj : $aes_obj : $bf_obj : $md5_obj : $sha1_obj : $cast_obj : $rc4_obj : $rmd160_obj : $rc5_obj : $wp_obj : $cmll_obj : $modes_obj : $dso_scheme : $shared_target : $shared_cflag : $shared_ldflag : $shared_extension : $ranlib : $arflags : $multilib
 
 my %table=(
 # File 'TABLE' (created by 'make TABLE') contains the data from this list,
@@ -187,7 +187,7 @@ my %table=(
 "debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
 "debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 "debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"debug-linux-ia32-aes", "gcc:-DAES_EXPERIMENTAL -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:x86cpuid.o:bn-586.o co-586.o x86-mont.o:des-586.o crypt586.o:aes_x86core.o aes_cbc.o aes_ctr.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o::elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"debug-linux-ia32-aes", "gcc:-DAES_EXPERIMENTAL -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:x86cpuid.o:bn-586.o co-586.o x86-mont.o:des-586.o crypt586.o:aes_x86core.o aes_cbc.o aes_ctr.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o::ghash-x86.o:elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 "debug-linux-generic32","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 "debug-linux-generic64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 "debug-linux-x86_64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -DTERMIO -g -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
@@ -292,8 +292,8 @@ my %table=(
 # Since there is mention of this in shlib/hpux10-cc.sh
 "hpux-parisc-cc-o4","cc:-Ae +O4 +ESlit -z -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 "hpux-parisc-gcc","gcc:-O3 -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"hpux-parisc2-gcc","gcc:-march=2.0 -O3 -DB_ENDIAN -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL DES_RISC1::pa-risc2.o::::::::::::void:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"hpux64-parisc2-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2W.o::::::::::::void:dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_64",
+"hpux-parisc2-gcc","gcc:-march=2.0 -O3 -DB_ENDIAN -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL DES_RISC1::pa-risc2.o:::::::::::::void:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"hpux64-parisc2-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2W.o:::::::::::::void:dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_64",
 
 # More attempts at unified 10.X and 11.X targets for HP C compiler.
 #
@@ -301,7 +301,7 @@ my %table=(
 # Kevin Steves <ks@hp.se>
 "hpux-parisc-cc","cc:+O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 "hpux-parisc1_1-cc","cc:+DA1.1 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${parisc11_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa1.1",
-"hpux-parisc2-cc","cc:+DA2.0 +DS2.0 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2.o::::::::::::void:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"hpux-parisc2-cc","cc:+DA2.0 +DS2.0 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2.o:::::::::::::void:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 "hpux64-parisc2-cc","cc:+DD64 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${parisc20_asm}:dlfcn:hpux-shared:+Z:+DD64 -b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_64",
 
 # HP/UX IA-64 targets
@@ -492,8 +492,8 @@ my %table=(
 # Visual C targets
 #
 # Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64
-"VC-WIN64I","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes_ctr.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ias:win32",
-"VC-WIN64A","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:x86_64cpuid.o:bn_asm.o x86_64-mont.o::aes_ctr.o aes-x86_64.o aesni-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o:auto:win32",
+"VC-WIN64I","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes_ctr.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o:ias:win32",
+"VC-WIN64A","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:x86_64cpuid.o:bn_asm.o x86_64-mont.o::aes_ctr.o aes-x86_64.o aesni-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o:ghash-x86_64.o:auto:win32",
 # x86 Win32 target defaults to ANSI API, if you want UNICODE, complement
 # 'perl Configure VC-WIN32' with '-DUNICODE -D_UNICODE'
 "VC-WIN32","cl:-W3 -WX -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
@@ -579,8 +579,8 @@ my %table=(
 "tandem-c89","c89:-Ww -D__TANDEM -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 -D_TANDEM_SOURCE -DB_ENDIAN::(unknown):::THIRTY_TWO_BIT:::",
 
 # uClinux
-"uClinux-dist","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):BN_LLONG:::::::::::::::$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::",
-"uClinux-dist64","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):SIXTY_FOUR_BIT_LONG:::::::::::::::$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::",
+"uClinux-dist","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):BN_LLONG:${no_asm}:$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::",
+"uClinux-dist64","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):SIXTY_FOUR_BIT_LONG:${no_asm}:$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::",
 
 );
 
@@ -611,6 +611,7 @@ my $idx_rmd160_obj = $idx++;
 my $idx_rc5_obj = $idx++;
 my $idx_wp_obj = $idx++;
 my $idx_cmll_obj = $idx++;
+my $idx_modes_obj = $idx++;
 my $idx_perlasm_scheme = $idx++;
 my $idx_dso_scheme = $idx++;
 my $idx_shared_target = $idx++;
@@ -1084,6 +1085,7 @@ my $rmd160_obj = $fields[$idx_rmd160_obj];
 my $rc5_obj = $fields[$idx_rc5_obj];
 my $wp_obj = $fields[$idx_wp_obj];
 my $cmll_obj = $fields[$idx_cmll_obj];
+my $modes_obj = $fields[$idx_modes_obj];
 my $perlasm_scheme = $fields[$idx_perlasm_scheme];
 my $dso_scheme = $fields[$idx_dso_scheme];
 my $shared_target = $fields[$idx_shared_target];
@@ -1232,7 +1234,7 @@ if ($no_asm)
        {
        $cpuid_obj=$bn_obj=
        $des_obj=$aes_obj=$bf_obj=$cast_obj=$rc4_obj=$rc5_obj=$cmll_obj=
-       $sha1_obj=$md5_obj=$rmd160_obj=$wp_obj="";
+       $modes_obj=$sha1_obj=$md5_obj=$rmd160_obj=$wp_obj="";
        }
 
 if (!$no_shared)
@@ -1411,6 +1413,10 @@ else     {
        $wp_obj="wp_block.o";
        }
 $cmll_obj=$cmll_enc    unless ($cmll_obj =~ /.o$/);
+if ($modes_obj =~ /ghash/)
+       {
+       $cflags.=" -DGHASH_ASM";
+       }
 
 # "Stringify" the C flags string.  This permits it to be made part of a string
 # and works as well on command lines.
@@ -1525,6 +1531,7 @@ while (<IN>)
        s/^RMD160_ASM_OBJ=.*$/RMD160_ASM_OBJ= $rmd160_obj/;
        s/^WP_ASM_OBJ=.*$/WP_ASM_OBJ= $wp_obj/;
        s/^CMLL_ENC=.*$/CMLL_ENC= $cmll_obj/;
+       s/^MODES_ASM_OBJ.=*$/MODES_ASM_OBJ= $modes_obj/;
        s/^PERLASM_SCHEME=.*$/PERLASM_SCHEME= $perlasm_scheme/;
        s/^PROCESSOR=.*/PROCESSOR= $processor/;
        s/^ARFLAGS=.*/ARFLAGS= $arflags/;
@@ -1576,7 +1583,8 @@ print "RC5_ENC       =$rc5_obj\n";
 print "MD5_OBJ_ASM   =$md5_obj\n";
 print "SHA1_OBJ_ASM  =$sha1_obj\n";
 print "RMD160_OBJ_ASM=$rmd160_obj\n";
-print "CMLL_ENC=     =$cmll_obj\n";
+print "CMLL_ENC      =$cmll_obj\n";
+print "MODES_OBJ     =$modes_obj\n";
 print "PROCESSOR     =$processor\n";
 print "RANLIB        =$ranlib\n";
 print "ARFLAGS       =$arflags\n";
@@ -1969,7 +1977,7 @@ sub print_table_entry
        (my $cc,my $cflags,my $unistd,my $thread_cflag,my $sys_id,my $lflags,
        my $bn_ops,my $cpuid_obj,my $bn_obj,my $des_obj,my $aes_obj, my $bf_obj,
        my $md5_obj,my $sha1_obj,my $cast_obj,my $rc4_obj,my $rmd160_obj,
-       my $rc5_obj,my $wp_obj,my $cmll_obj,my $perlasm_scheme,my $dso_scheme,my $shared_target,my $shared_cflag,
+       my $rc5_obj,my $wp_obj,my $cmll_obj,my $modes_obj,my $perlasm_scheme,my $dso_scheme,my $shared_target,my $shared_cflag,
        my $shared_ldflag,my $shared_extension,my $ranlib,my $arflags,my $multilib)=
        split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
                        
@@ -1996,6 +2004,7 @@ sub print_table_entry
 \$rc5_obj      = $rc5_obj
 \$wp_obj       = $wp_obj
 \$cmll_obj     = $cmll_obj
+\$modes_obj    = $modes_obj
 \$perlasm_scheme = $perlasm_scheme
 \$dso_scheme   = $dso_scheme
 \$shared_target= $shared_target
index 94302f9c207f9b8a854ed4f40d775a08bdefca65..48abf3dc1204f31c93f6e3a6c531baf9ede5c448 100644 (file)
@@ -99,6 +99,7 @@ SHA1_ASM_OBJ=
 RMD160_ASM_OBJ= 
 WP_ASM_OBJ=
 CMLL_ENC=
+MODES_ASM_OBJ=
 PERLASM_SCHEME=
 
 # KRB5 stuff
@@ -204,6 +205,7 @@ BUILDENV=   PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \
                MD5_ASM_OBJ='$(MD5_ASM_OBJ)'                    \
                RMD160_ASM_OBJ='$(RMD160_ASM_OBJ)'              \
                WP_ASM_OBJ='$(WP_ASM_OBJ)'                      \
+               MODES_ASM_OBJ='$(MODES_ASM_OBJ)'                \
                PERLASM_SCHEME='$(PERLASM_SCHEME)'              \
                THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES=
 # MAKEOVERRIDES= effectively "equalizes" GNU-ish and SysV-ish make flavors,
diff --git a/TABLE b/TABLE
index a9267f1204c715a631d7547d637e686f585f1a20..327391f4756c57fab7f06c0e033ecda11a5d0567 100644 (file)
--- a/TABLE
+++ b/TABLE
@@ -21,6 +21,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = win32
 $shared_target= 
@@ -52,6 +53,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -83,6 +85,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= bsd-gcc-shared
@@ -114,6 +117,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= bsd-gcc-shared
@@ -145,6 +149,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-ia64.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= bsd-gcc-shared
@@ -176,6 +181,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-sparcv9.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= bsd-gcc-shared
@@ -207,6 +213,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= bsd-gcc-shared
@@ -238,6 +245,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = a.out
 $dso_scheme   = dlfcn
 $shared_target= bsd-shared
@@ -269,6 +277,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= bsd-shared
@@ -300,6 +309,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = wp-x86_64.o
 $cmll_obj     = cmll-x86_64.o cmll_misc.o
+$modes_obj    = ghash-x86_64.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= bsd-gcc-shared
@@ -331,6 +341,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = coff
 $dso_scheme   = dlfcn
 $shared_target= cygwin-shared
@@ -362,6 +373,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = win32
 $shared_target= 
@@ -393,6 +405,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = a.out
 $dso_scheme   = 
 $shared_target= 
@@ -424,6 +437,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -455,6 +469,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -486,6 +501,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -517,6 +533,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= bsd-gcc-shared
@@ -548,6 +565,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= bsd-gcc-shared
@@ -579,6 +597,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= reliantunix-shared
@@ -610,6 +629,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -641,6 +661,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -672,6 +693,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = win32
 $shared_target= 
@@ -703,6 +725,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = win32
 $shared_target= 
@@ -734,6 +757,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = win32n
 $dso_scheme   = win32
 $shared_target= 
@@ -765,6 +789,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = wp-x86_64.o
 $cmll_obj     = cmll-x86_64.o cmll_misc.o
+$modes_obj    = ghash-x86_64.o
 $perlasm_scheme = auto
 $dso_scheme   = win32
 $shared_target= 
@@ -796,6 +821,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-ia64.o
 $perlasm_scheme = ias
 $dso_scheme   = win32
 $shared_target= 
@@ -827,6 +853,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = aix32
 $dso_scheme   = dlfcn
 $shared_target= aix-shared
@@ -858,6 +885,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = aix32
 $dso_scheme   = dlfcn
 $shared_target= aix-shared
@@ -889,6 +917,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -920,6 +949,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = aix64
 $dso_scheme   = dlfcn
 $shared_target= aix-shared
@@ -951,6 +981,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = aix64
 $dso_scheme   = dlfcn
 $shared_target= aix-shared
@@ -982,6 +1013,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -1013,6 +1045,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = beos
 $shared_target= beos-shared
@@ -1044,6 +1077,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = beos
 $shared_target= beos-shared
@@ -1075,6 +1109,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= bsd-gcc-shared
@@ -1106,6 +1141,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -1137,6 +1173,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -1168,6 +1205,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -1199,6 +1237,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = macosx
 $dso_scheme   = dlfcn
 $shared_target= darwin-shared
@@ -1230,6 +1269,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = osx32
 $dso_scheme   = dlfcn
 $shared_target= darwin-shared
@@ -1261,6 +1301,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = osx64
 $dso_scheme   = dlfcn
 $shared_target= darwin-shared
@@ -1292,6 +1333,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = wp-x86_64.o
 $cmll_obj     = cmll-x86_64.o cmll_misc.o
+$modes_obj    = ghash-x86_64.o
 $perlasm_scheme = macosx
 $dso_scheme   = dlfcn
 $shared_target= darwin-shared
@@ -1323,6 +1365,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -1354,6 +1397,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= bsd-shared
@@ -1385,6 +1429,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= cygwin-shared
@@ -1416,6 +1461,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = win32n
 $dso_scheme   = win32
 $shared_target= 
@@ -1447,6 +1493,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -1478,6 +1525,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -1509,6 +1557,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -1540,6 +1589,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -1571,6 +1621,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -1602,6 +1653,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -1633,6 +1685,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = 
 $shared_target= 
@@ -1664,6 +1717,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = macosx
 $dso_scheme   = dlfcn
 $shared_target= darwin-shared
@@ -1695,6 +1749,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = osx32
 $dso_scheme   = dlfcn
 $shared_target= darwin-shared
@@ -1726,6 +1781,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -1757,6 +1813,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -1788,6 +1845,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -1819,6 +1877,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -1850,6 +1909,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -1881,6 +1941,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -1912,6 +1973,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -1943,6 +2005,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -1974,6 +2037,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -2005,6 +2069,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -2036,6 +2101,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = 
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -2067,6 +2133,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= 
@@ -2098,6 +2165,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= 
@@ -2129,6 +2197,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = wp-x86_64.o
 $cmll_obj     = cmll-x86_64.o cmll_misc.o
+$modes_obj    = ghash-x86_64.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -2160,6 +2229,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = 
 $shared_target= 
@@ -2191,6 +2261,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -2222,6 +2293,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -2253,6 +2325,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-sparcv9.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -2284,6 +2357,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-sparcv9.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -2315,6 +2389,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = wp-x86_64.o
 $cmll_obj     = cmll-x86_64.o cmll_misc.o
+$modes_obj    = ghash-x86_64.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -2346,6 +2421,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -2377,6 +2453,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = wp-x86_64.o
 $cmll_obj     = cmll-x86_64.o cmll_misc.o
+$modes_obj    = ghash-x86_64.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -2408,6 +2485,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = win32
 $shared_target= cygwin-shared
@@ -2439,6 +2517,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = 
 $shared_target= 
@@ -2470,6 +2549,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -2501,6 +2581,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -2532,6 +2613,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = 
 $shared_target= 
@@ -2563,6 +2645,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -2594,6 +2677,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -2625,6 +2709,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dl
 $shared_target= hpux-shared
@@ -2656,6 +2741,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dl
 $shared_target= hpux-shared
@@ -2687,6 +2773,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-ia64.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= hpux-shared
@@ -2718,6 +2805,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-ia64.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= hpux-shared
@@ -2749,6 +2837,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dl
 $shared_target= hpux-shared
@@ -2780,6 +2869,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dl
 $shared_target= hpux-shared
@@ -2811,6 +2901,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dl
 $shared_target= hpux-shared
@@ -2842,6 +2933,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 32
 $dso_scheme   = dl
 $shared_target= hpux-shared
@@ -2873,6 +2965,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dl
 $shared_target= hpux-shared
@@ -2904,6 +2997,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dl
 $shared_target= hpux-shared
@@ -2935,6 +3029,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-ia64.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= hpux-shared
@@ -2966,6 +3061,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-ia64.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= hpux-shared
@@ -2997,6 +3093,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 64
 $dso_scheme   = dlfcn
 $shared_target= hpux-shared
@@ -3028,6 +3125,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= hpux-shared
@@ -3059,6 +3157,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3090,6 +3189,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= irix-shared
@@ -3121,6 +3221,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= irix-shared
@@ -3152,6 +3253,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= irix-shared
@@ -3183,6 +3285,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= irix-shared
@@ -3214,6 +3317,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= irix-shared
@@ -3245,6 +3349,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= irix-shared
@@ -3276,6 +3381,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-alpha.o
 $perlasm_scheme = void
 $dso_scheme   = 
 $shared_target= 
@@ -3307,6 +3413,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-alpha.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3338,6 +3445,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-alpha.o
 $perlasm_scheme = void
 $dso_scheme   = 
 $shared_target= 
@@ -3369,6 +3477,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-alpha.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3400,6 +3509,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = a.out
 $dso_scheme   = 
 $shared_target= 
@@ -3431,6 +3541,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3462,6 +3573,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3493,6 +3605,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3524,6 +3637,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3555,6 +3669,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3586,6 +3701,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-ia64.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3617,6 +3733,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-ia64.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3648,6 +3765,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-ia64.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3679,6 +3797,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = linux32
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3710,6 +3829,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = linux64
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3741,6 +3861,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3772,6 +3893,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3803,6 +3925,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-sparcv9.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3834,6 +3957,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = wp-x86_64.o
 $cmll_obj     = cmll-x86_64.o cmll_misc.o
+$modes_obj    = ghash-x86_64.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3865,6 +3989,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-sparcv9.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= linux-shared
@@ -3896,6 +4021,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = coff
 $dso_scheme   = win32
 $shared_target= cygwin-shared
@@ -3927,6 +4053,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = wp-x86_64.o
 $cmll_obj     = cmll-x86_64.o cmll_misc.o
+$modes_obj    = ghash-x86_64.o
 $perlasm_scheme = mingw64
 $dso_scheme   = win32
 $shared_target= cygwin-shared
@@ -3958,6 +4085,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -3989,6 +4117,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -4020,6 +4149,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -4051,6 +4181,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -4082,6 +4213,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -4113,6 +4245,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -4144,6 +4277,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -4175,6 +4309,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -4206,6 +4341,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -4237,6 +4373,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -4268,6 +4405,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -4299,6 +4437,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -4330,6 +4469,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-alpha.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= alpha-osf1-shared
@@ -4361,6 +4501,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-alpha.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= alpha-osf1-shared
@@ -4392,6 +4533,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -4423,6 +4565,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -4454,6 +4597,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = 
 $shared_target= 
@@ -4485,6 +4629,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= svr3-shared
@@ -4516,6 +4661,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= svr3-shared
@@ -4547,6 +4693,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -4578,6 +4725,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -4609,6 +4757,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -4640,6 +4789,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -4671,6 +4821,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-sparcv9.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -4702,6 +4853,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-sparcv9.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -4733,6 +4885,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -4764,6 +4917,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -4795,6 +4949,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-sparcv9.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -4826,6 +4981,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-sparcv9.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -4857,6 +5013,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = wp-x86_64.o
 $cmll_obj     = cmll-x86_64.o cmll_misc.o
+$modes_obj    = ghash-x86_64.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -4888,6 +5045,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = wp-x86_64.o
 $cmll_obj     = cmll-x86_64.o cmll_misc.o
+$modes_obj    = ghash-x86_64.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= solaris-shared
@@ -4919,6 +5077,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = 
 $shared_target= 
@@ -4950,6 +5109,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -4981,6 +5141,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = ghash-alpha.o
 $perlasm_scheme = void
 $dso_scheme   = dlfcn
 $shared_target= alpha-osf1-shared
@@ -5012,7 +5173,8 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
-$perlasm_scheme = 
+$modes_obj    = 
+$perlasm_scheme = void
 $dso_scheme   = 
 $shared_target= linux-shared
 $shared_cflag = -fPIC
@@ -5043,7 +5205,8 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
-$perlasm_scheme = 
+$modes_obj    = 
+$perlasm_scheme = void
 $dso_scheme   = 
 $shared_target= linux-shared
 $shared_cflag = -fPIC
@@ -5074,6 +5237,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -5105,6 +5269,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -5136,6 +5301,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -5167,6 +5333,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -5198,6 +5365,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= svr5-shared
@@ -5229,6 +5397,7 @@ $rmd160_obj   = rmd-586.o
 $rc5_obj      = rc5-586.o
 $wp_obj       = wp_block.o wp-mmx.o
 $cmll_obj     = cmll-x86.o
+$modes_obj    = ghash-x86.o
 $perlasm_scheme = elf
 $dso_scheme   = dlfcn
 $shared_target= gnu-shared
@@ -5260,6 +5429,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = 
 $shared_target= 
@@ -5291,6 +5461,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = void
 $dso_scheme   = 
 $shared_target= 
@@ -5322,6 +5493,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -5353,6 +5525,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -5384,6 +5557,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
@@ -5415,6 +5589,7 @@ $rmd160_obj   =
 $rc5_obj      = 
 $wp_obj       = 
 $cmll_obj     = 
+$modes_obj    = 
 $perlasm_scheme = 
 $dso_scheme   = 
 $shared_target= 
index 6c85861b6c56f4c744a563c35236109c85161f2c..ea74c5cad2a60e51176624287c5e60054dad618b 100644 (file)
@@ -10,15 +10,20 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
+MODES_ASM_OBJ=
+
 CFLAGS= $(INCLUDES) $(CFLAG)
+ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
 
 GENERAL=Makefile
 TEST=
 APPS=
 
 LIB=$(TOP)/libcrypto.a
-LIBSRC= cbc128.c ctr128.c cts128.c cfb128.c ofb128.c
-LIBOBJ= cbc128.o ctr128.o cts128.o cfb128.o ofb128.o
+LIBSRC= cbc128.c ctr128.c cts128.c cfb128.c ofb128.c gcm128.c
+LIBOBJ= cbc128.o ctr128.o cts128.o cfb128.o ofb128.o gcm128.o \
+       $(MODES_ASM_OBJ)
 
 SRC= $(LIBSRC)
 
@@ -38,6 +43,19 @@ lib: $(LIBOBJ)
        $(RANLIB) $(LIB) || echo Never mind.
        @touch lib
 
+aes-ia64.s:    asm/ghash-ia64.pl
+       $(PERL) asm/ghash-ia64.pl $@ $(CFLAGS)
+ghash-x86.s:   asm/ghash-x86.pl
+       $(PERL) asm/ghash-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+ghash-x86_64.s:        asm/ghash-x86_64.pl
+       $(PERL) asm/ghash-x86_64.pl $(PERLASM_SCHEME) > $@
+ghash-sparcv9.s:       asm/ghash-sparcv9.pl
+       $(PERL) asm/ghash-sparcv8.pl $(CFLAGS) > $@
+ghash-alpha.s: asm/ghash-alpha.pl
+       $(PERL) $< | $(CC) -E - | tee $@ > /dev/null
+# GNU make "catch all"
+ghash-%.s:     asm/ghash-%.pl; $(PERL) $< $(PERLASM_SCHEME) $(CFLAGS) > $@
+
 files:
        $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO