Commit ef58b87d authored by Andrew Dunstan's avatar Andrew Dunstan

Restore setting of _USE_32BIT_TIME_T to 32 bit MSVC builds.

This was removed in commit cd004067,
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.
parent c97a547a
......@@ -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' });
......
......@@ -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',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment