2010-09-20 22:08:53 +02:00
|
|
|
src/port/README
|
2008-03-21 14:23:29 +01:00
|
|
|
|
|
|
|
libpgport
|
|
|
|
=========
|
|
|
|
|
2006-04-28 04:52:57 +02:00
|
|
|
libpgport must have special behavior. It supplies functions to both
|
|
|
|
libraries and applications. However, there are two complexities:
|
|
|
|
|
|
|
|
1) Libraries need to use object files that are compiled with exactly
|
|
|
|
the same flags as the library. libpgport might not use the same flags,
|
|
|
|
so it is necessary to recompile the object files for individual
|
|
|
|
libraries. This is done by removing -lpgport from the link line:
|
|
|
|
|
|
|
|
# Need to recompile any libpgport object files
|
|
|
|
LIBS := $(filter-out -lpgport, $(LIBS))
|
|
|
|
|
|
|
|
and adding infrastructure to recompile the object files:
|
|
|
|
|
|
|
|
OBJS= execute.o typename.o descriptor.o data.o error.o prepare.o memory.o \
|
|
|
|
connect.o misc.o path.o exec.o \
|
2018-09-26 19:13:57 +02:00
|
|
|
$(filter strlcat.o, $(LIBOBJS))
|
2006-04-28 04:52:57 +02:00
|
|
|
|
|
|
|
The problem is that there is no testing of which object files need to be
|
|
|
|
added, but missing functions usually show up when linking user
|
|
|
|
applications.
|
|
|
|
|
|
|
|
2) For applications, we use -lpgport before -lpq, so the static files
|
|
|
|
from libpgport are linked first. This avoids having applications
|
|
|
|
dependent on symbols that are _used_ by libpq, but not intended to be
|
|
|
|
exported by libpq. libpq's libpgport usage changes over time, so such a
|
Remove AIX support
There isn't a lot of user demand for AIX support, we have a bunch of
hacks to work around AIX-specific compiler bugs and idiosyncrasies,
and no one has stepped up to the plate to properly maintain it.
Remove support for AIX to get rid of that maintenance overhead. It's
still supported for stable versions.
The acute issue that triggered this decision was that after commit
8af2565248, the AIX buildfarm members have been hitting this
assertion:
TRAP: failed Assert("(uintptr_t) buffer == TYPEALIGN(PG_IO_ALIGN_SIZE, buffer)"), File: "md.c", Line: 472, PID: 2949728
Apperently the "pg_attribute_aligned(a)" attribute doesn't work on AIX
for values larger than PG_IO_ALIGN_SIZE, for a static const variable.
That could be worked around, but we decided to just drop the AIX support
instead.
Discussion: https://www.postgresql.org/message-id/20240224172345.32@rfd.leadboat.com
Reviewed-by: Andres Freund, Noah Misch, Thomas Munro
2024-02-28 12:10:51 +01:00
|
|
|
dependency is a problem. Windows, Linux, and macOS use an export
|
2021-09-06 20:27:59 +02:00
|
|
|
list to control the symbols exported by libpq.
|