1
0
mirror of https://github.com/postgres/postgres.git synced 2025-09-02 04:21:28 +03:00

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
This commit is contained in:
Heikki Linnakangas
2024-02-28 15:10:51 +04:00
parent bcdfa5f2e2
commit 0b16bb8776
33 changed files with 114 additions and 865 deletions

View File

@@ -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