summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/speclib
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/speclib')
-rwxr-xr-xwinsup/cygwin/speclib9
1 files changed, 6 insertions, 3 deletions
diff --git a/winsup/cygwin/speclib b/winsup/cygwin/speclib
index 80ef23301..80744083a 100755
--- a/winsup/cygwin/speclib
+++ b/winsup/cygwin/speclib
@@ -1,6 +1,6 @@
#!/usr/bin/perl
use Getopt::Long;
-use File::Temp qw'tempdir';
+use File::Temp;
use File::Basename;
use File::Spec;
use strict;
@@ -43,11 +43,14 @@ close $nm_fd;
%extract or die "$0: couldn't find symbols for $lib\n";
-my $dir = tempdir(CLEANUP => 1);
+my $dir = File::Temp->newdir();
chdir $dir;
# print join(' ', '+', $ar, 'x', sort keys %extract), "\n";
my $res = system $ar, 'x', $libdll, sort keys %extract;
die "$0: $ar extraction exited with non-zero status\n" if $res;
unlink $lib;
-exec $ar, 'crus', $lib, sort keys %extract;
+$res = system $ar, 'crus', $lib, sort keys %extract;
+unlink keys %extract;
+die "$0: ar creation of $lib exited with non-zero status\n" if $res;
+exit 0;