X86/PPC linking (was Re: [Darwine] Re: Wine Emulation: Swapping functions)

Jim White jim at pagesmiths.com
Wed Aug 25 17:58:35 CDT 2004


Pierre d'Herbemont wrote:

> Le 25 août 04, à 23:01, Jim White a écrit :
> 
>> I would really like to get away from having to write all the little 
>> wrappers to deal with the namespace problem.  I believe we can solve 
>> that with a suitable naming convention as we began to do with the 
>> winegcc patch.
> 
> I think we can forget this solution, loading symbol at launch time works 
> like a charm :)
> 
> (BTW it was indeed winebuild which was patched)
> 
> Pierre.

While I think that dynamic binding can work, I'm concerned about calling 
conventions between X86 and PPC.  We'll need to look into what those are 
and what QEMU uses.  It may turn out that to get things to line up 
correctly and not have anything get clobbered, we might not be able to 
allow any intermediate calls.  In which case we have to use an emulation 
escape so that the call can be translated as a direct native call rather 
than using a syscall.  And in that case the indirection through the 
pointer is likely be a problem.

Besides not having little wrappers for the namespace issue is not having 
to write syscalls for all the OS X API we want to use.  I'ld much rather 
folks could just call the OS X API directly (albeit with carefully 
written code).  Of course the advantage to going this (syscall) route is 
that it is easy to write and doesn't depend on esoteric 
compiler/linker/loader/emulator coordination.

Of course if you're planning on compiling Wine as PPC then we're on 
different pages architecturally.

Jim




More information about the wine-devel mailing list