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-19T05:56:43Z
Lists: pgsql-hackers
On Thu, Aug 18, 2022 at 09:03:57AM -0700, Andres Freund wrote:
> My point is that we currently, across most of the other platforms, support
> building a "proper" static library, and install it too. But on AIX (and I
> think mingw), we don't, but without an explicit comment about not doing so. In
> fact, the all-static-lib target on those platforms will build a non-static
> library, which seems not great.

Yep.  If someone had just pushed a correct patch to make AIX match our
GNU/Linux static linking assistance, I wouldn't be arguing to revert that
patch.  At the same time, if someone asks me to choose high-value projects for
20 people, doing more for static linking on AIX won't be on the list.

> On 2022-08-17 21:59:29 -0700, Noah Misch wrote:
> > Along the lines of Robert's comment, it could be a nice code beautification to
> > use a different suffix for the short-lived .a file.  Perhaps _so_inputs.a.
> 
> Agreed, it'd be an improvement.
> 
> Afaict we could just stop building the intermediary static lib. Afaict the
> MKLDEXPORT path isn't needed for libraries without an exports.txt because the
> linker defaults to exporting "most" symbols

If that works, great.



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.