[Mono-dev] using coreclr in mono embedding sample project

Sebastien Pouliot sebastien.pouliot at gmail.com
Mon Jun 15 09:18:13 EDT 2009


On Sun, 2009-06-14 at 01:34 +0200, Lucas Meijer wrote:
> Hey,
> 
> In order to figure out how to properly use the new coreclr 
> functionality, verifiers etc, I've taken the
> test-metadata.c  sample that shows how to simply embed mono,  and I'm 
> adding some coreclr stuff to it.
> 
> The sample works and runs fine with core clr disabled.
> 
> If I add:
> 
> mono_security_enable_core_clr ();

This is not enough. You are setting things in motion that have other
requirements - like having platform code that it can depend on. You'll
have, at least, to add a mono_security_set_core_clr_platform_callback
call.

Please have a look at how moonlight initialize mono (and note that the
API is still subject to change).

> 
> before mono_jit_init(),  the mscorlib fails to load. When stepping 
> trough the program with a debugger,
> the point where these two (with coreclr and without) diverge,  is that 
> line 465 of coree.c:

IIRC that file is part of the Windows-build only. As such it has never
been tested wrt coreclr.

> ModuleHandle = LoadLibrary(FileName);
> 
> returns a valid handle when coreclr is turned off, and it returns 0 when 
> coreclr is turned on.
> 
> This is on windows, with r135921 runtime+corlib, using msvc2008 built 
> mono using the stock msvc projectfile.
> 
> I'm a bit surprised by this actually, as I wouldn't expect a call into 
> the win32 api to behave differently based on the
> coreclr settings. (the FileName variable is identical in both cases).

I would expect the same. OTOH I don't know the code except that it
change how mono loads and execute .net applications under Windows.

> Am I doing something wrong?
> 
> 
> A verifier related question:  in do_mono_image_load(),  there are these 
> calls:
> 
> mono_verifier_verify_pe_data().   this one requires image->raw_data_len 
> to be set.  (in verify_msdos_header)
> mono_verifier_load_pe_data().   this one actually sets 
> image->raw_data_len.  (in do_load_header)
> 
> they're executed in the order above, which causes the first one to 
> always fail for me.
> 
> Bye, Lucas
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list



More information about the Mono-devel-list mailing list