I have found a press release that states that Mono now support compilation for native client. It\'s unclear whether this is only available from the separate github mono fork, or
I'm not sure it's been up-streamed into the Mono repository, but there's a fork that runs on NaCl here : https://github.com/elijahtaylor/mono Note, use at your own risk!
I think some of the changes may have been upstreamed, but as of today (11/16/11) there are definitely bugfixes that are still only in the github fork ( https://github.com/elijahtaylor/mono/ ). To build mono for nacl, follow the instructions in the mono/nacl directory ( https://github.com/elijahtaylor/mono/tree/master/nacl ). You want the mono runtime, which will build a mono which can be embedded in your nacl module and can JIT-compile .NET assemblies. (There is also a mono AOT compiler which runs on linux/mac and generates nacl modules, but I'm pretty sure it doesn't work right now, as nobody is using or testing it).
See nacl/test/my.c and mono/mini/fsacheck.c for examples of how to call the mono runtime to JIT code from your nacl module. Inside the browser you'll have to come up with your own way (e.g. pepper and/or nacl-mounts) to get the bytcode into your nacl module.
This post from March 2012 indicates that Chrome 19 has Native Client support for Embedded Mono
Versions of Mono for Native Client are now available for download in the SDK. These are compiled with glibc and the libmono comes as a dynamic library. Only pepper_19 and above has Mono available.
Note that you must keep your pepper_X and naclmono_X bundles in sync (ie, don't update one without updating the other) or you will probably be unable to run the resulting built nexes. New versions of Mono that match a given SDK should be available within hours of a new SDK build being available.
Only embedded Mono is supported in Native Client currently (http://www.mono-project.com/Embedding_Mono).