}
unless ($disabled{asm}) {
- $target{cpuid_asm_src}=$table{DEFAULTS}->{cpuid_asm_src} if ($config{processor} eq "386");
- if ($target{cpuid_asm_src} ne "mem_clr.c") {
- push @{$config{lib_defines}}, "OPENSSL_CPUID_OBJ";
- push @{$config{module_defines}}, "OPENSSL_CPUID_OBJ";
- }
-
- $target{bn_asm_src} =~ s/\w+-gf2m.c// if (defined($disabled{ec2m}));
-
- # bn-586 is the only one implementing bn_*_part_words
- if ($target{bn_asm_src} =~ /bn-586/) {
- push @{$config{lib_defines}}, "OPENSSL_BN_ASM_PART_WORDS";
- push @{$config{module_defines}}, "OPENSSL_BN_ASM_PART_WORDS";
- }
- if (!$disabled{sse2} && $target{bn_asm_src} =~ /86/) {
- push @{$config{lib_defines}}, "OPENSSL_IA32_SSE2";
- push @{$config{module_defines}}, "OPENSSL_IA32_SSE2";
- }
-
- if ($target{bn_asm_src} =~ /-mont/) {
- push @{$config{lib_defines}}, "OPENSSL_BN_ASM_MONT";
- push @{$config{module_defines}}, "OPENSSL_BN_ASM_MONT";
- }
- if ($target{bn_asm_src} =~ /-mont5/) {
- push @{$config{lib_defines}}, "OPENSSL_BN_ASM_MONT5";
- push @{$config{module_defines}}, "OPENSSL_BN_ASM_MONT5";
- }
- if ($target{bn_asm_src} =~ /-gf2m/) {
- push @{$config{lib_defines}}, "OPENSSL_BN_ASM_GF2m";
- push @{$config{module_defines}}, "OPENSSL_BN_ASM_GF2m";
- }
- if ($target{bn_asm_src} =~ /-div3w/) {
- push @{$config{lib_defines}}, "BN_DIV3W";
- push @{$config{module_defines}}, "BN_DIV3W";
- }
-
- if ($target{sha1_asm_src}) {
- push @{$config{lib_defines}}, "SHA1_ASM" if ($target{sha1_asm_src} =~ /sx86/ || $target{sha1_asm_src} =~ /sha1/);
- push @{$config{lib_defines}}, "SHA256_ASM" if ($target{sha1_asm_src} =~ /sha256/);
- push @{$config{lib_defines}}, "SHA512_ASM" if ($target{sha1_asm_src} =~ /sha512/);
- }
- if ($target{keccak1600_asm_src} ne $table{DEFAULTS}->{keccak1600_asm_src}) {
- push @{$config{lib_defines}}, "KECCAK1600_ASM";
- }
- if ($target{rc4_asm_src} ne $table{DEFAULTS}->{rc4_asm_src}) {
- push @{$config{lib_defines}}, "RC4_ASM";
- }
- if ($target{md5_asm_src}) {
- push @{$config{lib_defines}}, "MD5_ASM";
- }
- $target{cast_asm_src}=$table{DEFAULTS}->{cast_asm_src} unless $disabled{pic}; # CAST assembler is not PIC
- if ($target{rmd160_asm_src}) {
- push @{$config{lib_defines}}, "RMD160_ASM";
- }
- if ($target{aes_asm_src}) {
- if ($target{aes_asm_src} =~ m/\baes-/) {
- push @{$config{lib_defines}}, "AES_ASM";
- push @{$config{module_defines}}, "AES_ASM";
- }
- # aes-ctr.fake is not a real file, only indication that assembler
- # module implements AES_ctr32_encrypt...
- if ($target{aes_asm_src} =~ s/\s*aes-ctr\.fake//) {
- push @{$config{lib_defines}}, "AES_CTR_ASM";
- push @{$config{module_defines}}, "AES_CTR_ASM";
- }
- # aes-xts.fake indicates presence of AES_xts_[en|de]crypt...
- if ($target{aes_asm_src} =~ s/\s*aes-xts\.fake//) {
- push @{$config{lib_defines}}, "AES_XTS_ASM";
- push @{$config{module_defines}}, "AES_XTS_ASM";
- }
- $target{aes_asm_src} =~ s/\s*(vpaes|aesni)-x86\.s//g if ($disabled{sse2});
- if ($target{aes_asm_src} =~ m/vpaes/) {
- push @{$config{lib_defines}}, "VPAES_ASM";
- push @{$config{module_defines}}, "VPAES_ASM";
- }
- if ($target{aes_asm_src} =~ m/bsaes/) {
- push @{$config{lib_defines}}, "BSAES_ASM";
- push @{$config{module_defines}}, "BSAES_ASM";
- }
- }
- if ($target{wp_asm_src} =~ /mmx/) {
- if ($config{processor} eq "386") {
- $target{wp_asm_src}=$table{DEFAULTS}->{wp_asm_src};
- } elsif (!$disabled{"whirlpool"}) {
- push @{$config{lib_defines}}, "WHIRLPOOL_ASM";
- }
- }
- if ($target{modes_asm_src} =~ /ghash-/) {
- push @{$config{lib_defines}}, "GHASH_ASM";
- }
- if ($target{ec_asm_src} =~ /ecp_nistz256/) {
- push @{$config{lib_defines}}, "ECP_NISTZ256_ASM";
- }
- if ($target{ec_asm_src} =~ /x25519/) {
- push @{$config{lib_defines}}, "X25519_ASM";
- }
- if ($target{padlock_asm_src} ne $table{DEFAULTS}->{padlock_asm_src}) {
- push @{$config{dso_defines}}, "PADLOCK_ASM";
- }
- if ($target{poly1305_asm_src} ne "") {
- push @{$config{lib_defines}}, "POLY1305_ASM";
- }
}
my %predefined_C = compiler_predefined($config{CROSS_COMPILE}.$config{CC});
# Thus, whenever there's mention of a returned value, it's about that
# intended value.
-# Helper function to implement conditional inheritance depending on the
-# value of $disabled{asm}. Used in inherit_from values as follows:
-#
-# inherit_from => [ "template", asm("asm_tmpl") ]
-#
-sub asm {
- my @x = @_;
- sub {
- $disabled{asm} ? () : @x;
- }
-}
-
# Helper function to implement conditional value variants, with a default
# plus additional values based on the value of $config{build_type}.
# Arguments are given in hash table form:
"loutflag",
"ex_libs",
"bn_ops",
- "cpuid_asm_src",
- "bn_asm_src",
- "ec_asm_src",
- "des_asm_src",
- "aes_asm_src",
- "bf_asm_src",
- "md5_asm_src",
- "cast_asm_src",
- "sha1_asm_src",
- "rc4_asm_src",
- "rmd160_asm_src",
- "rc5_asm_src",
- "wp_asm_src",
- "cmll_asm_src",
- "modes_asm_src",
- "padlock_asm_src",
- "chacha_asm_src",
"poly1035_asm_src",
"thread_scheme",
"perlasm_scheme",