On 7 Nov 2011, at 20:52, Francis Devereux wrote:

> On 7 Nov 2011, at 09:56, Peter Howkins wrote:
> 
>> Also, this patch *may* improve stability when moving between different 
>> compilers etc, as it now more correctly conforms to the x86 ABI.
>> http://www.home.marutan.net/hg/rpcemu/rev/e7838125d225
> 
> Thanks, I've tried building the latest code with various versions of Xcode 
> and compilers (and dynarec enabled). Here's the results:
> building with Xcode 3.2.1's gcc 4.2 -> works (this has always worked)
> building with Xcode 3.2.1's llvm-gcc 4.2 -> works (I didn't think that this 
> used to work, but it still worked after I backed out e7838125d225 so maybe it 
> was fixed by a previous RPCEmu change, or a fix in llvm-gcc since I last 
> tested it)
> building with Xcode 3.2.1's clang 1.7 -> doesn't compile (errors below)
Oops, I should have written Xcode 3.2.6 instead of 3.2.1...

> building with Xcode 4.2's llvm-gcc 4.2 -> crashes on startup
> building with Xcode 4.2's clang 3.0 -> crashes on startup

I've figured out what the crashes on startup with Xcode 4.2 were caused by - 
it's the NX memory protection preventing code in the heap from being executed! 
Fairly obvious in retrospect. 
https://bitbucket.org/frankoid/rpcemu-spoon-fjd/changeset/161144833324 fixes 
it. Building with clang 3.0 is still problematic - it doesn't crash on startup 
any more but the emulator window is all grey instead of showing the emulated 
screen (ISTR seeing this behaviour before with a different cause).

RPCEmu still seems to be a bit less stable when built with llvm-gcc than with 
gcc; I've noticed a few hangs with the llvm-gcc build where the emulated mouse 
pointer still moves but nothing else works.

Francis


_______________________________________________
Rpcemu mailing list
[email protected]
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu

Reply via email to