Hi,

On Wed, 23 May 2007, sinisa marovic wrote:

> Relocation types that fail are 25 and 26, which are R_ARM_GOTPC and 
> R_ARM_GOT32 respectively. Their names are:
> 
> _GLOBAL_OFFSET_TABLE_
> cc_table
> __op_param1
> __op_param2
> __op_param3
> 
> Is there a way to fix this?

The GOT is an offset table. Many CPUs have fixed-size instruction sets, 
which means that you cannot easily jump to an absolute address, since the 
address alone would already fill up the size.

Of course, this is a no-no for QEmu, since the _same_ function snippet 
will be reused _multiple_ times. So, the address must not come from a GOT, 
but be inserted directly into the code.

I do not remember off-hand how I managed to do this a couple of years ago, 
when I worked on a MIPS host, but there _are_ gcc options to avoid a GOT.

Hth,
Dscho



Reply via email to