Re: static libpq (and other libraries) overwritten on aix
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Noah Misch <noah@leadboat.com>
Cc: pgsql-hackers@postgresql.org, robertmhaas@gmail.com
Date: 2022-08-18T16:03:57Z
Lists: pgsql-hackers
Hi, On 2022-08-17 21:59:29 -0700, Noah Misch wrote: > The AIX sections of Makefile.shlib misuse the terms "static" and "shared". > > Imagine s/static library/library ending in .a/ and s/shared library/library > ending in .so/. That yields an accurate description of the makefile rules. I realize that aspect. 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. > > There could also be > > a race in the buildrules leading to sometimes static libs sometimes shared > > libs winning, I think. > > Not since commit e8564ef, to my knowledge. I'd missed that the $(stlib): ... bit is not defined due to haslibarule being defined... > 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, and for symbols with an exports.txt we don't need it either. The only path that really needs MKLDEXPORT is postgres. Not really for the export side either, but for the import side. Greetings, Andres Freund
Commits
-
configure: Expand -fvisibility checks to more compilers, test for -qvisibility
- be7c15b194ab 16.0 landed
-
aix: No need to use mkldexport when we want to export all symbols
- fe6a64a58ab3 16.0 landed
-
aix: when building with gcc, tell gcc we're building a shared library
- e5484554ba90 16.0 landed
-
aix: Fix SHLIB_EXPORTS reference in VPATH builds
- 4444317f370c 16.0 landed
-
Remove SUBSYS.o rule in common.mk, hasn't been used in a long time
- 05bf551040ba 16.0 landed
-
Remove rule to generate postgres.o, not needed for 20+ years
- 68fc18d14c7e 16.0 landed
-
Make the AIX case of Makefile.shlib safe for parallel make.
- e8564ef03433 9.6.0 cited