Keyur Pujara wrote:
I am contemplating to port a complex windows
application using winelib over Solaris/SPARC. In one
of the emails in wine-devel list, I saw that there may
be following issues in the process:

 * byte endianness
 * alignment issues
 * pointer size
 * must not use x86 assembly

Could someone kindly advise on whether above issues
*exists* in current version of wine? How do I identify
and resolve them?
Winelib itself is in pretty good shape on sparc. All of the above issues are things you will have to deal with in the porting process, but mostly just in your own code. We ported a large application to winelib on sparc, and we discovered a few bugs in winelib in the process. Most of them were endian or alignment errors (usually in resource-related code), and they've been fixed. If you're porting an application that has a complex GUI, you'll probably find one or two more of these bugs. If your GUI is pretty basic, you might be ok.

The rest of the problems are going to be the same whether you used winelib or not. You've probably got a pretty good feel for how much byte-level manipulation of binary data goes on in your software. If you do a lot, you'll surely run into endian and alignment bugs. If you don't, and you avoid questionable casts as much as possible, you'll probably be in pretty good shape. In our software, these weren't much of a problem, and we had a pretty good idea of where they were going to turn up. Pointer size wasn't an issue since we were porting from 32-bit windows to 32-bit sparc. We didn't use x86 assembly, but if you do you'll have to change it. You may also have to deal with differences in the standard library functions... we ran into a good number of these problems. I don't remember most of them, but you'll find all sorts of little differences, like solaris' printf will format floating point numbers slightly differently than what you're used to on windows... that sort of thing. I think it's safe to say that we spent much more time dealing with this type of error than we did chasing bugs in winelib.

We ported to x86 Linux/winelib first, then went on to move to Solaris. It makes a nice stepping stone, letting you get your makefiles correct, your code gcc-compatible, and the basic unix porting done on a system where winelib is well supported. When you move on to Solaris, you'll have a better idea of what is causing all of the new bugs.

Eric


Reply via email to