[prev in list] [next in list] [prev in thread] [next in thread] 

List:       postgresql-general
Subject:    Re: [GENERAL] PG 10 and perl
From:       Andy Colson <andy () squeakycode ! net>
Date:       2017-09-30 2:04:44
Message-ID: 52ecfb23-80f3-332a-5adf-10d351149f17 () squeakycode ! net
[Download RAW message or body]

On 09/29/2017 09:32 AM, Tom Lane wrote:
> Andy Colson <andy@squeakycode.net> writes:
> > I started playing with 10, and cannot get it to use the right version of perl.  \
> > I'll only use the system version: root@firefly:/usr/local/pg10/lib/postgresql# \
> > ldd plperl.so  libperl.so => /usr/lib64/perl5/CORE/libperl.so \
> > (0x00007fc9c67d4000)
> 
> Hm, I don't think we've changed anything about that in v10.
> 
> > But, here's the thing.  The config.log reports 5.26 version:
> 
> That's good, but what's probably missing is an "rpath" specification when
> linking plperl.so.  Did you build with --disable-rpath, perhaps?  That's
> the usual recommendation when building for Linux, but if you want to use
> any non-default libraries, you can't do it.
> 
> Go into src/pl/plperl, remove and remake plperl.so, and see whether the
> link command includes anything like
> 
> 	-Wl,-rpath,'/usr/lib64/perl5/CORE',--enable-new-dtags
> 
> (That's what I see when building with a stock Linux Perl configuration and
> rpath enabled.)  If there's no such switch, or if it doesn't point to
> where the libperl.so that you want to use is, then there's your problem.
> 
> 			regards, tom lane
> 

tldr: PG 10 compiles fine and works with perlbrew fine, I confused install paths.

I removed the plperl.so, and typed make:

gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement \
-Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing \
-fwrapv -fexcess-precision=standard -O2 -fPIC -DLINUX_OOM_SCORE_ADJ=0 -fPIC -shared \
-o plperl.so plperl.o SPI.o Util.o  -L../../../src/port -L../../../src/common \
-Wl,--as-needed -Wl,-rpath,'/opt/perl5/perls/perl-5.26/lib/5.26.1/x86_64-linux-thread-multi/CORE',--enable-new-dtags \
-fstack-protector-strong -L/usr/local/lib  \
-L/opt/perl5/perls/perl-5.26/lib/5.26.1/x86_64-linux-thread-multi/CORE -lperl \
-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc


And in the src dir:
root@firefly:/tmp/SBo/postgresql-10rc1# ldd ./src/pl/plperl/plperl.so
	libperl.so => /opt/perl5/perls/perl-5.26/lib/5.26.1/x86_64-linux-thread-multi/CORE/libperl.so \
(0x00007f33b9f87000)


I had 10beta1 installed to /usr/local/pg10.
The SlackBuild script I'm using installs to /usr/local/pg95 still.  So I was \
compiling and installing 10rc1 into pg95.

Sorry for the noise (and thanks Tom).

-Andy


-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic