It looks like Wine, like any other major project, is built out of a number
of orthogonal features:
  -- a loader for NE/PE formats
  -- environment setup as per Win32 specs
  -- implementation of Win32 API (as a big collection of subprojects)

In theory, the loader is an independent piece of code: native Linux code
could be compiled in PE format, while our implementation of Win32 could be
compiled in ELF (what we're now doing) or PE (hopefully soon).

Now, out of the formats we support, the only interesting one to factor out
is PE. If we can do that, we can then teach ld to work with the PE format
as a native format. You can than have Linux apps compiled to PE (rather
than ELF). Why would you do that? Say, you like your PE-only compiler
better, etc -- truth be told, I don't care. :) Moreover, since most
development tools have been ported to Cygwin, they already know PE. This
make the whole idea even so much more attractive.

The only problem right now it that the PE loader contains Win32
calls. Questions is: should we rewrite the PE loader only in terms of Unix
API and put it in winelib? (or a separate lib?)

--
Dimi.



Reply via email to