qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* Re: [Qemu-devel] Porting QEMU to PalmOS
@ 2007-05-23 11:20 sinisa marovic
  2007-05-23 15:23 ` Wolfgang Schildbach
  0 siblings, 1 reply; 15+ messages in thread
From: sinisa marovic @ 2007-05-23 11:20 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 1622 bytes --]

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


 
____________________________________________________________________________________
TV dinner still cooling? 
Check out "Tonight's Picks" on Yahoo! TV.
http://tv.yahoo.com/

[-- Attachment #2: Type: text/html, Size: 3423 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread
* Re: [Qemu-devel] Porting QEMU to PalmOS
@ 2007-06-04 15:33 sinisa marovic
  2007-07-01 12:29 ` andrzej zaborowski
  0 siblings, 1 reply; 15+ messages in thread
From: sinisa marovic @ 2007-06-04 15:33 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 3230 bytes --]

Hi,

   thanks for the tip about position-independent. I did compile with -fno-pic, and the
op.h was then generated without error. Now I have a different problem that might be
related to PIC. The thing is, because of the nature of PalmOS, I had to link with -fPIC.
Now, after removing the faults, I have reached the execution loop in cpu-exec.c and
invoking of gen_func, nothing is realy happening, the loop is being executed, but after
printing the data at the address of gen_func, I could see that there are all zeroes.
Might that be because of linking with -fPIC? If so, I will have to use different way
to link it, and it might take a while.
If not, where to search for the fault? I have also debugged the host_alarm_handler,
and found out that although realtime timer expires, it is not initialized again. Where exactly
in the code is it done? I tried to find the place, but those timer functions are structure
members, and it is hard to find a place.

/Voda

----- Original Message ----
From: Wolfgang Schildbach <Wolfgang.Schildbach@codingtechnologies.com>
To: qemu-devel@nongnu.org
Sent: Wednesday, May 23, 2007 5:23:51 PM
Subject: Re: [Qemu-devel] Porting QEMU to PalmOS


Try compiling as position-dependent (i.e. not PIC) code. GOT is a typical 
feature of position independent code.

- Wolfgang

qemu-devel-bounces+wolfgang.schildbach=codingtechnologies.com@nongnu.org 
wrote on 23.05.2007 13:20:22:

> 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.


       
____________________________________________________________________________________
Need a vacation? Get great deals
to amazing places on Yahoo! Travel.
http://travel.yahoo.com/

[-- Attachment #2: Type: text/html, Size: 5618 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread
* Re: [Qemu-devel] Porting QEMU to PalmOS
@ 2007-05-24 23:47 sinisa marovic
  0 siblings, 0 replies; 15+ messages in thread
From: sinisa marovic @ 2007-05-24 23:47 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 4211 bytes --]

It sure is.
I use prc-tools. It is free, and, well, it's gcc. There is also developer suite called CodeWarrior,
but that is for wimps ;) (expensive too). I can give you some guidelines off the mailing list
(I do not think others are interested in coding for palm).


----- Original Message ----
From: Jonathan Kalbfeld <jonathan.kalbfeld@gmail.com>
To: qemu-devel@nongnu.org
Sent: Friday, May 25, 2007 1:33:26 AM
Subject: Re: [Qemu-devel] Porting QEMU to PalmOS

Still sounds fantistically fun.

Maybe you can point me in the right direction to write PalmOS programs (.prc's right?).

I have some goofy ideas for things to write for my Treo.

jonathan


On 5/24/07, sinisa marovic <sinisamarovic@yahoo.com> wrote:
I'm afraid I will have to dissapoint you: it will be only isapc with no
networking or other fancy devices. Main goal is the ability to run dos games.
I do not know how familiar are you with PalmOS developer support. It
is poor, gcc lack many important functions that have to be written from
scratch. When I ported dosbox (which is written in c++) I realized that
there is no support for vectors, iterators, namespaces etc, so I had to
write many operators myself. The biggest problem with QEMU is that
it uses signals a lot, and, guess what, PalmOS has no support for signals
_at_ _all_. I found a way to get things going without them for now, but
this has it's drawbacks. I will have to think about something better later on.
 
----- Original Message ----
From: Jonathan Kalbfeld < jonathan.kalbfeld@gmail.com>
To: qemu-devel@nongnu.org
Sent: Thursday, May 24, 2007 11:18:48 PM 
Subject: Re: [Qemu-devel] Porting QEMU to PalmOS

One definite plus with having QEMU for PalmOS is the ability to run things like OpenVPN (even if slow) and connect to a VPN back-end.

As is, I use OpenVPN tunnels to link up my QEMU machines on Solaris. 

jonathan 


On 5/23/07, Wolfgang Schildbach < Wolfgang.Schildbach@codingtechnologies.com> wrote: 
Try compiling as position-dependent (i.e. not PIC) code. GOT is a typical
feature of position independent code. 

- Wolfgang

qemu-devel-bounces+wolfgang.schildbach=codingtechnologies.com@nongnu.org 
wrote on 23.05.2007 13:20:22:

> 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. 







-- 
--
Jonathan Kalbfeld
+1 323 620 6682





Get the free Yahoo! toolbar and rest assured with the added security of spyware protection. 



-- 
--
Jonathan Kalbfeld
+1 323 620 6682


 
____________________________________________________________________________________
Never miss an email again!
Yahoo! Toolbar alerts you the instant new Mail arrives.
http://tools.search.yahoo.com/toolbar/features/mail/

[-- Attachment #2: Type: text/html, Size: 8200 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread
* Re: [Qemu-devel] Porting QEMU to PalmOS
@ 2007-05-24 23:19 sinisa marovic
  2007-05-24 23:33 ` Jonathan Kalbfeld
  0 siblings, 1 reply; 15+ messages in thread
From: sinisa marovic @ 2007-05-24 23:19 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 3334 bytes --]

I'm afraid I will have to dissapoint you: it will be only isapc with no
networking or other fancy devices. Main goal is the ability to run dos games.
I do not know how familiar are you with PalmOS developer support. It
is poor, gcc lack many important functions that have to be written from
scratch. When I ported dosbox (which is written in c++) I realized that
there is no support for vectors, iterators, namespaces etc, so I had to
write many operators myself. The biggest problem with QEMU is that
it uses signals a lot, and, guess what, PalmOS has no support for signals
_at_ _all_. I found a way to get things going without them for now, but
this has it's drawbacks. I will have to think about something better later on.

----- Original Message ----
From: Jonathan Kalbfeld <jonathan.kalbfeld@gmail.com>
To: qemu-devel@nongnu.org
Sent: Thursday, May 24, 2007 11:18:48 PM
Subject: Re: [Qemu-devel] Porting QEMU to PalmOS

One definite plus with having QEMU for PalmOS is the ability to run things like OpenVPN (even if slow) and connect to a VPN back-end.

As is, I use OpenVPN tunnels to link up my QEMU machines on Solaris.

jonathan 


On 5/23/07, Wolfgang Schildbach <Wolfgang.Schildbach@codingtechnologies.com> wrote: 
Try compiling as position-dependent (i.e. not PIC) code. GOT is a typical
feature of position independent code. 

- Wolfgang

qemu-devel-bounces+wolfgang.schildbach=codingtechnologies.com@nongnu.org
wrote on 23.05.2007 13:20:22:

> 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.







-- 
--
Jonathan Kalbfeld
+1 323 620 6682


 
____________________________________________________________________________________
Get your own web address.  
Have a HUGE year through Yahoo! Small Business.
http://smallbusiness.yahoo.com/domains/?p=BESTDEAL

[-- Attachment #2: Type: text/html, Size: 5982 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread
* [Qemu-devel] Porting QEMU to PalmOS
@ 2007-05-23  9:07 sinisa marovic
  2007-05-23 10:48 ` Johannes Schindelin
  0 siblings, 1 reply; 15+ messages in thread
From: sinisa marovic @ 2007-05-23  9:07 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 1287 bytes --]

Hi,

   I started porting QEMU to PalmOS. I already ported some projects successfuly (Like UAE and
dosbox) but dosbox is so slow. QEMU has less compatibility with games but it is much faster.
Now, I am having some problems with dyngen. Since QEMU supports ARM hosts I do not have
to modify the code. Detailed description of the problem follows:

Dyngen is used to create op.h, opc.h and gen-op.h during compilation. Since it is not possible to do
the actual compilation on Palm itself, I thought of creating dyngen executable on the compilation host
(PC with cygwin) and QEMU would then be built  for execution host (Palm). This idea worked fine,
but when dyngen was executed to create op.h I got an error:

"Unsupported data relocation."

I did some debugging to find out what the actual problem is, and this is what I found out:

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?

Regards,
     Voda.


       
____________________________________________________________________________________
Moody friends. Drama queens. Your life? Nope! - their life, your story. Play Sims Stories at Yahoo! Games.
http://sims.yahoo.com/  

[-- Attachment #2: Type: text/html, Size: 1857 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2007-07-01 18:16 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-23 11:20 [Qemu-devel] Porting QEMU to PalmOS sinisa marovic
2007-05-23 15:23 ` Wolfgang Schildbach
2007-05-23 22:02   ` Jonathan Kalbfeld
2007-05-24 21:18   ` Jonathan Kalbfeld
  -- strict thread matches above, loose matches on Subject: below --
2007-06-04 15:33 sinisa marovic
2007-07-01 12:29 ` andrzej zaborowski
2007-07-01 17:20   ` Luke-Jr
2007-07-01 18:08     ` Johannes Schindelin
2007-07-01 18:16     ` andrzej zaborowski
2007-05-24 23:47 sinisa marovic
2007-05-24 23:19 sinisa marovic
2007-05-24 23:33 ` Jonathan Kalbfeld
2007-05-25  5:37   ` Jason Brand
2007-05-23  9:07 sinisa marovic
2007-05-23 10:48 ` Johannes Schindelin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).