From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com> |
Cc: | Andrew Dunstan <andrew(dot)dunstan(at)2ndquadrant(dot)com>, Dave Page <dpage(at)pgadmin(dot)org>, Sandeep Thakkar <sandeep(dot)thakkar(at)enterprisedb(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: pl/perl extension fails on Windows |
Date: | 2017-07-19 18:09:22 |
Message-ID: | 7362.1500487762@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com> writes:
> On Wed, Jul 19, 2017 at 9:42 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2017-07-19 18:18:22 | Re: Something for the TODO list: deprecating abstime and friends |
Previous Message | Tom Lane | 2017-07-19 18:05:39 | Re: Using non-sequential timelines in order to help with possible collisions |