Rainer Orth writes: > Olaf Weber <olaf@xxxxxxxxxxxxxxxxxx> writes: >> IIRC gcc 2.x defaults to o32 (and cannot do otherwise) while gcc 3.x >> defaults to n32. You switch using options like '-mabi=64'. > Wrong: GCC 2.x for IRIX 6 defaults to N32 (with N64 support available) and > cannot support O32 without hacks (like configuring for mips-sgi-irix5). > GCC 3.x is the same in this respect, but there's now a mips-sgi-irix6*o32 > configuration to support O32 on IRIX 6, which I hope to integrate into the > common mips-sgi-irix6 configuration before GCC 3.4. Ah. I remembered wrong then. (What I recall is that GCC 2.x took quite some time to pick up support for n32 and I _thought_ this had only been completed with the switch to 3.x.) >> The native compiler (MIPSpro) has n32 as its default (set in >> /etc/compiler.defaults) but also obeys the SGI_ABI environment > Unfortunately, the default may also depend on the machine and compiler > version used: e.g. R8000 machines defaulted to N64 with MIPSpro 7.3 > compilers ;-( As far as I can tell they should have defaulted to mips4 N32 -- at least when running IRIX 6.5 -- this is going by what the to-be-installed /etc/compiler.defaults says. But the R8Ks were weird beasts at the best of times. > And there's also the issue of the ISA (instruction set > architecture) used. See abi(5) and mips_ext(5) for the whole picture. Yes, the /etc/compiler.defaulst specifies both ABI and ISA. Which means that for maximum portability (meaning in this case the ability to compile a program on one machine and run it on another) you should explicitly specify both mips3 and N32. > Rainer -- Olaf Weber (This space left blank for technical reasons.)