PL/Perl build problem: error: ‘OP_SETSTATE’ undeclared

Started by Peter Eisentrautover 13 years ago3 messages
#1Peter Eisentraut
peter_e@gmx.net

It appears that a recent Perl version (I have 5.14.2) has eliminated
OP_SETSTATE, which causes the current PostgreSQL build to fail:

plperl.c: In function ‘_PG_init’:
plperl.c:442:5645: error: ‘OP_SETSTATE’ undeclared (first use in this function)
plperl.c:442:5645: note: each undeclared identifier is reported only once for each function it appears in

I don't know the significance of this. Could someone investigate
please?

#2Alex Hunsaker
badalex@gmail.com
In reply to: Peter Eisentraut (#1)
Re: [HACKERS] PL/Perl build problem: error: ‘OP_SETSTATE’ undeclared

On Sun, Aug 12, 2012 at 9:57 PM, Peter Eisentraut <peter_e@gmx.net> wrote:

It appears that a recent Perl version (I have 5.14.2) has eliminated
OP_SETSTATE, which causes the current PostgreSQL build to fail:

plperl.c: In function ‘_PG_init’:
plperl.c:442:5645: error: ‘OP_SETSTATE’ undeclared (first use in this
function)
plperl.c:442:5645: note: each undeclared identifier is reported only once
for each function it appears in

Hrm, Thats strange, PLPERL_SET_OPMASK() is generated by plperl_opmask.pl--
that should use whatever OP's your current perl has defined (They come from
the "use Opcode" at the top and unless you somehow installed a different
Opcode module than what your perl has...).

Im running a non threaded 5.16.0 and I don't see OP_SETSTATE anywhere:
$ pwd
/home/alex/src/postgresql/src/pl/plperl
$ grep -RI 'OP_SETSTATE' *
$

I know i've used 5.14 in the past successfully. Wat happens if you
regenerate plperl_opmask.h? (rm plperl_opmask.h && make)

#3Peter Eisentraut
peter_e@gmx.net
In reply to: Alex Hunsaker (#2)
Re: Re: [HACKERS] PL/Perl build problem: error: ‘OP_SETSTATE’ undeclared

On Tue, 2012-08-14 at 20:58 -0600, Alex Hunsaker wrote:

I know i've used 5.14 in the past successfully. Wat happens if you
regenerate plperl_opmask.h? (rm plperl_opmask.h && make)

Yeah, it seems to have something to do with a perl upgrade happening
between builds. It was fixed by building from scratch.