Thread: compile errors in new PL/Pler

compile errors in new PL/Pler

From
Christopher Kings-Lynne
Date:
gmake[3]: Entering directory `/space/1/home/chriskl/pgsql/src/pl/plperl'
gcc -O2 -fno-strict-aliasing -g -fpic -DPIC -I. 
-I/usr/libdata/perl/5.00503/mach/CORE -I../../../src/include   -c -o 
SPI.o SPI.c -MMD
SPI.xs: In function `XS__spi_exec_query':
SPI.xs:51: `aTHX_' undeclared (first use in this function)
SPI.xs:51: (Each undeclared identifier is reported only once
SPI.xs:51: for each function it appears in.)
SPI.xs:51: syntax error before string constant
gmake[3]: *** [SPI.o] Error 1
gmake[3]: Leaving directory `/space/1/home/chriskl/pgsql/src/pl/plperl'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/space/1/home/chriskl/pgsql/src/pl'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/space/1/home/chriskl/pgsql/src'
gmake: *** [all] Error 2

Chris



Re: compile errors in new PL/Pler

From
"Joshua D. Drake"
Date:
Christopher Kings-Lynne wrote:

> gmake[3]: Entering directory `/space/1/home/chriskl/pgsql/src/pl/plperl'
> gcc -O2 -fno-strict-aliasing -g -fpic -DPIC -I. 
> -I/usr/libdata/perl/5.00503/mach/CORE -I../../../src/include   -c -o 
> SPI.o SPI.c -MMD


I am going to bet dollars to donuts that it is your perl version. Perl 
5.00503 is ancient. Try upgrading to at least 5.6.

Sincerely,

Joshua D. Drake



> SPI.xs: In function `XS__spi_exec_query':
> SPI.xs:51: `aTHX_' undeclared (first use in this function)
> SPI.xs:51: (Each undeclared identifier is reported only once
> SPI.xs:51: for each function it appears in.)
> SPI.xs:51: syntax error before string constant
> gmake[3]: *** [SPI.o] Error 1
> gmake[3]: Leaving directory `/space/1/home/chriskl/pgsql/src/pl/plperl'
> gmake[2]: *** [all] Error 2
> gmake[2]: Leaving directory `/space/1/home/chriskl/pgsql/src/pl'
> gmake[1]: *** [all] Error 2
> gmake[1]: Leaving directory `/space/1/home/chriskl/pgsql/src'
> gmake: *** [all] Error 2
>
> Chris
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 8: explain analyze is your friend



-- 
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com
PostgreSQL Replicator -- production quality replication for PostgreSQL



Re: compile errors in new PL/Pler

From
Christopher Kings-Lynne
Date:
>> gmake[3]: Entering directory `/space/1/home/chriskl/pgsql/src/pl/plperl'
>> gcc -O2 -fno-strict-aliasing -g -fpic -DPIC -I. 
>> -I/usr/libdata/perl/5.00503/mach/CORE -I../../../src/include   -c -o 
>> SPI.o SPI.c -MMD
> 
> 
> 
> I am going to bet dollars to donuts that it is your perl version. Perl 
> 5.00503 is ancient. Try upgrading to at least 5.6.

Not much I can do about that - it's builtin as part of FreeBSD 4.x series.

Chris



Re: compile errors in new PL/Pler

From
"Marc G. Fournier"
Date:
On Fri, 2 Jul 2004, Christopher Kings-Lynne wrote:

>>> gmake[3]: Entering directory `/space/1/home/chriskl/pgsql/src/pl/plperl'
>>> gcc -O2 -fno-strict-aliasing -g -fpic -DPIC -I. 
>>> -I/usr/libdata/perl/5.00503/mach/CORE -I../../../src/include   -c -o 
>>> SPI.o SPI.c -MMD
>> 
>> 
>> 
>> I am going to bet dollars to donuts that it is your perl version. Perl 
>> 5.00503 is ancient. Try upgrading to at least 5.6.
>
> Not much I can do about that - it's builtin as part of FreeBSD 4.x series.

And I bet its still the 'standard' for alot of ppl out there running it 
... its only within the past couple of months that we've even upgraded 
mail.postgresql.org to it, and only because I wanted to see if it would 
improve majordomo's performance (which it didn't) ...

----
Marc G. Fournier           Hub.Org Networking Services (http://www.hub.org)
Email: scrappy@hub.org           Yahoo!: yscrappy              ICQ: 7615664


Re: compile errors in new PL/Pler

From
Joe Conway
Date:
Marc G. Fournier wrote:
> On Fri, 2 Jul 2004, Christopher Kings-Lynne wrote:
>>>
>>> I am going to bet dollars to donuts that it is your perl version. 
>>> Perl 5.00503 is ancient. Try upgrading to at least 5.6.
>>
>> Not much I can do about that - it's builtin as part of FreeBSD 4.x 
>> series.
> 
> And I bet its still the 'standard' for alot of ppl out there running it 
> ... its only within the past couple of months that we've even upgraded 
> mail.postgresql.org to it, and only because I wanted to see if it would 
> improve majordomo's performance (which it didn't) ...

So we have three choices as I see it:
1) revert the change
2) require some minimally recent version of perl
3) fix the issue in place

Preferences?

Joshua/Andrew -- do you want to take a shot at making this work on perl 
5.00503?

Joe


Re: compile errors in new PL/Pler

From
"Andrew Dunstan"
Date:
Joe Conway said:
> Marc G. Fournier wrote:
>> On Fri, 2 Jul 2004, Christopher Kings-Lynne wrote:
>>>>
>>>> I am going to bet dollars to donuts that it is your perl version.
>>>> Perl 5.00503 is ancient. Try upgrading to at least 5.6.
>>>
>>> Not much I can do about that - it's builtin as part of FreeBSD 4.x
>>> series.
>>
>> And I bet its still the 'standard' for alot of ppl out there running
>> it  ... its only within the past couple of months that we've even
>> upgraded  mail.postgresql.org to it, and only because I wanted to see
>> if it would  improve majordomo's performance (which it didn't) ...
>
> So we have three choices as I see it:
> 1) revert the change
> 2) require some minimally recent version of perl
> 3) fix the issue in place
>
> Preferences?
>
> Joshua/Andrew -- do you want to take a shot at making this work on perl
>  5.00503?
>
> Joe


1 is not acceptable, and 2 kinda sucks.

Please try adding this to SPI.xs,

#ifndef aTHX_
#define aTHX_
#endif

recompile and test by calling spi_exec_query with more than 2 arguments like
this:

create function should_croak() returns text language plperl as $$ my $rv = spi_exec_query("select 1",5,"blurfl");
return$rv->{status};
 
$$;

select should_croak();

cheers

andrew






Re: compile errors in new PL/Pler

From
Christopher Kings-Lynne
Date:
> 1 is not acceptable, and 2 kinda sucks.
> 
> Please try adding this to SPI.xs,
> 
> #ifndef aTHX_
> #define aTHX_
> #endif
> 
> recompile and test by calling spi_exec_query with more than 2 arguments like
> this:

Hmmm, compiled fine, but then I get this:

-bash-2.05b$ createlang -d test plperl
ERROR:  could not load library 
"/home/chriskl/local/lib/postgresql/plperl.so": dlopen 
'/home/chriskl/local/lib/postgresql/plperl.so' failed. 
(/home/chriskl/local/lib/postgresql/plperl.so: Undefined symbol "eval_pv")
createlang: language installation failed: ERROR:  could not load library 
"/home/chriskl/local/lib/postgresql/plperl.so": dlopen 
'/home/chriskl/local/lib/postgresql/plperl.so' failed. 
(/home/chriskl/local/lib/postgresql/plperl.so: Undefined symbol "eval_pv")

Chris



Re: compile errors in new PL/Pler

From
"Andrew Dunstan"
Date:
Christopher Kings-Lynne said:
>
>> 1 is not acceptable, and 2 kinda sucks.
>>
>> Please try adding this to SPI.xs,
>>
>> #ifndef aTHX_
>> #define aTHX_
>> #endif
>>
>> recompile and test by calling spi_exec_query with more than 2
>> arguments like this:
>
> Hmmm, compiled fine, but then I get this:
>
> -bash-2.05b$ createlang -d test plperl
> ERROR:  could not load library
> "/home/chriskl/local/lib/postgresql/plperl.so": dlopen
> '/home/chriskl/local/lib/postgresql/plperl.so' failed.
> (/home/chriskl/local/lib/postgresql/plperl.so: Undefined symbol
> "eval_pv") createlang: language installation failed: ERROR:  could not
> load library  "/home/chriskl/local/lib/postgresql/plperl.so": dlopen
> '/home/chriskl/local/lib/postgresql/plperl.so' failed.
> (/home/chriskl/local/lib/postgresql/plperl.so: Undefined symbol
> "eval_pv")
>


progress is good ....

We seem to have a mixture of old-style and new-style calls which needs to be
cleaned up. I would relly appreciate some experienced eyes being cast over
this, if there are any around.

In the meantime, does this solve your problem?:

#ifndef eval_pv
#define eval_pv perl_eval_pv
#endif

cheers

andrew




Re: compile errors in new PL/Pler

From
Abhijit Menon-Sen
Date:
At 2004-07-02 08:55:56 -0400, andrew@dunslane.net wrote:
>
> In the meantime, does this solve your problem?:
> 
> #ifndef eval_pv
> #define eval_pv perl_eval_pv
> #endif

The right way to do this is to #include "ppport.h" from Devel::PPPort.

-- ams


Re: compile errors in new PL/Pler

From
Tom Lane
Date:
Christopher Kings-Lynne <chriskl@familyhealth.com.au> writes:
>> I am going to bet dollars to donuts that it is your perl version. Perl 
>> 5.00503 is ancient. Try upgrading to at least 5.6.

> Not much I can do about that - it's builtin as part of FreeBSD 4.x series.

Chris isn't the only one who's going to insist on fixing this ;-)

$ perl -v
This is perl, version 5.005_03 built for PA-RISC2.0
        regards, tom lane


Re: compile errors in new PL/Pler

From
Larry Rosenman
Date:
On Fri, 2 Jul 2004, Tom Lane wrote:

> Christopher Kings-Lynne <chriskl@familyhealth.com.au> writes:
>>> I am going to bet dollars to donuts that it is your perl version. Perl
>>> 5.00503 is ancient. Try upgrading to at least 5.6.
>
>> Not much I can do about that - it's builtin as part of FreeBSD 4.x series.
>
> Chris isn't the only one who's going to insist on fixing this ;-)
>
> $ perl -v
> This is perl, version 5.005_03 built for PA-RISC2.0

And on FreeBSD 4.x, you can force use of the perl 5.[68] ports by installing
one of them, and then issuing:

use.perl port

from a root shell.

(It won't help Tom, but will on FreeBSD. )

LER

-- 
Larry Rosenman                     http://www.lerctr.org/~ler
Phone: +1 972-414-9812                 E-Mail: ler@lerctr.org
US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749


Re: compile errors in new PL/Pler

From
"Andrew Dunstan"
Date:
Larry Rosenman said:
> On Fri, 2 Jul 2004, Tom Lane wrote:
>
>> Christopher Kings-Lynne <chriskl@familyhealth.com.au> writes:
>>>> I am going to bet dollars to donuts that it is your perl version.
>>>> Perl 5.00503 is ancient. Try upgrading to at least 5.6.
>>
>>> Not much I can do about that - it's builtin as part of FreeBSD 4.x
>>> series.
>>
>> Chris isn't the only one who's going to insist on fixing this ;-)
>>
>> $ perl -v
>> This is perl, version 5.005_03 built for PA-RISC2.0
>
> And on FreeBSD 4.x, you can force use of the perl 5.[68] ports by
> installing one of them, and then issuing:
>
> use.perl port
>
> from a root shell.
>
> (It won't help Tom, but will on FreeBSD. )
>

We will fix this, and we won't require this upgrade, I believe.

cheers

andrew




Re: compile errors in new PL/Pler

From
Christopher Kings-Lynne
Date:
> In the meantime, does this solve your problem?:
> 
> #ifndef eval_pv
> #define eval_pv perl_eval_pv
> #endif

Hmmm, I put it in  there and rebuilt and reinstalled and tried again:

-bash-2.05b$ createlang -d test plperl
ERROR:  could not load library 
"/home/chriskl/local/lib/postgresql/plperl.so": dlopen 
'/home/chriskl/local/lib/postgresql/plperl.so' failed. 
(/home/chriskl/local/lib/postgresql/plperl.so: Undefined symbol "eval_pv")
createlang: language installation failed: ERROR:  could not load library 
"/home/chriskl/local/lib/postgresql/plperl.so": dlopen 
'/home/chriskl/local/lib/postgresql/plperl.so' failed. 
(/home/chriskl/local/lib/postgresql/plperl.so: Undefined symbol "eval_pv")


Same error?  I wonder if I did something wrong...

Chris



Re: compile errors in new PL/Pler

From
Christopher Kings-Lynne
Date:
> We seem to have a mixture of old-style and new-style calls which needs to be
> cleaned up. I would relly appreciate some experienced eyes being cast over
> this, if there are any around.
> 
> In the meantime, does this solve your problem?:

I went back to clean CVS and I noticed I had these warnings:

gcc -O2 -fno-strict-aliasing -fpic -DPIC -I. 
-I/usr/libdata/perl/5.00503/mach/CORE -I../../../src/include   -c -o 
plperl.o plperl.c -MMD
plperl.c: In function `plperl_get_keys':
plperl.c:417: warning: passing arg 3 of `Perl_av_store' makes pointer 
from integer without a cast
plperl.c: In function `plperl_get_elem':
plperl.c:452: warning: passing arg 2 of `Perl_hv_exists_ent' makes 
pointer from integer without a cast
plperl.c: In function `plperl_func_handler':
plperl.c:930: warning: passing arg 3 of `Perl_av_store' makes pointer 
from integer without a cast


Chris



Re: compile errors in new PL/Pler

From
"Marc G. Fournier"
Date:
On Fri, 2 Jul 2004, Larry Rosenman wrote:

> On Fri, 2 Jul 2004, Tom Lane wrote:
>
>> Christopher Kings-Lynne <chriskl@familyhealth.com.au> writes:
>>>> I am going to bet dollars to donuts that it is your perl version. Perl
>>>> 5.00503 is ancient. Try upgrading to at least 5.6.
>> 
>>> Not much I can do about that - it's builtin as part of FreeBSD 4.x 
>>> series.
>> 
>> Chris isn't the only one who's going to insist on fixing this ;-)
>> 
>> $ perl -v
>> This is perl, version 5.005_03 built for PA-RISC2.0
>
> And on FreeBSD 4.x, you can force use of the perl 5.[68] ports by installing
> one of them, and then issuing:
>
> use.perl port
>
> from a root shell.
>
> (It won't help Tom, but will on FreeBSD. )

On a *reasonably* established FreeBSD box, that makes heavy use of perl 
(ie. has *alot* of modules installed), I find that installing the port can 
be a bit of a hardship ... on new machines, its something that I do 
automatically, but it isn't a solution for older boxes, IMHO ...

----
Marc G. Fournier           Hub.Org Networking Services (http://www.hub.org)
Email: scrappy@hub.org           Yahoo!: yscrappy              ICQ: 7615664


Re: compile errors in new PL/Pler

From
"Andrew Dunstan"
Date:
Christopher Kings-Lynne said:
>> We seem to have a mixture of old-style and new-style calls which needs
>> to be cleaned up. I would relly appreciate some experienced eyes being
>> cast over this, if there are any around.
>>
>> In the meantime, does this solve your problem?:
>
> I went back to clean CVS and I noticed I had these warnings:
>
> gcc -O2 -fno-strict-aliasing -fpic -DPIC -I.
> -I/usr/libdata/perl/5.00503/mach/CORE -I../../../src/include   -c -o
> plperl.o plperl.c -MMD
> plperl.c: In function `plperl_get_keys':
> plperl.c:417: warning: passing arg 3 of `Perl_av_store' makes pointer
> from integer without a cast
> plperl.c: In function `plperl_get_elem':
> plperl.c:452: warning: passing arg 2 of `Perl_hv_exists_ent' makes
> pointer from integer without a cast
> plperl.c: In function `plperl_func_handler':
> plperl.c:930: warning: passing arg 3 of `Perl_av_store' makes pointer
> from integer without a cast
>

I suspect it's the same problem, i.e. it doesn't know about eval_pv

Please see if the patch I just sent to -patches works for all these problems.

thanks

andrew




Re: compile errors in new PL/Pler

From
"Joshua D. Drake"
Date:
> So we have three choices as I see it:
> 1) revert the change
> 2) require some minimally recent version of perl
> 3) fix the issue in place
>
> Preferences?
>
> Joshua/Andrew -- do you want to take a shot at making this work on perl
> 5.00503?

I personally don't have any desire to make this work on a version of
perl that the perl community itself suggests that you should upgrade.

Perl 5.00503 is RedHat 6.2 genre... That is scary old.

I believe even RedHat 7.3 came with Perl 5.6 and that is old as well.

Sincerely,

Joshua D. Drake


>
> Joe


--
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com
Mammoth PostgreSQL Replicator. Integrated Replication for PostgreSQL

Attachment

Re: compile errors in new PL/Pler

From
"Andrew Dunstan"
Date:
Joshua D. Drake said:
>
>> So we have three choices as I see it:
>> 1) revert the change
>> 2) require some minimally recent version of perl
>> 3) fix the issue in place
>>
>> Preferences?
>>
>> Joshua/Andrew -- do you want to take a shot at making this work on
>> perl  5.00503?
>
> I personally don't have any desire to make this work on a version of
> perl that the perl community itself suggests that you should upgrade.
>
> Perl 5.00503 is RedHat 6.2 genre... That is scary old.
>
> I believe even RedHat 7.3 came with Perl 5.6 and that is old as well.
>

I have my fingers crossed that the patch I sent in with an upgraded ppport.h
(which is supposed to handle these issues) will fix the matter. It was
simply generated with this command:

perl -MDevel::PPPort -e 'Devel::PPPort::WriteFile();'

I would like to support as wide a user base as is reasonably possible. If
this doesn't work we could restrict support to some version, but that would
be a fallback. Certainly, we should not let it get to the stage of
compile/link errors.

cheers

andrew




Re: compile errors in new PL/Pler

From
"Marc G. Fournier"
Date:
On Fri, 2 Jul 2004, Joshua D. Drake wrote:

>
>> So we have three choices as I see it:
>> 1) revert the change
>> 2) require some minimally recent version of perl
>> 3) fix the issue in place
>> 
>> Preferences?
>> 
>> Joshua/Andrew -- do you want to take a shot at making this work on perl 
>> 5.00503?
>
> I personally don't have any desire to make this work on a version of perl 
> that the perl community itself suggests that you should upgrade.

Well, backing it out is always an option, since the old version apparently 
did work *shrug*

Personally, rather have the new on in there though ... :)

----
Marc G. Fournier           Hub.Org Networking Services (http://www.hub.org)
Email: scrappy@hub.org           Yahoo!: yscrappy              ICQ: 7615664