Thread: BUG #13801: Error while starting psql
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
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
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 >