Re: static libpq (and other libraries) overwritten on aix

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: Andres Freund <andres@anarazel.de>
Cc: pgsql-hackers@postgresql.org, robertmhaas@gmail.com
Date: 2022-08-25T04:14:18Z
Lists: pgsql-hackers
On Wed, Aug 24, 2022 at 08:43:04PM -0700, Andres Freund wrote:
> On 2022-08-20 10:42:13 -0700, Andres Freund wrote:
> > 0004 aix: when building with gcc, tell gcc we're building a shared library
> > 
> >   That's the gcc -shared issue I explained in the email I'm replying to.
> > 
> >   We should probably consider building executables with -shared-libgcc too,
> >   that shrinks them a decent amount (e.g. 1371684 -> 1126765 for psql). But
> >   I've not done that here.
> > 
> > 
> > 0005 aix: No need to use mkldexport when we want to export all symbols
> > 
> >   This makes the building of shared libraries a lot more similar to other
> >   platforms. Export files are only used when an exports.txt is present and
> >   there's no more intermediary static libraries.
> > 
> > 
> > 0006 configure: Expand -fvisibility checks to more compilers, add -qvisibility
> > 
> >   This isn't strictly speaking part of the same "thread" of work, but I don't
> >   want to touch aix more often than I have too... I'll post it in the other
> >   thread too.
> > 
> >   I did just test that this passes at least some tests on aix with xlc and
> >   solaris with sunpro.
> 
> Any comments here?

I don't know much about them, but they sound like the sort of thing that can't
cause subtle bugs.  If they build and test the first time, they're probably
valid.  You may as well push them.



Commits

  1. configure: Expand -fvisibility checks to more compilers, test for -qvisibility

  2. aix: No need to use mkldexport when we want to export all symbols

  3. aix: when building with gcc, tell gcc we're building a shared library

  4. aix: Fix SHLIB_EXPORTS reference in VPATH builds

  5. Remove SUBSYS.o rule in common.mk, hasn't been used in a long time

  6. Remove rule to generate postgres.o, not needed for 20+ years

  7. Make the AIX case of Makefile.shlib safe for parallel make.