Tom Lane wrote:
>> In our case, we have libpq.a and libpq.so in the same directory,
>> so unless you link with -brtl you will get a static link
>> (because libpq.a is a static library).
>
> I wonder whether we ought to suppress building (or at least
installing)
> our .a libraries at all on AIX. Adding -btrl to LDFLAGS would help
> within the context of our own build, but external clients that link
> to libpq without saying that are going to get undesirable results.
>
> I think there's a reasonable argument that by installing a .a file
that
> isn't a shared library, we are violating the platform's conventions.
The natural way in AIX would be:
- Create libpq.so
- Create libpq.a by 'rm -f libpq.a; ar -rc libpq.a libpq.so'
- Install only libpq.a
For a static build on AIX, you have to specify all the libraries and
give the linker -bstatic and -bI:/lib/syscalls.exp
>> Should -brtl be added to src/template/aix?
>
> Sounds that way, but that'll only help for psql and other stuff built
> within our build. Could you try this against CVS tip:
>
> * add -brtl to LDFLAGS in the template
> * Remove the AIX-specific hack on $(libpq) at lines 349-354 of
> src/Makefile.global.in
> * see if it configures and builds
I have done that (see the attached patch) and it works fine.
I don't have the native AIX C compiler, so I could only test
it with gcc.
I have taken the liberty to modify the static link line
in Makefile.global.in to contain the LDAP libraries, I hope
that's appropriate.
Yours,
Laurenz Albe