Ответ 1
Поддержка Mono LLVM работает, пытаясь загрузить libmono-llvm.so
из соответствующего $libdir
, например. на OSX /usr/bin/mono
загрузится /Library/Frameworks/Mono.framework/Libraries/libmono-llvm.dylib
. Смотрите код загрузки LLVM в mono/mini/mini-llvm.h, в частности mono_llvm_load() и try_llvm_load().
Итак, похоже, если вы назовете свой LLVM-сервер mono-llvm
, он будет использоваться при запуске моно в качестве mono --llvm
. Тем не менее, mono_llvm_load()
, по-видимому, требует определенного экспорта из библиотеки mono-llvm
, например mono_llvm_init
и mono_llvm_cleanup
, поэтому я уверен, что для вашего LLVM-сервера потребуется дополнительная работа, чтобы позволить Mono используйте его, и я не уверен, где это узнать (кроме grep
ping для "LLVM" в источниках Mono...).
Это также означает, что бэкэнд LLVM не может быть повторно использован из предварительно построенного моно; то есть вам может понадобиться создать свое собственное моно, чтобы использовать ваш LLVM-сервер, поскольку монопольная предварительная сборка будет обеспечивать бэкэнд mono-llvm
, который нельзя подключить. (Я не знаю, как подключаемый или не подключаемый сервер LLVM.)