Re: [HACKERS] pl/perl extension fails on Windows - Mailing list pgsql-hackers
From | Tom Lane |
---|---|
Subject | Re: [HACKERS] pl/perl extension fails on Windows |
Date | |
Msg-id | 14838.1502379286@sss.pgh.pa.us Whole thread Raw |
In response to | Re: [HACKERS] pl/perl extension fails on Windows (Ashutosh Sharma <ashu.coek88@gmail.com>) |
Responses |
Re: [HACKERS] pl/perl extension fails on Windows
|
List | pgsql-hackers |
Ashutosh Sharma <ashu.coek88@gmail.com> writes: > On Thu, Aug 10, 2017 at 8:06 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >> Yeah ... however, if that's there, then there's something wrong with >> Ashutosh's explanation, because that means we *are* building with >> _USE_32BIT_TIME_T in 32-bit builds. It's just getting there in a >> roundabout way. (Or, alternatively, this code is somehow not doing >> anything at all.) > I am extremely sorry if i have communicated the things wrongly, what i > meant was we are always considering _USE_32BIT_TIME_T flag to build > plperl module on Windows 32-bit platform but unfortunately that is not > being considered/defined in perl code in case we use VC++ compiler > version greater than 8.0. and that's the reason for the binary > mismatch error on 32 bit platform. Got it. So in short, it seems like the attached patch ought to fix it for MSVC builds. (We'd also need to teach PGAC_CHECK_PERL_EMBED_CCFLAGS to let _USE_32BIT_TIME_T through on Windows, but let's confirm the theory first.) regards, tom lane diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm index d7638b4..27329f9 100644 *** a/src/tools/msvc/MSBuildProject.pm --- b/src/tools/msvc/MSBuildProject.pm *************** EOF *** 63,83 **** </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", opt => 'Disabled', strpool => 'false', runtime => 'MultiThreadedDebugDLL' }); $self->WriteItemDefinitionGroup( $f, 'Release', ! { defs => "$use_32bit_time_t", opt => 'Full', strpool => 'true', runtime => 'MultiThreadedDLL' }); --- 63,78 ---- </PropertyGroup> EOF $self->WriteItemDefinitionGroup( $f, 'Debug', ! { defs => "_DEBUG;DEBUG=1", opt => 'Disabled', strpool => 'false', runtime => 'MultiThreadedDebugDLL' }); $self->WriteItemDefinitionGroup( $f, 'Release', ! { defs => "", opt => 'Full', strpool => 'true', runtime => 'MultiThreadedDLL' }); diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm index a7e3a01..940bef6 100644 *** a/src/tools/msvc/Mkvcbuild.pm --- b/src/tools/msvc/Mkvcbuild.pm *************** sub mkvcbuild *** 522,528 **** my @perl_embed_ccflags; foreach my $f (split(" ",$Config{ccflags})) { ! if ($f =~ /^-D[^_]/) { $f =~ s/\-D//; push(@perl_embed_ccflags, $f); --- 522,529 ---- my @perl_embed_ccflags; foreach my $f (split(" ",$Config{ccflags})) { ! if ($f =~ /^-D[^_]/ || ! $f =~ /^-D_USE_32BIT_TIME_T/) { $f =~ s/\-D//; push(@perl_embed_ccflags, $f); diff --git a/src/tools/msvc/VCBuildProject.pm b/src/tools/msvc/VCBuildProject.pm index a8d75d8..669ba17 100644 *** a/src/tools/msvc/VCBuildProject.pm --- b/src/tools/msvc/VCBuildProject.pm *************** sub WriteHeader *** 33,47 **** <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", wholeopt => 0, opt => 0, strpool => 'false', --- 33,41 ---- <Configurations> EOF $self->WriteConfiguration( $f, 'Debug', ! { defs => "_DEBUG;DEBUG=1", wholeopt => 0, opt => 0, strpool => 'false', *************** EOF *** 49,55 **** $self->WriteConfiguration( $f, 'Release', ! { defs => "$use_32bit_time_t", wholeopt => 0, opt => 3, strpool => 'true', --- 43,49 ---- $self->WriteConfiguration( $f, 'Release', ! { defs => "", wholeopt => 0, opt => 3, strpool => 'true', -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
pgsql-hackers by date: