Hi Johannes, thanks for your quick response. I thought QEMU was already compiled and run on an ARM machine? If so, how come that noone else had such problem (I searched for it on google), and PXA255 is a standard ARM CPU with a few additional instructions. And how to make them not come from GOT, those vars are declared as extern, so they are globals?
BR, Voda. ----- Original Message ---- From: Johannes Schindelin <[EMAIL PROTECTED]> To: sinisa marovic <[EMAIL PROTECTED]> Cc: qemu-devel@nongnu.org Sent: Wednesday, May 23, 2007 12:48:59 PM Subject: Re: [Qemu-devel] Porting QEMU to PalmOS 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 ____________________________________________________________________________________ TV dinner still cooling? Check out "Tonight's Picks" on Yahoo! TV. http://tv.yahoo.com/