[Mono-dev] [PATCH] Implement support for mixed-mode assemblies on Windows x64 as well

Kornél Pál kornelpal at gmail.com
Mon Jun 16 15:56:59 EDT 2008


Hi,

The attached patch makes some modifications to enable mixed-mode 
assembly support on Windows x64 as well.

I already update mixed-mode tests to support x64 and are working with 
this patch.

domain.c: Avoid system error message boxes.

assembly.c: Use __ImageBase instead of mono_module_handle that is 
defined by the linker; no initialization required.

image.c: mono_image_open_from_module_handle: Replace ref_count argument 
with has_entry_point. Handle do_mono_image_load fauilre correctly.

mono_image_open_full, mono_image_close: Use has_entry_point instead of 
coff_attributes.

coree.c: _CorValidateImage: Convert platform independent PE32 images to 
PE32+ on 64-bit Windows that makes the OS able to load CIL images as 
modules.

MonoFixupCorEE: Export Address Table RVAs are 32-bit unsigned integers 
so memory has to be allocated for trampolines (x64) or procedure labels 
(IA64) up to 4 GB away from image base address. IA64 version is not 
tested but was very easy to implement and should work if we ever need it.

Also contains some work to make MonoFixupCorEE reversible when unloading 
mono.dll but that's not implemented yet.

Please test the attached patch and if you like it, please approve it.

Kornél
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: mixed-mode-x64.diff.txt
Url: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20080616/87256f72/attachment-0001.txt 


More information about the Mono-devel-list mailing list