Thread: BUG #13801: Error while starting psql

BUG #13801: Error while starting psql

From
pravincar@gmail.com
Date:
The following bug has been logged on the website:

Bug reference:      13801
Logged by:          Pravin Carvalho
Email address:      pravincar@gmail.com
PostgreSQL version: 9.5beta1
Operating system:   OS X El Capitan
Description:

I have installed 9.5beta2 on my machine from source with the following
configure statement.
./configure --prefix=/usr/local/pgsql95b/ --with-openssl
--with-includes=/usr/local/Cellar/openssl/1.0.2d_1/include/

The server has started successfully and I can connect to it with psql
(version 9.4) but on running psql (version 9.5) I get the following error.

psql (9.5beta2)
dyld: lazy symbol binding failed: Symbol not found: _PQsslInUse
  Referenced from: /usr/local/pgsql95b/bin/psql
  Expected in: /usr/lib/libpq.5.dylib

dyld: Symbol not found: _PQsslInUse
  Referenced from: /usr/local/pgsql95b/bin/psql
  Expected in: /usr/lib/libpq.5.dylib

Trace/BPT trap: 5

Re: BUG #13801: Error while starting psql

From
Tom Lane
Date:
pravincar@gmail.com writes:
> I have installed 9.5beta2 on my machine from source with the following
> configure statement.
> ./configure --prefix=/usr/local/pgsql95b/ --with-openssl
> --with-includes=/usr/local/Cellar/openssl/1.0.2d_1/include/

> The server has started successfully and I can connect to it with psql
> (version 9.4) but on running psql (version 9.5) I get the following error.

> psql (9.5beta2)
> dyld: lazy symbol binding failed: Symbol not found: _PQsslInUse
>   Referenced from: /usr/local/pgsql95b/bin/psql
>   Expected in: /usr/lib/libpq.5.dylib

What you need to figure out is why the linker is selecting the (ancient)
/usr/lib copy of libpq.dylib, rather than the 9.5 version you presumably
installed in /usr/local/pgsql95b/lib/.  Perhaps you changed your mind
about the installation prefix somewhere along the line?  The
"-install_name" switch given while linking libpq.dylib during the build
process would determine where psql tries to find libpq at execution ---
but I think it will fall back to looking in /usr/lib if it doesn't find
it in the expected directory, and that looks to be what's happening here.

Applying "otool -L" to your psql executable should provide a hint where
it's going to look for libpq.

            regards, tom lane

Re: BUG #13801: Error while starting psql

From
Pravin Carvalho
Date:
Thanks Tom! You were absolutely right. It was picking the older copy of
libpq.dylib. I just started with the fresh files and it works now.

On Sun, Dec 6, 2015 at 10:24 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

> pravincar@gmail.com writes:
> > I have installed 9.5beta2 on my machine from source with the following
> > configure statement.
> > ./configure --prefix=/usr/local/pgsql95b/ --with-openssl
> > --with-includes=/usr/local/Cellar/openssl/1.0.2d_1/include/
>
> > The server has started successfully and I can connect to it with psql
> > (version 9.4) but on running psql (version 9.5) I get the following
> error.
>
> > psql (9.5beta2)
> > dyld: lazy symbol binding failed: Symbol not found: _PQsslInUse
> >   Referenced from: /usr/local/pgsql95b/bin/psql
> >   Expected in: /usr/lib/libpq.5.dylib
>
> What you need to figure out is why the linker is selecting the (ancient)
> /usr/lib copy of libpq.dylib, rather than the 9.5 version you presumably
> installed in /usr/local/pgsql95b/lib/.  Perhaps you changed your mind
> about the installation prefix somewhere along the line?  The
> "-install_name" switch given while linking libpq.dylib during the build
> process would determine where psql tries to find libpq at execution ---
> but I think it will fall back to looking in /usr/lib if it doesn't find
> it in the expected directory, and that looks to be what's happening here.
>
> Applying "otool -L" to your psql executable should provide a hint where
> it's going to look for libpq.
>
>                         regards, tom lane
>