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/Native/CMakeLists.txt | |
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/Native/CMakeLists.txt')
-rw-r--r-- | src/Native/CMakeLists.txt | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/Native/CMakeLists.txt b/src/Native/CMakeLists.txt index 2d7a9243d..fe648a769 100644 --- a/src/Native/CMakeLists.txt +++ b/src/Native/CMakeLists.txt @@ -162,6 +162,9 @@ if(WIN32) add_definitions(-D_WIN64=1) endif() add_compile_options($<$<CONFIG:Debug>:-DDEBUG>) + add_compile_options(/Zi) # enable debugging information + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /PDBCOMPRESS") #shrink pdb size + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DEBUG") else(WIN32) string(TOUPPER ${CMAKE_BUILD_TYPE} UPPERCASE_CMAKE_BUILD_TYPE) if (UPPERCASE_CMAKE_BUILD_TYPE STREQUAL DEBUG) @@ -183,6 +186,7 @@ if(WIN32) endif() add_subdirectory(Runtime) add_subdirectory(Bootstrap) +add_subdirectory(jitinterface) # We don't need the PAL on Windows. if(CLR_CMAKE_PLATFORM_UNIX) |