mirror of https://github.com/postgres/postgres
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
pull/157/head
parent
bcdfa5f2e2
commit
0b16bb8776
@ -1,61 +0,0 @@ |
||||
#!/bin/sh |
||||
# |
||||
# mkldexport |
||||
# create an AIX exports file from an object file |
||||
# |
||||
# src/backend/port/aix/mkldexport.sh |
||||
# |
||||
# Usage: |
||||
# mkldexport objectfile [location] |
||||
# where |
||||
# objectfile is the current location of the object file. |
||||
# location is the eventual (installed) location of the |
||||
# object file (if different from the current |
||||
# working directory). |
||||
# |
||||
# [This file comes from the Postgres 4.2 distribution. - ay 7/95] |
||||
# |
||||
# Header: /usr/local/devel/postgres/src/tools/mkldexport/RCS/mkldexport.sh,v 1.2 1994/03/13 04:59:12 aoki Exp |
||||
# |
||||
|
||||
# setting this to nm -B might be better |
||||
# ... due to changes in AIX 4.x ... |
||||
# ... let us search in different directories - Gerhard Reithofer |
||||
if [ -x /usr/ucb/nm ] |
||||
then NM=/usr/ucb/nm |
||||
elif [ -x /usr/bin/nm ] |
||||
then NM=/usr/bin/nm |
||||
elif [ -x /usr/ccs/bin/nm ] |
||||
then NM=/usr/ccs/bin/nm |
||||
elif [ -x /usr/usg/bin/nm ] |
||||
then NM=/usr/usg/bin/nm |
||||
else echo "Fatal error: cannot find `nm' ... please check your installation." |
||||
exit 1 |
||||
fi |
||||
|
||||
CMDNAME=`basename $0` |
||||
if [ -z "$1" ]; then |
||||
echo "Usage: $CMDNAME object [location]" |
||||
exit 1 |
||||
fi |
||||
OBJNAME=`basename $1` |
||||
if [ "`basename $OBJNAME`" != "`basename $OBJNAME .o`" ]; then |
||||
OBJNAME=`basename $OBJNAME .o`.so |
||||
fi |
||||
if [ -z "$2" ]; then |
||||
echo '#!' |
||||
else |
||||
if [ "$2" = "." ]; then |
||||
# for the base executable (AIX 4.2 and up) |
||||
echo '#! .' |
||||
else |
||||
echo '#!' $2 |
||||
fi |
||||
fi |
||||
$NM -BCg $1 | \ |
||||
egrep ' [TDB] ' | \ |
||||
sed -e 's/.* //' | \ |
||||
egrep -v '\$' | \ |
||||
sed -e 's/^[.]//' | \ |
||||
sort | \ |
||||
uniq |
@ -1,14 +0,0 @@ |
||||
/*
|
||||
* src/include/port/aix.h |
||||
*/ |
||||
#define CLASS_CONFLICT |
||||
#define DISABLE_XOPEN_NLS |
||||
|
||||
/*
|
||||
* "IBM XL C/C++ for AIX, V12.1" miscompiles, for 32-bit, some inline |
||||
* expansions of ginCompareItemPointers() "long long" arithmetic. To take |
||||
* advantage of inlining, build a 64-bit PostgreSQL. |
||||
*/ |
||||
#if defined(__ILP32__) && defined(__IBMC__) |
||||
#define PG_FORCE_DISABLE_INLINE |
||||
#endif |
@ -1,39 +0,0 @@ |
||||
# MAKE_EXPORTS is required for svr4 loaders that want a file of
|
||||
# symbol names to tell them what to export/import.
|
||||
MAKE_EXPORTS= true
|
||||
|
||||
# -blibpath must contain ALL directories where we should look for libraries
|
||||
libpath := $(shell echo $(subst -L,:,$(filter -L/%,$(LDFLAGS))) | sed -e's/ //g'):/usr/lib:/lib
|
||||
|
||||
# when building with gcc, need to make sure that libgcc can be found
|
||||
ifeq ($(GCC), yes) |
||||
libpath := $(libpath):$(dir $(shell gcc -print-libgcc-file-name))
|
||||
endif |
||||
|
||||
rpath = -Wl,-blibpath:'$(rpathdir)$(libpath)'
|
||||
|
||||
LDFLAGS_SL += -Wl,-bnoentry -Wl,-H512 -Wl,-bM:SRE
|
||||
|
||||
# gcc needs to know it's building a shared lib, otherwise it'll not emit
|
||||
# correct code / link to the right support libraries
|
||||
ifeq ($(GCC), yes) |
||||
LDFLAGS_SL += -shared
|
||||
endif |
||||
|
||||
# env var name to use in place of LD_LIBRARY_PATH
|
||||
ld_library_path_var = LIBPATH
|
||||
|
||||
|
||||
POSTGRES_IMP= postgres.imp
|
||||
|
||||
ifdef PGXS |
||||
BE_DLLLIBS= -Wl,-bI:$(pkglibdir)/$(POSTGRES_IMP)
|
||||
else |
||||
BE_DLLLIBS= -Wl,-bI:$(top_builddir)/src/backend/$(POSTGRES_IMP)
|
||||
endif |
||||
|
||||
MKLDEXPORT_DIR=src/backend/port/aix
|
||||
MKLDEXPORT=$(top_srcdir)/$(MKLDEXPORT_DIR)/mkldexport.sh
|
||||
|
||||
%$(DLSUFFIX): %.o |
||||
$(CC) $(CFLAGS) $*.o $(LDFLAGS) $(LDFLAGS_SL) -o $@ $(BE_DLLLIBS)
|
@ -1,25 +0,0 @@ |
||||
# src/template/aix |
||||
|
||||
# Set default options if using xlc. This formerly included -qsrcmsg, but that |
||||
# option elicits internal compiler errors from xlc v16.1.0. Note: configure |
||||
# will add -qnoansialias if the compiler accepts it, even if user specifies a |
||||
# non-default CFLAGS setting. |
||||
if test "$GCC" != yes ; then |
||||
case $host_os in |
||||
*) |
||||
CFLAGS="-O2 -qmaxmem=16384" |
||||
;; |
||||
esac |
||||
|
||||
# Due to a compiler bug, see 20171013023536.GA492146@rfd.leadboat.com for details, |
||||
# force restrict not to be used when compiling with xlc. |
||||
FORCE_DISABLE_RESTRICT=yes |
||||
fi |
||||
|
||||
# Extra CFLAGS for code that will go into a shared library |
||||
CFLAGS_SL="" |
||||
|
||||
# Native memset() is faster, tested on: |
||||
# AIX 5.1 and 5.2, XLC 6.0 (IBM's cc) |
||||
# AIX 5.3 ML3, gcc 4.0.1 |
||||
MEMSET_LOOP_LIMIT=0 |
Loading…
Reference in new issue