Re: [HACKERS] pl/perl extension fails on Windows
От | Ashutosh Sharma |
---|---|
Тема | Re: [HACKERS] pl/perl extension fails on Windows |
Дата | |
Msg-id | CAE9k0Pnq50=jeeLMMEbhdcYvfXFEc0SVgyNG7MLBmz-Oubw1tA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] pl/perl extension fails on Windows (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: [HACKERS] pl/perl extension fails on Windows
|
Список | pgsql-hackers |
On Thu, Jul 27, 2017 at 7:51 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Ashutosh Sharma <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
--
With Regards,
Ashutosh Sharma
EnterpriseDB:http://www. enterprisedb.com
>
> regards, tom lane
> Ashutosh Sharma <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
--
With Regards,
Ashutosh Sharma
EnterpriseDB:http://www.
>
> regards, tom lane
В списке pgsql-hackers по дате отправления: