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 @@
+