diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..36010e714 --- /dev/null +++ b/.gitignore @@ -0,0 +1,31 @@ +.vs/ +.idea/ +openjdk/**/*.class +/classpath/**/*.class +bin/ +openjdk/*.dll +packages/ +bin/ +obj/ +/CommonAssemblyInfo.cs +/awt/AssemblyInfo.cs +/openjdk/*.jar +*.user +/tools/*.exe +/jvm/jvm_h.il +/openjdk/AssemblyInfo.java +*.gen.txt +/openjdk/tools.gen.rsp +/openjdk/vfs.zip +/openjdk/allsources.gen.lst +/openjdk/java/lang/PropertyConstants.java +/runtime/AssemblyInfo.cs +/runtime/JniAssemblyInfo.cs +/openjdk/resources.zip +/runtime/IKVM.Runtime.dll +/runtime/IKVM.OpenJDK.Core.dll +/lib/ikvm-api.jar +/tools/pubkey.txt +/bin-x86/JVM.DLL +/bin-x64/JVM.DLL +/runtime/IKVM.Runtime.JNI.dll diff --git a/CommonAssemblyInfo.cs.in b/CommonAssemblyInfo.cs.in index 69c9ad820..8dc7ca3fa 100644 --- a/CommonAssemblyInfo.cs.in +++ b/CommonAssemblyInfo.cs.in @@ -35,3 +35,7 @@ using System.Reflection; #pragma warning disable 1699 [assembly: AssemblyKeyName("ikvm-key")] #endif + +#if NETSTANDARD +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.0", FrameworkDisplayName = "")] +#endif diff --git a/app.config b/app.config new file mode 100644 index 000000000..fcd0c9373 --- /dev/null +++ b/app.config @@ -0,0 +1,3 @@ + + + diff --git a/awt/AssemblyInfo.cs.in b/awt/AssemblyInfo.cs.in index a25f87dca..e08fd08f3 100644 --- a/awt/AssemblyInfo.cs.in +++ b/awt/AssemblyInfo.cs.in @@ -19,20 +19,20 @@ Jeroen Frijters jeroen@frijters.net - + */ using System.Reflection; using System.Runtime.CompilerServices; // -// General Information about an assembly is controlled through the following +// General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. // [assembly: AssemblyTitle("IKVM.NET AWT Support")] [assembly: AssemblyDescription("Winforms peers and 'native' code")] -[assembly: System.Security.AllowPartiallyTrustedCallers] +//[assembly: System.Security.AllowPartiallyTrustedCallers] #if SIGNCODE [assembly: InternalsVisibleTo("IKVM.OpenJDK.SwingAWT, PublicKey=@PUBLICKEY@")] diff --git a/awt/IKVM.AWT.WinForms.8.csproj b/awt/IKVM.AWT.WinForms.8.csproj index affb98845..115657867 100644 --- a/awt/IKVM.AWT.WinForms.8.csproj +++ b/awt/IKVM.AWT.WinForms.8.csproj @@ -1,159 +1,78 @@ - + Local 9.0.30729 - 2.0 {E00A0FA2-1FD7-4DD9-8C06-7202CE366102} - Debug - AnyCPU - - - - + + IKVM.AWT.WinForms - - - JScript - Grid - IE50 - false - Library + awt - OnBuildSuccess - - - - - - - 2.0 - false - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false true - - - bin\Debug\ - false + netstandard2.0 + false + false 285212672 - false - - - TRACE;DEBUG;WHIDBEY - - - true - 4096 - false 672,612 - false + + bin\$(Configuration)\ false - false - false - 4 + false + + 4096 + TRACE;DEBUG;WHIDBEY full - prompt + + + Debug;Release;Debug FIRST PASS + AnyCPU + + + + + + + true + false + TRACE;DEBUG;FIRST_PASS - False ..\bin\IKVM.OpenJDK.Core.dll + False - False ..\bin\IKVM.OpenJDK.Media.dll + False - False ..\bin\IKVM.OpenJDK.Misc.dll + False - False ..\bin\IKVM.OpenJDK.SwingAWT.dll + False - False ..\bin\IKVM.OpenJDK.Text.dll + False - - System - - - - System.Drawing - - - System.Windows.Forms + + ..\bin\IKVM.Runtime.dll - - - Code - - - Code - - - - Code - - - - Code - - + Code - - - - Code - - - + Form - - {F5C7B588-0403-4AF2-A4DE-5697DE21BC2C} - IKVM.Runtime.8 - + - - False - .NET Framework 2.0 %28x86%29 - true - - - False - .NET Framework 3.0 %28x86%29 - false - - - False - .NET Framework 3.5 - false - + - - - - - - - - \ No newline at end of file + diff --git a/awt/awt.build b/awt/awt.build index 6f621dc85..142a93d9f 100644 --- a/awt/awt.build +++ b/awt/awt.build @@ -13,7 +13,7 @@ - + @@ -21,14 +21,16 @@ - - + + + - + @@ -50,8 +52,8 @@ - - + + diff --git a/awt/converter.cs b/awt/converter.cs index 98a30b703..84695371e 100644 --- a/awt/converter.cs +++ b/awt/converter.cs @@ -32,7 +32,6 @@ Jeroen Frijters using System.IO; using System.Runtime.InteropServices; using System.Threading; -using System.Windows.Forms; using System.ComponentModel; using System.Reflection; using System.Text; @@ -387,4 +386,4 @@ internal static java.awt.Shape ConvertShape(GraphicsPath path) { return shape; } } -} \ No newline at end of file +} diff --git a/awt/graphics.cs b/awt/graphics.cs index 92f8652d6..5a02df46d 100644 --- a/awt/graphics.cs +++ b/awt/graphics.cs @@ -30,7 +30,9 @@ Jeroen Frijters using System.Drawing.Drawing2D; using System.Drawing.Text; using System.Globalization; +#if !NETSTANDARD using System.Windows.Forms; +#endif using java.awt.image; using java.util; @@ -85,6 +87,7 @@ public override void copyArea(int x, int y, int width, int height, int dx, int d } } +#if !NETSTANDARD internal class ComponentGraphics : NetGraphics { private readonly Control control; @@ -123,6 +126,7 @@ public override void copyArea(int x, int y, int width, int height, int dx, int d this.g.CopyFromScreen(src, dest, new Size(width, height)); } } +#endif internal class PrintGraphicsContext { @@ -1323,7 +1327,11 @@ public override bool hit(java.awt.Rectangle rect, java.awt.Shape s, bool onStrok public override java.awt.GraphicsConfiguration getDeviceConfiguration() { +#if NETSTANDARD + throw new NotImplementedException("Windows Forms is not available in .NET Standard"); +#else return new NetGraphicsConfiguration(Screen.PrimaryScreen); +#endif } public override void setComposite(java.awt.Composite comp) @@ -1922,6 +1930,7 @@ public override void drawGlyphVector(java.awt.font.GlyphVector gv, float x, floa } } +#if !NETSTANDARD sealed class NetGraphicsConfiguration : java.awt.GraphicsConfiguration { internal readonly Screen screen; @@ -2136,5 +2145,5 @@ public override java.awt.GraphicsDevice[] getScreenDevices() return devices; } } - -} \ No newline at end of file +#endif +} diff --git a/awt/robot.cs b/awt/robot.cs index 5df6a949c..e10477581 100644 --- a/awt/robot.cs +++ b/awt/robot.cs @@ -22,6 +22,7 @@ Jeroen Frijters */ +#if !NETSTANDARD using System; using System.Drawing; using System.Runtime.InteropServices; @@ -401,4 +402,5 @@ IntPtr dwExtraInfo // application-defined information } -} \ No newline at end of file +} +#endif diff --git a/awt/toolkit-0.95.cs b/awt/toolkit-0.95.cs index 555b44c9c..4ea2116a0 100644 --- a/awt/toolkit-0.95.cs +++ b/awt/toolkit-0.95.cs @@ -50,6 +50,7 @@ Jeroen Frijters */ +#if !NETSTANDARD using System; using System.Drawing; using System.Drawing.Imaging; @@ -5391,3 +5392,4 @@ public override sun.awt.datatransfer.ToolkitThreadBlockedHandler getToolkitThrea } } +#endif diff --git a/ikvm.build b/ikvm.build index b63f8b988..e42df2f84 100644 --- a/ikvm.build +++ b/ikvm.build @@ -11,18 +11,19 @@ + - + - - - + + + diff --git a/ikvm.include b/ikvm.include index 386cf151d..12d27d8ce 100644 --- a/ikvm.include +++ b/ikvm.include @@ -1,5 +1,6 @@ + diff --git a/ikvm/ikvm.8.csproj b/ikvm/ikvm.8.csproj index 720fc92e8..3fb9d6ea1 100644 --- a/ikvm/ikvm.8.csproj +++ b/ikvm/ikvm.8.csproj @@ -1,4 +1,4 @@ - + Local 9.0.30729 @@ -26,7 +26,8 @@ - 2.0 + 3.5 + v2.0 bin\Debug\ diff --git a/ikvm9.sln b/ikvm9.sln index 0815e490a..9b639e3a2 100644 --- a/ikvm9.sln +++ b/ikvm9.sln @@ -1,5 +1,7 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.572 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IKVM.Runtime.8", "runtime\IKVM.Runtime.8.csproj", "{F5C7B588-0403-4AF2-A4DE-5697DE21BC2C}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ikvm.8", "ikvm\ikvm.8.csproj", "{4FBAFF23-1E48-4977-8C50-30F87E70A8B5}" @@ -10,7 +12,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ikvmc.8", "ikvmc.8.csproj", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IKVM.AWT.WinForms.8", "awt\IKVM.AWT.WinForms.8.csproj", "{E00A0FA2-1FD7-4DD9-8C06-7202CE366102}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ikvm-native", "native\native.9.vcproj", "{14EC8F2A-90C6-4CFC-AD26-04C9A3392B8E}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ikvm-native", "native\native.9.vcxproj", "{14EC8F2A-90C6-4CFC-AD26-04C9A3392B8E}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IKVM.Runtime.JNI.8", "runtime\IKVM.Runtime.JNI.8.csproj", "{CEA4FEC4-1D24-4004-908E-F86C8D7AC772}" EndProject @@ -21,6 +23,7 @@ Global Debug|Any CPU = Debug|Any CPU Debug|Mixed Platforms = Debug|Mixed Platforms Debug|Win32 = Debug|Win32 + Debug FIRST PASS|Any CPU = Debug FIRST PASS|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {F5C7B588-0403-4AF2-A4DE-5697DE21BC2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -28,43 +31,62 @@ Global {F5C7B588-0403-4AF2-A4DE-5697DE21BC2C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {F5C7B588-0403-4AF2-A4DE-5697DE21BC2C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {F5C7B588-0403-4AF2-A4DE-5697DE21BC2C}.Debug|Win32.ActiveCfg = Debug|Any CPU + {F5C7B588-0403-4AF2-A4DE-5697DE21BC2C}.Debug FIRST PASS|Any CPU.ActiveCfg = Debug FIRST PASS|Any CPU + {F5C7B588-0403-4AF2-A4DE-5697DE21BC2C}.Debug FIRST PASS|Any CPU.Build.0 = Debug FIRST PASS|Any CPU {4FBAFF23-1E48-4977-8C50-30F87E70A8B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4FBAFF23-1E48-4977-8C50-30F87E70A8B5}.Debug|Any CPU.Build.0 = Debug|Any CPU {4FBAFF23-1E48-4977-8C50-30F87E70A8B5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {4FBAFF23-1E48-4977-8C50-30F87E70A8B5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {4FBAFF23-1E48-4977-8C50-30F87E70A8B5}.Debug|Win32.ActiveCfg = Debug|Any CPU + {4FBAFF23-1E48-4977-8C50-30F87E70A8B5}.Debug FIRST PASS|Any CPU.ActiveCfg = Debug FIRST PASS|Any CPU + {4FBAFF23-1E48-4977-8C50-30F87E70A8B5}.Debug FIRST PASS|Any CPU.Build.0 = Debug FIRST PASS|Any CPU {D2A9434D-59E4-43E9-8D9C-332AA138CEAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D2A9434D-59E4-43E9-8D9C-332AA138CEAD}.Debug|Any CPU.Build.0 = Debug|Any CPU {D2A9434D-59E4-43E9-8D9C-332AA138CEAD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {D2A9434D-59E4-43E9-8D9C-332AA138CEAD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {D2A9434D-59E4-43E9-8D9C-332AA138CEAD}.Debug|Win32.ActiveCfg = Debug|Any CPU + {D2A9434D-59E4-43E9-8D9C-332AA138CEAD}.Debug FIRST PASS|Any CPU.ActiveCfg = Debug|Any CPU + {D2A9434D-59E4-43E9-8D9C-332AA138CEAD}.Debug FIRST PASS|Any CPU.Build.0 = Debug|Any CPU {4CA3F3DF-D2B7-4FA2-874C-BFC4B04286A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4CA3F3DF-D2B7-4FA2-874C-BFC4B04286A2}.Debug|Any CPU.Build.0 = Debug|Any CPU {4CA3F3DF-D2B7-4FA2-874C-BFC4B04286A2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {4CA3F3DF-D2B7-4FA2-874C-BFC4B04286A2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {4CA3F3DF-D2B7-4FA2-874C-BFC4B04286A2}.Debug|Win32.ActiveCfg = Debug|Any CPU + {4CA3F3DF-D2B7-4FA2-874C-BFC4B04286A2}.Debug FIRST PASS|Any CPU.ActiveCfg = Debug|Any CPU + {4CA3F3DF-D2B7-4FA2-874C-BFC4B04286A2}.Debug FIRST PASS|Any CPU.Build.0 = Debug|Any CPU {E00A0FA2-1FD7-4DD9-8C06-7202CE366102}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E00A0FA2-1FD7-4DD9-8C06-7202CE366102}.Debug|Any CPU.Build.0 = Debug|Any CPU {E00A0FA2-1FD7-4DD9-8C06-7202CE366102}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {E00A0FA2-1FD7-4DD9-8C06-7202CE366102}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {E00A0FA2-1FD7-4DD9-8C06-7202CE366102}.Debug|Win32.ActiveCfg = Debug|Any CPU + {E00A0FA2-1FD7-4DD9-8C06-7202CE366102}.Debug FIRST PASS|Any CPU.ActiveCfg = Debug FIRST PASS|Any CPU + {E00A0FA2-1FD7-4DD9-8C06-7202CE366102}.Debug FIRST PASS|Any CPU.Build.0 = Debug FIRST PASS|Any CPU {14EC8F2A-90C6-4CFC-AD26-04C9A3392B8E}.Debug|Any CPU.ActiveCfg = Debug|Win32 {14EC8F2A-90C6-4CFC-AD26-04C9A3392B8E}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {14EC8F2A-90C6-4CFC-AD26-04C9A3392B8E}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {14EC8F2A-90C6-4CFC-AD26-04C9A3392B8E}.Debug|Win32.ActiveCfg = Debug|Win32 {14EC8F2A-90C6-4CFC-AD26-04C9A3392B8E}.Debug|Win32.Build.0 = Debug|Win32 + {14EC8F2A-90C6-4CFC-AD26-04C9A3392B8E}.Debug FIRST PASS|Any CPU.ActiveCfg = Debug FIRST PASS|Any CPU + {14EC8F2A-90C6-4CFC-AD26-04C9A3392B8E}.Debug FIRST PASS|Any CPU.Build.0 = Debug FIRST PASS|Any CPU {CEA4FEC4-1D24-4004-908E-F86C8D7AC772}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CEA4FEC4-1D24-4004-908E-F86C8D7AC772}.Debug|Any CPU.Build.0 = Debug|Any CPU {CEA4FEC4-1D24-4004-908E-F86C8D7AC772}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {CEA4FEC4-1D24-4004-908E-F86C8D7AC772}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {CEA4FEC4-1D24-4004-908E-F86C8D7AC772}.Debug|Win32.ActiveCfg = Debug|Any CPU + {CEA4FEC4-1D24-4004-908E-F86C8D7AC772}.Debug FIRST PASS|Any CPU.ActiveCfg = Debug FIRST PASS|Any CPU + {CEA4FEC4-1D24-4004-908E-F86C8D7AC772}.Debug FIRST PASS|Any CPU.Build.0 = Debug FIRST PASS|Any CPU {4CB170EF-DFE6-4A56-9E1B-A85449E827A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4CB170EF-DFE6-4A56-9E1B-A85449E827A7}.Debug|Any CPU.Build.0 = Debug|Any CPU {4CB170EF-DFE6-4A56-9E1B-A85449E827A7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {4CB170EF-DFE6-4A56-9E1B-A85449E827A7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {4CB170EF-DFE6-4A56-9E1B-A85449E827A7}.Debug|Win32.ActiveCfg = Debug|Any CPU + {4CB170EF-DFE6-4A56-9E1B-A85449E827A7}.Debug FIRST PASS|Any CPU.ActiveCfg = Debug|Any CPU + {4CB170EF-DFE6-4A56-9E1B-A85449E827A7}.Debug FIRST PASS|Any CPU.Build.0 = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A0DA8E0F-EE1A-471F-9168-94C20278F2C9} + EndGlobalSection EndGlobal diff --git a/ikvmc.8.csproj b/ikvmc.8.csproj index ba1992629..1e612fb59 100644 --- a/ikvmc.8.csproj +++ b/ikvmc.8.csproj @@ -1,4 +1,4 @@ - + Local 9.0.30729 @@ -26,7 +26,10 @@ - 2.0 + 3.5 + v4.6.1 + + TRACE;STATIC_COMPILER;NET_4_0 ikvmc\bin\Debug\ @@ -35,7 +38,7 @@ false - TRACE;DEBUG;STATIC_COMPILER;IKVM_REF_EMIT + STATIC_COMPILER;EMITTERS;NET_4_0 true @@ -50,16 +53,43 @@ 4 full prompt + x86 ICSharpCode.SharpZipLib bin\ICSharpCode.SharpZipLib.dll + + bin\IKVM.Runtime.dll + + System + + + + + + packages\System.Security.AccessControl.4.5.0\lib\net461\System.Security.AccessControl.dll + True + + + packages\System.Security.Permissions.4.5.0\lib\net461\System.Security.Permissions.dll + True + + + packages\System.Security.Principal.Windows.4.5.0\lib\net461\System.Security.Principal.Windows.dll + True + + + + + packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll + True + System.XML @@ -147,6 +177,10 @@ IKVM.Reflection + + + + diff --git a/ikvmc/AssemblyResolver.cs b/ikvmc/AssemblyResolver.cs index 9abc63655..b2eaf0a29 100644 --- a/ikvmc/AssemblyResolver.cs +++ b/ikvmc/AssemblyResolver.cs @@ -182,7 +182,7 @@ internal Assembly LoadWithPartialName(string name) return null; } - internal int ResolveReference(Dictionary cache, ref Assembly[] references, string reference) + internal int ResolveReference(Dictionary cache, ref Assembly[] references, string reference, bool isNetStandard = false) { string[] files = new string[0]; try @@ -205,6 +205,11 @@ internal int ResolveReference(Dictionary cache, ref Assembly[] foreach (string found in FindAssemblyPath(reference)) { asm = LoadFile(found); + if (isNetStandard) + { + universe.netStandardAssemblies.Add(asm); + } + cache.Add(reference, asm); break; } @@ -224,6 +229,10 @@ internal int ResolveReference(Dictionary cache, ref Assembly[] if (!cache.TryGetValue(file, out asm)) { asm = LoadFile(file); + if (isNetStandard) + { + universe.netStandardAssemblies.Add(asm); + } } ArrayAppend(ref references, asm); } diff --git a/ikvmc/Compiler.cs b/ikvmc/Compiler.cs index a47927051..9c7643f74 100644 --- a/ikvmc/Compiler.cs +++ b/ikvmc/Compiler.cs @@ -113,6 +113,8 @@ static int Main(string[] args) int rc = comp.ParseCommandLine(argList.GetEnumerator(), targets, toplevel); if (rc == 0) { + //TODO: Ugly + StaticCompiler.Universe.IsTargettingNetStandard = true; resolver.Warning += new AssemblyResolver.WarningEvent(loader_Warning); resolver.Init(StaticCompiler.Universe, nostdlib, toplevel.unresolvedReferences, libpaths); } @@ -344,6 +346,7 @@ private static void PrintHelp() Console.Error.WriteLine(" -nostdlib Do not reference standard libraries"); Console.Error.WriteLine(" -lib: Additional directories to search for references"); Console.Error.WriteLine(" -noautoserialization Disable automatic .NET serialization support"); + Console.Error.WriteLine(" -netstandard Generate .NET Standard libraries"); } int ParseCommandLine(IEnumerator arglist, List targets, CompilerOptions options) @@ -505,6 +508,10 @@ int ContinueParseCommandLine(IEnumerator arglist, List { options.codegenoptions |= CodeGenOptions.RemoveAsserts; } + else if(s == "-netstandard") + { + options.IsTargettingNetStandard = true; + } else if(s.StartsWith("-main:")) { options.mainClass = s.Substring(6); @@ -519,6 +526,16 @@ int ContinueParseCommandLine(IEnumerator arglist, List } ArrayAppend(ref options.unresolvedReferences, r); } + else if(s.StartsWith("-referencenetstandard:") || s.StartsWith("-rt:")) + { + string r = s.Substring(s.IndexOf(':') + 1); + if(r == "") + { + Console.Error.WriteLine("Error: missing file specification for '{0}' option", s); + return 1; + } + ArrayAppend(ref options.unresolvedNetStandardReferences, r); + } else if(s.StartsWith("-recurse:")) { string spec = s.Substring(9); @@ -952,6 +969,26 @@ private static int ResolveReferences(List targets) next_reference: ; } } + if (target.unresolvedNetStandardReferences != null) + { + foreach (string reference in target.unresolvedNetStandardReferences) + { + foreach (CompilerOptions peer in targets) + { + if (peer.assembly.Equals(reference, StringComparison.InvariantCultureIgnoreCase)) + { + ArrayAppend(ref target.peerReferences, peer.assembly); + goto next_reference; + } + } + int rc = resolver.ResolveReference(cache, ref target.references, reference, true); + if (rc != 0) + { + return rc; + } + next_reference: ; + } + } } return 0; } diff --git a/ikvmc/CompilerClassLoader.cs b/ikvmc/CompilerClassLoader.cs index 1a24a46c3..9fa25438a 100644 --- a/ikvmc/CompilerClassLoader.cs +++ b/ikvmc/CompilerClassLoader.cs @@ -541,6 +541,11 @@ private void Save() AddJavaModuleAttribute(mb); + if (StaticCompiler.Universe.IsTargettingNetStandard) + { + AttributeHelper.SetTargetFrameworkAttribute(assemblyBuilder, ".NETStandard,Version=v2.0"); + } + // add a package list and export map if(options.sharedclassloader == null || options.sharedclassloader[0] == this) { @@ -3278,7 +3283,9 @@ class CompilerOptions internal bool guessFileKind; internal Dictionary classes; internal string[] unresolvedReferences; // only used during command line parsing + internal string[] unresolvedNetStandardReferences; // only used during command line parsing internal Assembly[] references; + internal Assembly[] netStandardReferences; internal string[] peerReferences; internal bool crossReferenceAllPeers = true; internal Dictionary> resources; @@ -3301,6 +3308,7 @@ class CompilerOptions internal Dictionary suppressWarnings = new Dictionary(); internal Dictionary errorWarnings = new Dictionary(); internal string writeSuppressWarningsFile; + internal bool IsTargettingNetStandard; internal CompilerOptions Copy() { diff --git a/ikvmc/ikvmc.build b/ikvmc/ikvmc.build index ad5b2ccf8..5b42cdc93 100644 --- a/ikvmc/ikvmc.build +++ b/ikvmc/ikvmc.build @@ -1,5 +1,6 @@ + @@ -49,9 +50,13 @@ + + + + diff --git a/ikvmstub/ikvmstub.8.csproj b/ikvmstub/ikvmstub.8.csproj index 822c2c2bf..dff0ecdd6 100644 --- a/ikvmstub/ikvmstub.8.csproj +++ b/ikvmstub/ikvmstub.8.csproj @@ -1,4 +1,4 @@ - + Local 9.0.30729 @@ -27,7 +27,8 @@ - 2.0 + 3.5 + v4.6.1 bin\Debug\ @@ -36,7 +37,7 @@ false - TRACE;DEBUG;IKVM_REF_EMIT;STUB_GENERATOR + IKVM_REF_EMIT;STUB_GENERATOR;NET_4_0 true @@ -51,15 +52,53 @@ 4 full prompt + false False ..\bin\ICSharpCode.SharpZipLib.dll + System + + + ..\packages\System.Configuration.ConfigurationManager.4.5.0\lib\net461\System.Configuration.ConfigurationManager.dll + True + + + + ..\packages\System.Data.Odbc.4.5.0\lib\net461\System.Data.Odbc.dll + True + + + + + ..\packages\System.Drawing.Common.4.5.1\lib\net461\System.Drawing.Common.dll + True + + + ..\packages\System.Drawing.Primitives.4.3.0\lib\net45\System.Drawing.Primitives.dll + True + + + + ..\packages\System.Security.AccessControl.4.5.0\lib\net461\System.Security.AccessControl.dll + True + + + ..\packages\System.Security.Permissions.4.5.0\lib\net461\System.Security.Permissions.dll + True + + + ..\packages\System.Security.Principal.Windows.4.5.0\lib\net461\System.Security.Principal.Windows.dll + True + + + + @@ -110,6 +149,9 @@ IKVM.Reflection + + + diff --git a/ikvmstub/ikvmstub.build b/ikvmstub/ikvmstub.build index 2b0903635..a3cebf469 100644 --- a/ikvmstub/ikvmstub.build +++ b/ikvmstub/ikvmstub.build @@ -1,5 +1,6 @@ + @@ -30,6 +31,9 @@ + + + diff --git a/ikvmstub/packages.config b/ikvmstub/packages.config new file mode 100644 index 000000000..91b820438 --- /dev/null +++ b/ikvmstub/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/netstandard.txt b/netstandard.txt new file mode 100644 index 000000000..f35b5109c --- /dev/null +++ b/netstandard.txt @@ -0,0 +1,238 @@ +NAnt.exe.config configuration: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${csc.tool} + exec "C:\Program Files\dotnet\sdk\3.0.100-preview3-010431\Roslyn\bincore\csc.dll" + true + true + true + true + true + true + true + + + true + true + true + true + true + true + true + true + + + true + + + true + true + true + true + + + true + true + + + sn + + + lc + true + + + \ No newline at end of file diff --git a/openjdk/AssemblyInfo.java.in b/openjdk/AssemblyInfo.java.in index 6521b3bbe..0f0e993fb 100644 --- a/openjdk/AssemblyInfo.java.in +++ b/openjdk/AssemblyInfo.java.in @@ -19,7 +19,7 @@ Jeroen Frijters jeroen@frijters.net - + */ @cli.System.Reflection.AssemblyCopyrightAttribute.Annotation( @@ -54,7 +54,7 @@ @cli.System.Runtime.CompilerServices.InternalsVisibleToAttribute.Annotation("@RUNTIME@") -@cli.System.Security.AllowPartiallyTrustedCallersAttribute.Annotation +//@cli.System.Security.AllowPartiallyTrustedCallersAttribute.Annotation // magic type to collect Assembly attributes interface assembly {} diff --git a/openjdk/dependencies.netstandard.txt b/openjdk/dependencies.netstandard.txt new file mode 100644 index 000000000..a814fa8a4 --- /dev/null +++ b/openjdk/dependencies.netstandard.txt @@ -0,0 +1,146 @@ +# This file declares the dependencies of the OpenJDK assemblies. +# It exists to prevent accidentally introducing new dependencies. +# +# Note that netstandard, IKVM.Runtime and IKVM.OpenJDK.Core are not very interesting, +# so these dependencies are ignored by the dependency checker. + +IKVM.OpenJDK.Core +->IKVM.OpenJDK.Util +->IKVM.OpenJDK.Security +->IKVM.OpenJDK.Text +->IKVM.OpenJDK.XML.API +->System.Configuration.ConfigurationManager + +IKVM.OpenJDK.Corba +->IKVM.OpenJDK.Misc +->IKVM.OpenJDK.Util +->IKVM.OpenJDK.SwingAWT +->IKVM.OpenJDK.Text +->IKVM.OpenJDK.Naming +->IKVM.OpenJDK.Remoting + +IKVM.OpenJDK.XML.API + +IKVM.OpenJDK.XML.XPath +->IKVM.OpenJDK.XML.API +->IKVM.OpenJDK.XML.Parse +->IKVM.OpenJDK.Text + +IKVM.OpenJDK.XML.Parse +->IKVM.OpenJDK.XML.API +->IKVM.OpenJDK.Text +->IKVM.OpenJDK.Beans + +IKVM.OpenJDK.XML.Transform +->IKVM.OpenJDK.Util +->IKVM.OpenJDK.XML.Parse +->IKVM.OpenJDK.XML.API +->IKVM.OpenJDK.Text +->IKVM.OpenJDK.XML.XPath + +IKVM.OpenJDK.XML.Bind +->IKVM.OpenJDK.XML.API +->IKVM.OpenJDK.Util +->IKVM.OpenJDK.Text +->IKVM.OpenJDK.SwingAWT +->IKVM.OpenJDK.Beans +->IKVM.OpenJDK.Media +->IKVM.OpenJDK.XML.Parse + +IKVM.OpenJDK.XML.WebServices +->IKVM.OpenJDK.XML.API +->IKVM.OpenJDK.Text +->IKVM.OpenJDK.Util +->IKVM.OpenJDK.Misc +->IKVM.OpenJDK.SwingAWT +->IKVM.OpenJDK.XML.Parse +->IKVM.OpenJDK.XML.Bind +->IKVM.OpenJDK.Security +->IKVM.OpenJDK.Remoting +->IKVM.OpenJDK.Beans +->IKVM.OpenJDK.Media +->IKVM.OpenJDK.Management + +IKVM.OpenJDK.XML.Crypto +->IKVM.OpenJDK.Util +->IKVM.OpenJDK.XML.API +->IKVM.OpenJDK.Security +->IKVM.OpenJDK.Text +->IKVM.OpenJDK.XML.Parse +->IKVM.OpenJDK.XML.XPath + +IKVM.OpenJDK.SwingAWT +->System.Drawing.Common +->IKVM.AWT.WinForms +->IKVM.OpenJDK.Util +->IKVM.OpenJDK.Text +->IKVM.OpenJDK.XML.API +->IKVM.OpenJDK.Charsets +->IKVM.OpenJDK.Beans +->IKVM.OpenJDK.Media +->IKVM.OpenJDK.Remoting + +IKVM.OpenJDK.Charsets + +IKVM.OpenJDK.Util +->IKVM.OpenJDK.Security +->IKVM.OpenJDK.Text +->IKVM.OpenJDK.XML.API + +IKVM.OpenJDK.Text +->IKVM.OpenJDK.Util +->IKVM.OpenJDK.SwingAWT + +IKVM.OpenJDK.Security +->IKVM.OpenJDK.Text +->IKVM.OpenJDK.SwingAWT +->IKVM.OpenJDK.Util +->IKVM.OpenJDK.Naming + +IKVM.OpenJDK.Management +->IKVM.OpenJDK.Security +->IKVM.OpenJDK.Corba +->IKVM.OpenJDK.Util +->IKVM.OpenJDK.Naming +->IKVM.OpenJDK.Remoting +->IKVM.OpenJDK.Beans + +IKVM.OpenJDK.Misc +->IKVM.OpenJDK.SwingAWT +->IKVM.OpenJDK.XML.API +->IKVM.OpenJDK.Util +->IKVM.OpenJDK.Corba +->IKVM.OpenJDK.Text +->IKVM.OpenJDK.Security +->IKVM.OpenJDK.Naming +->IKVM.OpenJDK.Remoting + +IKVM.OpenJDK.Jdbc +->IKVM.OpenJDK.Text +->IKVM.OpenJDK.Misc +->IKVM.OpenJDK.XML.API +->IKVM.OpenJDK.Util +->IKVM.OpenJDK.Naming +->System.Data.Odbc + +IKVM.OpenJDK.Naming +->IKVM.OpenJDK.Security +->IKVM.OpenJDK.SwingAWT + +IKVM.OpenJDK.Remoting +->IKVM.OpenJDK.Naming +->IKVM.OpenJDK.Security +->IKVM.OpenJDK.Text +->IKVM.OpenJDK.Util + +IKVM.OpenJDK.Beans +->IKVM.OpenJDK.SwingAWT +->IKVM.OpenJDK.XML.API +->IKVM.OpenJDK.Util + +IKVM.OpenJDK.Media +->System.Drawing.Common +->IKVM.OpenJDK.SwingAWT +->IKVM.OpenJDK.XML.API +->IKVM.OpenJDK.Util +->IKVM.OpenJDK.Text diff --git a/openjdk/java/lang/Thread.java b/openjdk/java/lang/Thread.java index 8da7a6e6e..ff3e35c46 100644 --- a/openjdk/java/lang/Thread.java +++ b/openjdk/java/lang/Thread.java @@ -1892,7 +1892,10 @@ private static StackTraceElement[][] dumpThreads(Thread[] threads) { } cli.System.Diagnostics.StackTrace stack; try { - stack = new cli.System.Diagnostics.StackTrace(nativeThread, true); + // This ctor is obsolete and shouldn't be used + // https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.stacktrace.-ctor?view=netframework-4.8#System_Diagnostics_StackTrace__ctor_System_Threading_Thread_System_Boolean_ + // stack = new cli.System.Diagnostics.StackTrace(nativeThread, true); + stack = new cli.System.Diagnostics.StackTrace(true); } finally { if (suspended) { diff --git a/openjdk/openjdk.build b/openjdk/openjdk.build index 229b80c76..8995d9ad7 100644 --- a/openjdk/openjdk.build +++ b/openjdk/openjdk.build @@ -8,6 +8,15 @@ + + + + + + + + + @@ -49,6 +58,7 @@ + @@ -62,19 +72,50 @@ + + - + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -97,7 +138,7 @@ - + @@ -157,6 +198,16 @@ + + + + + + + + + + @@ -210,7 +261,7 @@ - + @@ -231,6 +282,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/openjdk/response.netstandard.txt b/openjdk/response.netstandard.txt new file mode 100644 index 000000000..9f5fb4c3a --- /dev/null +++ b/openjdk/response.netstandard.txt @@ -0,0 +1,1039 @@ +# +# Copyright (C) 2002-2011 Jeroen Frijters +# +# This software is provided 'as-is', without any express or implied +# warranty. In no event will the authors be held liable for any damages +# arising from the use of this software. +# +# Permission is granted to anyone to use this software for any purpose, +# including commercial applications, and to alter it and redistribute it +# freely, subject to the following restrictions: +# +# 1. The origin of this software must not be misrepresented; you must not +# claim that you wrote the original software. If you use this software +# in a product, an acknowledgment in the product documentation would be +# appreciated but is not required. +# 2. Altered source versions must be plainly marked as such, and must not be +# misrepresented as being the original software. +# 3. This notice may not be removed or altered from any source distribution. +# +# Jeroen Frijters +# jeroen@frijters.net +# + +assembly.class +{ + -out:IKVM.OpenJDK.Core.dll + -baseaddress:0x56000000 + -remap:map.xml + -exclude:exclude.lst + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/META-INF/MANIFEST.MF + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/META-INF/mailcap.default + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/META-INF/mimetypes.default + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/sun/launcher/resources/launcher.properties + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/sun/net/idn/uidna.spp + ikvm/internal/*.class + java/io/*.class + java/lang/*.class + java/lang/ref/*.class + java/lang/reflect/*.class + java/net/*.class + java/nio/*.class + java/security/*.class + java/util/*.class + java/util/concurrent/locks/*.class + gnu/java/util/*.class + sun/misc/*.class + sun/net/www/protocol/file/*.class + sun/net/www/protocol/ikvmres/*.class + sun/net/www/protocol/jar/*.class + sun/nio/ch/*.class + sun/nio/cs/*.class + sun/reflect/*.class + ../classpath/gnu/java/net/protocol/ikvmres/*.class + ../classpath/ikvm/extensions/*.class + ../classpath/ikvm/internal/*.class + ../classpath/ikvm/internal/stubgen/*.class + ../classpath/ikvm/io/*.class + ../classpath/ikvm/lang/*.class + ../classpath/ikvm/runtime/*.class + ../classpath/java/util/concurrent/atomic/*.class + ../classpath/sun/misc/*.class + @OPENJDK@/jdk/src/share/classes/java/awt/AWTPermission.class + @OPENJDK@/build/linux-amd64/gensrc/java/lang/*.class + @OPENJDK@/build/linux-amd64/gensrc/java/nio/*.class + @OPENJDK@/build/linux-amd64/gensrc/java/nio/channels/*.class + @OPENJDK@/build/linux-amd64/gensrc/java/nio/charset/*.class + @OPENJDK@/build/linux-amd64/gensrc/sun/nio/ch/*.class + @OPENJDK@/build/linux-amd64/gensrc/sun/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/developer/ServerSideException.class + @OPENJDK@/jdk/src/share/classes/java/beans/ChangeListenerMap.class + @OPENJDK@/jdk/src/share/classes/java/beans/IndexedPropertyChangeEvent.class + @OPENJDK@/jdk/src/share/classes/java/beans/PropertyChangeEvent.class + @OPENJDK@/jdk/src/share/classes/java/beans/PropertyChangeListener.class + @OPENJDK@/jdk/src/share/classes/java/beans/PropertyChangeListenerProxy.class + @OPENJDK@/jdk/src/share/classes/java/beans/PropertyChangeSupport*.class + @OPENJDK@/jdk/src/share/classes/java/io/*.class + @OPENJDK@/jdk/src/share/classes/java/lang/*.class + @OPENJDK@/jdk/src/share/classes/java/lang/annotation/*.class + @OPENJDK@/jdk/src/share/classes/java/lang/ref/*.class + @OPENJDK@/jdk/src/share/classes/java/lang/reflect/*.class + @OPENJDK@/jdk/src/share/classes/java/math/*.class + @OPENJDK@/jdk/src/share/classes/java/net/*.class + @OPENJDK@/jdk/src/share/classes/java/nio/*.class + @OPENJDK@/jdk/src/share/classes/java/nio/channels/*.class + @OPENJDK@/jdk/src/share/classes/java/nio/channels/spi/*.class + @OPENJDK@/jdk/src/share/classes/java/nio/charset/*.class + @OPENJDK@/jdk/src/share/classes/java/nio/charset/spi/*.class + @OPENJDK@/jdk/src/share/classes/java/security/*.class + @OPENJDK@/jdk/src/share/classes/java/security/cert/*.class + @OPENJDK@/jdk/src/share/classes/java/sql/Timestamp.class + @OPENJDK@/jdk/src/share/classes/java/util/*.class + @OPENJDK@/jdk/src/share/classes/java/util/concurrent/*.class + @OPENJDK@/jdk/src/share/classes/java/util/concurrent/atomic/*.class + @OPENJDK@/jdk/src/share/classes/java/util/concurrent/locks/*.class + @OPENJDK@/jdk/src/share/classes/java/util/jar/Attributes*.class + @OPENJDK@/jdk/src/share/classes/java/util/jar/Manifest*.class + @OPENJDK@/jdk/src/share/classes/java/util/regex/*.class + @OPENJDK@/jdk/src/share/classes/javax/net/*.class + @OPENJDK@/jdk/src/share/classes/sun/misc/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/ftp/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/idn/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/smtp/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/spi/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/spi/nameservice/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/util/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/www/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/www/content/text/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/www/http/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/www/protocol/ftp/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/www/protocol/http/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/www/protocol/jar/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/www/protocol/mailto/*.class + @OPENJDK@/jdk/src/share/classes/sun/nio/*.class + @OPENJDK@/jdk/src/share/classes/sun/nio/ch/*.class + @OPENJDK@/jdk/src/share/classes/sun/nio/cs/*.class + @OPENJDK@/jdk/src/share/classes/sun/reflect/*.class + @OPENJDK@/jdk/src/share/classes/sun/reflect/annotation/*.class + @OPENJDK@/jdk/src/share/classes/sun/reflect/generics/factory/*.class + @OPENJDK@/jdk/src/share/classes/sun/reflect/generics/parser/*.class + @OPENJDK@/jdk/src/share/classes/sun/reflect/generics/reflectiveObjects/*.class + @OPENJDK@/jdk/src/share/classes/sun/reflect/generics/repository/*.class + @OPENJDK@/jdk/src/share/classes/sun/reflect/generics/scope/*.class + @OPENJDK@/jdk/src/share/classes/sun/reflect/generics/tree/*.class + @OPENJDK@/jdk/src/share/classes/sun/reflect/generics/visitor/*.class + @OPENJDK@/jdk/src/share/classes/sun/reflect/misc/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/action/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/jca/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/provider/ByteArrayAccess.class + @OPENJDK@/jdk/src/share/classes/sun/security/provider/DigestBase.class + @OPENJDK@/jdk/src/share/classes/sun/security/provider/SHA.class + @OPENJDK@/jdk/src/share/classes/sun/security/provider/Sun.class + @OPENJDK@/jdk/src/share/classes/sun/security/provider/SunEntries$1.class + @OPENJDK@/jdk/src/share/classes/sun/security/provider/SunEntries.class + @OPENJDK@/jdk/src/share/classes/sun/security/util/Debug.class + @OPENJDK@/jdk/src/share/classes/sun/security/util/PropertyExpander$ExpandException.class + @OPENJDK@/jdk/src/share/classes/sun/security/util/PropertyExpander.class + @OPENJDK@/jdk/src/share/classes/sun/security/util/SecurityConstants.class + @OPENJDK@/jdk/src/share/classes/sun/util/*.class + @OPENJDK@/jdk/src/solaris/classes/java/io/*.class + @OPENJDK@/jdk/src/solaris/classes/sun/net/www/protocol/http/*.class + @OPENJDK@/jdk/src/windows/classes/java/io/*.class + @OPENJDK@/jdk/src/windows/classes/java/lang/*.class + @OPENJDK@/jdk/src/windows/classes/java/net/*.class + @OPENJDK@/jdk/src/windows/classes/sun/nio/ch/*.class + @OPENJDK@/jdk/src/windows/classes/sun/security/provider/NativePRNG.class +} +{ + -out:IKVM.OpenJDK.Corba.dll + -baseaddress:0x56960000 + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/corba/* + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/jndi/cosnaming/jndiprovider.properties + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/activation/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/copyobject/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/corba/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/dynamicany/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/encoding/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/interceptors/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/io/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/ior/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/ior/iiop/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/javax/rmi/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/javax/rmi/CORBA/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/legacy/connection/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/logging/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/monitoring/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/naming/cosnaming/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/naming/namingutil/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/naming/pcosnaming/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/oa/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/oa/poa/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/oa/toa/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/orb/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/orbutil/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/orbutil/closure/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/orbutil/concurrent/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/orbutil/fsm/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/orbutil/graph/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/orbutil/threadpool/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/presentation/rmi/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/protocol/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/protocol/giopmsgheaders/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/resolver/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/transport/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/impl/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/internal/corba/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/internal/CosNaming/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/internal/iiop/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/internal/Interceptors/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/internal/POA/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/org/omg/CORBA/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/pept/broker/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/pept/encoding/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/pept/protocol/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/pept/transport/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/PortableActivationIDL/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/PortableActivationIDL/InitialNameServicePackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/PortableActivationIDL/LocatorPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/PortableActivationIDL/RepositoryPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/activation/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/activation/InitialNameServicePackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/activation/LocatorPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/activation/RepositoryPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/copyobject/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/encoding/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/extension/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/ior/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/ior/iiop/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/legacy/connection/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/legacy/interceptor/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/logging/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/monitoring/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/oa/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/orb/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/orbutil/closure/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/orbutil/fsm/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/orbutil/proxy/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/orbutil/threadpool/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/presentation/rmi/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/protocol/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/resolver/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/servicecontext/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/corba/se/spi/transport/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/omg/CORBA/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/omg/CORBA/portable/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/omg/CORBA/ValueDefPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/omg/SendingContext/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/omg/SendingContext/CodeBasePackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/rmi/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/rmi/CORBA/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/CORBA/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/CORBA/DynAnyPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/CORBA/ORBPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/CORBA/portable/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/CORBA/TypeCodePackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/CORBA_2_3/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/CORBA_2_3/portable/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/CosNaming/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/CosNaming/NamingContextExtPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/CosNaming/NamingContextPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/Dynamic/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/DynamicAny/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/DynamicAny/DynAnyFactoryPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/DynamicAny/DynAnyPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/IOP/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/IOP/CodecFactoryPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/IOP/CodecPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/Messaging/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/PortableInterceptor/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/PortableInterceptor/ORBInitInfoPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/PortableServer/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/PortableServer/CurrentPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/PortableServer/POAManagerPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/PortableServer/POAPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/PortableServer/portable/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/PortableServer/ServantLocatorPackage/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/SendingContext/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/omg/stub/java/rmi/*.class + @OPENJDK@/build/linux-amd64/impsrc/sun/corba/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/cosnaming/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/toolkit/corba/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/url/corbaname/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/url/iiop/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/url/iiopname/*.class +} +{ + -out:IKVM.OpenJDK.XML.API.dll + -baseaddress:0x56FC0000 + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/datatype/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/namespace/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/parsers/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/stream/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/stream/events/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/stream/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/transform/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/transform/dom/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/transform/sax/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/transform/stax/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/transform/stream/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/validation/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/xpath/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/w3c/dom/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/w3c/dom/bootstrap/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/w3c/dom/css/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/w3c/dom/events/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/w3c/dom/html/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/w3c/dom/ls/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/w3c/dom/ranges/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/w3c/dom/stylesheets/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/w3c/dom/traversal/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/w3c/dom/views/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/w3c/dom/xpath/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/xml/sax/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/xml/sax/ext/*.class + @OPENJDK@/build/linux-amd64/impsrc/org/xml/sax/helpers/*.class +} +{ + -out:IKVM.OpenJDK.XML.XPath.dll + -baseaddress:0x57080000 + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/org/apache/xalan/internal/res/* + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/extensions/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/res/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/dtm/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/dtm/ref/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/utils/AttList.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/utils/DOMHelper.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/utils/DOM2Helper.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/utils/TreeWalker.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xpath/internal/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xpath/internal/axes/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xpath/internal/compiler/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xpath/internal/domapi/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xpath/internal/functions/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xpath/internal/jaxp/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xpath/internal/objects/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xpath/internal/operations/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xpath/internal/patterns/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xpath/internal/res/*.class +} +{ + -out:IKVM.OpenJDK.XML.Parse.dll + -baseaddress:0x573B0000 + -resource:com/sun/org/apache/xml/internal/serialize/HTMLEntities.res=@OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/serialize/HTMLEntities.res + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/org/apache/xerces/* + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/org/apache/xml/internal/serializer/* + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/dom/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/dom/events/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/dtd/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/dtd/models/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/dv/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/dv/dtd/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/dv/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/dv/xs/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/io/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/msg/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/validation/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/xpath/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/xpath/regex/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/xs/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/xs/identity/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/xs/models/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/xs/opti/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/xs/traversers/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/impl/xs/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/jaxp/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/jaxp/datatype/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/jaxp/validation/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/parsers/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/xinclude/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/xni/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/xni/grammars/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/xni/parser/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/xpointer/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/xs/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xerces/internal/xs/datatypes/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/res/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/resolver/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/resolver/helpers/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/resolver/readers/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/resolver/tools/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/serialize/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/serializer/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/serializer/utils/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/utils/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/utils/res/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/org/jvnet/staxex/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/stream/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/stream/buffer/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/stream/buffer/sax/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/stream/buffer/stax/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/stream/dtd/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/stream/dtd/nonvalidating/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/stream/events/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/stream/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/stream/writers/*.class +} +{ + -out:IKVM.OpenJDK.XML.Transform.dll + -baseaddress:0x57A40000 + @OPENJDK@/build/linux-amd64/impsrc/com/sun/java_cup/internal/runtime/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/bcel/internal/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/bcel/internal/classfile/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/bcel/internal/generic/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/bcel/internal/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/regexp/internal/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/lib/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/templates/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/xslt/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/xsltc/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/xsltc/cmdline/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/xsltc/compiler/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/xsltc/compiler/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/xsltc/dom/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/xsltc/runtime/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/xsltc/runtime/output/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/xsltc/trax/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/xsltc/util/*.class +} +{ + -out:IKVM.OpenJDK.XML.Bind.dll + -baseaddress:0x57E60000 + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/javax/xml/bind/* + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/xml/internal/bind/* + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/xml/internal/fastinfoset/* + @OPENJDK@/build/linux-amd64/impsrc/com/sun/istack/internal/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/istack/internal/localization/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/annotation/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/api/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/api/impl/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/marshaller/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/unmarshaller/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/bytecode/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/model/annotation/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/model/core/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/model/impl/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/model/nav/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/model/runtime/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/runtime/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/runtime/output/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/runtime/property/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/runtime/reflect/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/runtime/reflect/opt/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/runtime/unmarshaller/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/schemagen/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/schemagen/episode/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/schemagen/xmlschema/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/bind/v2/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/fastinfoset/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/fastinfoset/algorithm/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/fastinfoset/alphabet/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/fastinfoset/dom/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/fastinfoset/org/apache/xerces/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/fastinfoset/sax/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/fastinfoset/stax/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/fastinfoset/stax/events/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/fastinfoset/stax/factory/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/fastinfoset/stax/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/fastinfoset/tools/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/fastinfoset/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/fastinfoset/vocab/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/org/jvnet/fastinfoset/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/org/jvnet/fastinfoset/sax/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/org/jvnet/fastinfoset/sax/helpers/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/org/jvnet/fastinfoset/stax/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/txw2/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/txw2/annotation/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/txw2/output/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/bind/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/bind/annotation/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/bind/annotation/adapters/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/bind/attachment/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/bind/helpers/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/bind/util/*.class +} +{ + -out:IKVM.OpenJDK.XML.WebServices.dll + -baseaddress:0x581C0000 + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/xml/internal/messaging/* + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/xml/internal/ws/* + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/messaging/saaj/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/messaging/saaj/client/p2p/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/messaging/saaj/packaging/mime/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/messaging/saaj/packaging/mime/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/messaging/saaj/soap/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/messaging/saaj/soap/dynamic/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/messaging/saaj/soap/impl/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/messaging/saaj/soap/name/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/messaging/saaj/soap/ver1_1/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/messaging/saaj/soap/ver1_2/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/messaging/saaj/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/messaging/saaj/util/transform/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/org/jvnet/mimepull/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/addressing/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/addressing/model/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/addressing/v200408/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/addressing/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/client/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/fastinfoset/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/handler/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/message/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/message/stream/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/model/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/model/soap/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/model/wsdl/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/pipe/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/pipe/helper/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/server/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/streaming/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/wsdl/parser/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/api/wsdl/writer/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/binding/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/client/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/client/dispatch/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/client/sei/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/developer/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/encoding/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/encoding/fastinfoset/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/encoding/soap/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/encoding/soap/streaming/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/encoding/xml/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/fault/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/handler/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/message/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/message/jaxb/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/message/saaj/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/message/source/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/message/stream/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/model/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/model/soap/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/model/wsdl/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/org/objectweb/asm/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/protocol/soap/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/protocol/xml/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/resources/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/server/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/server/provider/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/server/sei/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/spi/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/streaming/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/transport/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/transport/http/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/transport/http/client/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/transport/http/server/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/util/exception/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/util/localization/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/util/pipe/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/util/xml/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/wsdl/parser/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/wsdl/writer/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/wsdl/writer/document/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/wsdl/writer/document/http/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/wsdl/writer/document/soap/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/wsdl/writer/document/soap12/*.class + @OPENJDK@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/wsdl/writer/document/xsd/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/soap/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/ws/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/ws/handler/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/ws/handler/soap/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/ws/http/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/ws/soap/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/ws/spi/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/xml/ws/wsaddressing/*.class +} +{ + -out:IKVM.OpenJDK.XML.Crypto.dll + -baseaddress:0x58640000 + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/org/apache/xml/internal/security/* + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/implementations/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/helper/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/exceptions/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/keys/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/keyvalues/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/implementations/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/signature/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/*.class + @OPENJDK@/jdk/src/share/classes/javax/xml/crypto/*.class + @OPENJDK@/jdk/src/share/classes/javax/xml/crypto/dom/*.class + @OPENJDK@/jdk/src/share/classes/javax/xml/crypto/dsig/*.class + @OPENJDK@/jdk/src/share/classes/javax/xml/crypto/dsig/dom/*.class + @OPENJDK@/jdk/src/share/classes/javax/xml/crypto/dsig/keyinfo/*.class + @OPENJDK@/jdk/src/share/classes/javax/xml/crypto/dsig/spec/*.class + @OPENJDK@/jdk/src/share/classes/org/jcp/xml/dsig/internal/*.class + @OPENJDK@/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/*.class +} +{ + -out:IKVM.OpenJDK.SwingAWT.dll + -baseaddress:0x58790000 + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/META-INF/services/sun.java2d.* + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/java/swing/* + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/javax/swing/* + -recurse:resources.zip/com/sun/swing/internal/plaf/* + -recurse:resources.zip/com/sun/java/swing/plaf/* + -r:System.Drawing.dll + -r:IKVM.AWT.WinForms.dll + ikvm/awt/*.class + java/awt/*.class + java/awt/color/*.class + java/awt/image/*.class + gnu/java/awt/*.class + gnu/java/awt/color/*.class + sun/awt/*.class + sun/awt/image/*.class + sun/awt/shell/*.class + sun/font/*.class + sun/java2d/*.class + sun/java2d/cmm/lcms/*.class + sun/java2d/pipe/*.class + @OPENJDK@/build/linux-amd64/gensrc/com/sun/accessibility/internal/resources/*.class + @OPENJDK@/build/linux-amd64/gensrc/com/sun/java/swing/plaf/nimbus/*.class + @OPENJDK@/build/linux-amd64/gensrc/com/sun/swing/internal/plaf/basic/resources/*.class + @OPENJDK@/build/linux-amd64/gensrc/com/sun/swing/internal/plaf/metal/resources/*.class + @OPENJDK@/build/linux-amd64/gensrc/com/sun/swing/internal/plaf/synth/resources/*.class + @OPENJDK@/build/linux-amd64/gensrc/sun/awt/resources/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/inputmethods/internal/indicim/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/inputmethods/internal/thaiim/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/java/swing/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/java/swing/plaf/motif/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/java/swing/plaf/nimbus/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/java/swing/plaf/windows/*.class + @OPENJDK@/jdk/src/share/classes/java/applet/*.class + @OPENJDK@/jdk/src/share/classes/java/awt/*.class + @OPENJDK@/jdk/src/share/classes/java/awt/color/*.class + @OPENJDK@/jdk/src/share/classes/java/awt/datatransfer/*.class + @OPENJDK@/jdk/src/share/classes/java/awt/dnd/*.class + @OPENJDK@/jdk/src/share/classes/java/awt/dnd/peer/*.class + @OPENJDK@/jdk/src/share/classes/java/awt/event/*.class + @OPENJDK@/jdk/src/share/classes/java/awt/font/*.class + @OPENJDK@/jdk/src/share/classes/java/awt/geom/*.class + @OPENJDK@/jdk/src/share/classes/java/awt/im/*.class + @OPENJDK@/jdk/src/share/classes/java/awt/im/spi/*.class + @OPENJDK@/jdk/src/share/classes/java/awt/image/*.class + @OPENJDK@/jdk/src/share/classes/java/awt/image/renderable/*.class + @OPENJDK@/jdk/src/share/classes/java/awt/peer/*.class + @OPENJDK@/jdk/src/share/classes/java/awt/print/*.class + @OPENJDK@/jdk/src/share/classes/javax/accessibility/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/border/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/colorchooser/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/event/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/filechooser/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/plaf/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/plaf/basic/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/plaf/metal/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/plaf/multi/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/plaf/synth/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/table/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/text/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/text/html/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/text/html/parser/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/text/rtf/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/tree/*.class + @OPENJDK@/jdk/src/share/classes/javax/swing/undo/*.class + @OPENJDK@/jdk/src/share/classes/sun/applet/*.class + @OPENJDK@/jdk/src/share/classes/sun/awt/*.class + @OPENJDK@/jdk/src/share/classes/sun/awt/datatransfer/*.class + @OPENJDK@/jdk/src/share/classes/sun/awt/dnd/*.class + @OPENJDK@/jdk/src/share/classes/sun/awt/event/*.class + @OPENJDK@/jdk/src/share/classes/sun/awt/geom/*.class + @OPENJDK@/jdk/src/share/classes/sun/awt/im/*.class + @OPENJDK@/jdk/src/share/classes/sun/awt/image/*.class + @OPENJDK@/jdk/src/share/classes/sun/awt/shell/*.class + @OPENJDK@/jdk/src/share/classes/sun/awt/util/*.class + @OPENJDK@/jdk/src/share/classes/sun/font/*.class + @OPENJDK@/jdk/src/share/classes/sun/java2d/*.class + @OPENJDK@/jdk/src/share/classes/sun/java2d/cmm/*.class + @OPENJDK@/jdk/src/share/classes/sun/java2d/pipe/*.class + @OPENJDK@/jdk/src/share/classes/sun/java2d/pisces/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/www/content/image/*.class + @OPENJDK@/jdk/src/share/classes/sun/swing/*.class + @OPENJDK@/jdk/src/share/classes/sun/swing/plaf/*.class + @OPENJDK@/jdk/src/share/classes/sun/swing/plaf/synth/*.class + @OPENJDK@/jdk/src/share/classes/sun/swing/plaf/windows/*.class + @OPENJDK@/jdk/src/share/classes/sun/swing/table/*.class + @OPENJDK@/jdk/src/share/classes/sun/swing/text/*.class + @OPENJDK@/jdk/src/share/classes/sun/swing/text/html/*.class + @OPENJDK@/jdk/src/solaris/classes/sun/awt/windows/*.class +} +{ + -out:IKVM.OpenJDK.Charsets.dll + -baseaddress:0x598A0000 + @OPENJDK@/jdk/src/share/classes/sun/io/*.class + @OPENJDK@/jdk/src/share/classes/sun/nio/cs/ext/*.class +} +{ + -out:IKVM.OpenJDK.Util.dll + -baseaddress:0x5A6E0000 + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/java/util/jar/pack/intrinsic.properties + java/util/zip/*.class + @OPENJDK@/build/linux-amd64/gensrc/sun/util/logging/resources/*.class + @OPENJDK@/build/linux-amd64/gensrc/sun/util/resources/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/java/util/jar/pack/*.class + @OPENJDK@/jdk/src/share/classes/java/util/jar/*.class + @OPENJDK@/jdk/src/share/classes/java/util/logging/*.class + @OPENJDK@/jdk/src/share/classes/java/util/prefs/*.class + @OPENJDK@/jdk/src/share/classes/java/util/spi/*.class + @OPENJDK@/jdk/src/share/classes/java/util/zip/*.class + @OPENJDK@/jdk/src/share/classes/sun/util/calendar/*.class + @OPENJDK@/jdk/src/share/classes/sun/util/resources/*.class + @OPENJDK@/jdk/src/solaris/classes/java/util/prefs/*.class + @OPENJDK@/jdk/src/windows/classes/java/util/prefs/*.class +} +{ + -out:IKVM.OpenJDK.Text.dll + -baseaddress:0x5AB00000 + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/sun/text/* + java/text/*.class + @OPENJDK@/jdk/src/share/classes/java/text/*.class + @OPENJDK@/jdk/src/share/classes/java/text/spi/*.class + @OPENJDK@/jdk/src/share/classes/sun/text/*.class + @OPENJDK@/jdk/src/share/classes/sun/text/normalizer/*.class + @OPENJDK@/jdk/src/share/classes/sun/text/resources/*.class +} +{ + -out:IKVM.OpenJDK.Security.dll + -baseaddress:0x5ACE0000 + sun/security/jgss/wrapper/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/crypto/provider/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/net/ssl/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/net/ssl/internal/ssl/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/net/ssl/internal/www/protocol/https/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/security/auth/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/security/auth/callback/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/security/auth/login/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/security/auth/module/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/security/cert/internal/x509/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/security/jgss/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/security/sasl/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/security/sasl/digest/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/security/sasl/gsskerb/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/security/sasl/util/*.class + @OPENJDK@/jdk/src/share/classes/java/security/acl/*.class + @OPENJDK@/jdk/src/share/classes/java/security/interfaces/*.class + @OPENJDK@/jdk/src/share/classes/java/security/spec/*.class + @OPENJDK@/jdk/src/share/classes/javax/crypto/*.class + @OPENJDK@/jdk/src/share/classes/javax/crypto/interfaces/*.class + @OPENJDK@/jdk/src/share/classes/javax/crypto/spec/*.class + @OPENJDK@/jdk/src/share/classes/javax/net/ssl/*.class + @OPENJDK@/jdk/src/share/classes/javax/security/auth/*.class + @OPENJDK@/jdk/src/share/classes/javax/security/auth/callback/*.class + @OPENJDK@/jdk/src/share/classes/javax/security/auth/kerberos/*.class + @OPENJDK@/jdk/src/share/classes/javax/security/auth/login/*.class + @OPENJDK@/jdk/src/share/classes/javax/security/auth/spi/*.class + @OPENJDK@/jdk/src/share/classes/javax/security/auth/x500/*.class + @OPENJDK@/jdk/src/share/classes/javax/security/cert/*.class + @OPENJDK@/jdk/src/share/classes/javax/security/sasl/*.class + @OPENJDK@/jdk/src/share/classes/org/ietf/jgss/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/www/protocol/https/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/acl/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/ec/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/internal/interfaces/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/internal/spec/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/jgss/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/jgss/krb5/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/jgss/spi/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/jgss/spnego/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/krb5/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/krb5/internal/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/krb5/internal/ccache/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/krb5/internal/crypto/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/krb5/internal/crypto/dk/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/krb5/internal/ktab/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/krb5/internal/rcache/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/krb5/internal/util/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/pkcs/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/pkcs12/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/provider/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/provider/certpath/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/rsa/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/ssl/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/timestamp/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.class + @OPENJDK@/jdk/src/share/classes/sun/security/util/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/validator/*.class + @OPENJDK@/jdk/src/share/classes/sun/security/x509/*.class + @OPENJDK@/jdk/src/windows/classes/sun/security/krb5/internal/tools/*.class + @OPENJDK@/jdk/src/windows/classes/sun/security/provider/*.class +} +{ + -out:IKVM.OpenJDK.Management.dll + -baseaddress:0x5B400000 + com/sun/management/*.class + ConnectorBootstrap$DefaultValues.class + ConnectorBootstrap.class + icedtea/rt/com/sun/jmx/snmp/*.class + icedtea/rt/com/sun/jmx/snmp/daemon/*.class + sun/management/*.class + @OPENJDK@/build/linux-amd64/classes/javax/management/remote/rmi/*.class + @OPENJDK@/build/linux-amd64/classes/org/omg/stub/javax/management/remote/rmi/*.class + @OPENJDK@/build/linux-amd64/gensrc/sun/management/resources/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/defaults/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/interceptor/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/mbeanserver/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/remote/internal/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/remote/protocol/iiop/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/remote/protocol/rmi/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/remote/security/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/remote/util/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/snmp/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/snmp/agent/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/snmp/daemon/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/snmp/defaults/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/snmp/internal/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/snmp/mpm/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jmx/snmp/tasks/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/management/*.class + @OPENJDK@/jdk/src/share/classes/java/lang/management/*.class + @OPENJDK@/jdk/src/share/classes/javax/management/*.class + @OPENJDK@/jdk/src/share/classes/javax/management/loading/*.class + @OPENJDK@/jdk/src/share/classes/javax/management/modelmbean/*.class + @OPENJDK@/jdk/src/share/classes/javax/management/monitor/*.class + @OPENJDK@/jdk/src/share/classes/javax/management/openmbean/*.class + @OPENJDK@/jdk/src/share/classes/javax/management/relation/*.class + @OPENJDK@/jdk/src/share/classes/javax/management/remote/*.class + @OPENJDK@/jdk/src/share/classes/javax/management/remote/rmi/*.class + @OPENJDK@/jdk/src/share/classes/javax/management/timer/*.class + @OPENJDK@/jdk/src/share/classes/sun/management/*.class + @OPENJDK@/jdk/src/share/classes/sun/management/counter/*.class + @OPENJDK@/jdk/src/windows/classes/com/sun/management/*.class +} +{ + -out:IKVM.OpenJDK.Misc.dll + -baseaddress:0x5B7F0000 + @OPENJDK@/build/linux-amd64/impsrc/javax/activity/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/annotation/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/annotation/processing/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/jws/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/jws/soap/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/lang/model/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/lang/model/element/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/lang/model/type/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/lang/model/util/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/tools/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/transaction/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/transaction/xa/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/net/httpserver/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/net/httpserver/spi/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/pept/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/pept/encoding/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/pept/ept/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/pept/presentation/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/pept/protocol/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/pept/transport/*.class + @OPENJDK@/jdk/src/share/classes/java/lang/instrument/*.class + @OPENJDK@/jdk/src/share/classes/javax/script/*.class + @OPENJDK@/jdk/src/share/classes/javax/smartcardio/*.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharASCII.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharConverter.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharCp1250.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharCp1251.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharCp1252.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharCp1253.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharCp1254.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharCp1257.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharISO8859_1.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharISO8859_13.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharISO8859_15.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharISO8859_2.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharISO8859_4.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharISO8859_5.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharISO8859_7.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharISO8859_9.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharKOI8_R.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharSingleByte.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharUnicode.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharUnicodeBig.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharUnicodeBigUnmarked.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharUnicodeLittle.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharUnicodeLittleUnmarked.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharUTF16.class + @OPENJDK@/jdk/src/share/classes/sun/io/ByteToCharUTF8.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharacterEncoding$1.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharacterEncoding$2.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharacterEncoding.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteASCII.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteConverter.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteCp1250.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteCp1251.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteCp1252.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteCp1253.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteCp1254.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteCp1257.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteISO8859_1.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteISO8859_13.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteISO8859_15.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteISO8859_2.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteISO8859_4.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteISO8859_5.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteISO8859_7.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteISO8859_9.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteKOI8_R.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteSingleByte.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteUnicode.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteUnicodeBig.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteUnicodeBigUnmarked.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteUnicodeLittle.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteUnicodeLittleUnmarked.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteUTF16.class + @OPENJDK@/jdk/src/share/classes/sun/io/CharToByteUTF8.class + @OPENJDK@/jdk/src/share/classes/sun/io/ConversionBufferFullException.class + @OPENJDK@/jdk/src/share/classes/sun/io/Converters.class + @OPENJDK@/jdk/src/share/classes/sun/io/MalformedInputException.class + @OPENJDK@/jdk/src/share/classes/sun/io/UnknownCharacterException.class + @OPENJDK@/jdk/src/share/classes/sun/misc/resources/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/httpserver/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/www/protocol/gopher/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/www/protocol/netdoc/*.class + @OPENJDK@/jdk/src/share/classes/sunw/io/*.class + @OPENJDK@/jdk/src/share/classes/sunw/util/*.class +} +{ + -out:IKVM.OpenJDK.Naming.dll + -baseaddress:0x5B8B0000 + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/jndi/ldap/jndiprovider.properties + sun/net/dns/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/dns/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/ldap/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/ldap/ext/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/ldap/pool/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/ldap/sasl/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/toolkit/dir/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/toolkit/url/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/url/dns/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/url/ldap/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/url/ldaps/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/naming/internal/*.class + @OPENJDK@/jdk/src/share/classes/javax/naming/*.class + @OPENJDK@/jdk/src/share/classes/javax/naming/directory/*.class + @OPENJDK@/jdk/src/share/classes/javax/naming/event/*.class + @OPENJDK@/jdk/src/share/classes/javax/naming/ldap/*.class + @OPENJDK@/jdk/src/share/classes/javax/naming/spi/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/dns/*.class + @OPENJDK@/jdk/src/share/classes/sun/net/spi/nameservice/dns/*.class +} +{ + -out:IKVM.OpenJDK.Jdbc.dll + -baseaddress:0x5BA00000 + -resource:META-INF/services/java.sql.Driver=resources/META-INF/services/java.sql.Driver + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/rowset/* + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/javax/sql/* + -r:System.Data.dll + java/sql/*.class + sun/jdbc/odbc/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/rowset/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/rowset/internal/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/rowset/providers/*.class + @OPENJDK@/jdk/src/share/classes/java/sql/*.class + @OPENJDK@/jdk/src/share/classes/javax/sql/*.class + @OPENJDK@/jdk/src/share/classes/javax/sql/rowset/*.class + @OPENJDK@/jdk/src/share/classes/javax/sql/rowset/serial/*.class + @OPENJDK@/jdk/src/share/classes/javax/sql/rowset/spi/*.class +} +{ + -out:IKVM.OpenJDK.Remoting.dll + -baseaddress:0x5BB20000 + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/sun/rmi/* + @OPENJDK@/build/linux-amd64/classes/com/sun/jndi/rmi/registry/*.class + @OPENJDK@/build/linux-amd64/classes/java/rmi/activation/*.class + @OPENJDK@/build/linux-amd64/classes/sun/rmi/registry/*.class + @OPENJDK@/build/linux-amd64/classes/sun/rmi/server/*.class + @OPENJDK@/build/linux-amd64/classes/sun/rmi/transport/*.class + @OPENJDK@/jdk/src/share/classes/java/rmi/*.class + @OPENJDK@/jdk/src/share/classes/java/rmi/activation/*.class + @OPENJDK@/jdk/src/share/classes/java/rmi/dgc/*.class + @OPENJDK@/jdk/src/share/classes/java/rmi/registry/*.class + @OPENJDK@/jdk/src/share/classes/java/rmi/server/*.class + @OPENJDK@/jdk/src/share/classes/javax/rmi/ssl/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/rmi/registry/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/jndi/url/rmi/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/rmi/rmid/*.class + @OPENJDK@/jdk/src/share/classes/sun/rmi/log/*.class + @OPENJDK@/jdk/src/share/classes/sun/rmi/registry/*.class + @OPENJDK@/jdk/src/share/classes/sun/rmi/runtime/*.class + @OPENJDK@/jdk/src/share/classes/sun/rmi/server/*.class + @OPENJDK@/jdk/src/share/classes/sun/rmi/transport/*.class + @OPENJDK@/jdk/src/share/classes/sun/rmi/transport/proxy/*.class + @OPENJDK@/jdk/src/share/classes/sun/rmi/transport/tcp/*.class +} +{ + -out:IKVM.OpenJDK.Beans.dll + -baseaddress:0x5BC40000 + @OPENJDK@/build/linux-amd64/impsrc/com/sun/activation/registries/*.class + @OPENJDK@/build/linux-amd64/impsrc/javax/activation/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/beans/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/beans/finder/*.class + @OPENJDK@/jdk/src/share/classes/java/beans/*.class + @OPENJDK@/jdk/src/share/classes/java/beans/beancontext/*.class + @OPENJDK@/jdk/src/share/classes/sun/beans/editors/*.class + @OPENJDK@/jdk/src/share/classes/sun/beans/infos/*.class +} +{ + -out:IKVM.OpenJDK.Media.dll + -baseaddress:0x5BD00000 + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/META-INF/services/javax.print.* + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/META-INF/services/javax.sound.* + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/imageio/plugins/common/iio-plugin.properties + -recurse:@OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar/sun/print/* + -r:System.Drawing.dll + com/sun/imageio/plugins/jpeg/*.class + icedtea/rt/com/sun/media/sound/*.class + sun/print/*.class + sun/awt/windows/*.class + @OPENJDK@/build/linux-amd64/gensrc/sun/print/resources/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/imageio/plugins/bmp/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/imageio/plugins/common/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/imageio/plugins/gif/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/imageio/plugins/png/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/imageio/plugins/wbmp/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/imageio/spi/*.class + @OPENJDK@/jdk/src/share/classes/com/sun/imageio/stream/*.class + @OPENJDK@/jdk/src/share/classes/javax/imageio/*.class + @OPENJDK@/jdk/src/share/classes/javax/imageio/event/*.class + @OPENJDK@/jdk/src/share/classes/javax/imageio/metadata/*.class + @OPENJDK@/jdk/src/share/classes/javax/imageio/plugins/bmp/*.class + @OPENJDK@/jdk/src/share/classes/javax/imageio/plugins/jpeg/*.class + @OPENJDK@/jdk/src/share/classes/javax/imageio/spi/*.class + @OPENJDK@/jdk/src/share/classes/javax/imageio/stream/*.class + @OPENJDK@/jdk/src/share/classes/javax/print/*.class + @OPENJDK@/jdk/src/share/classes/javax/print/attribute/*.class + @OPENJDK@/jdk/src/share/classes/javax/print/attribute/standard/*.class + @OPENJDK@/jdk/src/share/classes/javax/print/event/*.class + @OPENJDK@/jdk/src/share/classes/javax/sound/midi/*.class + @OPENJDK@/jdk/src/share/classes/javax/sound/midi/spi/*.class + @OPENJDK@/jdk/src/share/classes/javax/sound/sampled/*.class + @OPENJDK@/jdk/src/share/classes/javax/sound/sampled/spi/*.class + @OPENJDK@/jdk/src/share/classes/sun/print/*.class + @OPENJDK@/jdk/src/windows/classes/sun/print/*.class +} diff --git a/openjdk/sun/jdbc/odbc/JdbcOdbcUtils.java b/openjdk/sun/jdbc/odbc/JdbcOdbcUtils.java index c5497e302..6e22995fc 100644 --- a/openjdk/sun/jdbc/odbc/JdbcOdbcUtils.java +++ b/openjdk/sun/jdbc/odbc/JdbcOdbcUtils.java @@ -273,23 +273,24 @@ public static SQLException createSQLException(Throwable th){ if(th instanceof SQLException){ return (SQLException)th; } - if(th instanceof OdbcException){ - SQLException sqlEx = null; - OdbcErrorCollection errors = ((OdbcException)th).get_Errors(); - for(int e = 0; e < errors.get_Count(); e++){ - OdbcError err = errors.get_Item(e); - SQLException newEx = new SQLException(err.get_Message(), err.get_SQLState(), err.get_NativeError()); - if(sqlEx == null){ - sqlEx = newEx; - }else{ - sqlEx.setNextException(newEx); - } - } - if(sqlEx != null){ - sqlEx.initCause(th); - return sqlEx; - } - } + //TODO: not supported in .NET standard + // if(th instanceof OdbcException){ + // SQLException sqlEx = null; + // OdbcErrorCollection errors = ((OdbcException)th).get_Errors(); + // for(int e = 0; e < errors.get_Count(); e++){ + // OdbcError err = errors.get_Item(e); + // SQLException newEx = new SQLException(err.get_Message(), err.get_SQLState(), err.get_NativeError()); + // if(sqlEx == null){ + // sqlEx = newEx; + // }else{ + // sqlEx.setNextException(newEx); + // } + // } + // if(sqlEx != null){ + // sqlEx.initCause(th); + // return sqlEx; + // } + // } if(th instanceof DbException){ DbException dbEx = (DbException)th; return new SQLException(dbEx.get_Message(), "S1000", dbEx.get_ErrorCode(), th); diff --git a/packages.config b/packages.config new file mode 100644 index 000000000..e4b475ea9 --- /dev/null +++ b/packages.config @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/reflect/Emit/AssemblyBuilder.cs b/reflect/Emit/AssemblyBuilder.cs index 20b8a77bf..06df653d1 100644 --- a/reflect/Emit/AssemblyBuilder.cs +++ b/reflect/Emit/AssemblyBuilder.cs @@ -511,7 +511,7 @@ internal override Type FindType(TypeName typeName) { foreach (ModuleBuilder mb in modules) { - Type type = mb.FindType(typeName); + var type = mb.FindType(typeName); if (type != null) { return type; @@ -519,7 +519,7 @@ internal override Type FindType(TypeName typeName) } foreach (Module module in addedModules) { - Type type = module.FindType(typeName); + var type = module.FindType(typeName); if (type != null) { return type; @@ -639,6 +639,11 @@ internal override IList GetCustomAttributesData(Type attrib } return list; } + + public override string ToString() + { + return FullName; + } } sealed class ManifestModule : Module diff --git a/reflect/Emit/ModuleBuilder.cs b/reflect/Emit/ModuleBuilder.cs index ba9f55732..9ee65de02 100644 --- a/reflect/Emit/ModuleBuilder.cs +++ b/reflect/Emit/ModuleBuilder.cs @@ -26,6 +26,7 @@ Jeroen Frijters using System.IO; using System.Diagnostics; using System.Diagnostics.SymbolStore; +using System.Linq; using System.Security.Cryptography; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -622,7 +623,35 @@ internal int ImportType(Type type) } else { - rec.ResolutionScope = ImportAssemblyRef(type.Assembly); + var typeName = TypeName.Split(TypeNameParser.Unescape(type.FullName)); + var assembly = type.Assembly; + var typeDefinitions = universe.assemblies.Select(a => (a, a.ManifestModule.FindType(typeName))) + .Where(t => t.Item2 != null); + + bool isNetStandardAssembly(Assembly asm) + { + return asm.FullName.StartsWith("IKVM") || + universe.netStandardAssemblies.Any(a => a.FullName == asm.FullName); + } + + if (!isNetStandardAssembly(type.Assembly)) + { + var oldAssembly = assembly; + + var tuple = typeDefinitions.FirstOrDefault(td => isNetStandardAssembly(td.a)); + if (tuple.a != null) + { + assembly = tuple.a; + + Console.WriteLine($"{oldAssembly.FullName} -> {assembly}"); + } + else + { + Console.WriteLine($"Error fetching {type.FullName} from {type.Assembly.FullName}"); + } + } + + rec.ResolutionScope = ImportAssemblyRef(assembly); } rec.TypeName = this.Strings.Add(type.__Name); string ns = type.__Namespace; diff --git a/reflect/IKVM.Reflection.csproj b/reflect/IKVM.Reflection.csproj index ff8675b1e..8421c949c 100644 --- a/reflect/IKVM.Reflection.csproj +++ b/reflect/IKVM.Reflection.csproj @@ -1,142 +1,20 @@ - - + - Debug - AnyCPU 9.0.30729 - 2.0 {4CB170EF-DFE6-4A56-9E1B-A85449E827A7} - Library - Properties - IKVM.Reflection - IKVM.Reflection - v2.0 - 512 - - - - - - - - - - + netstandard2.0 + + + IKVM.NET Reflection + Managed (partial) Reflection implementation for use by ikvmc - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 + + DEBUG;NETSTANDARD;NETSTANDARD2_0 - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 + + RELEASE;NETSTANDARD;NETSTANDARD2_0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - \ No newline at end of file diff --git a/reflect/Module.cs b/reflect/Module.cs index cafad9ffa..894f233fa 100644 --- a/reflect/Module.cs +++ b/reflect/Module.cs @@ -333,7 +333,7 @@ public Type GetType(string className, bool throwOnError, bool ignoreCase) return null; } } - Type type = FindType(TypeName.Split(TypeNameParser.Unescape(parser.FirstNamePart))); + var type = FindType(TypeName.Split(TypeNameParser.Unescape(parser.FirstNamePart))); if (type == null && __IsMissing) { throw new MissingModuleException((MissingModule)this); diff --git a/reflect/Properties/AssemblyInfo.cs b/reflect/Properties/AssemblyInfo.cs deleted file mode 100644 index 6422e190d..000000000 --- a/reflect/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,28 +0,0 @@ -/* - Copyright (C) 2008 Jeroen Frijters - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jeroen Frijters - jeroen@frijters.net - -*/ -using System.Reflection; -using System.Runtime.CompilerServices; - -[assembly: AssemblyTitle("IKVM.NET Reflection")] -[assembly: AssemblyDescription("Managed (partial) Reflection implementation for use by ikvmc")] diff --git a/reflect/Reader/AssemblyReader.cs b/reflect/Reader/AssemblyReader.cs index 0905895e4..6b0570179 100644 --- a/reflect/Reader/AssemblyReader.cs +++ b/reflect/Reader/AssemblyReader.cs @@ -103,7 +103,7 @@ public override Type[] GetTypes() internal override Type FindType(TypeName typeName) { - Type type = manifestModule.FindType(typeName); + var type = manifestModule.FindType(typeName); for (int i = 0; type == null && i < externalModules.Length; i++) { if ((manifestModule.File.records[i].Flags & ContainsNoMetaData) == 0) @@ -251,5 +251,10 @@ internal override IList GetCustomAttributesData(Type attrib { return manifestModule.GetCustomAttributes(0x20000001, attributeType); } + + public override string ToString() + { + return FullName; + } } } diff --git a/reflect/Reader/ModuleReader.cs b/reflect/Reader/ModuleReader.cs index e3b2bcad7..7be872d22 100644 --- a/reflect/Reader/ModuleReader.cs +++ b/reflect/Reader/ModuleReader.cs @@ -401,7 +401,7 @@ internal Type ResolveType(int metadataToken, IGenericContext context) { Module module = ResolveModuleRef(ModuleRef.records[(scope & 0xFFFFFF) - 1]); TypeName typeName = GetTypeName(TypeRef.records[index].TypeNameSpace, TypeRef.records[index].TypeName); - Type type = module.FindType(typeName); + var type = module.FindType(typeName); if (type == null) { throw new TypeLoadException(String.Format("Type '{0}' not found in module '{1}'", typeName, module.Name)); diff --git a/reflect/Universe.cs b/reflect/Universe.cs index b7068323d..c71ec8c1e 100644 --- a/reflect/Universe.cs +++ b/reflect/Universe.cs @@ -80,7 +80,8 @@ public enum AssemblyComparisonResult public sealed class Universe : IDisposable { internal readonly Dictionary canonicalizedTypes = new Dictionary(); - private readonly List assemblies = new List(); + public readonly List assemblies = new List(); + public readonly ISet netStandardAssemblies = new HashSet(); private readonly List dynamicAssemblies = new List(); private readonly Dictionary assembliesByName = new Dictionary(); private readonly Dictionary importedTypes = new Dictionary(); @@ -144,6 +145,8 @@ public sealed class Universe : IDisposable private Type typeof_System_Security_Permissions_SecurityAction; private List resolvers = new List(); + public bool IsTargettingNetStandard { get; set; } + internal Assembly Mscorlib { get { return Load("mscorlib"); } diff --git a/reflect/reflect.build b/reflect/reflect.build index a52fee095..4a8b1af47 100644 --- a/reflect/reflect.build +++ b/reflect/reflect.build @@ -8,6 +8,9 @@ + + + @@ -108,6 +111,12 @@ + + + + + + diff --git a/runtime/AssemblyInfo.cs.in b/runtime/AssemblyInfo.cs.in index 9393e2d8a..99435feef 100644 --- a/runtime/AssemblyInfo.cs.in +++ b/runtime/AssemblyInfo.cs.in @@ -32,7 +32,7 @@ using System.Runtime.CompilerServices; [assembly: AssemblyTitle("IKVM.NET Runtime")] [assembly: AssemblyDescription("JVM for Mono and .NET")] -[assembly: System.Security.AllowPartiallyTrustedCallers] +//[assembly: System.Security.AllowPartiallyTrustedCallers] #if SIGNCODE [assembly: InternalsVisibleTo("IKVM.Runtime.JNI, PublicKey=@PUBLICKEY@")] diff --git a/runtime/CodeEmitter.cs b/runtime/CodeEmitter.cs index 8d90847fe..fe155ba68 100644 --- a/runtime/CodeEmitter.cs +++ b/runtime/CodeEmitter.cs @@ -90,7 +90,11 @@ internal void Declare(ILGenerator ilgen) local = ilgen.DeclareLocal(type); if (name != null) { +#if NETSTANDARD + throw new PlatformNotSupportedException(); +#else local.SetLocalSymInfo(name); +#endif } } } @@ -478,11 +482,13 @@ private void RealEmitPseudoOpCode(int ilOffset, CodeType type, object data) break; case CodeType.ReleaseTempLocal: break; +#if !NETSTANDARD case CodeType.SequencePoint: ilgen_real.MarkSequencePoint(symbols, (int)data, 0, (int)data + 1, 0); // we emit a nop to make sure we always have an instruction associated with the sequence point ilgen_real.Emit(OpCodes.Nop); break; +#endif case CodeType.Label: ilgen_real.MarkLabel(((CodeEmitterLabel)data).Label); break; @@ -595,7 +601,11 @@ private void RealEmitOpCode(OpCode opcode, object arg) else if (arg is CalliWrapper) { CalliWrapper args = (CalliWrapper)arg; +#if NETSTANDARD + ilgen_real.EmitCalli(opcode, CallingConventions.Any, args.returnType, args.parameterTypes, new Type[0]); +#else ilgen_real.EmitCalli(opcode, args.unmanagedCallConv, args.returnType, args.parameterTypes); +#endif } else { @@ -1842,7 +1852,11 @@ private void DumpMethod() internal void DefineSymbolDocument(ModuleBuilder module, string url, Guid language, Guid languageVendor, Guid documentType) { +#if NETSTANDARD + throw new PlatformNotSupportedException(); +#else symbols = module.DefineDocument(url, language, languageVendor, documentType); +#endif } internal CodeEmitterLocal UnsafeAllocTempLocal(Type type) diff --git a/runtime/DotNetTypeWrapper.cs b/runtime/DotNetTypeWrapper.cs index 32bb4272e..bf0b2e6e0 100644 --- a/runtime/DotNetTypeWrapper.cs +++ b/runtime/DotNetTypeWrapper.cs @@ -1481,7 +1481,7 @@ internal override void Apply(ClassLoaderWrapper loader, TypeBuilder tb, object a #if STATIC_COMPILER tb.__AddDeclarativeSecurity(MakeCustomAttributeBuilder(loader, annotation)); #elif STUB_GENERATOR -#else +#elif !NETSTANDARD SecurityAction action; PermissionSet permSet; if (MakeDeclSecurity(type, annotation, out action, out permSet)) @@ -1503,7 +1503,7 @@ internal override void Apply(ClassLoaderWrapper loader, ConstructorBuilder cb, o #if STATIC_COMPILER cb.__AddDeclarativeSecurity(MakeCustomAttributeBuilder(loader, annotation)); #elif STUB_GENERATOR -#else +#elif !NETSTANDARD SecurityAction action; PermissionSet permSet; if (MakeDeclSecurity(type, annotation, out action, out permSet)) @@ -1525,7 +1525,7 @@ internal override void Apply(ClassLoaderWrapper loader, MethodBuilder mb, object #if STATIC_COMPILER mb.__AddDeclarativeSecurity(MakeCustomAttributeBuilder(loader, annotation)); #elif STUB_GENERATOR -#else +#elif !NETSTANDARD SecurityAction action; PermissionSet permSet; if (MakeDeclSecurity(type, annotation, out action, out permSet)) diff --git a/runtime/DynamicClassLoader.cs b/runtime/DynamicClassLoader.cs index f570c5f2a..64b6f815b 100644 --- a/runtime/DynamicClassLoader.cs +++ b/runtime/DynamicClassLoader.cs @@ -332,11 +332,15 @@ internal void FinishAll() } if(unloadableContainer != null) { +#if NETSTANDARD + throw new PlatformNotSupportedException(); +#else unloadableContainer.CreateType(); foreach(TypeBuilder tb in unloadables.Values) { tb.CreateType(); } +#endif } #if STATIC_COMPILER if(proxyHelperContainer != null) @@ -350,7 +354,7 @@ internal void FinishAll() #endif // STATIC_COMPILER } -#if !STATIC_COMPILER +#if !STATIC_COMPILER && !NETSTANDARD internal static void SaveDebugImages() { JVM.FinishingForDebugSave = true; @@ -429,7 +433,11 @@ private static ModuleBuilder CreateModuleBuilder() AssemblyBuilderAccess access; if(JVM.IsSaveDebugImage) { +#if NETSTANDARD + throw new PlatformNotSupportedException(); +#else access = AssemblyBuilderAccess.RunAndSave; +#endif } #if CLASSGC else if(JVM.classUnloading @@ -450,7 +458,9 @@ private static ModuleBuilder CreateModuleBuilder() } #endif AssemblyBuilder assemblyBuilder = -#if NET_4_0 +#if NETSTANDARD + AssemblyBuilder.DefineDynamicAssembly(name, access, attribs); +#elif NET_4_0 AppDomain.CurrentDomain.DefineDynamicAssembly(name, access, null, true, attribs); #else AppDomain.CurrentDomain.DefineDynamicAssembly(name, access, null, null, null, null, null, true, attribs); @@ -459,7 +469,12 @@ private static ModuleBuilder CreateModuleBuilder() bool debug = JVM.EmitSymbols; CustomAttributeBuilder debugAttr = new CustomAttributeBuilder(typeof(DebuggableAttribute).GetConstructor(new Type[] { typeof(bool), typeof(bool) }), new object[] { true, debug }); assemblyBuilder.SetCustomAttribute(debugAttr); - ModuleBuilder moduleBuilder = JVM.IsSaveDebugImage ? assemblyBuilder.DefineDynamicModule(name.Name, name.Name + ".dll", debug) : assemblyBuilder.DefineDynamicModule(name.Name, debug); + ModuleBuilder moduleBuilder = +#if NETSTANDARD + assemblyBuilder.DefineDynamicModule(name.Name); +#else + JVM.IsSaveDebugImage ? assemblyBuilder.DefineDynamicModule(name.Name, name.Name + ".dll", debug) : assemblyBuilder.DefineDynamicModule(name.Name, debug); +#endif moduleBuilder.SetCustomAttribute(new CustomAttributeBuilder(typeof(IKVM.Attributes.JavaModuleAttribute).GetConstructor(Type.EmptyTypes), new object[0])); return moduleBuilder; } diff --git a/runtime/DynamicTypeWrapper.cs b/runtime/DynamicTypeWrapper.cs index 54e8c4b21..15ebfda2f 100644 --- a/runtime/DynamicTypeWrapper.cs +++ b/runtime/DynamicTypeWrapper.cs @@ -4156,6 +4156,9 @@ internal Type FinishImpl() Profiler.Enter("TypeBuilder.CreateType"); try { +#if NETSTANDARD + throw new PlatformNotSupportedException(); +#else type = typeBuilder.CreateType(); if (typeCallerID != null) { @@ -4168,6 +4171,7 @@ internal Type FinishImpl() proc(); } } +#endif #if STATIC_COMPILER if (tbFields != null) { @@ -4586,9 +4590,16 @@ static JniProxyBuilder() { AssemblyName name = new AssemblyName(); name.Name = "jniproxy"; - AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly(name, JVM.IsSaveDebugImage ? AssemblyBuilderAccess.RunAndSave : AssemblyBuilderAccess.Run); + AssemblyBuilder ab = +#if NETSTANDARD + AssemblyBuilder.DefineDynamicAssembly(name, AssemblyBuilderAccess.Run); + mod = ab.DefineDynamicModule("jniproxy.dll"); +#else + AppDomain.CurrentDomain.DefineDynamicAssembly(name, JVM.IsSaveDebugImage ? AssemblyBuilderAccess.RunAndSave : AssemblyBuilderAccess.Run); + DynamicClassLoader.RegisterForSaveDebug(ab); mod = ab.DefineDynamicModule("jniproxy.dll", "jniproxy.dll"); +#endif CustomAttributeBuilder cab = new CustomAttributeBuilder(JVM.LoadType(typeof(JavaModuleAttribute)).GetConstructor(Type.EmptyTypes), new object[0]); mod.SetCustomAttribute(cab); } @@ -4615,7 +4626,11 @@ internal static void Generate(DynamicTypeWrapper.FinishContext context, CodeEmit CodeEmitter ilgen = CodeEmitter.Create(mb); JniBuilder.Generate(context, ilgen, wrapper, mw, tb, classFile, m, args, true); ilgen.DoEmit(); +#if NETSTANDARD + throw new PlatformNotSupportedException(); +#else tb.CreateType(); +#endif for (int i = 0; i < argTypes.Length - 1; i++) { ilGenerator.Emit(OpCodes.Ldarg, (short)i); @@ -4631,6 +4646,8 @@ internal static void Generate(DynamicTypeWrapper.FinishContext context, CodeEmit } #endif // !STATIC_COMPILER + + private static class JniBuilder { #if STATIC_COMPILER @@ -5479,6 +5496,9 @@ internal override string GetSourceFileName() private int GetMethodBaseToken(MethodBase mb) { ConstructorInfo ci = mb as ConstructorInfo; +#if NETSTANDARD + return classLoader.GetTypeWrapperFactory().ModuleBuilder.MetadataToken; +#else if (ci != null) { return classLoader.GetTypeWrapperFactory().ModuleBuilder.GetConstructorToken(ci).Token; @@ -5487,6 +5507,7 @@ private int GetMethodBaseToken(MethodBase mb) { return classLoader.GetTypeWrapperFactory().ModuleBuilder.GetMethodToken((MethodInfo)mb).Token; } +#endif } internal override int GetSourceLineNumber(MethodBase mb, int ilOffset) diff --git a/runtime/IKVM.Runtime.8.csproj b/runtime/IKVM.Runtime.8.csproj index 0edb70c07..eac9e678d 100644 --- a/runtime/IKVM.Runtime.8.csproj +++ b/runtime/IKVM.Runtime.8.csproj @@ -1,174 +1,82 @@ - + Local 9.0.30729 - 2.0 {F5C7B588-0403-4AF2-A4DE-5697DE21BC2C} - Debug - AnyCPU - - - - + + IKVM.Runtime - - + JScript Grid IE50 - false - Library - - + OnBuildSuccess - - - - - - - 2.0 - - - bin\Debug\ - false + + + + netstandard2.0 + false + + 285212672 - false - - - TRACE;DEBUG - - - true 4096 - false - - - false - false false - false - 4 - full - prompt + false + + false + + + + + + + Debug;Release;Debug FIRST PASS + AnyCPU + + + + + + + NET_4_0;CLASSGC + + + NET_4_0;CLASSGC;DEBUG;FIRST_PASS + true + false + + + RELEASE;NETSTANDARD;NETSTANDARD2_0 - - False + ..\bin\IKVM.OpenJDK.Core.dll - - False + ..\bin\IKVM.OpenJDK.Misc.dll - - False + ..\bin\IKVM.OpenJDK.Util.dll - - False - .\IKVM.Runtime.JNI.dll - - - System + + IKVM.Runtime.JNI.dll - - Code - - - Code - - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - - Code - - - Code - - - - Code - - - - Code - - - - - - - - - - - - - - - - Code - - - - - Code - - - - - Code - - - - - - Code - - - - Code - - - Code - - - - Code - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + diff --git a/runtime/IKVM.Runtime.JNI.8.csproj b/runtime/IKVM.Runtime.JNI.8.csproj index 1b0bec68b..49e2f1560 100644 --- a/runtime/IKVM.Runtime.JNI.8.csproj +++ b/runtime/IKVM.Runtime.JNI.8.csproj @@ -1,84 +1,114 @@ - + Local 9.0.30729 - 2.0 {CEA4FEC4-1D24-4004-908E-F86C8D7AC772} - Debug - AnyCPU - - - - + + IKVM.Runtime.JNI - - + JScript Grid IE50 - false - Library - - + OnBuildSuccess - - - - - - - 2.0 - - - bin\Debug\ - true + + + + netstandard2.0 + false + + 285212672 - false - - - TRACE;DEBUG;WHIDBEY;OPENJDK - - - true 4096 - false - - - false - false false - false - 4 - full - prompt + false + + false + + + + + + + Debug;Release;Debug FIRST PASS + AnyCPU + + + + + + + NET_4_0;CLASSGC;NETSTANDARD;NETSTANDARD2_0 + true + + + RELEASE;NETSTANDARD;NETSTANDARD2_0 + true - - False + ..\bin\IKVM.OpenJDK.Core.dll - - False - .\IKVM.Runtime.dll - - - System + + ..\bin\IKVM.Runtime.dll Code - - - Code - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + diff --git a/runtime/MemberWrapper.cs b/runtime/MemberWrapper.cs index 453061fe1..727abf897 100644 --- a/runtime/MemberWrapper.cs +++ b/runtime/MemberWrapper.cs @@ -921,12 +921,22 @@ internal void ResolveMethod() MethodBuilder mb = method as MethodBuilder; if(mb != null) { - method = mb.Module.ResolveMethod(mb.GetToken().Token); +#if NETSTANDARD + var metadataToken = mb.MetadataToken; +#else + var metadataToken = mb.GetToken().Token; +#endif + method = mb.Module.ResolveMethod(metadataToken); } ConstructorBuilder cb = method as ConstructorBuilder; if(cb != null) { - method = cb.Module.ResolveMethod(cb.GetToken().Token); +#if NETSTANDARD + var metadataToken = cb.MetadataToken; +#else + var metadataToken = cb.GetToken().Token; +#endif + method = cb.Module.ResolveMethod(metadataToken); } } @@ -1395,7 +1405,11 @@ internal virtual void ResolveField() FieldBuilder fb = field as FieldBuilder; if(fb != null) { +#if NETSTANDARD + field = fb.Module.ResolveField(fb.MetadataToken); +#else field = fb.Module.ResolveField(fb.GetToken().Token); +#endif } } diff --git a/runtime/Serialization.cs b/runtime/Serialization.cs index 346a1336f..295f1ea25 100644 --- a/runtime/Serialization.cs +++ b/runtime/Serialization.cs @@ -45,12 +45,16 @@ public static class Serialization private static readonly TypeWrapper iobjectreference = ClassLoaderWrapper.GetWrapperFromType(JVM.Import(typeof(IObjectReference))); private static readonly TypeWrapper serializable = ClassLoaderWrapper.LoadClassCritical("java.io.Serializable"); private static readonly TypeWrapper externalizable = ClassLoaderWrapper.LoadClassCritical("java.io.Externalizable"); +#if !NETSTANDARD private static readonly PermissionSet psetSerializationFormatter; +#endif static Serialization() { +#if !NETSTANDARD psetSerializationFormatter = new PermissionSet(PermissionState.None); psetSerializationFormatter.AddPermission(new SecurityPermission(SecurityPermissionFlag.SerializationFormatter)); +#endif } private static bool IsSafeForAutomagicSerialization(TypeWrapper wrapper) @@ -166,7 +170,9 @@ private static void AddGetObjectData(TypeWrapper wrapper) new Type[] { JVM.Import(typeof(SerializationInfo)), JVM.Import(typeof(StreamingContext)) }); getObjectData.SetCustomAttribute(securityCriticalAttribute); AttributeHelper.HideFromJava(getObjectData); +#if !NETSTANDARD getObjectData.AddDeclarativeSecurity(SecurityAction.Demand, psetSerializationFormatter); +#endif tb.DefineMethodOverride(getObjectData, JVM.Import(typeof(ISerializable)).GetMethod("GetObjectData")); CodeEmitter ilgen = CodeEmitter.Create(getObjectData); ilgen.Emit(OpCodes.Ldarg_0); @@ -183,7 +189,9 @@ private static ConstructorInfo AddConstructor(TypeBuilder tb, MethodWrapper defa { ConstructorBuilder ctor = tb.DefineConstructor(MethodAttributes.Family, CallingConventions.Standard, new Type[] { JVM.Import(typeof(SerializationInfo)), JVM.Import(typeof(StreamingContext)) }); AttributeHelper.HideFromJava(ctor); +#if !NETSTANDARD ctor.AddDeclarativeSecurity(SecurityAction.Demand, psetSerializationFormatter); +#endif CodeEmitter ilgen = CodeEmitter.Create(ctor); ilgen.Emit(OpCodes.Ldarg_0); if (defaultConstructor != null) diff --git a/runtime/TypeWrapper.cs b/runtime/TypeWrapper.cs index 5d2225e05..fa9a4c262 100644 --- a/runtime/TypeWrapper.cs +++ b/runtime/TypeWrapper.cs @@ -1246,6 +1246,12 @@ internal static void SetRuntimeCompatibilityAttribute(AssemblyBuilder assemblyBu new PropertyInfo[] { runtimeCompatibilityAttribute.GetProperty("WrapNonExceptionThrows") }, new object[] { true }, new FieldInfo[0], new object[0])); } + + internal static void SetTargetFrameworkAttribute(AssemblyBuilder assemblyBuilder, string name) + { + ConstructorInfo remappedClassAttribute = JVM.Import(typeof(System.Runtime.Versioning.TargetFrameworkAttribute)).GetConstructor(new[] { Types.String }); + assemblyBuilder.SetCustomAttribute(new CustomAttributeBuilder(remappedClassAttribute, new object[] { name })); + } } static class EnumHelper @@ -1463,7 +1469,7 @@ protected static object ConvertValue(ClassLoaderWrapper loader, Type targetType, } } -#if !STATIC_COMPILER && !STUB_GENERATOR +#if !STATIC_COMPILER && !STUB_GENERATOR && !NETSTANDARD internal static bool MakeDeclSecurity(Type type, object annotation, out SecurityAction action, out PermissionSet permSet) { ConstructorInfo ci = type.GetConstructor(new Type[] { typeof(SecurityAction) }); @@ -1721,7 +1727,9 @@ private static bool IsForbiddenTypeParameterType(Type type) { // these are the types that may not be used as a type argument when instantiating a generic type return type == Types.Void +#if !NETSTANDARD || type == JVM.Import(typeof(ArgIterator)) +#endif || type == JVM.Import(typeof(RuntimeArgumentHandle)) || type == JVM.Import(typeof(TypedReference)) || type.ContainsGenericParameters diff --git a/runtime/atomic.cs b/runtime/atomic.cs index 60ac1e48a..a09ec7225 100644 --- a/runtime/atomic.cs +++ b/runtime/atomic.cs @@ -22,6 +22,7 @@ Jeroen Frijters */ +#if !NETSTANDARD using System; using System.Collections.Generic; #if STATIC_COMPILER @@ -166,3 +167,4 @@ private static void EmitSet(string name, TypeBuilder tb, FieldInfo field) ilgen.DoEmit(); } } +#endif diff --git a/runtime/intrinsics.cs b/runtime/intrinsics.cs index c6577535d..cbb92bcd8 100644 --- a/runtime/intrinsics.cs +++ b/runtime/intrinsics.cs @@ -337,9 +337,14 @@ private static bool System_arraycopy(EmitIntrinsicContext eic) private static bool AtomicReferenceFieldUpdater_newUpdater(EmitIntrinsicContext eic) { +#if NETSTANDARD + throw new PlatformNotSupportedException(); +#else return AtomicReferenceFieldUpdaterEmitter.Emit(eic.Context, eic.Caller.DeclaringType, eic.Emitter, eic.ClassFile, eic.OpcodeIndex, eic.Code, eic.Flags); +#endif } +#if !NETSTANDARD private static bool String_toCharArray(EmitIntrinsicContext eic) { if (eic.MatchRange(-1, 2) @@ -409,6 +414,7 @@ private static void EmitLoadCharArrayLiteral(CodeEmitter ilgen, string str, Type ilgen.Emit(OpCodes.Ldtoken, fb); ilgen.Emit(OpCodes.Call, JVM.Import(typeof(System.Runtime.CompilerServices.RuntimeHelpers)).GetMethod("InitializeArray", new Type[] { Types.Array, JVM.Import(typeof(RuntimeFieldHandle)) })); } +#endif private static bool Reflection_getCallerClass(EmitIntrinsicContext eic) { @@ -506,6 +512,9 @@ private static bool Class_getPrimitiveClass(EmitIntrinsicContext eic) private static bool ThreadLocal_new(EmitIntrinsicContext eic) { +#if NETSTANDARD + throw new PlatformNotSupportedException(); +#else // it is only valid to replace a ThreadLocal instantiation by our ThreadStatic based version, if we can prove that the instantiation only happens once // (which is the case when we're in and there aren't any branches that lead to the current position) if (eic.Caller.Name != StringConstants.CLINIT) @@ -528,8 +537,10 @@ private static bool ThreadLocal_new(EmitIntrinsicContext eic) } eic.Emitter.Emit(OpCodes.Newobj, DefineThreadLocalType(eic.Context, eic.OpcodeIndex, eic.Caller)); return true; +#endif } +#if !NETSTANDARD private static ConstructorBuilder DefineThreadLocalType(DynamicTypeWrapper.FinishContext context, int opcodeIndex, MethodWrapper caller) { TypeWrapper threadLocal = ClassLoaderWrapper.LoadClassCritical("ikvm.internal.IntrinsicThreadLocal"); @@ -560,5 +571,6 @@ private static ConstructorBuilder DefineThreadLocalType(DynamicTypeWrapper.Finis }); return cb; } +#endif } } diff --git a/runtime/openjdk.cs b/runtime/openjdk.cs index ae7249b84..4bd611299 100644 --- a/runtime/openjdk.cs +++ b/runtime/openjdk.cs @@ -286,7 +286,12 @@ internal static DynamicMethod Create(string name, Type owner, bool nonPublic, Ty if (dynamicModule == null) { // we have to create a module that is security critical to hold the dynamic method, if we want to be able to emit unverifiable code - AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName(""), AssemblyBuilderAccess.RunAndCollect); + AssemblyBuilder ab = +#if NETSTANDARD + AssemblyBuilder.DefineDynamicAssembly(new AssemblyName(""), AssemblyBuilderAccess.RunAndCollect); +#else + AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName(""), AssemblyBuilderAccess.RunAndCollect); +#endif Interlocked.CompareExchange(ref dynamicModule, ab.DefineDynamicModule(""), null); } return new DynamicMethod(name, MethodAttributes.Public | MethodAttributes.Static, CallingConventions.Standard, returnType, paramTypes, dynamicModule, true); @@ -449,11 +454,13 @@ public static System.IO.Stream open(String name, System.IO.FileMode fileMode, Sy { return VirtualFileSystem.Open(name, fileMode, fileAccess); } +#if !NETSTANDARD else if (fileMode == System.IO.FileMode.Append) { // this is the way to get atomic append behavior for all writes return new System.IO.FileStream(name, fileMode, System.Security.AccessControl.FileSystemRights.AppendData, System.IO.FileShare.ReadWrite, 1, System.IO.FileOptions.None); } +#endif else { return new System.IO.FileStream(name, fileMode, fileAccess, System.IO.FileShare.ReadWrite, 1, false); diff --git a/runtime/runtime.build b/runtime/runtime.build index 034b03b0b..daa326696 100644 --- a/runtime/runtime.build +++ b/runtime/runtime.build @@ -17,11 +17,14 @@ - + + + + @@ -34,7 +37,7 @@ - + @@ -44,10 +47,13 @@ - + + + + - + @@ -70,6 +76,7 @@ + @@ -77,7 +84,7 @@ - + @@ -137,11 +144,30 @@ - - + + + + + + + + + + + + + + + + + + + + + diff --git a/runtime/vm.cs b/runtime/vm.cs index 2e354c376..4b5c40683 100644 --- a/runtime/vm.cs +++ b/runtime/vm.cs @@ -48,7 +48,11 @@ public static void PrepareForSaveDebugImage() public static void SaveDebugImage() { +#if NETSTANDARD + throw new PlatformNotSupportedException(); +#else DynamicClassLoader.SaveDebugImages(); +#endif } #if !FIRST_PASS diff --git a/tools/depcheck.cs b/tools/depcheck.cs index ee86e43a6..f08c070b0 100644 --- a/tools/depcheck.cs +++ b/tools/depcheck.cs @@ -19,7 +19,7 @@ 3. This notice may not be removed or altered from any source distribution. Jeroen Frijters jeroen@frijters.net - + */ using System; @@ -49,7 +49,13 @@ static int Main(string[] args) deps.Add(dep, new List()); } } - List whitelist = new List(new string[] { "mscorlib", "System", "IKVM.Runtime", "IKVM.OpenJDK.Core" }); + List whitelist = new List(new string[] { "IKVM.Runtime", "IKVM.OpenJDK.Core" }); + if (args.Length > 2 && "netstandard".Equals(args[2], StringComparison.CurrentCultureIgnoreCase)) { + whitelist.Add("netstandard"); + } else { + whitelist.AddRange(new[] { "mscorlib", "System" }); + } + bool fail = false; foreach (string line in File.ReadAllLines(args[0])) { diff --git a/tools/tools.build b/tools/tools.build index aa4d56ab0..c5e9f8562 100644 --- a/tools/tools.build +++ b/tools/tools.build @@ -1,5 +1,6 @@ +