Re: AIX shared libraries

Lists: pgsql-hackers
From: "Albe Laurenz" <all(at)adv(dot)magwien(dot)gv(dot)at>
To: "Tom Lane *EXTERN*" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <RoccoA(at)Routescape(dot)com>, <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: AIX shared libraries
Date: 2006-09-14 14:24:57
Message-ID: 52EF20B2E3209443BC37736D00C3C1380A5DDBC8@EXADV1.host.magwien.gv.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Tom Lane wrote:
>> 3) Major hacking in Makefile.shlib to achieve the following:
>> - libXX.so.n is built from libXX.a in the traditional way.
>> Then libXX.a is deleted, and recreated as archive
>> containing libXX.so.n.
>> - Linking takes place withOUT -brtl, but with -blibpath:...
>> as in 2).
>> - When the shared libs are installed, I see two options:
>> a) copy (and overwrite) libXX.a to libdir, do not
>> install libXX.so.n
>
> Hm. The objection I see to this is that it will not support
> concurrent installation of multiple libpq versions. What about
>
> 4) Build and install only libXX.so.n, don't install libXX.a at all

Won't work - the linker looks for libXX.so and won't find
libXX.so.n. If you create a symbolic link
libXX.so --> libXX.so.n, you can link, but the executable will
depend on libXX.so and not on libXX.so.n.

Moreover, you cannot link statically any more because in a
static link only libXX.a files will be searched...

> 5) As 4), plus actively remove any libXX.a seen in the
> install directory

Same problem.

Yours,
Laurenz Albe


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Albe Laurenz" <all(at)adv(dot)magwien(dot)gv(dot)at>
Cc: RoccoA(at)Routescape(dot)com, pgsql-hackers(at)postgresql(dot)org
Subject: Re: AIX shared libraries
Date: 2006-09-14 14:46:41
Message-ID: 29161.1158245201@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

"Albe Laurenz" <all(at)adv(dot)magwien(dot)gv(dot)at> writes:
> Tom Lane wrote:
>> Hm. The objection I see to this is that it will not support
>> concurrent installation of multiple libpq versions. What about
>>
>> 4) Build and install only libXX.so.n, don't install libXX.a at all

> Won't work - the linker looks for libXX.so and won't find
> libXX.so.n. If you create a symbolic link
> libXX.so --> libXX.so.n, you can link, but the executable will
> depend on libXX.so and not on libXX.so.n.

Ugh. So given that linker behavior, it's basically impossible to
support multiple libpq versions in the same directory anyway on AIX.

I concur with your 3a) then. Do you have time to do that now?

regards, tom lane