/* Contains the list of directories that point to auxiliary GACs */
static char **extra_gac_paths = NULL;
-#ifndef DISABLE_ASSEMBLY_REMAPPING
+#ifndef DISABLE_DESKTOP_LOADER
#define FACADE_ASSEMBLY(str) {str, 0, NULL, FALSE, TRUE}
{"Microsoft.Build.Utilities.v3.5", 2, "Microsoft.Build.Utilities.v4.0"},
{"Microsoft.VisualBasic", 1},
{"Microsoft.VisualC", 1},
+ FACADE_ASSEMBLY ("Microsoft.Win32.Primitives"),
+ FACADE_ASSEMBLY ("Microsoft.Win32.Registry"),
+ FACADE_ASSEMBLY ("Microsoft.Win32.Registry.AccessControl"),
{"Mono.Cairo", 0},
{"Mono.CompilerServices.SymbolWriter", 0},
{"Mono.Data", 0},
{"System.Net.Http", 4},
{"System.Net.Http.Rtc", 0},
FACADE_ASSEMBLY ("System.Net.HttpListener"),
- {"System.Net.NetworkInformation", 0},
FACADE_ASSEMBLY ("System.Net.Mail"),
FACADE_ASSEMBLY ("System.Net.NameResolution"),
FACADE_ASSEMBLY ("System.Net.NetworkInformation"),
{"System.Numerics.Vectors", 3},
FACADE_ASSEMBLY ("System.ObjectModel"),
FACADE_ASSEMBLY ("System.Reflection"),
+ FACADE_ASSEMBLY ("System.Reflection.DispatchProxy"),
FACADE_ASSEMBLY ("System.Reflection.Emit"),
FACADE_ASSEMBLY ("System.Reflection.Emit.ILGeneration"),
FACADE_ASSEMBLY ("System.Reflection.Emit.Lightweight"),
FACADE_ASSEMBLY ("System.Runtime.Extensions"),
FACADE_ASSEMBLY ("System.Runtime.Handles"),
FACADE_ASSEMBLY ("System.Runtime.InteropServices"),
- {"System.Runtime.InteropServices.RuntimeInformation", 2},
+ FACADE_ASSEMBLY ("System.Runtime.InteropServices.RuntimeInformation"),
FACADE_ASSEMBLY ("System.Runtime.InteropServices.WindowsRuntime"),
+ FACADE_ASSEMBLY ("System.Runtime.Loader"),
FACADE_ASSEMBLY ("System.Runtime.Numerics"),
{"System.Runtime.Remoting", 0},
{"System.Runtime.Serialization", 3},
- {"System.Runtime.Serialization.Formatters", 3},
+ FACADE_ASSEMBLY ("System.Runtime.Serialization.Formatters"),
{"System.Runtime.Serialization.Formatters.Soap", 0},
FACADE_ASSEMBLY ("System.Runtime.Serialization.Json"),
FACADE_ASSEMBLY ("System.Runtime.Serialization.Primitives"),
FACADE_ASSEMBLY ("System.Security.Principal.Windows"),
FACADE_ASSEMBLY ("System.Security.SecureString"),
{"System.ServiceModel", 3},
- {"System.ServiceModel.Duplex", 3},
- {"System.ServiceModel.Http", 3},
- {"System.ServiceModel.NetTcp", 3},
- {"System.ServiceModel.Primitives", 3},
- {"System.ServiceModel.Security", 3},
+ FACADE_ASSEMBLY ("System.ServiceModel.Duplex"),
+ FACADE_ASSEMBLY ("System.ServiceModel.Http"),
+ FACADE_ASSEMBLY ("System.ServiceModel.NetTcp"),
+ FACADE_ASSEMBLY ("System.ServiceModel.Primitives"),
+ FACADE_ASSEMBLY ("System.ServiceModel.Security"),
{"System.ServiceModel.Web", 2},
{"System.ServiceProcess", 0},
FACADE_ASSEMBLY ("System.ServiceProcess.ServiceController"),
{"System.Xml.Serialization", 0},
FACADE_ASSEMBLY ("System.Xml.XDocument"),
FACADE_ASSEMBLY ("System.Xml.XPath"),
- {"System.Xml.XPath.XmlDocument", 3},
+ FACADE_ASSEMBLY ("System.Xml.XPath.XmlDocument"),
FACADE_ASSEMBLY ("System.Xml.XPath.XDocument"),
FACADE_ASSEMBLY ("System.Xml.XmlDocument"),
FACADE_ASSEMBLY ("System.Xml.XmlSerializer"),
static GList *loaded_assemblies = NULL;
static MonoAssembly *corlib;
-#if defined(__native_client__)
-
-/* On Native Client, allow mscorlib to be loaded from memory */
-/* instead of loaded off disk. If these are not set, default */
-/* mscorlib loading will take place */
-
-/* NOTE: If mscorlib data is passed to mono in this way then */
-/* it needs to remain allocated during the use of mono. */
-
-static void *corlibData = NULL;
-static size_t corlibSize = 0;
-
-void
-mono_set_corlib_data (void *data, size_t size)
-{
- corlibData = data;
- corlibSize = size;
-}
-
-#endif
-
static char* unquote (const char *str);
/* This protects loaded_assemblies and image->references */
}
}
-/* Native Client can't get this info from an environment variable so */
-/* it's passed in to the runtime, or set manually by embedding code. */
-#ifdef __native_client__
-char* nacl_mono_path = NULL;
-#endif
-
static void
check_path_env (void)
{
return;
char* path = g_getenv ("MONO_PATH");
-#ifdef __native_client__
- if (!path)
- path = strdup (nacl_mono_path);
-#endif
if (!path)
return;
mono_os_mutex_init_recursive (&assemblies_mutex);
mono_os_mutex_init (&assembly_binding_mutex);
-#ifndef DISABLE_ASSEMBLY_REMAPPING
+#ifndef DISABLE_DESKTOP_LOADER
assembly_remapping_table = g_hash_table_new (g_str_hash, g_str_equal);
int i;
return dest_aname;
}
-#ifndef DISABLE_ASSEMBLY_REMAPPING
+#ifndef DISABLE_DESKTOP_LOADER
const AssemblyVersionMap *vmap = (AssemblyVersionMap *)g_hash_table_lookup (assembly_remapping_table, aname->name);
if (vmap) {
const AssemblyVersionSet* vset;
return corlib;
}
- // In native client, Corlib is embedded in the executable as static variable corlibData
-#if defined(__native_client__)
- if (corlibData != NULL && corlibSize != 0) {
- int status = 0;
- /* First "FALSE" instructs mono not to make a copy. */
- /* Second "FALSE" says this is not just a ref. */
- MonoImage* image = mono_image_open_from_data_full (corlibData, corlibSize, FALSE, &status, FALSE);
- if (image == NULL || status != 0)
- g_print("mono_image_open_from_data_full failed: %d\n", status);
- corlib = mono_assembly_load_from_full (image, "mscorlib", &status, FALSE);
- if (corlib == NULL || status != 0)
- g_print ("mono_assembly_load_from_full failed: %d\n", status);
- if (corlib)
- return corlib;
- }
-#endif
-
// A nonstandard preload hook may provide a special mscorlib assembly
aname = mono_assembly_name_new ("mscorlib.dll");
corlib = invoke_assembly_preload_hook (aname, assemblies_path);
gboolean
framework_assembly_sn_match (MonoAssemblyName *wanted_name, MonoAssemblyName *candidate_name)
{
-#ifndef DISABLE_ASSEMBLY_REMAPPING
+#ifndef DISABLE_DESKTOP_LOADER
const AssemblyVersionMap *vmap = (AssemblyVersionMap *)g_hash_table_lookup (assembly_remapping_table, wanted_name->name);
if (vmap) {
if (!vmap->framework_facade_assembly) {
MonoAssemblyCandidatePredicate predicate = NULL;
void* predicate_ud = NULL;
-#if !defined(DISABLE_STRICT_STRONG_NAMES)
+#if !defined(DISABLE_DESKTOP_LOADER)
if (G_LIKELY (mono_loader_get_strict_strong_names ())) {
predicate = &mono_assembly_candidate_predicate_sn_same_name;
predicate_ud = aname;