bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: exotic CPU hardware


From: Paul Eggert
Subject: Re: exotic CPU hardware
Date: Sat, 5 Dec 2020 11:41:17 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0

On 12/4/20 12:47 PM, Bruno Haible wrote:
The currently sold Unisys ClearPath Dorado
machines contain Xeon processors.

They're Xeon processors but they come with Unisys-supplied firmware that emulate the older architectures, which means that C programs on these platforms should follow the old rules. Five or ten years ago Unisys found that this performed better than the chips they were designing themselves. Unisys did this for both their Dorado and Libra mainframes (quite different ISAs: the former is ones'-complement, the latter signed-magnitude), at about the same time.

Come to think of it, IBM has also done something similar, for its IBM i (formerly AS/400, formerly System/38) line, which originally used 48-bit words. Starting around 2000 they switched it to use IBM's POWER chips with 64-bit words. A difference is that IBM i programs have always been translated as needed by the runtime from a machine-independent format, instead of being interpreted by an emulator.

From a Gnulib viewpoint, the main problem with IBM i C is that the preferred pointers size is 128 bits and there is no intptr_t type; although POSIX and the C standard allow this, it'd break a lot of GNU code. In practice, anybody running GNUish code on the IBM i would run it under PASE, which can execute AIX programs in a mostly binary-compatible way (with 64-bit pointers and with intptr_t).

We might as well document this, if only to state more clearly what platforms Gnulib (and most GNU apps) clearly don't support. I installed the attached, which adds a section "Exotic platforms" and documents the IBM i and the two Unisys platforms. I didn't bother mentioning platforms like the old x86 where int is 16 bits and there are near and far pointers, as the GNU coding standards explicitly reject tiny-int platforms.

Attachment: 0001-doc-mention-intptr_t-etc.-and-IBM-i.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]