> Hi All,
> I'm new to MIPs architecture and Linux so apologies in advance!
> I'm trying to build an application to run on the Au1100.
> I have a crosscompiler setup (gcc 3.2) and can build a 'hello world' that
> runs on the target.
> When I try building a more serious application using Kdevelop - with the
> appropriate settings
> for the crosstools - I get lots of errors like this:
> assert.o(.text+0x1cc): relocation truncated to fit: R_MIPS_GOT16
> -linux-gnu/lib/libc.a(dcigettext.o): In function `_nl_find_msg':
> dcigettext.o(.text+0x153c): relocation truncated to fit: R_MIPS_CALL16
> -linux-gnu/lib/libc.a(finddomain.o): In function `_nl_find_domain':
> Could someone tell me what I'm doing wrong please.
This is the got overflow problem.
Later versions of binutils have multi-got support (2.15 for example),
which under most circumstances will fix the problem.
If you have extreamly large compilation units you might have to use a
32bit got index. In GCC3.4 and later this is done with the -mxgot
option. With eariler versions of GCC you have to pass -xgot to the
assembler (-Wa,-xgot IIRC).