I have built and run mono 3.0 from source running SGen successfully under RHEL 6. A nice improvement! We are getting less memory usage in network-intensive parts of our code. I'm now hoping to get higher performance from the number-crunching bits, so I'm trying to enable LLVM.<div>
<br></div><div>I built mono-llvm from <a href="https://github.com/mono/llvm/commit/b66d5f8086f95000919d105caae1ec0d979142fe">https://github.com/mono/llvm/commit/b66d5f8086f95000919d105caae1ec0d979142fe</a> and rebuilt mono-3.0.0 using instructions found here <a href="http://www.mono-project.com/Mono_LLVM">http://www.mono-project.com/Mono_LLVM</a>. I configured both builds to install in a common place. ("/mono" in the instructions). This common path's bin is in my path, and its lib is in my LD_LIBRARY_PATH.</div>
<div><br></div><div>While everything builds and mono itself runs well enough to tell me about its command line options...</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div>: mono --version</div>
</div><div><div>Mono JIT compiler version 3.0.0 (tarball Fri Oct 26 13:10:07 CDT 2012)</div></div><div><div>Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. <a href="http://www.mono-project.com">www.mono-project.com</a></div>
</div><div><div>        TLS:           __thread</div></div><div><div>        SIGSEGV:       altstack</div></div><div><div>        Notifications: epoll</div></div><div><div>        Architecture:  amd64</div></div><div><div>
        Disabled:      none</div></div><div><div>        Misc:          softdebug</div></div><div><div>        LLVM:          yes(3.2svn-mono)</div></div><div><div>        GC:            sgen</div></div></blockquote><div>
<br></div><div>... actual .net programs crash on start with some interesting console logs and finally a dynamic link failure. It's obviously something quite fundamental. It makes me wonder if I've built the wrong version of llvm, or somehow gotten my link paths wrong either during configure or runtime. As far as I can tell the <premain> and -simplifycfg "errors" are from LLVM, but I'm not sure what to make of those, either. I'd appreciate any help!</div>
<div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div>: nunit-console</div></div><div><premain>: CommandLine Error: Argument 'print-machineinstrs' defined more than once!</div>
<div><div><premain>: CommandLine Error: Argument 'misched' defined more than once!</div></div><div><div>-simplifycfg: CommandLine Error: Argument 'print-machineinstrs' defined more than once!</div></div>
<div><div>-simplifycfg: CommandLine Error: Argument 'misched' defined more than once!</div></div><div><div>Unable to resolve: memset</div></div><div><div>mono-sgen: mini-llvm-cpp.cpp:128: virtual void* MonoJITMemoryManager::getPointerToNamedFunction(const std::string&, bool): Assertion `0' failed.</div>
</div><div><div>Stacktrace:</div></div><div><div><br></div></div><div><div>  at <unknown> <0xffffffff></div></div><div><div>  at string.Replace (string,string) <0x00039></div></div><div><div>  at Microsoft.Win32.KeyHandler.GetVolatileDir (string) <0x00031></div>
</div><div><div>  at Microsoft.Win32.KeyHandler..ctor (Microsoft.Win32.RegistryKey,string,bool) [0x00006] in /glb/data/CDIS/src/mono-3.0.0.llvm/mcs/class/corlib/Microsoft.Win32/UnixRegistryApi.cs:123</div></div><div><div>
  at Microsoft.Win32.KeyHandler..ctor (Microsoft.Win32.RegistryKey,string) <0x00007></div></div><div><div>  at Microsoft.Win32.KeyHandler.Lookup (Microsoft.Win32.RegistryKey,bool) <0x0013f></div></div><div><div>
  at Microsoft.Win32.UnixRegistryApi.OpenSubKey (Microsoft.Win32.RegistryKey,string,bool) <0x00020></div></div><div><div>  at Microsoft.Win32.RegistryKey.OpenSubKey (string,bool) <0x00041></div></div><div><div>
  at Microsoft.Win32.RegistryKey.OpenSubKey (string) <0x00007></div></div><div><div>  at (wrapper remoting-invoke-with-check) Microsoft.Win32.RegistryKey.OpenSubKey (string) <0xffffffff></div></div><div><div>  at NUnit.Util.SettingsService.ConvertLegacySettings () <IL 0x0000b, 0x0003b></div>
</div><div><div>  at NUnit.Util.SettingsService..ctor (bool) <IL 0x0006b, 0x0012b></div></div><div><div>  at NUnit.Util.SettingsService..ctor () <0x0000a></div></div><div><div>  at NUnit.ConsoleRunner.Runner.Main (string[]) <IL 0x00008, 0x0009f></div>
</div><div><div>  at NUnit.ConsoleRunner.Class1.Main (string[]) <0x00005></div></div><div><div>  at (wrapper runtime-invoke) <Module>.runtime_invoke_int_object (object,intptr,intptr,intptr) <IL 0x0005c, 0xffffffff></div>
</div></blockquote><div><div><br></div></div>