[Mono-dev] [PATCH] Use trampolines for vtable fixups
Kornél Pál
kornelpal at gmail.com
Tue May 5 14:28:33 EDT 2009
Hi,
The attached patch implements using trampolines for vtable fixups that
delay assembly loading. I believe that this is the correct solution.
This patch also modifies:
1) EXE image is only fixed up when using driver.c; embedded mono.dll
will not improperly tamper the image used for version initialization.
2) Use SEH with MS VC++ for reading mapped image. (GCC has no support
for that:( )
3) Disallow unloading mono.dll after mscoree.dll was fixed up to prevent
calling unmapped functions.
4) Remove WaitForSingleObjectEx in mono_gc_init () by modifying
mono_thread_create_internal to return the thread object.
This latter also affects other platform. I would like to ask you to test
it. I wasn't able to reproduce any deadlock related to this. (I only
found a deadlock with socket accept on Windows that was discussed
earlier on the list.) If you can reproduce a deadlock related to
finalizer thread I am willing to help solving that but I need the exact
locaions of deadlocked thread stack traces.
Kornél
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vtfixup_trampolines.diff
Type: text/x-patch
Size: 27837 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20090505/8eb7f7cd/attachment-0001.bin
More information about the Mono-devel-list
mailing list