FIPS related updates for Windows build. Only build fipscanister.o from the
GMAKE target. Use precompiled fipscanister.o from other targets. Update fipslink.pl script to check fipscanister.o and fips_premain.c hashes.
This commit is contained in:
parent
c9f4204ae8
commit
f6bbb5b67d
@ -12,8 +12,9 @@ sub check_env
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
my ($fips_cc,$fips_cc_args, $fips_link,$fips_target)
|
my ($fips_cc,$fips_cc_args, $fips_link,$fips_target, $fips_libdir)
|
||||||
= check_env("FIPS_CC", "FIPS_CC_ARGS", "FIPS_LINK", "FIPS_TARGET");
|
= check_env("FIPS_CC", "FIPS_CC_ARGS", "FIPS_LINK", "FIPS_TARGET",
|
||||||
|
"FIPS_LIBDIR");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -26,9 +27,14 @@ if (exists $ENV{"FIPS_PREMAIN_DSO"})
|
|||||||
$fips_premain_dso = "";
|
$fips_premain_dso = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_hash("fips_premain.c");
|
||||||
|
check_hash("fipscanister.o");
|
||||||
|
|
||||||
print "$fips_cc $fips_cc_args\n";
|
|
||||||
system "$fips_cc $fips_cc_args";
|
print "Integrity check OK\n";
|
||||||
|
|
||||||
|
print "$fips_cc $fips_cc_args $fips_libdir/fips_premain.c\n";
|
||||||
|
system "$fips_cc $fips_cc_args $fips_libdir/fips_premain.c";
|
||||||
die "First stage Compile failure" if $? != 0;
|
die "First stage Compile failure" if $? != 0;
|
||||||
|
|
||||||
print "$fips_link @ARGV\n";
|
print "$fips_link @ARGV\n";
|
||||||
@ -42,8 +48,8 @@ chomp $fips_hash;
|
|||||||
die "Get hash failure" if $? != 0;
|
die "Get hash failure" if $? != 0;
|
||||||
|
|
||||||
|
|
||||||
print "$fips_cc -DHMAC_SHA1_SIG=\\\"$fips_hash\\\" $fips_cc_args\n";
|
print "$fips_cc -DHMAC_SHA1_SIG=\\\"$fips_hash\\\" $fips_cc_args $fips_libdir/fips_premain.c\n";
|
||||||
system "$fips_cc -DHMAC_SHA1_SIG=\\\"$fips_hash\\\" $fips_cc_args";
|
system "$fips_cc -DHMAC_SHA1_SIG=\\\"$fips_hash\\\" $fips_cc_args $fips_libdir/fips_premain.c";
|
||||||
die "Second stage Compile failure" if $? != 0;
|
die "Second stage Compile failure" if $? != 0;
|
||||||
|
|
||||||
|
|
||||||
@ -51,3 +57,22 @@ print "$fips_link @ARGV\n";
|
|||||||
system "$fips_link @ARGV";
|
system "$fips_link @ARGV";
|
||||||
die "Second stage Link failure" if $? != 0;
|
die "Second stage Link failure" if $? != 0;
|
||||||
|
|
||||||
|
sub check_hash
|
||||||
|
{
|
||||||
|
my ($filename) = @_;
|
||||||
|
my ($hashfile, $hashval);
|
||||||
|
|
||||||
|
open(IN, "${fips_libdir}/${filename}.sha1") || die "Cannot open file hash file ${fips_libdir}/${filename}.sha1";
|
||||||
|
$hashfile = <IN>;
|
||||||
|
close IN;
|
||||||
|
$hashval = `${fips_libdir}/fips_standalone_sha1.exe ${fips_libdir}/$filename`;
|
||||||
|
chomp $hashfile;
|
||||||
|
chomp $hashval;
|
||||||
|
$hashfile =~ s/^.*=\s+//;
|
||||||
|
$hashval =~ s/^.*=\s+//;
|
||||||
|
die "Invalid hash syntax in file" if (length($hashfile) != 40);
|
||||||
|
die "Invalid hash received for file" if (length($hashval) != 40);
|
||||||
|
die "***HASH VALUE MISMATCH FOR FILE $filename ***" if ($hashval ne $hashfile);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -13,6 +13,9 @@ $banner="\t\@echo Building OpenSSL";
|
|||||||
local $zlib_opt = 0; # 0 = no zlib, 1 = static, 2 = dynamic
|
local $zlib_opt = 0; # 0 = no zlib, 1 = static, 2 = dynamic
|
||||||
local $zlib_lib = "";
|
local $zlib_lib = "";
|
||||||
|
|
||||||
|
my $fips_canister_path = "";
|
||||||
|
my $fipslibdir = "fipslib";
|
||||||
|
|
||||||
open(IN,"<Makefile") || die "unable to open Makefile!\n";
|
open(IN,"<Makefile") || die "unable to open Makefile!\n";
|
||||||
while(<IN>) {
|
while(<IN>) {
|
||||||
$ssl_version=$1 if (/^VERSION=(.*)$/);
|
$ssl_version=$1 if (/^VERSION=(.*)$/);
|
||||||
@ -111,6 +114,8 @@ $tmp_def="tmp";
|
|||||||
$mkdir="-mkdir";
|
$mkdir="-mkdir";
|
||||||
$mkcanister="ld -r -o";
|
$mkcanister="ld -r -o";
|
||||||
|
|
||||||
|
$ex_build_targets = "";
|
||||||
|
|
||||||
($ssl,$crypto)=("ssl","crypto");
|
($ssl,$crypto)=("ssl","crypto");
|
||||||
$ranlib="echo ranlib";
|
$ranlib="echo ranlib";
|
||||||
|
|
||||||
@ -301,9 +306,12 @@ for (;;)
|
|||||||
$uc =~ s/^lib(.*)\.a/$1/;
|
$uc =~ s/^lib(.*)\.a/$1/;
|
||||||
$uc =~ tr/a-z/A-Z/;
|
$uc =~ tr/a-z/A-Z/;
|
||||||
}
|
}
|
||||||
|
if (($uc ne "FIPS") || $fips_canister_build)
|
||||||
|
{
|
||||||
$lib_nam{$uc}=$uc;
|
$lib_nam{$uc}=$uc;
|
||||||
$lib_obj{$uc}.=$libobj." ";
|
$lib_obj{$uc}.=$libobj." ";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
last if ($val eq "FINISHED");
|
last if ($val eq "FINISHED");
|
||||||
$lib="";
|
$lib="";
|
||||||
$libobj="";
|
$libobj="";
|
||||||
@ -348,6 +356,13 @@ for (;;)
|
|||||||
}
|
}
|
||||||
close(IN);
|
close(IN);
|
||||||
|
|
||||||
|
if ($fips_canister_path eq "")
|
||||||
|
{
|
||||||
|
$fips_canister_path = "\$(FIPSLIB_D)${o}fipscanister.o";
|
||||||
|
}
|
||||||
|
|
||||||
|
$ex_build_targets .= "\$(FIPSLIB_D)${o}\$(E_PREMAIN_DSO)$exep" if ($fips_canister_build);
|
||||||
|
|
||||||
$defs= <<"EOF";
|
$defs= <<"EOF";
|
||||||
# This makefile has been automatically generated from the OpenSSL distribution.
|
# This makefile has been automatically generated from the OpenSSL distribution.
|
||||||
# This single makefile will build the complete OpenSSL distribution and
|
# This single makefile will build the complete OpenSSL distribution and
|
||||||
@ -428,6 +443,10 @@ TMP_D=$tmp_dir
|
|||||||
INC_D=$inc_dir
|
INC_D=$inc_dir
|
||||||
INCO_D=$inc_dir${o}openssl
|
INCO_D=$inc_dir${o}openssl
|
||||||
|
|
||||||
|
# Directory containing FIPS module
|
||||||
|
|
||||||
|
FIPSLIB_D=$fipslibdir
|
||||||
|
|
||||||
CP=$cp
|
CP=$cp
|
||||||
RM=$rm
|
RM=$rm
|
||||||
RANLIB=$ranlib
|
RANLIB=$ranlib
|
||||||
@ -463,7 +482,7 @@ INCL_D=\$(TMP_D)
|
|||||||
|
|
||||||
O_SSL= \$(LIB_D)$o$plib\$(SSL)$shlibp
|
O_SSL= \$(LIB_D)$o$plib\$(SSL)$shlibp
|
||||||
O_CRYPTO= \$(LIB_D)$o$plib\$(CRYPTO)$shlibp
|
O_CRYPTO= \$(LIB_D)$o$plib\$(CRYPTO)$shlibp
|
||||||
O_FIPSCANISTER= \$(LIB_D)${o}fipscanister$obj
|
O_FIPSCANISTER= $fips_canister_path
|
||||||
SO_SSL= $plib\$(SSL)$so_shlibp
|
SO_SSL= $plib\$(SSL)$so_shlibp
|
||||||
SO_CRYPTO= $plib\$(CRYPTO)$so_shlibp
|
SO_CRYPTO= $plib\$(CRYPTO)$so_shlibp
|
||||||
L_SSL= \$(LIB_D)$o$plib\$(SSL)$libp
|
L_SSL= \$(LIB_D)$o$plib\$(SSL)$libp
|
||||||
@ -485,7 +504,7 @@ LIBS_DEP=\$(O_CRYPTO) \$(O_SSL)
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
$rules=<<"EOF";
|
$rules=<<"EOF";
|
||||||
all: banner \$(TMP_D) \$(BIN_D) \$(TEST_D) \$(LIB_D) \$(INCO_D) headers lib exe
|
all: banner \$(TMP_D) \$(BIN_D) \$(TEST_D) \$(LIB_D) \$(INCO_D) \$(FIPSLIB_D) headers lib exe $ex_build_targets
|
||||||
|
|
||||||
banner:
|
banner:
|
||||||
$banner
|
$banner
|
||||||
@ -508,6 +527,9 @@ $banner
|
|||||||
\$(INC_D):
|
\$(INC_D):
|
||||||
\$(MKDIR) \$(INC_D)
|
\$(MKDIR) \$(INC_D)
|
||||||
|
|
||||||
|
\$(FIPSLIB_D):
|
||||||
|
\$(MKDIR) \$(FIPSLIB_D)
|
||||||
|
|
||||||
headers: \$(HEADER) \$(EXHEADER)
|
headers: \$(HEADER) \$(EXHEADER)
|
||||||
@
|
@
|
||||||
|
|
||||||
@ -597,21 +619,19 @@ $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)
|
if ($fips && $fips_canister_build)
|
||||||
{
|
{
|
||||||
$rules.=&cc_compile_target("\$(OBJ_D)${o}fips_start$obj",
|
$rules.=&cc_compile_target("\$(OBJ_D)${o}fips_start$obj",
|
||||||
"fips${o}fips_canister.c", "-DFIPS_START \$(SHLIB_CFLAGS)");
|
"fips${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_end$obj",
|
||||||
"fips${o}fips_canister.c", "\$(SHLIB_CFLAGS)");
|
"fips${o}fips_canister.c", "\$(SHLIB_CFLAGS)");
|
||||||
|
$rules.=&cc_compile_target("\$(OBJ_D)${o}fips_standalone_sha1$obj",
|
||||||
|
"fips${o}sha${o}fips_standalone_sha1.c", "\$(SHLIB_CFLAGS)");
|
||||||
$rules.=&cc_compile_target("\$(OBJ_D)${o}\$(E_PREMAIN_DSO)$obj",
|
$rules.=&cc_compile_target("\$(OBJ_D)${o}\$(E_PREMAIN_DSO)$obj",
|
||||||
"fips${o}fips_premain.c",
|
"fips${o}fips_premain.c",
|
||||||
"-DFINGERPRINT_PREMAIN_DSO_LOAD \$(SHLIB_CFLAGS)");
|
"-DFINGERPRINT_PREMAIN_DSO_LOAD \$(SHLIB_CFLAGS)");
|
||||||
$rules.=&cc_compile_target("\$(OBJ_D)${o}fips_standalone_sha1$obj",
|
|
||||||
"fips${o}sha${o}fips_standalone_sha1.c", "\$(SHLIB_CFLAGS)");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
foreach (values %lib_nam)
|
foreach (values %lib_nam)
|
||||||
{
|
{
|
||||||
$lib_obj=$lib_obj{$_};
|
$lib_obj=$lib_obj{$_};
|
||||||
@ -696,12 +716,13 @@ if ($fips)
|
|||||||
{
|
{
|
||||||
$rules.= &do_lib_rule("\$(CRYPTOOBJ) \$(O_FIPSCANISTER)",
|
$rules.= &do_lib_rule("\$(CRYPTOOBJ) \$(O_FIPSCANISTER)",
|
||||||
"\$(O_CRYPTO)",$crypto,$shlib, "\$(SO_CRYPTO)",
|
"\$(O_CRYPTO)",$crypto,$shlib, "\$(SO_CRYPTO)",
|
||||||
"0xFB00000", "\$(BIN_D)$o\$(E_PREMAIN_DSO)$exep",
|
"0xFB00000", "\$(FIPSLIB_D)$o\$(E_PREMAIN_DSO)$exep",
|
||||||
"fips${o}fips_premain.c");
|
"fips${o}fips_premain.c");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$rules.= &do_lib_rule("\$(CRYPTOOBJ) \$(O_FIPSCANISTER)",
|
$rules.= &do_lib_rule("\$(CRYPTOOBJ) \$(O_FIPSCANISTER)",
|
||||||
|
# $rules.= &do_lib_rule("\$(CRYPTOOBJ)",
|
||||||
"\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)", "");
|
"\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)", "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -712,12 +733,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", "") if $fips_canister_build;
|
||||||
|
$rules.=&do_link_rule("\$(FIPSLIB_D)${o}\$(E_PREMAIN_DSO)$exep","\$(OBJ_D)${o}\$(E_PREMAIN_DSO)$obj \$(O_CRYPTO)","","\$(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_rlink_rule("\$(O_FIPSCANISTER)", "\$(OBJ_D)${o}fips_start$obj \$(FIPSOBJ) \$(OBJ_D)${o}fips_end$obj", "\$(BIN_D)${o}fips_standalone_sha1$exep");
|
|
||||||
$rules.=&do_link_rule("\$(BIN_D)$o\$(E_PREMAIN_DSO)$exep","\$(OBJ_D)${o}\$(E_PREMAIN_DSO)$obj \$(CRYPTOOBJ) \$(O_FIPCANISTER)","","\$(EX_LIBS) \$(O_FIPSCANISTER)");
|
|
||||||
$rules.=&do_link_rule("\$(BIN_D)${o}fips_standalone_sha1$exep","\$(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)",0,"\$(BIN_D)$o\$(E_EXE)$exep");
|
$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");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -14,6 +14,8 @@ $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 -G5 -Ox -O2 -Ob2 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32';
|
$cflags=' -MD -W3 -WX -G5 -Ox -O2 -Ob2 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32';
|
||||||
@ -21,9 +23,9 @@ $cflags.=' -D_CRT_SECURE_NO_DEPRECATE'; # shut up VC8
|
|||||||
$lflags="-nologo -subsystem:console -machine:I386 -opt:ref";
|
$lflags="-nologo -subsystem:console -machine:I386 -opt:ref";
|
||||||
$mlflags='';
|
$mlflags='';
|
||||||
|
|
||||||
$out_def="out32";
|
$out_def="gmout32";
|
||||||
$tmp_def="tmp32";
|
$tmp_def="gmtmp32";
|
||||||
$inc_def="inc32";
|
$inc_def="gminc32";
|
||||||
|
|
||||||
if ($debug)
|
if ($debug)
|
||||||
{
|
{
|
||||||
@ -98,8 +100,8 @@ if ($shlib)
|
|||||||
$mlflags.=" $lflags -dll";
|
$mlflags.=" $lflags -dll";
|
||||||
# $cflags =~ s| -MD| -MT|;
|
# $cflags =~ s| -MD| -MT|;
|
||||||
$lib_cflag=" -D_WINDLL";
|
$lib_cflag=" -D_WINDLL";
|
||||||
$out_def="out32dll";
|
$out_def="gmout32dll";
|
||||||
$tmp_def="tmp32dll";
|
$tmp_def="gmtmp32dll";
|
||||||
}
|
}
|
||||||
|
|
||||||
$cflags.=" -Fd$out_def";
|
$cflags.=" -Fd$out_def";
|
||||||
@ -137,12 +139,13 @@ sub do_lib_rule
|
|||||||
$ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/;
|
$ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/;
|
||||||
if (defined $fips_get_sig)
|
if (defined $fips_get_sig)
|
||||||
{
|
{
|
||||||
$ret.="$target: $objs $fips_get_sig\n";
|
$ret.="$target: \$(O_FIPSCANISTER) $objs $fips_get_sig\n";
|
||||||
$ret.="\tFIPS_LINK=\$(LINK) ";
|
$ret.="\tFIPS_LINK=\$(LINK) ";
|
||||||
$ret.="FIPS_CC=\$(CC) ";
|
$ret.="FIPS_CC=\$(CC) ";
|
||||||
$ret.="FIPS_CC_ARGS=\"-Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c \$(SRC_D)${o}fips${o}fips_premain.c\" ";
|
$ret.="FIPS_CC_ARGS=\"-Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\" ";
|
||||||
$ret.="FIPS_PREMAIN_DSO=$fips_get_sig ";
|
$ret.="FIPS_PREMAIN_DSO=$fips_get_sig ";
|
||||||
$ret.="FIPS_TARGET=$target ";
|
$ret.="FIPS_TARGET=$target ";
|
||||||
|
$ret.="FIPS_LIBDIR=\$(FIPSLIB_D) ";
|
||||||
$ret.="\$(FIPSLINK) \$(MLFLAGS) $base_arg $efile$target ";
|
$ret.="\$(FIPSLINK) \$(MLFLAGS) $base_arg $efile$target ";
|
||||||
$ret.="-def:ms/${Name}.def \$(SHLIB_EX_OBJ) $objs ";
|
$ret.="-def:ms/${Name}.def \$(SHLIB_EX_OBJ) $objs ";
|
||||||
$ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n\n";
|
$ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n\n";
|
||||||
@ -163,24 +166,27 @@ sub do_link_rule
|
|||||||
local($ret,$_);
|
local($ret,$_);
|
||||||
$file =~ s/\//$o/g if $o ne '/';
|
$file =~ s/\//$o/g if $o ne '/';
|
||||||
$n=&bname($targer);
|
$n=&bname($targer);
|
||||||
$ret.="$target: $files $dep_libs\n";
|
|
||||||
if ($standalone)
|
if ($standalone)
|
||||||
{
|
{
|
||||||
|
$ret.="$target: $files $dep_libs\n";
|
||||||
$ret.="\t\$(LINK) \$(LFLAGS) $efile$target ";
|
$ret.="\t\$(LINK) \$(LFLAGS) $efile$target ";
|
||||||
$ret.="$files $libs\n\n";
|
$ret.="$files $libs\n\n";
|
||||||
}
|
}
|
||||||
elsif ($fips && !$shlib)
|
elsif ($fips && !$shlib)
|
||||||
{
|
{
|
||||||
|
$ret.="$target: \$(O_FIPSCANISTER) $files $dep_libs\n";
|
||||||
$ret.="\tFIPS_LINK=\$(LINK) ";
|
$ret.="\tFIPS_LINK=\$(LINK) ";
|
||||||
$ret.="FIPS_CC=\$(CC) ";
|
$ret.="FIPS_CC=\$(CC) ";
|
||||||
$ret.="FIPS_CC_ARGS=\"-Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c \$(SRC_D)${o}fips${o}fips_premain.c\" ";
|
$ret.="FIPS_CC_ARGS=\"-Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\" ";
|
||||||
$ret.="FIPS_PREMAIN_DSO= ";
|
$ret.="FIPS_PREMAIN_DSO= ";
|
||||||
$ret.="FIPS_TARGET=$target ";
|
$ret.="FIPS_TARGET=$target ";
|
||||||
|
$ret.="FIPS_LIBDIR=\$(FIPSLIB_D) ";
|
||||||
$ret.=" \$(FIPSLINK) \$(LFLAGS) $efile$target ";
|
$ret.=" \$(FIPSLINK) \$(LFLAGS) $efile$target ";
|
||||||
$ret.="\$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n\n";
|
$ret.="\$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n\n";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
$ret.="$target: $files $dep_libs\n";
|
||||||
$ret.="\t\$(LINK) \$(LFLAGS) $efile$target ";
|
$ret.="\t\$(LINK) \$(LFLAGS) $efile$target ";
|
||||||
$ret.="\$(APP_EX_OBJ) $files $libs\n\n";
|
$ret.="\$(APP_EX_OBJ) $files $libs\n\n";
|
||||||
}
|
}
|
||||||
@ -190,14 +196,17 @@ sub do_link_rule
|
|||||||
|
|
||||||
sub do_rlink_rule
|
sub do_rlink_rule
|
||||||
{
|
{
|
||||||
local($target,$files,$check_hash)=@_;
|
local($target,$files,$check_hash, $deps)=@_;
|
||||||
local($ret,$_);
|
local($ret,$_);
|
||||||
|
|
||||||
$file =~ s/\//$o/g if $o ne '/';
|
$file =~ s/\//$o/g if $o ne '/';
|
||||||
$n=&bname($targer);
|
$n=&bname($targer);
|
||||||
$ret.="$target: $check_hash $files $dep_libs\n";
|
$ret.="$target: $check_hash $files $deps\n";
|
||||||
$ret.="\t\$(PERL) util${o}checkhash.pl -chdir fips -program_path ..$o$check_hash\n";
|
$ret.="\t\$(PERL) util${o}checkhash.pl -chdir fips -program_path ..$o$check_hash\n";
|
||||||
$ret.="\t\$(MKCANISTER) $target $files\n\n";
|
$ret.="\t\$(MKCANISTER) $target $files\n";
|
||||||
|
$ret.="\t$check_hash $target > $target.sha1\n";
|
||||||
|
$ret.="\t\$(CP) fips${o}fips_premain.c \$(FIPSLIB_D)\n";
|
||||||
|
$ret.="\t$check_hash \$(FIPSLIB_D)${o}fips_premain.c > \$(FIPSLIB_D)${o}fips_premain.c.sha1\n\n";
|
||||||
return($ret);
|
return($ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,9 +137,10 @@ sub do_lib_rule
|
|||||||
$ret.="$target: $objs $fips_get_sig\n";
|
$ret.="$target: $objs $fips_get_sig\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 \$(SRC_D)${o}fips${o}fips_premain.c\n";
|
$ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n";
|
||||||
$ret.="\tSET FIPS_PREMAIN_DSO=$fips_get_sig\n";
|
$ret.="\tSET FIPS_PREMAIN_DSO=$fips_get_sig\n";
|
||||||
$ret.="\tSET FIPS_TARGET=$target\n";
|
$ret.="\tSET FIPS_TARGET=$target\n";
|
||||||
|
$ret.="\tSET FIPS_LIBDIR=\$(FIPSLIB_D)\n";
|
||||||
$ret.="\t\$(FIPSLINK) \$(MLFLAGS) $base_arg $efile$target ";
|
$ret.="\t\$(FIPSLINK) \$(MLFLAGS) $base_arg $efile$target ";
|
||||||
$ret.="/def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs ";
|
$ret.="/def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs ";
|
||||||
$ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n<<\n";
|
$ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n<<\n";
|
||||||
@ -170,9 +171,10 @@ sub do_link_rule
|
|||||||
{
|
{
|
||||||
$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 \$(SRC_D)${o}fips${o}fips_premain.c\n";
|
$ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n";
|
||||||
$ret.="\tSET FIPS_PREMAIN_DSO=\n";
|
$ret.="\tSET FIPS_PREMAIN_DSO=\n";
|
||||||
$ret.="\tSET FIPS_TARGET=$target\n";
|
$ret.="\tSET FIPS_TARGET=$target\n";
|
||||||
|
$ret.="\tSET FIPS_LIBDIR=\$(FIPSLIB_D)\n";
|
||||||
$ret.=" \$(FIPSLINK) \$(LFLAGS) $efile$target @<<\n";
|
$ret.=" \$(FIPSLINK) \$(LFLAGS) $efile$target @<<\n";
|
||||||
$ret.=" \$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n<<\n";
|
$ret.=" \$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n<<\n";
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user