Fix MSVC builds for recent plperl changes. Go back to version 8.2, which is
authorAndrew Dunstan <[email protected]>
Thu, 13 May 2010 21:34:55 +0000 (21:34 +0000)
committerAndrew Dunstan <[email protected]>
Thu, 13 May 2010 21:34:55 +0000 (21:34 +0000)
where we started supporting MSVC builds.

Security: CVE-2010-1169

src/tools/msvc/mkvcbuild.pl

index 9f4a3c11e872099ddc81555afc7794e55f19d0fe..8bf35aefb4c0b05cb2979774e991ca240b77f9ec 100644 (file)
@@ -4,6 +4,7 @@ use strict;
 use warnings;
 use Project;
 use Solution;
+use Cwd;
 
 chdir('..\..\..') if (-d '..\msvc' && -d '..\..\..\src');
 die 'Must run from root or msvc directory' unless (-d 'src\tools\msvc' && -d 'src');
@@ -58,6 +59,26 @@ if ($solution->{options}->{perl}) {
            die 'Failed to create SPI.c' . "\n";
        }
    }
+   if (  Solution::IsNewer('src\pl\plperl\plperl_opmask.h','src\pl\plperl\plperl_opmask.pl'))
+   {
+       print 'Building src\pl\plperl\plperl_opmask.h ...' . "\n";
+       
+       my $basedir = getcwd;
+       chdir 'src\pl\plperl';
+       system( $solution->{options}->{perl}
+               . '/bin/perl '
+               . 'plperl_opmask.pl '
+               .   'plperl_opmask.h');
+       chdir $basedir;
+       if ((!(-f 'src\pl\plperl\plperl_opmask.h')) || -z 'src\pl\plperl\plperl_opmask.h')
+       {
+           unlink('src\pl\plperl\plperl_opmask.h'); # if zero size
+           die 'Failed to create plperl_opmask.h' . "\n";
+       }
+   }
+   $plperl->AddReference($postgres);
+   my @perl_libs = grep {/perl\d+.lib$/ }
+     glob($solution->{options}->{perl} . '\lib\CORE\perl*.lib');
    $plperl->AddReference($postgres);
    $plperl->AddLibrary($solution->{options}->{perl} . '\lib\CORE\perl58.lib');
 }