From: Noah Misch Date: Thu, 8 Sep 2016 05:40:53 +0000 (-0400) Subject: MSVC: Place gendef.pl temporary file in the target directory. X-Git-Tag: REL_10_BETA1~1757 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=976a9bbd0251ea112898f85314646801e7e6207d;p=postgresql 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. --- diff --git a/src/tools/msvc/gendef.pl b/src/tools/msvc/gendef.pl index 8ccaab3551..a6c43c2c39 100644 --- a/src/tools/msvc/gendef.pl +++ b/src/tools/msvc/gendef.pl @@ -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