Re: pl/perl extension fails on Windows
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Ashutosh Sharma <ashu.coek88@gmail.com>
Cc: Andrew Dunstan <andrew.dunstan@2ndquadrant.com>,
Dave Page <dpage@pgadmin.org>,
Sandeep Thakkar <sandeep.thakkar@enterprisedb.com>,
"pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2017-07-19T18:09:22Z
Lists: pgsql-hackers
Ashutosh Sharma <ashu.coek88@gmail.com> writes: > On Wed, Jul 19, 2017 at 9:42 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >> I imagine the route to a solution is to fix things so that the relevant >> macros are all defined correctly in both cases. But why they aren't >> already is certainly an interesting question. Have you identified just >> which fields are added or missing relative to what libperl thinks? > Here are the list of macros and variables from 'intrpvar.h' file that > are just defined in perl module but not in plperl on Windows, > #ifdef PERL_USES_PL_PIDSTATUS > PERLVAR(I, pidstatus, HV *) /* pid-to-status mappings for waitpid */ > #endif > #ifdef PERL_SAWAMPERSAND > PERLVAR(I, sawampersand, U8) /* must save all match strings */ > #endif > #ifdef FCRYPT > PERLVARI(I, cryptseen, bool, FALSE) /* has fast crypt() been initialized? */ > #else > /* One byte hole in the interpreter structure. */ > #endif > #ifdef USE_REENTRANT_API > PERLVAR(I, reentrant_buffer, REENTR *) /* here we store the _r buffers */ > #endif > #ifdef PERL_GLOBAL_STRUCT_PRIVATE > PERLVARI(I, my_cxt_keys, const char **, NULL) /* per-module array of > pointers to MY_CXT_KEY constants */ > # endif > #ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP > /* File descriptor to talk to the child which dumps scalars. */ > PERLVARI(I, dumper_fd, int, -1) > #endif > #ifdef DEBUG_LEAKING_SCALARS > PERLVARI(I, sv_serial, U32, 0) /* SV serial number, used in sv.c */ > #endif > #ifdef PERL_TRACE_OPS > PERLVARA(I, op_exec_cnt, OP_max+2, UV) > #endif Huh. So those seem like symbols that ought to be exposed somewhere in Perl's headers. Perhaps we're failing to #include some "perl_config.h" or equivalent file that records these ABI options? 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