aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/perl.m46
-rwxr-xr-xconfigure2
-rw-r--r--src/tools/msvc/MSBuildProject.pm9
-rw-r--r--src/tools/msvc/Mkvcbuild.pm5
-rw-r--r--src/tools/msvc/VCBuildProject.pm10
5 files changed, 12 insertions, 20 deletions
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
</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;$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
<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;$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',