static gboolean load_profiler_from_mono_instalation (const char *libname, const char *desc) { char *err = NULL; MonoDl *pmodule = mono_dl_open_runtime_lib (libname, MONO_DL_LAZY, &err); g_free (err); if (pmodule) return load_profiler (pmodule, desc, INITIALIZER_NAME); return FALSE; }
static gboolean load_profiler_from_mono_installation (const char *libname, const char *desc) { char *err = NULL; MonoDl *pmodule = mono_dl_open_runtime_lib (libname, MONO_DL_EAGER, &err); mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_DLLIMPORT, "Attempting to load profiler from runtime libs: %s, %ssuccessful, err: %s", libname, pmodule?"":"not ", err); g_free (err); if (pmodule) return load_profiler (pmodule, desc, INITIALIZER_NAME); return FALSE; }
int mono_llvm_load (const char* bpath) { char *err = NULL; MonoDl *llvm_lib = mono_dl_open_runtime_lib ("mono-llvm", MONO_DL_LAZY, &err); if (!llvm_lib) { g_warning ("llvm load failed: %s\n", err); g_free (err); return FALSE; } err = mono_dl_symbol (llvm_lib, "mono_llvm_init", (void**)&mono_llvm_init_fptr); if (err) goto symbol_error; err = mono_dl_symbol (llvm_lib, "mono_llvm_cleanup", (void**)&mono_llvm_cleanup_fptr); if (err) goto symbol_error; err = mono_dl_symbol (llvm_lib, "mono_llvm_emit_method", (void**)&mono_llvm_emit_method_fptr); if (err) goto symbol_error; err = mono_dl_symbol (llvm_lib, "mono_llvm_emit_call", (void**)&mono_llvm_emit_call_fptr); if (err) goto symbol_error; err = mono_dl_symbol (llvm_lib, "mono_llvm_create_aot_module", (void**)&mono_llvm_create_aot_module_fptr); if (err) goto symbol_error; err = mono_dl_symbol (llvm_lib, "mono_llvm_emit_aot_module", (void**)&mono_llvm_emit_aot_module_fptr); if (err) goto symbol_error; err = mono_dl_symbol (llvm_lib, "mono_llvm_check_method_supported", (void**)&mono_llvm_check_method_supported_fptr); if (err) goto symbol_error; err = mono_dl_symbol (llvm_lib, "mono_llvm_free_domain_info", (void**)&mono_llvm_free_domain_info_fptr); if (err) goto symbol_error; err = mono_dl_symbol (llvm_lib, "mono_llvm_emit_aot_file_info", (void**)&mono_llvm_emit_aot_file_info_fptr); if (err) goto symbol_error; err = mono_dl_symbol (llvm_lib, "mono_llvm_emit_aot_data", (void**)&mono_llvm_emit_aot_data_fptr); if (err) goto symbol_error; return TRUE; symbol_error: g_warning ("llvm symbol load failed: %s\n", err); g_free (err); return FALSE; }