summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Conway2007-01-10 04:02:05 +0000
committerNeil Conway2007-01-10 04:02:05 +0000
commit7455bdaf0b20b9c8fd618a4766ace89ede2e9d40 (patch)
tree8edfface76a0f8a4d210da2002f51b7efd83bf8f
parent8aa0ef78aefd027a0bd24a88f0a053e37185e6fa (diff)
Attached patch fixes two problems:
1) gendef works from inside visual studio - use a tempfile instead of redirection, because for some reason you can't redirect dumpbin from inside (patch from Joachim Wieland) 2) gendef must process only *.obj, or you get weird errors in some build scenarios when it tries to process a logfile Magnus Hagander
-rw-r--r--src/tools/msvc/gendef.pl6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/tools/msvc/gendef.pl b/src/tools/msvc/gendef.pl
index d5d9bc78c7..675d8423b4 100644
--- a/src/tools/msvc/gendef.pl
+++ b/src/tools/msvc/gendef.pl
@@ -10,9 +10,10 @@ if (-f "$ARGV[0]/$defname.def") {
print "Generating $defname.DEF from directory $ARGV[0]\n";
-while (<$ARGV[0]/*>) {
+while (<$ARGV[0]/*.obj>) {
print ".";
- open(F,"dumpbin /symbols $_|") || die "Could not open $_\n";
+ system("dumpbin /symbols /out:symbols.out $_ >NUL") && die "Could not call dumpbin";
+ open(F, "<symbols.out") || die "Could not open symbols.out for $_\n";
while (<F>) {
s/\(\)//g;
next unless /^\d/;
@@ -31,6 +32,7 @@ while (<$ARGV[0]/*>) {
push @def, $pieces[6];
}
close(F);
+ unlink("symbols.out");
}
print "\n";