Re: pl/perl extension fails on Windows

Andrew Dunstan <andrew.dunstan@2ndquadrant.com>

From: Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
To: Dave Page <dpage@pgadmin.org>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: Sandeep Thakkar <sandeep.thakkar@enterprisedb.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2017-07-12T18:31:47Z
Lists: pgsql-hackers

On 07/12/2017 11:49 AM, Dave Page wrote:
>
>
> On Wed, Jul 12, 2017 at 4:35 PM, Tom Lane <tgl@sss.pgh.pa.us
> <mailto:tgl@sss.pgh.pa.us>> wrote:
>
>     Sandeep Thakkar <sandeep.thakkar@enterprisedb.com
>     <mailto:sandeep.thakkar@enterprisedb.com>> writes:
>     > I compiled PG 10 beta1/beta2 with "--with-perl" option on
>     Windows and the
>     > extension crashes the database.
>     > *src/pl/plperl/Util.c: loadable library and perl binaries are
>     mismatched
>     > (got handshake key 0A900080, needed 0AC80080)*
>
>     > This is seen with Perl 5.24 but not with 5.20, 5.16. What I
>     found is that
>     > the handshake function is added in Perl 5.21.x and probably that
>     is why we
>     > don't see this issue in earlier versions.
>
>     Well, we have various buildfarm machines running perls newer than
>     that,
>     eg, crake, with 5.24.1.  So I'd say there is something busted
>     about your
>     perl installation.  Perhaps leftover bits of an older version
>     somewhere?
>
>
> Well crake is a Fedora box - and we have no problems on Linux, only on
> Windows. 
>
>


Yeah, I have this on one of my Windows boxes, and haven't had time to
get to the bottom of it yet ;-(

Latest versions of ActivePerl don't ship with library descriptor files,
either, which is unpleasant.

cheers

andrew

-- 
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Commits

  1. MSVC: Test whether 32-bit Perl needs -D_USE_32BIT_TIME_T.

  2. Further tweaks to compiler flags for PL/Perl on Windows.

  3. Absorb -D_USE_32BIT_TIME_T switch from Perl, if relevant.

  4. PL/Perl portability fix: absorb relevant -D switches from Perl.

  5. PL/Perl portability fix: avoid including XSUB.h in plperl.c.