From: | Andy Colson <andy(at)squeakycode(dot)net> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | PostgreSQL general <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: PG 10 and perl |
Date: | 2017-09-30 02:04:44 |
Message-ID: | 52ecfb23-80f3-332a-5adf-10d351149f17@squeakycode.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 09/29/2017 09:32 AM, Tom Lane wrote:
> Andy Colson <andy(at)squeakycode(dot)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(at)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(at)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
From | Date | Subject | |
---|---|---|---|
Next Message | Glen Huang | 2017-09-30 07:46:38 | Best way to allow column to initially be null? |
Previous Message | Victor Yegorov | 2017-09-29 18:37:56 | Re: Converting inherited partitions into declarative ones |