diff options
| author | Heikki Linnakangas | 2024-02-28 11:10:51 +0000 |
|---|---|---|
| committer | Heikki Linnakangas | 2024-02-28 11:17:23 +0000 |
| commit | 0b16bb8776bb834eb1ef8204ca95dd7667ab948b (patch) | |
| tree | a06173763fba46c78613abb5b9181a88d98148e1 /src/test | |
| parent | bcdfa5f2e2f274caeed20b2f986012a9cb6a259c (diff) | |
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
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/Makefile | 5 | ||||
| -rw-r--r-- | src/test/regress/expected/sanity_check.out | 29 | ||||
| -rw-r--r-- | src/test/regress/sql/sanity_check.sql | 26 |
3 files changed, 0 insertions, 60 deletions
diff --git a/src/test/regress/Makefile b/src/test/regress/Makefile index 7c665ff892d..6409a485e84 100644 --- a/src/test/regress/Makefile +++ b/src/test/regress/Makefile @@ -7,11 +7,6 @@ # GNU make uses a make file named "GNUmakefile" in preference to "Makefile" # if it exists. Postgres is shipped with a "GNUmakefile". - -# AIX make defaults to building *every* target of the first rule. Start with -# a single-target, empty rule to make the other targets non-default. -all: - all install clean check installcheck: @echo "You must use GNU make to use Postgres. It may be installed" @echo "on your system with the name 'gmake'." diff --git a/src/test/regress/expected/sanity_check.out b/src/test/regress/expected/sanity_check.out index c5c675b7508..8370c1561cc 100644 --- a/src/test/regress/expected/sanity_check.out +++ b/src/test/regress/expected/sanity_check.out @@ -25,32 +25,3 @@ SELECT relname, relkind ---------+--------- (0 rows) --- --- When ALIGNOF_DOUBLE==4 (e.g. AIX), the C ABI may impose 8-byte alignment on --- some of the C types that correspond to TYPALIGN_DOUBLE SQL types. To ensure --- catalog C struct layout matches catalog tuple layout, arrange for the tuple --- offset of each fixed-width, attalign='d' catalog column to be divisible by 8 --- unconditionally. Keep such columns before the first NameData column of the --- catalog, since packagers can override NAMEDATALEN to an odd number. --- -WITH check_columns AS ( - SELECT relname, attname, - array( - SELECT t.oid - FROM pg_type t JOIN pg_attribute pa ON t.oid = pa.atttypid - WHERE pa.attrelid = a.attrelid AND - pa.attnum > 0 AND pa.attnum < a.attnum - ORDER BY pa.attnum) AS coltypes - FROM pg_attribute a JOIN pg_class c ON c.oid = attrelid - JOIN pg_namespace n ON c.relnamespace = n.oid - WHERE attalign = 'd' AND relkind = 'r' AND - attnotnull AND attlen <> -1 AND n.nspname = 'pg_catalog' -) -SELECT relname, attname, coltypes, get_columns_length(coltypes) - FROM check_columns - WHERE get_columns_length(coltypes) % 8 != 0 OR - 'name'::regtype::oid = ANY(coltypes); - relname | attname | coltypes | get_columns_length ----------+---------+----------+-------------------- -(0 rows) - diff --git a/src/test/regress/sql/sanity_check.sql b/src/test/regress/sql/sanity_check.sql index 7f338d191c6..162e5324b5d 100644 --- a/src/test/regress/sql/sanity_check.sql +++ b/src/test/regress/sql/sanity_check.sql @@ -19,29 +19,3 @@ SELECT relname, relkind FROM pg_class WHERE relkind IN ('v', 'c', 'f', 'p', 'I') AND relfilenode <> 0; - --- --- When ALIGNOF_DOUBLE==4 (e.g. AIX), the C ABI may impose 8-byte alignment on --- some of the C types that correspond to TYPALIGN_DOUBLE SQL types. To ensure --- catalog C struct layout matches catalog tuple layout, arrange for the tuple --- offset of each fixed-width, attalign='d' catalog column to be divisible by 8 --- unconditionally. Keep such columns before the first NameData column of the --- catalog, since packagers can override NAMEDATALEN to an odd number. --- -WITH check_columns AS ( - SELECT relname, attname, - array( - SELECT t.oid - FROM pg_type t JOIN pg_attribute pa ON t.oid = pa.atttypid - WHERE pa.attrelid = a.attrelid AND - pa.attnum > 0 AND pa.attnum < a.attnum - ORDER BY pa.attnum) AS coltypes - FROM pg_attribute a JOIN pg_class c ON c.oid = attrelid - JOIN pg_namespace n ON c.relnamespace = n.oid - WHERE attalign = 'd' AND relkind = 'r' AND - attnotnull AND attlen <> -1 AND n.nspname = 'pg_catalog' -) -SELECT relname, attname, coltypes, get_columns_length(coltypes) - FROM check_columns - WHERE get_columns_length(coltypes) % 8 != 0 OR - 'name'::regtype::oid = ANY(coltypes); |
