]> granicus.if.org Git - postgresql/commitdiff
Restore setting of _USE_32BIT_TIME_T to 32 bit MSVC builds.
authorAndrew Dunstan <andrew@dunslane.net>
Sat, 1 Sep 2012 00:50:31 +0000 (20:50 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Sat, 1 Sep 2012 00:50:31 +0000 (20:50 -0400)
This was removed in commit cd004067742ee16ee63e55abfb4acbd5f09fbaab,
we're not quite sure why, but there have been reports of crashes due
to AS Perl being built with it when we are not, and it certainly
seems like the right thing to do. There is still some uncertainty
as to why it sometimes fails and sometimes doesn't.

Original patch from Owais Khani, substantially reworked and
extended by Andrew Dunstan.

src/tools/msvc/MSBuildProject.pm
src/tools/msvc/VCBuildProject.pm

index ac99345fa6dc7db9a5ca0cc6b047c6a5e55819e2..2e3eab6599d2dbf37cb501e30c2d2fea4bfb0121 100644 (file)
@@ -61,16 +61,22 @@ EOF
        print $f <<EOF;
   </PropertyGroup>
 EOF
+
+       # We have to use this flag on 32 bit targets because the 32bit perls
+       # are built with it and sometimes crash if we don't.
+       my $use_32bit_time_t = 
+         $self->{platform} eq 'Win32' ? '_USE_32BIT_TIME_T;' : '';
+
        $self->WriteItemDefinitionGroup(
                $f, 'Debug',
-               {   defs    => '_DEBUG;DEBUG=1;',
+               {   defs    => "_DEBUG;DEBUG=1;$use_32bit_time_t",
                        opt     => 'Disabled',
                        strpool => 'false',
                        runtime => 'MultiThreadedDebugDLL' });
        $self->WriteItemDefinitionGroup(
                $f,
                'Release',
-               {   defs    => '',
+               {   defs    => "$use_32bit_time_t",
                        opt     => 'Full',
                        strpool => 'true',
                        runtime => 'MultiThreadedDLL' });
index 1022329dce2f70b938290b08eceb7776c2fb58cb..624682601b3180b41b850d8a0ef3cd188399722d 100644 (file)
@@ -32,9 +32,16 @@ sub WriteHeader
  <Platforms><Platform Name="$self->{platform}"/></Platforms>
  <Configurations>
 EOF
+
+       # We have to use this flag on 32 bit targets because the 32bit perls
+       # are built with it and sometimes crash if we don't.
+       my $use_32bit_time_t = 
+         $self->{platform} eq 'Win32' ? '_USE_32BIT_TIME_T;' : '';
+
+
        $self->WriteConfiguration(
                $f, 'Debug',
-               {   defs     => '_DEBUG;DEBUG=1;',
+               {   defs     => "_DEBUG;DEBUG=1;$use_32bit_time_t",
                        wholeopt => 0,
                        opt      => 0,
                        strpool  => 'false',
@@ -42,7 +49,7 @@ EOF
        $self->WriteConfiguration(
                $f,
                'Release',
-               {   defs     => '',
+               {   defs     => "$use_32bit_time_t",
                        wholeopt => 0,
                        opt      => 3,
                        strpool  => 'true',