Re: pl/perl extension fails on Windows
Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
From: Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
To: Ashutosh Sharma <ashu.coek88@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>, Dave Page <dpage@pgadmin.org>,
Sandeep Thakkar <sandeep.thakkar@enterprisedb.com>,
"pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2017-07-27T18:36:27Z
Lists: pgsql-hackers
On 07/27/2017 12:34 PM, Ashutosh Sharma wrote: > On Thu, Jul 27, 2017 at 7:51 PM, Tom Lane <tgl@sss.pgh.pa.us > <mailto:tgl@sss.pgh.pa.us>> wrote: > > Ashutosh Sharma <ashu.coek88@gmail.com > <mailto:ashu.coek88@gmail.com>> writes: > >> Anyways, attached is the patch that corrects this issue. The patch now > >> imports all the switches used by perl into plperl module but, after > >> doing so, i am seeing some compilation errors on Windows. Following is > >> the error observed, > > > >> SPI.obj : error LNK2019: unresolved external symbol PerlProc_setjmp > >> referenced in function do_plperl_return_next > > > > That's certainly a mess, but how come that wasn't happening before? > > Earlier we were using Perl-5.20 version which i think didn't have > handshaking mechanism. From perl-5.22 onwards, the functions like > Perl_xs_handshake() or HS_KEY were introduced for handshaking purpose > and to ensure that the handshaking between plperl and perl doesn't > fail, we are now trying to import the switches used by perl into > plperl. As a result of this, macros like PERL_IMPLICIT_SYS is getting > defined in plperl which eventually opens the following definitions > from XSUB.h resulting in the compilation error. > > 499 #if defined(PERL_IMPLICIT_SYS) && !defined(PERL_CORE) > 518 # undef ioctl > 519 # undef getlogin > 520*# undef setjmp* > ........... > ........... > > 651 # define times PerlProc_times > 652 # define wait PerlProc_wait > 653 *# define setjmp PerlProc_setjmp > > * What is the minimal set of extra defines required to sort out the handshake fingerprint issue? cheers andrew -- Andrew Dunstan https://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
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