Re: gcc -mips2 support on indy
Chris Plummer wrote:
[snip]
> indy-01$ cc test.c -mips2
> indy-01$ ./a.out
> bash: ./a.out: No such file or directory
What happens with -static?
[snip]
> The reason I'm using -mips2 is because there is a bug in gcc that causes
> it to fail to compile a very large (>32k) function I have. It produces
> forward branches to targets that are out of range. Using -mips2 fixes
> this problem.
Older compilers (like the one in woody) take -mips2 as a hint to generate
o32 code. Newer ones use -mips2 as an alias for -arch=r6000 and rely on
the -mabi switch for ABI selection.
> On a related note, how come -mips3 objects can't be linked against the
> -mips1 libraries:
>
> indy-01$ cc test.c -mips3
> /usr/bin/ld: /tmp/ccyFDthq.o: ISA mismatch (-mips3) with previous
> modules (-mips1)
> Bad value: failed to merge target specific data of file /tmp/ccyFDthq.o
> collect2: ld returned 1 exit status
Older ld's are a bit restrictive and allow the same ISA to be linked
together. Very recent ones would link both objects in a MIPS III one.
> I found an SGI Indy FAQ that says for IRIX -mips3 implies n32 calling
> conventions. I'm not sure if this is also true with Debian Linux, so I
> tried explicitly compiling with -o32, but that didn't help any.
The SGI toolchain has different semantics for their command line options.
Thiemo
Reply to: