#885: GHC doesn't work with Data Execution Prevention on Windows
-----------------------+----------------------------------------------------
Reporter: guest | Owner:
Type: bug | Status: new
Priority: normal | Milestone: _|_
Component: Compiler | Version: 6.4.2
Severity: major | Resolution:
Keywords: | Os: Windows
Difficulty: Unknown | Architecture: x86
-----------------------+----------------------------------------------------
Comment (by briansmith):
switching to allocateExec does not work, because of this logic:
{{{
if (n+1 > BLOCK_SIZE_W) {
barf("allocateExec: can't handle large objects");
}
}}}
As an experiment, I replaced the entire body of allocateExec with the
following code, and I was successfully able to use GHCi interactively, and
I was able to run the "ghci" subset of the testsuite with perfect results.
{{{
ACQUIRE_SM_LOCK;
ret = VirtualAlloc(NULL, bytes, MEM_RESERVE | MEM_COMMIT,
PAGE_EXECUTE_READWRITE);
RELEASE_SM_LOCK;
return ret;
}}}
So, it appears that you are on the right track to fixing this.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/885>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs