Attached patch fixes two problems:
authorNeil Conway <neilc@samurai.com>
Wed, 10 Jan 2007 04:02:05 +0000 (04:02 +0000)
committerNeil Conway <neilc@samurai.com>
Wed, 10 Jan 2007 04:02:05 +0000 (04:02 +0000)
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

src/tools/msvc/gendef.pl

index d5d9bc78c7d4c0f063974d7317db63d2e8a576d7..675d8423b4032fffdb598461fae85dd39cd48c09 100644 (file)
@@ -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";