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

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: