From: Dr. Stephen Henson Date: Thu, 18 Jan 2007 18:44:41 +0000 (+0000) Subject: Expanded boundary support for VC++ build. X-Git-Tag: OpenSSL_0_9_7m~30 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2af6370bd79f0dd7e60c51d111c2d65356bf88b9;p=oweals%2Fopenssl.git Expanded boundary support for VC++ build. --- diff --git a/util/mk1mf.pl b/util/mk1mf.pl index e704291855..0f94082bb5 100755 --- a/util/mk1mf.pl +++ b/util/mk1mf.pl @@ -279,7 +279,8 @@ $ex_libs="$l_flags$ex_libs" if ($l_flags ne ""); %shlib_ex_cflags=("SSL" => " -DOPENSSL_BUILD_SHLIBSSL", - "CRYPTO" => " -DOPENSSL_BUILD_SHLIBCRYPTO"); + "CRYPTO" => " -DOPENSSL_BUILD_SHLIBCRYPTO", + "FIPS" => " -DOPENSSL_BUILD_SHLIBCRYPTO"); if ($msdos) { @@ -362,6 +363,12 @@ for (;;) if ($key eq "LIBOBJ") { $libobj=&var_add($dir,$val); } + if ($key eq "FIPS_EX_OBJ") + { + $val =~ s|\.\./crypto/||g; + $fips_ex_obj=&var_add("crypto",$val); + } + if ($key eq "FIPSLIBDIR") { $fipslibdir=$val;} @@ -373,6 +380,41 @@ for (;;) } close(IN); + +if ($fips) + { + + foreach (split " ", $fips_ex_obj) + { + $fips_exclude_obj{$1} = 1 if (/\/([^\/]*)$/); + } + + # $fips_exclude_obj{"bn_asm"} = 1; + + my @ltmp = split " ", $lib_obj{"CRYPTO"}; + + + $lib_obj{"CRYPTO"} = ""; + + foreach(@ltmp) + { + if (/\/bn_asm$/) + { + $lib_obj{"FIPS"} .= "$_ "; + } + elsif (!/\/([^\/]*)$/ || !exists $fips_exclude_obj{$1}) + { + $lib_obj{"CRYPTO"} .= "$_ "; + } + } + + if ($fipscanisterbuild) + { + $lib_obj{"FIPS"} .= $fips_ex_obj; + } + + } + if ($fipscanisterbuild) { $fips_canister_path = "\$(LIB_D)${o}fipscanister.o"; @@ -1147,7 +1189,6 @@ sub read_options } elsif (/^--fipscanisterbuild$/) { - print STDERR "FIPS CANISTER BUILD\n"; $fipscanisterbuild=1; } elsif (/^([^=]*)=(.*)$/){ $VARS{$1}=$2; } diff --git a/util/pl/VC-32.pl b/util/pl/VC-32.pl index 1ba2f84656..0b99f72046 100644 --- a/util/pl/VC-32.pl +++ b/util/pl/VC-32.pl @@ -4,6 +4,8 @@ $ssl= "ssleay32"; +my $mwex =" \$(FIPSLIB_D)${o}_chkstk.o \$(FIPSLIB_D)${o}_udivdi3.o \$(FIPSLIB_D)${o}_umoddi3.o"; + if ($fips && !$shlib) { $crypto="libeayfips32"; @@ -136,7 +138,7 @@ sub do_lib_rule # $ret.="\t\$(RM) \$(O_$Name)\n"; $ret.="$target: $objs\n"; $ex =' advapi32.lib'; - $ex.=" \$(FIPSLIB_D)${o}_chkstk.o" if $fips && !$fipscanisterbuild && $target =~ /O_CRYPTO/; + $ex.= $mwex if $fips && !$fipscanisterbuild && $target =~ /O_CRYPTO/; $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs $ex\n<<\n"; } else @@ -146,7 +148,7 @@ sub do_lib_rule $ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/; if ($fips && $target =~ /O_CRYPTO/) { - $ex.=" \$(FIPSLIB_D)${o}_chkstk.o" unless $fipscanisterbuild; + $ex.= $mwex unless $fipscanisterbuild; $ret.="$target: $objs \$(PREMAIN_DSO_EXE)\n"; $ret.="\tSET FIPS_LINK=\$(LINK)\n"; $ret.="\tSET FIPS_CC=\$(CC)\n"; @@ -179,7 +181,7 @@ sub do_link_rule if ($standalone) { $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n\t"; - $ret.="\$(FIPSLIB_D)${o}_chkstk.o " if ($files =~ /O_FIPSCANISTER/ && !$fipscanisterbuild); + $ret.= "$mwex advapi32.lib " if ($files =~ /O_FIPSCANISTER/ && !$fipscanisterbuild); $ret.="$files $libs\n<<\n"; } elsif ($fips && !$shlib)