AIX support - alignment issues - Mailing list pgsql-hackers

From Andres Freund
Subject AIX support - alignment issues
Date
Msg-id 20220702183354.a6uhja35wta7agew@alap3.anarazel.de
Whole thread Raw
Responses Re: AIX support - alignment issues
Re: AIX support - alignment issues
Re: AIX support - alignment issues
List pgsql-hackers
Hi,

(sorry for sending this twice to you Noah, forgot -hackers the first time
round)

We've had a bunch of changes to manually deal with our alignment code not
understanding AIX alignment.

commit f3b421da5f4addc95812b9db05a24972b8fd9739
Author: Peter Eisentraut <peter_e@gmx.net>
Date:   2016-12-21 12:00:00 -0500

    Reorder pg_sequence columns to avoid alignment issue

commit 79b716cfb7a1be2a61ebb4418099db1258f35e30
Author: Amit Kapila <akapila@postgresql.org>
Date:   2022-04-07 09:39:25 +0530

    Reorder subskiplsn in pg_subscription to avoid alignment issues.


A good explanation of the problem is in https://postgr.es/m/20220402081346.GD3719101%40rfd.leadboat.com


I strikes me as a remarkably bad idea to manually try to maintain the correct
alignment. Even with the tests added it's still quite manual and requires
contorted struct layouts (see e.g. [1]).

I think we should either teach our system the correct alignment rules or we
should drop AIX support.


If we decide we want to continue supporting AIX we should bite the bullet and
add a 64bit-int TYPALIGN_*. It might be worth to translate that to bytes when
building tupledescs, so we don't need more branches (reducing them compared to
today).


Personally I think we should just drop AIX. The amount of effort to keep it
working is substantial due to being quite different from other unices ([2]), the is
very outdated, the whole ecosystem is barely on lifesupport ([3]). And all of that
for very little real world use.

Afaics we don't have access to an up2date AIX system. Some of have access to
7.2 via the gcc compile farm, but not 7.3. Most other niche-y operating
systems we can start in a VM, but I've yet to see a legal and affordable way
to do that with AIX.


I think Noah has done quite a heroic effort at keeping the AIX animals in a
kind-of-healthy state, but without more widespread access and more widespread
usage it seems like a doomed effort.


Greetings,

Andres Freund

[1] https://www.postgresql.org/message-id/CAFiTN-uiAngcW50Trwa94F1EWY2BxEx%2BB38QSyX3DtV3dzEGhA%40mail.gmail.com

[2] linking etc is handled entirely different, so there's a fair bit of
    dedicated AIX code around the buildsystem - a lot of it vestigial stuff,
    see references to aix3.2.5 etc.

[3] 7.2 was released in 2015-10-05, 7.3 in 2021-12-10, the set of changes is
    pretty darn small for that timeframe
    https://www.ibm.com/common/ssi/cgi-bin/ssialias?infotype=AN&subtype=CA&htmlfid=897/ENUS221-328&appname=USN

    Bull / Atos stopped their AIX work in 2022-03-01 - unfortunately they
    didn't even keep the announcement of that online.
    https://www.linkedin.com/pulse/said-say-bull-closing-down-aix-open-source-platform-michaelis
    https://github.com/power-devops/bullfreeware



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: PSA: Autoconf has risen from the dead
Next
From: Jeff Davis
Date:
Subject: Re: Emit extra debug message when executing extension script.