From: Andy Polyakov Date: Sat, 27 Oct 2012 23:36:43 +0000 (+0000) Subject: util/fipslink.pl: further adjustments. X-Git-Tag: master-post-reformat~1642 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=536a16435bab53bb454aed468776591f7e3c28a9 util/fipslink.pl: further adjustments. --- diff --git a/fips/sha/Makefile b/fips/sha/Makefile index 9bc598301f..0878e7bf64 100644 --- a/fips/sha/Makefile +++ b/fips/sha/Makefile @@ -30,7 +30,8 @@ LIB=$(TOP)/libcrypto.a LIBSRC=fips_sha1_selftest.c LIBOBJ=fips_sha1_selftest.o -SRC= $(LIBSRC) fips_standalone_sha1.c +SRC= $(LIBSRC) +PROGS= fips_standalone_sha1.c EXHEADER= HEADER= diff --git a/test/Makefile b/test/Makefile index 9f3722b856..77caa2502c 100644 --- a/test/Makefile +++ b/test/Makefile @@ -12,6 +12,7 @@ PERL= perl # KRB5 stuff KRB5_INCLUDES= LIBKRB5= +TEST= fips_algvs.c PEX_LIBS= EX_LIBS= #-lnsl -lsocket diff --git a/util/fipslink.pl b/util/fipslink.pl index 4b07036419..4a88fc6d77 100644 --- a/util/fipslink.pl +++ b/util/fipslink.pl @@ -33,12 +33,12 @@ check_hash($sha1_exe, "fipscanister.lib"); print "Integrity check OK\n"; -if (grep /fips_premain\.obj/,@ARGV) { +if (is_premain_linked(@ARGV)) { 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; } elsif (!defined($ENV{FIPS_SIG})) { - die "no fips_premain.obj"; + die "no fips_premain.obj linked"; } print "$fips_link @ARGV\n"; @@ -46,7 +46,8 @@ system "$fips_link @ARGV"; die "First stage Link failure" if $? != 0; if (defined($ENV{FIPS_SIG})) { - system "$ENV{FIPS_SIG} $fips_target" + print "$ENV{FIPS_SIG} $fips_target\n"; + system "$ENV{FIPS_SIG} $fips_target"; die "$ENV{FIPS_SIG} $fips_target failed" if $? != 0; exit; } @@ -71,6 +72,22 @@ print "$fips_link @ARGV\n"; system "$fips_link @ARGV"; die "Second stage Link failure" if $? != 0; +sub is_premain_linked + { + return 1 if (grep /fips_premain\.obj/,@_); + foreach (@_) + { + if (/^@(.*)/ && -f $1) + { + open FD,$1 or die "can't open $1"; + my $ret = (grep /fips_premain\.obj/,)?1:0; + close FD; + return $ret; + } + } + return 0; + } + sub check_hash { my ($sha1_exe, $filename) = @_;