[Mono-dev] [PATCH] Use trampolines for vtable fixups

Kornél Pál kornelpal at gmail.com
Tue May 5 14:28:33 EDT 2009


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.

-------------- 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