summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2007-01-18 18:44:41 +0000
committerDr. Stephen Henson <steve@openssl.org>2007-01-18 18:44:41 +0000
commit2af6370bd79f0dd7e60c51d111c2d65356bf88b9 (patch)
tree31757bd5d23a883dfd67f6e7156fc570019a3bf4
parenteee04c54aecefce749cd4ca35e94ec0d4ea4a216 (diff)
Expanded boundary support for VC++ build.
-rwxr-xr-xutil/mk1mf.pl45
-rw-r--r--util/pl/VC-32.pl8
2 files changed, 48 insertions, 5 deletions
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)