The patch did not work for me :-(
My buildfarm members failed in local testing to execute the
install-check, because initdb failed to find libpq.so.
Make check did succeed, so I think there is a possibility of getting it
working, but it won't be as simple as adding -brtl to the template.
I was also getting duplicate symbols in the link, that I wasn't before
either.
I don't have time right now to work through all the issues, but wanted
to give feedback that the patch isn't quite this simple.
Thanks,-rocco
> -----Original Message-----
> From: pgsql-hackers-owner@postgresql.org
> [mailto:pgsql-hackers-owner@postgresql.org] On Behalf Of Albe Laurenz
> Sent: Tuesday, September 12, 2006 9:01 AM
> To: Tom Lane *EXTERN*
> Cc: pgsql-hackers@postgresql.org
> Subject: Re: [PATCHES] [HACKERS] Fix linking of OpenLDAP libraries
>
>
> 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
>