relocation truncated to fit errors

Richard Sandiford
Wed Apr 5 13:45:00 GMT 2006

Niklaus <> writes:
> On 4/3/06, Marius Groeger <> wrote:
>> On Mon, 3 Apr 2006, Niklaus wrote:
>> > I don't find any __gp.
>> How about _gp (w/o underscore)?
> None
> pro@deb:~/scripe/cross$ ./bin/mips-deb-linux-objdump -d

Use -dr instead of -d.  You should then find that:

> ./lib/gcc/mips-deb-linux /3.4.6/libgcc.a  | grep gp | more
>    0:   3c1c0000        lui     gp,0x0
>    4:   279c0000        addiu   gp,gp,0

...these insns have relocations against _gp_disp.  The linker will
turn _gp_disp into an offset from _gp.

I'm still not sure what it is you're trying to do though.  What is
your target system?  VR413x GNU/Linux?  Or something else?
(I'm saying this as a binutils@ rathern than crossgcc@ reader btw.)

The command line:

> mips-deb-linux-gcc  -msoft-float -mgp32 -g -O2 -mips3 -G 0  -DGDB_STUB
> -I. -I./include  -I./config/mips3/vr4131 -I./config/mips3 -nostdlib 
> -T ./config/mips3/vr4131/vr4131_elf_gdb.ld -o jsp \
>                        exception_vector.o  sample1.o     timer.o
> serial.o logtask.o log_output.o vasyslog.o t_perror.o strerror.o 
> kernel_cfg.o   libkernel.a   -lgcc

(in particular the vr4131_elf_gdb.ld bit) suggests that you're trying
to use a *-elf (bare-metal) linker script with a GNU/Linux compiler,
so I wasn't sure whether your target really was GNU/Linux or not.


For unsubscribe information see

More information about the crossgcc mailing list