[mkbundle] Fixes the embedding of dependency assemblies + test
authorMiguel de Icaza <miguel@gnome.org>
Mon, 6 Mar 2017 19:39:13 +0000 (14:39 -0500)
committerMiguel de Icaza <miguel@gnome.org>
Mon, 6 Mar 2017 19:39:23 +0000 (14:39 -0500)
mcs/tools/mkbundle/Makefile
mcs/tools/mkbundle/mkbundle.cs

index 64a1b9cbf928bc1824705bdebd3d95049321cb23..886fc465336bd7d8519c3c2ad1d55c6f2a35cbce 100644 (file)
@@ -24,10 +24,11 @@ test-simple: simple.exe
        mono --debug $(the_lib) --cross default simple.exe -o foo && ./foo
        mono --debug $(the_lib) --sdk `dirname \`which mono\``/.. simple.exe -o foo && ./foo
        -rm DEMO.zip
-       mono-package-runtime `dirname \`which mono\``/.. DEMO
+       $(topdir)/../scripts/mono-package-runtime `dirname \`which mono\``/.. DEMO
        mkdir -p ~/.mono/targets/DEMO
        unzip -d ~/.mono/targets/DEMO DEMO.zip
-       mono --debug $(the_lib) --cross DEMO simple.exe -o foo && ./foo
+       mono --debug $(the_lib) --cross DEMO simple.exe -o foo | grep "Assembly.*mscorlib.dll"
+       ./foo
 
 simple.exe: Makefile
        echo 'class X { static void Main () { System.Console.WriteLine ("OK");}}' > simple.cs && mcs simple.cs
index 603af9458a8bc76785fcf06f18d2dbbe533c3eda..8ba098905c0d4d177baf025867d906608772a169 100755 (executable)
@@ -1082,14 +1082,14 @@ void          mono_register_config_for_assembly (const char* assembly_name, cons
        static void LoadLocalizedAssemblies (List<string> assemblies)
        {
                var other = i18n.Select (x => "I18N." + x + (x.Length > 0 ? "." : "") + "dll");
-               bool error = false;
+               string error = null;
 
                foreach (string name in other) {
                        try {
                                Assembly a = LoadAssembly (name);
 
                                if (a == null) {
-                                       error = true;
+                                       error = "Failed to load " + name;
                                        continue;
                                }
 
@@ -1105,8 +1105,8 @@ void          mono_register_config_for_assembly (const char* assembly_name, cons
                        }
                }
 
-               if (error) {
-                       Error ("Couldn't load one or more of the i18n assemblies.");
+               if (error != null) {
+                       Error ("Couldn't load one or more of the i18n assemblies: " + error);
                        Environment.Exit (1);
                }
        }
@@ -1158,7 +1158,7 @@ void          mono_register_config_for_assembly (const char* assembly_name, cons
                        Assembly a = universe.LoadFile (path);
 
                        foreach (AssemblyName an in a.GetReferencedAssemblies ()) {
-                               LoadAssembly (an.FullName);
+                               a = universe.Load (an.FullName);
                                if (!QueueAssembly (files, a.CodeBase))
                                        return false;
                        }
@@ -1220,7 +1220,6 @@ void          mono_register_config_for_assembly (const char* assembly_name, cons
        static void Error (string msg, params object [] args)
        {
                Console.Error.WriteLine ("ERROR: {0}", string.Format (msg, args));
-               throw new Exception ();
                Environment.Exit (1);
        }