From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HqotF-0000cv-Ga for qemu-devel@nongnu.org; Wed, 23 May 2007 07:20:25 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HqotD-0000Zu-AN for qemu-devel@nongnu.org; Wed, 23 May 2007 07:20:24 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HqotD-0000Zp-7s for qemu-devel@nongnu.org; Wed, 23 May 2007 07:20:23 -0400 Received: from web54608.mail.yahoo.com ([206.190.49.178]) by monty-python.gnu.org with smtp (Exim 4.60) (envelope-from ) id 1HqotC-0001ff-PX for qemu-devel@nongnu.org; Wed, 23 May 2007 07:20:23 -0400 Date: Wed, 23 May 2007 04:20:22 -0700 (PDT) From: sinisa marovic Subject: Re: [Qemu-devel] Porting QEMU to PalmOS MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="0-90578544-1179919222=:34873" Message-ID: <331073.34873.qm@web54608.mail.yahoo.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org --0-90578544-1179919222=:34873 Content-Type: text/plain; charset=ascii 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 To: sinisa marovic 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/ --0-90578544-1179919222=:34873 Content-Type: text/html; charset=ascii
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 <Johannes.Schindelin@gmx.de>
To: sinisa marovic <sinisamarovic@yahoo.com>
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



Food fight? Enjoy some healthy debate
in the Yahoo! Answers Food & Drink Q&A. --0-90578544-1179919222=:34873--