AIX support - alignment issues

From: Andres Freund <andres(at)anarazel(dot)de>
To: Noah Misch <noah(at)leadboat(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: AIX support - alignment issues
Date: 2022-07-02 18:33:54
Message-ID: 20220702183354.a6uhja35wta7agew@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)gmx(dot)net>
Date: 2016-12-21 12:00:00 -0500

Reorder pg_sequence columns to avoid alignment issue

commit 79b716cfb7a1be2a61ebb4418099db1258f35e30
Author: Amit Kapila <akapila(at)postgresql(dot)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

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Jeff Davis 2022-07-02 18:39:04 Re: Emit extra debug message when executing extension script.
Previous Message Tom Lane 2022-07-02 17:42:33 Re: PSA: Autoconf has risen from the dead