Re: pl/perl extension fails on Windows
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Dave Page <dpage@postgresql.org>
Cc: Sandeep Thakkar <sandeep.thakkar@enterprisedb.com>,
Ashutosh Sharma <ashu.coek88@gmail.com>,
Robert Haas <robertmhaas@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-08-17T15:30:56Z
Lists: pgsql-hackers
I wrote:
> Dave Page <dpage@postgresql.org> writes:
>> C:\Perl\bin>perl -MConfig -e "print $Config{ccflags}"
>> -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT
>> -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE
>> -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO
>> -DPERL_MSVCRT_READFIX
> So it is indeed not advertising anything about _USE_32BIT_TIME_T ...
> but then how do other Perl extensions work? Strange.
So we're between a rock and a hard place here. ActiveState Perl 5.8.8
requires us to use _USE_32BIT_TIME_T, and doesn't appear to display that
requirement in any standard way. Newer versions of Perl require us not
to use that symbol unless they say so.
Short of declaring this version of Perl unsupported, the only answer
I can think of is to put a kluge into the MSVC build scripts along
the lines of "if it's 32-bit Windows, and the Perl version is before X,
assume we need _USE_32BIT_TIME_T even if $Config{ccflags} doesn't
say so". It would be nice to have some hard evidence about what X
should be, but we don't know when ActiveState fixed this. (I poked
around in their bugzilla, without success.)
In the interests of getting the buildfarm green again before I disappear
on vacation, I propose to do the above with X = 5.10.0. Anybody
have a better idea?
regards, tom lane
Commits
-
MSVC: Test whether 32-bit Perl needs -D_USE_32BIT_TIME_T.
- 1886899420ce 9.3.21 landed
- aed8d41af628 9.4.16 landed
- 1c1a572d055f 9.5.11 landed
- 140fa2fbad94 9.6.7 landed
- 9b5c99790e83 10.2 landed
- 65a00f30352a 11.0 landed
-
Further tweaks to compiler flags for PL/Perl on Windows.
- f7e4783ddbef 9.2.23 landed
- bc4404405f21 9.3.19 landed
- 4f862351d20b 9.4.14 landed
- bff216d8789f 9.5.9 landed
- c343314882f1 9.6.5 landed
- 1d7a479d22f6 10.0 landed
- b5178c5d08ca 11.0 landed
-
Absorb -D_USE_32BIT_TIME_T switch from Perl, if relevant.
- e3335ec0b6a6 9.2.23 landed
- 5a5c2feca3fd 10.0 landed
- 3883be3eae97 9.6.5 landed
- 25169b948e13 9.3.19 landed
- 1621a75531c8 9.5.9 landed
- 01de7ea85378 9.4.14 landed
-
PL/Perl portability fix: absorb relevant -D switches from Perl.
- df52739ce3e7 9.5.8 landed
- 9cbdc689418b 9.4.13 landed
- 456c7dff2af1 9.2.22 landed
- 1e58c503ec46 9.6.4 landed
- 0d8f015e7726 9.3.18 landed
- 3c163a7fc76d 10.0 landed
-
PL/Perl portability fix: avoid including XSUB.h in plperl.c.
- d48180ec812d 9.4.13 landed
- b92f17277eb9 9.3.18 landed
- b4b958251fbf 9.2.22 landed
- 99eea89dbe31 9.5.8 landed
- 30a5c8bfbd7b 9.6.4 landed
- bebe174bb446 10.0 landed