latest windows build fails to run

Issue #332 resolved
Charles Forsyth created an issue

Attempting to create a new .zip file to bootstrap Windows installation, I found that cloning from the repository and compiling produces an emu that doesn't run under Windows 7. It crashes with a BEX fault (StackHash ...) (there are many discussions about it on Google). There are also compilation warnings about clashes between Rune16, Runes and wchar_t.

Comments (4)

  1. Charles Forsyth reporter

    If you google for those BEX/StackHash faults, some of the discussion is fairly mad. I'm not too keen on just switching off the "don't execute data" at the moment, since the fault occurs before main gets going, and it wouldn't be using the JIT in this run anyway. I assume there is some scheme to bless data as code for JITs.

    I'm loading a fresh copy of the SDK to try to ensure clean and up-to-date copies of the underlying libraries, since I last installed them years ago.

  2. Charles Forsyth reporter

    It was actually a jump (function call) to zero because at the time the "coherence" function reference I'd introduced wasn't initialised. I'd naively assumed I could set it up in main, if nil, because nothing would be calling lock/unlock before main starts, and it set coherence first thing if nil. On Windows, WinMain is of course called first, but it calls main straightaway. Something in Windows run-time start-up ends up calling something that does call lock before main is called.

    I've initialised it statically.

    It's strange that page 0 is mapped at all on Windows, but so it seems, and it's marked don't execute (which is sensible), so you get the BEX error from any indirect call where the reference is nil.

  3. Log in to comment