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