DotGNU Portable.NET - Patches: patch #7620, Added support for the windows...
You are not allowed to post comments on this tracker with your current authentication level.
patch #7620: Added support for the windows stack guard page in libjit.
Submitter: | Patrick van Beem <pvbeem> | ||
Submitted: | Wed 21 Sep 2011 05:12:51 AM UTC | ||
Category: | None | Priority: | 5 - Normal |
Status: | None | Privacy: | Public |
Assigned to: | None | Open/Closed: | Open |
No files currently attached
Depends on the following items: None found
Items that depend on this one: None found
Carbon-Copy List
There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.
No changes have been made to this item
Powered by Savane 3.13-caa5.
Corresponding source code
In windows, the allocation of physical memory for the stack is controlled by a guard page on the last not allocated page of the stack. Functions that use more then 4K of stack, should access every page of the stack they need in the correct order, to ensure the allocation of physical memory for the complete stack they use. Failing to do so, results in an access violation exception. Libjit did not do this. The changes below implement this. See also:
http://blogs.technet.com/b/markrussinovich/archive/2009/07/08/3261309.aspx
The fixes are below. I couldn't make a diff, because my previous patches are already applied in this code, but not in the main trunk...
Fix for 32 bit (jit-rules-x86.c), chages are on and after the #ifdef WIN32 block:
Fix for 64 bit (jit-rules-x86-64.c), changes are in the block with the inline assembler within the #ifdef WIN64: