Use and build fips_premain_dso.exe and fips_standalone_sha1.exe from VC++
instead of those from mingw build. Visual Studio Express 2005 doesn't like fips_premain_dso.exe from mingw used against its DLLs.
This commit is contained in:
parent
c7e1e48908
commit
33d3b6043a
@ -374,18 +374,25 @@ if ($fips_premain_c_path eq "")
|
|||||||
$fips_premain_c_path = "\$(FIPSLIB_D)${o}fips_premain.c";
|
$fips_premain_c_path = "\$(FIPSLIB_D)${o}fips_premain.c";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($fips_sha1_exe_path eq "")
|
if ($fips)
|
||||||
{
|
{
|
||||||
$fips_sha1_exe_path =
|
if ($fips_sha1_exe_path eq "")
|
||||||
"fips-1.0${o}sha${o}fips_standalone_sha1$exep";
|
{
|
||||||
|
$fips_sha1_exe_path =
|
||||||
|
"\$(BIN_D)${o}fips_standalone_sha1$exep";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$fips_sha1_exe_path = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($fips_premain_dso_exe_path eq "")
|
if ($fips_premain_dso_exe_path eq "")
|
||||||
{
|
{
|
||||||
$fips_premain_dso_exe_path = "fips-1.0${o}fips_premain_dso$exep";
|
$fips_premain_dso_exe_path = "\$(BIN_D)${o}fips_premain_dso$exep";
|
||||||
}
|
}
|
||||||
|
|
||||||
# $ex_build_targets .= "\$(FIPSLIB_D)${o}\$(E_PREMAIN_DSO)$exep" if ($fips_canister_build);
|
# $ex_build_targets .= "\$(BIN_D)${o}\$(E_PREMAIN_DSO)$exep" if ($fips);
|
||||||
|
|
||||||
if ($fips)
|
if ($fips)
|
||||||
{
|
{
|
||||||
@ -555,7 +562,7 @@ LIBS_DEP=\$(O_CRYPTO) \$(O_SSL) $ex_libs_dep
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
$rules=<<"EOF";
|
$rules=<<"EOF";
|
||||||
all: banner \$(TMP_D) \$(BIN_D) \$(TEST_D) \$(LIB_D) \$(INCO_D) headers lib exe $ex_build_targets
|
all: banner \$(TMP_D) \$(BIN_D) \$(TEST_D) \$(LIB_D) \$(INCO_D) \$(FIPS_SHA1_EXE) headers lib exe $ex_build_targets
|
||||||
|
|
||||||
banner:
|
banner:
|
||||||
$banner
|
$banner
|
||||||
@ -667,14 +674,22 @@ $rules.=&do_compile_rule("\$(OBJ_D)",$e_exe,'-DMONOLITH $(APP_CFLAGS)');
|
|||||||
|
|
||||||
# Special case rules for fips_start and fips_end fips_premain_dso
|
# Special case rules for fips_start and fips_end fips_premain_dso
|
||||||
|
|
||||||
if ($fips && $fips_canister_build)
|
if ($fips)
|
||||||
{
|
{
|
||||||
$rules.=&cc_compile_target("\$(OBJ_D)${o}fips_start$obj",
|
if ($fips_canister_build)
|
||||||
"fips-1.0${o}fips_canister.c", "-DFIPS_START \$(SHLIB_CFLAGS)");
|
{
|
||||||
$rules.=&cc_compile_target("\$(OBJ_D)${o}fips_end$obj",
|
$rules.=&cc_compile_target("\$(OBJ_D)${o}fips_start$obj",
|
||||||
"fips-1.0${o}fips_canister.c", "\$(SHLIB_CFLAGS)");
|
"fips-1.0${o}fips_canister.c",
|
||||||
|
"-DFIPS_START \$(SHLIB_CFLAGS)");
|
||||||
|
$rules.=&cc_compile_target("\$(OBJ_D)${o}fips_end$obj",
|
||||||
|
"fips-1.0${o}fips_canister.c", "\$(SHLIB_CFLAGS)");
|
||||||
|
}
|
||||||
$rules.=&cc_compile_target("\$(OBJ_D)${o}fips_standalone_sha1$obj",
|
$rules.=&cc_compile_target("\$(OBJ_D)${o}fips_standalone_sha1$obj",
|
||||||
"fips-1.0${o}sha${o}fips_standalone_sha1.c", "\$(SHLIB_CFLAGS)");
|
"fips-1.0${o}sha${o}fips_standalone_sha1.c",
|
||||||
|
"\$(SHLIB_CFLAGS)");
|
||||||
|
$rules.=&cc_compile_target("\$(OBJ_D)${o}fips_sha1dgst$obj",
|
||||||
|
"fips-1.0${o}sha${o}fips_sha1dgst.c",
|
||||||
|
"\$(SHLIB_CFLAGS)") unless $fips_canister_build;
|
||||||
$rules.=&cc_compile_target("\$(OBJ_D)${o}\$(E_PREMAIN_DSO)$obj",
|
$rules.=&cc_compile_target("\$(OBJ_D)${o}\$(E_PREMAIN_DSO)$obj",
|
||||||
"fips-1.0${o}fips_premain.c",
|
"fips-1.0${o}fips_premain.c",
|
||||||
"-DFINGERPRINT_PREMAIN_DSO_LOAD \$(SHLIB_CFLAGS)");
|
"-DFINGERPRINT_PREMAIN_DSO_LOAD \$(SHLIB_CFLAGS)");
|
||||||
@ -763,8 +778,9 @@ if ($fips)
|
|||||||
if ($shlib)
|
if ($shlib)
|
||||||
{
|
{
|
||||||
$rules.= &do_lib_rule("\$(CRYPTOOBJ) \$(O_FIPSCANISTER)",
|
$rules.= &do_lib_rule("\$(CRYPTOOBJ) \$(O_FIPSCANISTER)",
|
||||||
"\$(O_CRYPTO)",$crypto,$shlib, "\$(SO_CRYPTO)",
|
"\$(O_CRYPTO)",
|
||||||
"0xFB00000");
|
"$crypto",
|
||||||
|
$shlib, "\$(SO_CRYPTO)", "0xFB00000");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -781,22 +797,16 @@ if ($fips)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($fips && $fips_canister_build)
|
|
||||||
{
|
|
||||||
$rules.= &do_rlink_rule("\$(O_FIPSCANISTER)", "\$(OBJ_D)${o}fips_start$obj \$(FIPSOBJ) \$(OBJ_D)${o}fips_end$obj", "\$(FIPSLIB_D)${o}fips_standalone_sha1$exep", "");
|
|
||||||
$rules.=&do_link_rule("\$(FIPSLIB_D)${o}\$(E_PREMAIN_DSO)$exep","\$(OBJ_D)${o}\$(E_PREMAIN_DSO)$obj \$(O_CRYPTO) \$(O_FIPSCANISTER)","","\$(EX_LIBS)", 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
$rules.=&do_link_rule("\$(FIPSLIB_D)${o}fips_standalone_sha1$exep","\$(OBJ_D)${o}fips_standalone_sha1$obj \$(OBJ_D)${o}fips_sha1dgst$obj","","", 1);
|
|
||||||
|
|
||||||
if ($fips)
|
if ($fips)
|
||||||
{
|
{
|
||||||
$rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)",0,"\$(BIN_D)$o\$(E_EXE)$exep");
|
$rules.= &do_rlink_rule("\$(O_FIPSCANISTER)", "\$(OBJ_D)${o}fips_start$obj \$(FIPSOBJ) \$(OBJ_D)${o}fips_end$obj", "\$(FIPSLIB_D)${o}fips_standalone_sha1$exep", "") if $fips_canister_build;
|
||||||
}
|
$rules.=&do_link_rule("\$(PREMAIN_DSO_EXE)","\$(OBJ_D)${o}\$(E_PREMAIN_DSO)$obj \$(CRYPTOOBJ) \$(O_FIPSCANISTER)","","\$(EX_LIBS)", 1);
|
||||||
else
|
|
||||||
{
|
$rules.=&do_link_rule("\$(FIPS_SHA1_EXE)","\$(OBJ_D)${o}fips_standalone_sha1$obj \$(OBJ_D)${o}fips_sha1dgst$obj","","", 1);
|
||||||
$rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)",0);
|
||||||
|
|
||||||
print $defs;
|
print $defs;
|
||||||
|
|
||||||
if ($platform eq "linux-elf") {
|
if ($platform eq "linux-elf") {
|
||||||
|
@ -23,8 +23,6 @@ $rm='rm';
|
|||||||
|
|
||||||
$zlib_lib="zlib1.lib";
|
$zlib_lib="zlib1.lib";
|
||||||
|
|
||||||
$fips_canister_build = 1 if $fips;
|
|
||||||
|
|
||||||
# C compiler stuff
|
# C compiler stuff
|
||||||
$cc='cl';
|
$cc='cl';
|
||||||
$cflags=' -MD -W3 -WX -Ox -O2 -Ob2 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32';
|
$cflags=' -MD -W3 -WX -Ox -O2 -Ob2 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32';
|
||||||
|
@ -146,7 +146,7 @@ sub do_lib_rule
|
|||||||
if ($fips && $target =~ /O_CRYPTO/)
|
if ($fips && $target =~ /O_CRYPTO/)
|
||||||
{
|
{
|
||||||
$ex.=" ms${o}_chkstk.o";
|
$ex.=" ms${o}_chkstk.o";
|
||||||
$ret.="$target: $objs $fips_get_sig\n";
|
$ret.="$target: $objs \$(PREMAIN_DSO_EXE)\n";
|
||||||
$ret.="\tSET FIPS_LINK=\$(LINK)\n";
|
$ret.="\tSET FIPS_LINK=\$(LINK)\n";
|
||||||
$ret.="\tSET FIPS_CC=\$(CC)\n";
|
$ret.="\tSET FIPS_CC=\$(CC)\n";
|
||||||
$ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n";
|
$ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n";
|
||||||
@ -177,8 +177,9 @@ sub do_link_rule
|
|||||||
$ret.="$target: $files $dep_libs\n";
|
$ret.="$target: $files $dep_libs\n";
|
||||||
if ($standalone)
|
if ($standalone)
|
||||||
{
|
{
|
||||||
$ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n";
|
$ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n\t";
|
||||||
$ret.=" $files $libs\n<<\n";
|
$ret.="ms/_chkstk.o " if ($files =~ /O_FIPSCANISTER/);
|
||||||
|
$ret.="$files $libs\n<<\n";
|
||||||
}
|
}
|
||||||
elsif ($fips && !$shlib)
|
elsif ($fips && !$shlib)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user