]> granicus.if.org Git - postgresql/commitdiff
Make pg_dumpall build with the right object files under MSVC.
authorAndrew Dunstan <andrew@dunslane.net>
Mon, 28 Nov 2011 01:14:47 +0000 (20:14 -0500)
committerAndrew Dunstan <andrew@dunslane.net>
Mon, 28 Nov 2011 01:14:47 +0000 (20:14 -0500)
This fixes a longstanding but up to now benign bug in the way pg_dumpall
was built. The bug was exposed by recent code adjustments. The Makefile
does not use $(OBJS) to build pg_dumpall, so this fix removes their source
files from the pg_dumpall object and adds in the one source file it
consequently needs.

src/tools/msvc/Mkvcbuild.pm

index 482f10051b1aa5bf0f10c46b8dd199e173e18249..94ecb657cfcbaae7a502a9e3b50b6bcb601cb950 100644 (file)
@@ -344,9 +344,17 @@ sub mkvcbuild
     $pgdump->AddFile('src\backend\parser\kwlookup.c');
 
     my $pgdumpall = AddSimpleFrontend('pg_dump', 1);
+       # pg_dumpall doesn't use the files in the Makefile's $(OBJS), unlike
+       # pg_dump and pg_restore.
+       # So remove their sources from the object, keeping the other setup that 
+       # AddSimpleFrontend() has done.
+    my @nodumpall = grep  { m/src\\bin\\pg_dump\\.*\.c$/ } 
+       keys %{$pgdumpall->{files}};
+    delete @{$pgdumpall->{files}}{@nodumpall};
     $pgdumpall->{name} = 'pg_dumpall';
     $pgdumpall->AddIncludeDir('src\backend');
     $pgdumpall->AddFile('src\bin\pg_dump\pg_dumpall.c');
+    $pgdumpall->AddFile('src\bin\pg_dump\dumputils.c');
     $pgdumpall->AddFile('src\bin\pg_dump\keywords.c');
     $pgdumpall->AddFile('src\backend\parser\kwlookup.c');