Thread: dlopen() of libpgsqlodbc.so >= release 7.1 fails on sparc solaris 2.8

dlopen() of libpgsqlodbc.so >= release 7.1 fails on sparc solaris 2.8

From
Bob Deblier
Date:
Hi all,

I've posted this message twice nefore on pgsql-bugs, but I can't seem to get 
any response. The issue described below is pretty serious (at least as far as 
my company is concerned):

While trying to upgrade Postgres from version 7.0.3 to 7.1.2, I find that a 
program which dlopens the library mentioned above now produces the following 
error message:

ld.so.1: ./BeeHive: fatal: relocation error: file 
/opt/pgsql/lib/libpsqlodbc.so: symbol main: referenced symbol not found

I compiled Postgres with gcc-2.95.3, and configured with options 
--enable-odbc and --prefix=/opt/pgsql.

The same problem occurs with version 7.1.1, but as mentioned higher does not 
occur on 7.0.3 or earlier versions.

Since the two most recently released versions both show this problem, it must 
be something which was introduced in the 7.1 release.

Our only alternative is to keep using the older releases for now, but this 
should be fixed ASAP.

Sincerely,

Bob Deblier
Virtual Unlimited


Re: dlopen() of libpgsqlodbc.so >= release 7.1 fails on sparc solaris 2.8

From
Peter Eisentraut
Date:
Bob Deblier writes:

> While trying to upgrade Postgres from version 7.0.3 to 7.1.2, I find that a
> program which dlopens the library mentioned above now produces the following
> error message:
>
> ld.so.1: ./BeeHive: fatal: relocation error: file
> /opt/pgsql/lib/libpsqlodbc.so: symbol main: referenced symbol not found

Try using the flag RTLD_GLOBAL in dlopen().

-- 
Peter Eisentraut   peter_e@gmx.net   http://funkturm.homeip.net/~peter



Re: dlopen() of libpgsqlodbc.so >= release 7.1 fails on sparc solaris 2.8

From
Bob Deblier
Date:
On Monday 11 June 2001 16:56, you wrote:
> Bob Deblier writes:
> > While trying to upgrade Postgres from version 7.0.3 to 7.1.2, I find that
> > a program which dlopens the library mentioned above now produces the
> > following error message:
> >
> > ld.so.1: ./BeeHive: fatal: relocation error: file
> > /opt/pgsql/lib/libpsqlodbc.so: symbol main: referenced symbol not found
>
> Try using the flag RTLD_GLOBAL in dlopen().

That doesn't fix the problem, unfortunately. We've always opened the library 
with RTLD_LAZY up from the 6 releases up to 7.0.3; now neither RTLD_LAZY, nor 
RLTD_LAZY | RTLD_GLOBAL works.

Bob Deblier
Virtual Unlimited