On 1/21/26 20:17, Wolfgang Gaggl wrote:
The Octane is (and always was) a 64bit system (native o64, with n32 supported).
If you ran this on an SGI O2, it would come up as 32bit (but same MIPS4 CPU 
family), with n32 only.
The "n32" datatype is really a "compatibility type" to efficiently run 32bit 
apps on that 64bit CPU.
The "o32" is what the older MIPS I and MIPS II 32bit CPUs (e.g. R2000) would 
natively run, they would not be able to run n32.
Starting with MIPS III the CPUs were 64bit and supported n32, but not all of 
them would do 64bit (the native o64 type) based on their hardware architecture 
and IRIX kernel flavor (those would not be IRIX64).
I'm not aware of a "n64" ABI type for SGI Irix, this sounds more like the NEC 
VR300i CPU (afaik not used in SGI workstations).


thanks for the explanation.

the reason why i came up with "n64" was pages like <https://wiki.debian.org/MipsRev6> (which does not speak of "o64")

also, according to man gcc (1), there are at least four different ABI-flags for MIPS. i used these flags on a local cross-compiler (on Debian), and they created different ABI-specific preprocessor defines:

| compiler flag | preprocessor define |
|---------------|---------------------|
| -mabi=32      | _ABIO32
| -mabi=n32     | _ABIN32
| -mabi=o64     | _ABIO64
| -mabi=64      | _ABI64

this is of course just general information about MIPS architectures and not specific to SGI/IRIX (that is: it might well be about machines that are decidedly *not* SGI/IRIX).

and I'm not exactly sure what the difference between -mabi=64 and -mabi=o64 actually is


anhow: so what do you think would be good architecture specifiers for OS and CPU?

the pair of the two must unanimously identify the architecture of a library that can be dlopen()ed (and used) by a given host binary.

Ideally the CPUs should use the same identifiers across operating systems (and this is why I write so long emails about ABIs)

I would suggest to use
| OS   | CPU     | note
|------|---------|-------
| Irix | mips    | o32
| Irix | mipsn32 | n32
| Irix | mips64  | o64

And for the ominous n64 architecture (if it actually exists) it would be Irix-mipsn64 (or Linux-mipsn64).

what do you think?

dasmr
IOhannes

--
please do not CC me for list-emails

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

---
[email protected] - the Pure Data mailinglist
https://lists.iem.at/hyperkitty/list/[email protected]/message/U7SUYBSL7IIDHPYWS2QER2EB3D5FRPGF/

To unsubscribe send an email to [email protected] mailing list
UNSUBSCRIBE and account-management -> https://lists.iem.at/

Reply via email to