OK What you guys think.
I have an Arm based machine Running Windows CE. Same machine also runs Linux...
Do you think it can be the same Wine codebase, implementing Both Win32 API as well as WindowsCE API?
What areas must be rewritten (or not) ? 1.Loader 2.HAL (is there an HAL in Wine) 3.Debugging / exceptions
any thing else? Other CPU(s)?
What if I want to do the same but for WindowsCE x86?
Free Life Boaz
Boaz Harrosh wrote: [snip]
What if I want to do the same but for WindowsCE x86?
We have already made this experiment once ... you can find info about it in the ros-dev (or ros-kernel) mailing list archives and skeletons of the two WinCE DLLs in the ReactOS SVN history (trunk/reactos/lib/commctrl and trunk/reactos/lib/coredll ... revision ~14000). It was proved that to run simple WinCE/x86 programs all that is needed is to get the loader to accept the WinCE PE signature (which Wine used to ignore and probably still does) and have implementation of the DLLs...
- Filip
Hi,
On 9/20/05, Filip Navara navaraf@reactos.com wrote:
We have already made this experiment once ... you can find info about it in the ros-dev (or ros-kernel) mailing list archives and skeletons of the two WinCE DLLs in the ReactOS SVN history (trunk/reactos/lib/commctrl and trunk/reactos/lib/coredll ... revision ~14000). It was proved that to run simple WinCE/x86 programs all that is needed is to get the loader to accept the WinCE PE signature (which Wine used to ignore and probably still does) and have implementation of the DLLs...
I had to flip the subsystem ID of a WinCE test app using one of the msvc build tools. My sample application just called a message box api. I don't know if any more complex WinCE applications would work due to threading and memory management differences.
Thanks Steven
On 9/20/05, Filip Navara navaraf@reactos.com wrote:
It was proved that to run simple WinCE/x86 programs all that is needed is to get the loader to accept the WinCE PE signature (which Wine used to ignore and probably still does) and have implementation of the DLLs...
Was that on React-OS or on Wine?
Steven Edwards wrote:
I had to flip the subsystem ID of a WinCE test app using one of the msvc build tools. My sample application just called a message box api. I don't know if any more complex WinCE applications would work due to threading and memory management differences.
OK Exactly! At first I did not think we could use the same binaries. Just maybe the same codebase but compiled with different set of makefiles. I'm not even sure the ABI is the same. The sameness is only promised at the source code API level.
Funny how Microsoft uses a totally different set of Headers for CE. Even the Wine-headers are closer to the original SDK than CE. The order of function is different, the macros, the styling. There is no resemblance, not even one name of one parameter. Just the Function name and the Header name. Its like they had a copyright problem and needed to write it from scratch.:) Now for wine I will not do the same. I'll try to keep the same headers, and where there are ABI differences. Like calling convention parameter sizes.. I'll try to use a macro. On the implementation side Linux is Linux is Linux so I guess that should work well. But it looks like The Win32 API was shifted around a bit so in CE functions don't sit in the same Dll's as they sit in Win32, and apps are linked differently. So spec files and Makefiles will have to be different.
What I'm afraid of is the things I don't know, which is how x86 is Wine. And how separated is that from the rest of the code.
Thanks guys Boaz
Hi,
On Wed, Sep 21, 2005 at 10:35:13AM +0200, Boaz Harrosh wrote:
Funny how Microsoft uses a totally different set of Headers for CE. Even the Wine-headers are closer to the original SDK than CE. The order of function is different, the macros, the styling. There is no resemblance, not even one name of one parameter. Just the Function name and the Header name. Its like they had a copyright problem and needed to write it from scratch.:)
Just an outrageously wild guess: OS/2? Maybe the standard Windows headers were going back to the time where they cooperated with IBM to create OS/2, so they decided to play it safe and create a completely new header set that they would be able to reuse for their main Windows tree in case IBM were to sue them in the very distant future? The same goes for the actual CE source code, I guess...
What I'm afraid of is the things I don't know, which is how x86 is Wine. And how separated is that from the rest of the code.
You will probably have an exciting job ahead of you, good luck! ;)
Andreas Mohr