diff --git a/config/perl.m4 b/config/perl.m4 index 9706c4de6ac..fbb13ed1c02 100644 --- a/config/perl.m4 +++ b/config/perl.m4 @@ -59,7 +59,9 @@ AC_DEFUN([PGAC_CHECK_PERL_CONFIGS], # to a different libc ABI than core Postgres uses. The available information # says that all the symbols that affect Perl's own ABI begin with letters, # so it should be sufficient to adopt -D switches for symbols not beginning -# with underscore. +# with underscore. An exception is that we need to let through +# -D_USE_32BIT_TIME_T if it's present. (We probably could restrict that to +# only get through on Windows, but for the moment we let it through always.) # For debugging purposes, let's have the configure output report the raw # ccflags value as well as the set of flags we chose to adopt. AC_DEFUN([PGAC_CHECK_PERL_EMBED_CCFLAGS], @@ -68,7 +70,7 @@ AC_MSG_CHECKING([for CFLAGS recommended by Perl]) perl_ccflags=`$PERL -MConfig -e ['print $Config{ccflags}']` AC_MSG_RESULT([$perl_ccflags]) AC_MSG_CHECKING([for CFLAGS to compile embedded Perl]) -perl_embed_ccflags=`$PERL -MConfig -e ['foreach $f (split(" ",$Config{ccflags})) {print $f, " " if ($f =~ /^-D[^_]/)}']` +perl_embed_ccflags=`$PERL -MConfig -e ['foreach $f (split(" ",$Config{ccflags})) {print $f, " " if ($f =~ /^-D[^_]/ || $f =~ /^-D_USE_32BIT_TIME_T/)}']` AC_SUBST(perl_embed_ccflags)dnl AC_MSG_RESULT([$perl_embed_ccflags]) ])# PGAC_CHECK_PERL_EMBED_CCFLAGS diff --git a/configure b/configure index a9fb57b06c5..3c9603751a2 100755 --- a/configure +++ b/configure @@ -7519,7 +7519,7 @@ perl_ccflags=`$PERL -MConfig -e 'print $Config{ccflags}'` $as_echo "$perl_ccflags" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLAGS to compile embedded Perl" >&5 $as_echo_n "checking for CFLAGS to compile embedded Perl... " >&6; } -perl_embed_ccflags=`$PERL -MConfig -e 'foreach $f (split(" ",$Config{ccflags})) {print $f, " " if ($f =~ /^-D[^_]/)}'` +perl_embed_ccflags=`$PERL -MConfig -e 'foreach $f (split(" ",$Config{ccflags})) {print $f, " " if ($f =~ /^-D[^_]/ || $f =~ /^-D_USE_32BIT_TIME_T/)}'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $perl_embed_ccflags" >&5 $as_echo "$perl_embed_ccflags" >&6; } diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm index d7638b458ef..27329f9e361 100644 --- a/src/tools/msvc/MSBuildProject.pm +++ b/src/tools/msvc/MSBuildProject.pm @@ -63,21 +63,16 @@ EOF 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;$use_32bit_time_t", + { defs => "_DEBUG;DEBUG=1", opt => 'Disabled', strpool => 'false', runtime => 'MultiThreadedDebugDLL' }); $self->WriteItemDefinitionGroup( $f, 'Release', - { defs => "$use_32bit_time_t", + { defs => "", opt => 'Full', strpool => 'true', runtime => 'MultiThreadedDLL' }); diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm index f3bd30540a2..6988eea1c88 100644 --- a/src/tools/msvc/Mkvcbuild.pm +++ b/src/tools/msvc/Mkvcbuild.pm @@ -521,14 +521,15 @@ sub mkvcbuild my @perl_embed_ccflags; foreach my $f (split(" ",$Config{ccflags})) { - if ($f =~ /^-D[^_]/) + if ($f =~ /^-D[^_]/ || + $f =~ /^-D_USE_32BIT_TIME_T/) { $f =~ s/\-D//; push(@perl_embed_ccflags, $f); } } - # XXX this probably is redundant now? + # Also, a hack to prevent duplicate definitions of uid_t/gid_t push(@perl_embed_ccflags, 'PLPERL_HAVE_UID_GID'); foreach my $f (@perl_embed_ccflags) diff --git a/src/tools/msvc/VCBuildProject.pm b/src/tools/msvc/VCBuildProject.pm index a8d75d88f31..669ba1730bc 100644 --- a/src/tools/msvc/VCBuildProject.pm +++ b/src/tools/msvc/VCBuildProject.pm @@ -33,15 +33,9 @@ sub WriteHeader 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;$use_32bit_time_t", + { defs => "_DEBUG;DEBUG=1", wholeopt => 0, opt => 0, strpool => 'false', @@ -49,7 +43,7 @@ EOF $self->WriteConfiguration( $f, 'Release', - { defs => "$use_32bit_time_t", + { defs => "", wholeopt => 0, opt => 3, strpool => 'true',