Wine Now Supports Arm!


Well, that's a nice step forward, but i belive that Wine will be choppy as hell on Panda(And the main goal of this IS NOT to make x86 apps to run on ARM.)... And i haven't seen lots of apps for windows CE, so only mobile is option, if there is something REALLY interesting... And, when will there be a iPhone emu for Pandora?! You could emulate multitouch by nubs! :D (sorry for off-topic)
 
From what I can see it's mainly designed to COMPILE Windows apps from source. I don't know if this stretches as far as apps which use directX?
 
it's early in development and experimental in design... but a start is a start... as long as it continues to progress, it will be interesting to watch.
 
Pleng said:
From what I can see it's mainly designed to COMPILE Windows apps from source. I don't know if this stretches as far as apps which use directX?
Well WINE for x86 supports DirectX calls, so if there's a complete port there's no reason it couldn't?
Not sure how complete it is yet though.
 
Last edited by a moderator:
Well, there's ticks next to all the 'to-do's, it's made it into the Wine main build and the comments say that it works 'really well'. They've ported Putty. Not exactly bleeding edge stuff, needs a bit more testing than that before we start getting excited :)
 
getting interested comes before getting excited (at least it should)... and I'm fostering interest at this point.
 
Don't get too excited. This project allows for compiling open source windows apps for ARM Linux without porting them to run on Linux natively.

What this means for the Pandora:
-You still can't run .exes and closed source windows apps.
-This project could allow you to run open source windows apps like Winamp and putty.
 
I don't think Wine have ever been the problem to run complex x86 programs, simple x86 linux programs doesn't run either. The problems came from qemu and its usermode x86 to arm translator that lacks proper support for posix threads, so the big advancement will come from the qemu camp and a NPTL implementation for that path.

These are just improvments to the winelib libraries. You STILL need to recompile the program for arm, but now, heavily windows based programs can be recompiled much easier.
An advantage of this is the fact it will be a native port (for the most part) and performance will be several times higher.
 
Windows apps are mostly compiled for x86 and they won't run on ARM with bare Wine, so this is not our motivation. The main goal of porting Wine to ARM is to be able to compile it and run winelib-apps. There are also other possible goals, but they need some more brainstorming:
  • use the finished port as a base for something like a WineMobile, which might be able to run PocketPC/WinCE/WinMob apps. Actual Problem is that all CE apps come along without relocation table, so they should be loaded at their baseaddress or we have to do some relocation magic.
  • run the assembler parts of x86 in qemu and call function in Wine compiled for ARM, which might speed up some things (darwine tried that before, but they stopped because the byteswapping (big endian <-> little endian) was too much work, but ARM is mostly little endian, so we have a chance if everything works fine with packed structures. I already gathered some information how darwine tried to do it)
Do not just discard the whole QEMU idea right away...
 
Drack said:
Don't get too excited. This project allows for compiling open source windows apps for ARM Linux without porting them to run on Linux natively.

What this means for the Pandora:
-You still can't run .exes and closed source windows apps.
-This project could allow you to run open source windows apps like Winamp and putty.

Winamp is open-source? I thought it cost money.
 
Last edited by a moderator:
typs lik dis said:
Drack said:
Don't get too excited. This project allows for compiling open source windows apps for ARM Linux without porting them to run on Linux natively.

What this means for the Pandora:
-You still can't run .exes and closed source windows apps.
-This project could allow you to run open source windows apps like Winamp and putty.

Winamp is open-source? I thought it cost money.

I don't actually know if it's open-source or not, but open-source ≠ free.
 
Last edited by a moderator:
Winelib is vastly different from WINE itself - winelib lets you compile Windows applications that you have the source for into an executable that *COULD* run on Linux (provided you didn't do anything too fancy). Winelib runs on ARM and has done in fits and starts since 2009, as that link shows. Winelib is not WINE, though, and it relies on the fact that you have source code to something, and an ARM compiler, and then compiles that "something" with the ARM compiler and some tiny little bits of glue so that you don't have to convert the entire program to Unix-isms.

So basically if you have the source to a Windows program that only uses some fairly basic Windows functions (NOT DirectX!) and the code is compilable on Linux anyway, and pretty portable, and doesn't do *ANYTHING* outside of a very basic subsection of the Windows API and doesn't make assumptions about things being Windows any more, then it might be possible to build an ARM-binary of it.

Important points to note:

- You need complete Windows source code of the program you want to run.
- You need such source code that not only compiles and can run on Linux / ARM and works perfectly anyway, but just that you want to save some time by leaving in some Windows API commands instead of having to convert EVERY function call to it's Linux equivalent.

Hence why winelib is little used, hence why their example is PuTTY (very good, clean, complete Windows-oriented sourcecode), and hence why you're not going to see hardly anything ever on ARM that will use it.

Winelib is for large companies that want to save time when they make a "Linux port" of something that's heavily Windows. It's nowhere near a complete solution and only saves a tiny bit of the humongous effort that you still would need to go through.
 
Looks like there's some Winamp source code right here: http://forums.winamp.com/showthread.php?t=71188
 
Back
Top