diff options
author | John Chen (CLR) <jochen@microsoft.com> | 2015-11-16 23:59:35 +0300 |
---|---|---|
committer | John Chen (CLR) <jochen@microsoft.com> | 2015-12-16 00:14:33 +0300 |
commit | 3d67d94d0c1e4067340dd473015e3b72eaf57b03 (patch) | |
tree | 76ee6e8c0fab18f9169e7ca54e760d0778a85fea /src/packaging | |
parent | a55a1d6136bccca166efc4f7a10bba7e49438e03 (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.targets | 7 |
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" /> |