MSVC: Place gendef.pl temporary file in the target directory.

Until now, it used the current working directory.  This makes it safe
for simultaneous invocations of gendef.pl, with different target
directories, to run from a single current working directory, such as
$(top_srcdir).  The MSVC build system will soon rely on this.

Christian Ullrich, reviewed by Michael Paquier.
This commit is contained in:
Noah Misch 2016-09-08 01:40:53 -04:00
parent c9cf432ef3
commit 976a9bbd02

View File

@ -3,6 +3,7 @@ my @def;
use warnings;
use strict;
use 5.8.0;
use File::Spec::Functions qw(splitpath catpath);
use List::Util qw(max);
#
@ -14,9 +15,11 @@ use List::Util qw(max);
sub dumpsyms
{
my ($objfile, $symfile) = @_;
system("dumpbin /symbols /out:symbols.out $_ >NUL")
my ($symvol, $symdirs, $symbase) = splitpath($symfile);
my $tmpfile = catpath($symvol, $symdirs, "symbols.out");
system("dumpbin /symbols /out:$tmpfile $_ >NUL")
&& die "Could not call dumpbin";
rename("symbols.out", $symfile);
rename($tmpfile, $symfile);
}
# Given a symbol file path, loops over its contents