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-18T04:59:29Z
Lists: pgsql-hackers
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. On Wed, Aug 17, 2022 at 12:01:54PM -0700, Andres Freund wrote: > Two questions: > 1) Do we continue building static libraries for libpq etc? Essentially, we don't build static libpq today, and we should continue not building it. (The first-built libpq.a is static, but that file is an implementation detail of the makefile rules. The surviving libpq.a is a normal AIX shared library.) > 2) Do we care about static libraries not suriving on AIX? No. > 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. 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. I found this useful years ago: https://web.archive.org/web/20151003130212/http://seriousbirder.com/blogs/aix-shared-and-static-libraries-explained/
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