[Rpcemu] RPCEmu, another mac merge thing sorted
francis at devrx.org
Mon Nov 7 13:55:41 PST 2011
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.
> 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.
More information about the Rpcemu