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

Mike Hearn m.hearn at signal.QinetiQ.com
Fri Aug 27 05:48:40 CDT 2004

> Your knowledge of porting is evidently limited.  The folks at the Fink 
> project would be surprised to learn that what they're doing is simple.

It's trivial compared to porting an app from a proprietary OS - I think 
the existance of Winelib spells that out. Porting an app from Linux to 
FreeBSD, Solaris, MacOS etc is usually a matter of making sure the 
software is POSIX compliance and abstracting the occasional ELFism, but 
not much software depends on ELF somuch as the abilities of ELF which 
any good OS should provide.

I seem to recall some problem with Mach-O where you can have a library 
that is linked at startup in the usual fashion but cannot be dlopened, 
and the same library compiled again that can be dlopened (or the 
equivalent) but then not linked in normally.

If that hasn't been fixed then it I'm not surprised it causes problems, 
it will do for Wine as well - it's a serious limitation not present in 
any other platform I'm aware of.

But even so, these are minor issues compared to traditional porting 
projects. For most industrial strength Windows apps for instance "port" 
is usually a euphamism for "rewrite", at least when Winelib is not 
involved :(

> When you realize that there can be more than a little gap between what 
> users' want and can do for themselves and what developers' are 
> interested in and actually do (and when they do it), it is very easy to 
> understand why being able to run a supported-and-tested binary RPM can 
> be hugely preferrable to creating yet-another-port of an application. So 
> even though Mac OS X's popularity ensures that most useful applications 
> will be ported and supported, the number of applications that fall into 
> the gap is plenty big enough.

Ugh, binary RPMs are anything but supported and tested I'm afraid. They 
vary between distros - an RPM built for one *might* work on another but 
usually unless you take special steps it's hit and miss. Quite a few of 
the problems people encounter with Wine are due to bad or broken 
packaging, even on non-RPM distros like Gentoo. So don't get me started 
on that one :)

More information about the wine-devel mailing list