Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Chen (CLR) <jochen@microsoft.com>2015-11-16 23:59:35 +0300
committerJohn Chen (CLR) <jochen@microsoft.com>2015-12-16 00:14:33 +0300
commit3d67d94d0c1e4067340dd473015e3b72eaf57b03 (patch)
tree76ee6e8c0fab18f9169e7ca54e760d0778a85fea /src/packaging
parenta55a1d6136bccca166efc4f7a10bba7e49438e03 (diff)
Add JIT-EE interface wrappers to handle exceptions
* When JIT calls into the JIT-EE interface, the call is wrapped. All managed exceptions are caught by the wrapper, and re-throw as native exceptions. * The call from ILCompiler to JIT is also wrapped. The wrapper catches all native exceptions, and re-throws them as managed exceptions. * The message and call stack from the original managed exception is captured and stored in the unmanaged exception object, and restored in the managed exception thrown by the JIT wrapper. * A new native module (jitinterface.dll or jitinterface.so) is added to contain the native part of the wrappers. Long term, we should consider whether to merge this into JIT.
Diffstat (limited to 'src/packaging')
-rw-r--r--src/packaging/packages.targets7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/packaging/packages.targets b/src/packaging/packages.targets
index 4d8ee1f37..70c28906e 100644
--- a/src/packaging/packages.targets
+++ b/src/packaging/packages.targets
@@ -46,6 +46,13 @@
<Text><![CDATA[ <file src="../%(Identity)" target="runtimes/any/lib/dotnet/%(Identity)" /> ]]></Text>
</ILCompilerBinPlace>
+ <ILCompilerNativeFiles Include="jitinterface.dll" Condition="'$(OSGroup)'=='Windows_NT'" />
+ <ILCompilerNativeFiles Include="jitinterface.so" Condition="'$(OSGroup)'=='Linux'" />
+ <ILCompilerNativeFiles Include="jitinterface.dylib" Condition="'$(OSGroup)'=='OSX'" />
+ <ILCompilerBinPlace Include="@(ILCompilerNativeFiles)">
+ <Text><![CDATA[ <file src="../%(Identity)" target="runtimes/$(NuPkgRid)/native/lib/dotnet/%(Identity)" /> ]]></Text>
+ </ILCompilerBinPlace>
+
<!-- IL.Compiler.SDK target files -->
<ILCompilerSdkFiles Include="Runtime" />
<ILCompilerSdkFiles Include="PortableRuntime" />