unlink target and retry to avoid intermittent Win32 failures
authorDr. Stephen Henson <steve@openssl.org>
Tue, 3 Jan 2012 14:22:45 +0000 (14:22 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Tue, 3 Jan 2012 14:22:45 +0000 (14:22 +0000)
util/fipslink.pl

index 8b6fbad7d851faef67b1abbf328027c6a0b69e09..262d691d1b82b8e94f4b4de912574d6498859343 100644 (file)
@@ -57,6 +57,15 @@ print "$fips_cc -DHMAC_SHA1_SIG=\\\"$fips_hash\\\" $fips_cc_args $fips_libdir/fi
 system "$fips_cc -DHMAC_SHA1_SIG=\\\"$fips_hash\\\" $fips_cc_args $fips_libdir/fips_premain.c";
 die "Second stage Compile failure" if $? != 0;
 
+my $delcnt = 0;
+# On windows the previous file doesn't always close straight away
+# so retry an unlink operation a few times if it fails.
+while (!unlink($target))
+        {
+        sleep 2;
+        die "Can't delete $target" if ($delcnt++ > 10);
+        }
+
 
 print "$fips_link @ARGV\n";
 system "$fips_link @ARGV";