summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaurav Khanna <gkhanna@microsoft.com>2016-04-22 12:24:51 -0700
committerGaurav Khanna <gkhanna@microsoft.com>2016-04-26 08:08:20 -0700
commit140396f479d5d33bca0daef1f072eef4992ed78e (patch)
tree691bb2faa922940c1de7363fd51ac109495e6473
parentb0d809bd6ae65e85591af504e1797b115ea25b23 (diff)
downloadcoreclr-140396f479d5d33bca0daef1f072eef4992ed78e.tar.gz
coreclr-140396f479d5d33bca0daef1f072eef4992ed78e.tar.bz2
coreclr-140396f479d5d33bca0daef1f072eef4992ed78e.zip
Keep FEATURE_MERGE_JIT_AND_ENGINE with refactored approach
-rw-r--r--clrdefinitions.cmake11
-rw-r--r--crossgen.cmake1
-rw-r--r--src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/debian/Microsoft.NETCore.Runtime.CoreCLR.pkgproj2
-rw-r--r--src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/osx/Microsoft.NETCore.Runtime.CoreCLR.pkgproj2
-rw-r--r--src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/rhel/Microsoft.NETCore.Runtime.CoreCLR.pkgproj1
-rw-r--r--src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/ubuntu/Microsoft.NETCore.Runtime.CoreCLR.pkgproj1
-rw-r--r--src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/win/Microsoft.NETCore.Runtime.CoreCLR.pkgproj1
-rw-r--r--src/coreclr/CMakeLists.txt2
-rw-r--r--src/dlls/mscoree/coreclr/CMakeLists.txt6
-rw-r--r--src/inc/corcompile.h1
-rw-r--r--src/jit/dll/CMakeLists.txt1
-rw-r--r--src/jit/standalone/CMakeLists.txt4
-rw-r--r--src/tools/crossgen/CMakeLists.txt6
-rw-r--r--src/vm/CMakeLists.txt3
-rw-r--r--src/vm/ceemain.cpp13
-rw-r--r--src/vm/codeman.cpp18
-rw-r--r--src/vm/codeman.h2
-rw-r--r--src/vm/jitinterface.cpp18
-rw-r--r--src/vm/pefile.cpp6
-rw-r--r--src/zap/zapper.cpp18
20 files changed, 70 insertions, 47 deletions
diff --git a/clrdefinitions.cmake b/clrdefinitions.cmake
index 5c9c3d0a33..39b35ed410 100644
--- a/clrdefinitions.cmake
+++ b/clrdefinitions.cmake
@@ -130,10 +130,13 @@ add_definitions(-DFEATURE_MANAGED_ETW)
add_definitions(-DFEATURE_MANAGED_ETW_CHANNELS)
add_definitions(-DFEATURE_MAIN_CLR_MODULE_USES_CORE_NAME)
add_definitions(-DFEATURE_MERGE_CULTURE_SUPPORT_AND_ENGINE)
-if(WIN32)
-# Disable the following for UNIX altjit on Windows
-add_definitions(-DFEATURE_MERGE_JIT_AND_ENGINE)
-endif(WIN32)
+
+# TODO_DJIT: Remove this "set" to commence loading JIT dynamically.
+set(FEATURE_MERGE_JIT_AND_ENGINE 1)
+if(FEATURE_MERGE_JIT_AND_ENGINE)
+ # Disable the following for UNIX altjit on Windows
+ add_definitions(-DFEATURE_MERGE_JIT_AND_ENGINE)
+endif(FEATURE_MERGE_JIT_AND_ENGINE)
add_definitions(-DFEATURE_MULTICOREJIT)
add_definitions(-DFEATURE_NORM_IDNA_ONLY)
if(CLR_CMAKE_PLATFORM_UNIX)
diff --git a/crossgen.cmake b/crossgen.cmake
index 999a73f5f0..4e0f896ddd 100644
--- a/crossgen.cmake
+++ b/crossgen.cmake
@@ -4,7 +4,6 @@ add_definitions(
-DCROSSGEN_COMPILE
-DCROSS_COMPILE
-DFEATURE_NATIVE_IMAGE_GENERATION
- -DFEATURE_MERGE_JIT_AND_ENGINE
-DSELF_NO_HOST)
remove_definitions(
diff --git a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/debian/Microsoft.NETCore.Runtime.CoreCLR.pkgproj b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/debian/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
index 55498b9ce0..0baad3c223 100644
--- a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/debian/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
+++ b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/debian/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
@@ -11,6 +11,7 @@
</PropertyGroup>
<ItemGroup>
+ <NativeSplittableBinary Include="$(BinDir)libclrjit.so"/>
<NativeSplittableBinary Include="$(BinDir)libcoreclr.so"/>
<NativeSplittableBinary Include="$(BinDir)libcoreclrtraceptprovider.so"/>
<NativeSplittableBinary Include="$(BinDir)libdbgshim.so"/>
@@ -23,7 +24,6 @@
<ArchitectureSpecificNativeFile Include="$(BinDir)mscorlib.ni.dll"/>
<ArchitectureSpecificLibFile Include="$(BinDir)mscorlib.dll"/>
<ArchitectureSpecificToolFile Include="$(BinDir)crossgen"/>
-
<ArchitectureSpecificNativeFile Include="@(NativeSplittableBinary)"/>
<File Include="@(ArchitectureSpecificNativeFile)">
diff --git a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/osx/Microsoft.NETCore.Runtime.CoreCLR.pkgproj b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/osx/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
index e7b4e876a5..0d7765a4ec 100644
--- a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/osx/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
+++ b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/osx/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
@@ -11,6 +11,7 @@
</PropertyGroup>
<ItemGroup>
+ <NativeSplittableBinary Include="$(BinDir)libclrjit.dylib"/>
<NativeSplittableBinary Include="$(BinDir)libcoreclr.dylib"/>
<NativeSplittableBinary Include="$(BinDir)libdbgshim.dylib"/>
<NativeSplittableBinary Include="$(BinDir)libmscordaccore.dylib"/>
@@ -22,7 +23,6 @@
<ArchitectureSpecificNativeFile Include="$(BinDir)mscorlib.ni.dll"/>
<ArchitectureSpecificLibFile Include="$(BinDir)mscorlib.dll"/>
<ArchitectureSpecificToolFile Include="$(BinDir)crossgen"/>
-
<ArchitectureSpecificNativeFile Include="@(NativeSplittableBinary)"/>
<File Include="@(ArchitectureSpecificNativeFile)">
diff --git a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/rhel/Microsoft.NETCore.Runtime.CoreCLR.pkgproj b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/rhel/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
index 211d5502e2..495ad265e4 100644
--- a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/rhel/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
+++ b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/rhel/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
@@ -11,6 +11,7 @@
</PropertyGroup>
<ItemGroup>
+ <NativeSplittableBinary Include="$(BinDir)libclrjit.so"/>
<NativeSplittableBinary Include="$(BinDir)libcoreclr.so"/>
<NativeSplittableBinary Include="$(BinDir)libcoreclrtraceptprovider.so"/>
<NativeSplittableBinary Include="$(BinDir)libdbgshim.so"/>
diff --git a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/ubuntu/Microsoft.NETCore.Runtime.CoreCLR.pkgproj b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/ubuntu/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
index a49ea94d0c..9ea58155bf 100644
--- a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/ubuntu/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
+++ b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/ubuntu/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
@@ -11,6 +11,7 @@
</PropertyGroup>
<ItemGroup>
+ <NativeSplittableBinary Include="$(BinDir)libclrjit.so"/>
<NativeSplittableBinary Include="$(BinDir)libcoreclr.so"/>
<NativeSplittableBinary Include="$(BinDir)libcoreclrtraceptprovider.so"/>
<NativeSplittableBinary Include="$(BinDir)libdbgshim.so"/>
diff --git a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/win/Microsoft.NETCore.Runtime.CoreCLR.pkgproj b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/win/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
index 96a6f31308..ef3e035dd1 100644
--- a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/win/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
+++ b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/win/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
@@ -12,6 +12,7 @@
<ItemGroup>
<ArchitectureSpecificNativeFile Include="$(BinDir)clretwrc.dll"/>
+ <ArchitectureSpecificNativeFile Include="$(BinDir)clrjit.dll"/>
<ArchitectureSpecificNativeFile Include="$(BinDir)coreclr.dll"/>
<ArchitectureSpecificNativeFile Include="$(BinDir)dbgshim.dll"/>
<ArchitectureSpecificNativeFile Include="$(BinDir)mscordaccore.dll"/>
diff --git a/src/coreclr/CMakeLists.txt b/src/coreclr/CMakeLists.txt
index c1bed7b2bb..64e1524da7 100644
--- a/src/coreclr/CMakeLists.txt
+++ b/src/coreclr/CMakeLists.txt
@@ -1,5 +1,3 @@
-# Add the Merge flag here is needed. Not needed for RyuJIT if building as a DLL.
-add_definitions(-DFEATURE_MERGE_JIT_AND_ENGINE)
if(WIN32)
add_subdirectory(hosts)
endif(WIN32)
diff --git a/src/dlls/mscoree/coreclr/CMakeLists.txt b/src/dlls/mscoree/coreclr/CMakeLists.txt
index 6c2e50ad3a..42a3bc6550 100644
--- a/src/dlls/mscoree/coreclr/CMakeLists.txt
+++ b/src/dlls/mscoree/coreclr/CMakeLists.txt
@@ -65,6 +65,10 @@ if (CLR_CMAKE_PLATFORM_UNIX)
set(LIB_UNWINDER unwinder_wks)
endif (CLR_CMAKE_PLATFORM_UNIX)
+if(FEATURE_MERGE_JIT_AND_ENGINE)
+ set(CLRJIT_STATIC clrjit_static)
+endif(FEATURE_MERGE_JIT_AND_ENGINE)
+
# IMPORTANT! Please do not rearrange the order of the libraries. The linker on Linux is
# order dependent and changing the order can result in undefined symbols in the shared
# library.
@@ -82,7 +86,7 @@ set(CORECLR_LIBRARIES
mdhotdata_full
bcltype
ceefgen
- clrjit_static
+ ${CLRJIT_STATIC}
comfloat_wks
corguids
gcinfo # Condition="'$(TargetCpu)'=='amd64' or '$(TargetCpu)' == 'arm' or '$(TargetCpu)' == 'arm64'"
diff --git a/src/inc/corcompile.h b/src/inc/corcompile.h
index 02fd018506..8552a62f40 100644
--- a/src/inc/corcompile.h
+++ b/src/inc/corcompile.h
@@ -837,6 +837,7 @@ typedef enum
{
#ifdef FEATURE_CORECLR
CORECLR_INFO,
+ CROSSGEN_COMPILER_INFO,
#else
CLR_INFO,
NGEN_COMPILER_INFO,
diff --git a/src/jit/dll/CMakeLists.txt b/src/jit/dll/CMakeLists.txt
index 583bc98a53..01e58dbbb8 100644
--- a/src/jit/dll/CMakeLists.txt
+++ b/src/jit/dll/CMakeLists.txt
@@ -7,7 +7,6 @@ endif(CLR_CMAKE_PLATFORM_ARCH_I386 OR CLR_CMAKE_PLATFORM_ARCH_ARM)
# Disable the following for UNIX altjit on Windows
if(CLR_CMAKE_PLATFORM_UNIX)
add_compile_options(-fPIC)
- add_definitions(-DFEATURE_MERGE_JIT_AND_ENGINE)
add_library_clr(${JIT_BASE_NAME}_static
STATIC
diff --git a/src/jit/standalone/CMakeLists.txt b/src/jit/standalone/CMakeLists.txt
index c98dab5d28..4e70b9ef74 100644
--- a/src/jit/standalone/CMakeLists.txt
+++ b/src/jit/standalone/CMakeLists.txt
@@ -4,6 +4,10 @@ add_definitions(-DSELF_NO_HOST)
add_definitions(-DFEATURE_READYTORUN_COMPILER)
remove_definitions(-DFEATURE_MERGE_JIT_AND_ENGINE)
+if(CLR_CMAKE_TARGET_ARCH_I386 OR CLR_CMAKE_TARGET_ARCH_ARM)
+ add_definitions(-DLEGACY_BACKEND)
+endif()
+
if(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_NETBSD)
# This is required to force using our own PAL, not one that we are loaded with.
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Xlinker -Bsymbolic -Bsymbolic-functions")
diff --git a/src/tools/crossgen/CMakeLists.txt b/src/tools/crossgen/CMakeLists.txt
index f16c188c3c..150a35364d 100644
--- a/src/tools/crossgen/CMakeLists.txt
+++ b/src/tools/crossgen/CMakeLists.txt
@@ -24,6 +24,10 @@ add_executable_clr(crossgen
${crossgen_RESOURCES}
)
+if(FEATURE_MERGE_JIT_AND_ENGINE)
+ set(CLRJIT_CROSSGEN clrjit_crossgen)
+endif(FEATURE_MERGE_JIT_AND_ENGINE)
+
target_link_libraries(crossgen
cee_crossgen
mdcompiler_crossgen
@@ -31,7 +35,7 @@ target_link_libraries(crossgen
mdruntimerw_crossgen
mdhotdata_crossgen
corguids
- clrjit_crossgen
+ ${CLRJIT_CROSSGEN}
gcinfo_crossgen
corzap_crossgen
mscorlib_crossgen
diff --git a/src/vm/CMakeLists.txt b/src/vm/CMakeLists.txt
index 5704624ee5..a7ef1a5142 100644
--- a/src/vm/CMakeLists.txt
+++ b/src/vm/CMakeLists.txt
@@ -12,9 +12,6 @@ add_definitions(-DFEATURE_LEAVE_RUNTIME_HOLDER=1)
add_definitions(-DUNICODE)
add_definitions(-D_UNICODE)
-# Add the Merge flag here is needed
-add_definitions(-DFEATURE_MERGE_JIT_AND_ENGINE)
-
if(CMAKE_CONFIGURATION_TYPES) # multi-configuration generator?
foreach (Config DEBUG CHECKED)
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS $<$<CONFIG:${Config}>:WRITE_BARRIER_CHECK=1>)
diff --git a/src/vm/ceemain.cpp b/src/vm/ceemain.cpp
index 2aaeaec0f0..ab5e3403e4 100644
--- a/src/vm/ceemain.cpp
+++ b/src/vm/ceemain.cpp
@@ -803,8 +803,9 @@ do { \
#define IfFailGoLog(EXPR) IfFailGotoLog(EXPR, ErrExit)
#endif
+#if defined(FEATURE_MERGE_JIT_AND_ENGINE)
void jitOnDllProcessAttach();
-
+#endif // defined(FEATURE_MERGE_JIT_AND_ENGINE)
void EEStartupHelper(COINITIEE fFlags)
{
@@ -854,15 +855,9 @@ void EEStartupHelper(COINITIEE fFlags)
#endif // !FEATURE_CORECLR && !CROSSGEN_COMPILE
}
-#ifdef CROSSGEN_COMPILE
-//ARM64TODO: Enable when jit is brought in
- #if defined(_TARGET_ARM64_)
- //_ASSERTE(!"ARM64:NYI");
-
- #else
+#if defined(CROSSGEN_COMPILE) && defined(FEATURE_MERGE_JIT_AND_ENGINE)
jitOnDllProcessAttach();
- #endif // defined(_TARGET_ARM64_)
-#endif
+#endif // defined(CROSSGEN_COMPILE) && defined(FEATURE_MERGE_JIT_AND_ENGINE)
#ifndef CROSSGEN_COMPILE
// Initialize Numa and CPU group information
diff --git a/src/vm/codeman.cpp b/src/vm/codeman.cpp
index e625bca06c..3ec2d91163 100644
--- a/src/vm/codeman.cpp
+++ b/src/vm/codeman.cpp
@@ -1388,7 +1388,9 @@ static void LoadAndInitializeJIT(LPCWSTR pwzJitName, OUT HINSTANCE* phJit, OUT I
HRESULT hr = E_FAIL;
-#ifdef FEATURE_MERGE_JIT_AND_ENGINE
+#ifdef FEATURE_CORECLR
+ // TODO_DJIT: Currently, we are looking up the JIT from the same location as CoreCLR. We need to get this to come from
+ // the host so that we get it from the correct servicing location
PathString CoreClrFolderHolder;
extern HINSTANCE g_hThisInst;
if (WszGetModuleFileName(g_hThisInst, CoreClrFolderHolder))
@@ -1557,7 +1559,7 @@ BOOL EEJitManager::LoadJIT()
// Set as a courtesy to code:CorCompileGetRuntimeDll
s_ngenCompilerDll = m_JITCompiler;
-#if defined(_TARGET_AMD64_) && !defined(CROSSGEN_COMPILE)
+#if defined(_TARGET_AMD64_) && !defined(CROSSGEN_COMPILE) && !defined(FEATURE_CORECLR)
// If COMPlus_UseLegacyJit=1, then we fall back to compatjit.dll.
//
// This fallback mechanism was introduced for Visual Studio "14" Preview, when JIT64 (the legacy JIT) was replaced with
@@ -1638,7 +1640,7 @@ BOOL EEJitManager::LoadJIT()
}
}
}
-#endif // defined(_TARGET_AMD64_) && !defined(CROSSGEN_COMPILE)
+#endif // defined(_TARGET_AMD64_) && !defined(CROSSGEN_COMPILE) && !defined(FEATURE_CORECLR)
#endif // !FEATURE_MERGE_JIT_AND_ENGINE
@@ -4285,15 +4287,17 @@ BOOL ExecutionManager::IsCacheCleanupRequired( void )
/*********************************************************************/
// This static method returns the name of the jit dll
//
-LPWSTR ExecutionManager::GetJitName()
+LPCWSTR ExecutionManager::GetJitName()
{
STANDARD_VM_CONTRACT;
- LPWSTR pwzJitName;
+ LPCWSTR pwzJitName = NULL;
+#if !defined(FEATURE_CORECLR)
// Try to obtain a name for the jit library from the env. variable
IfFailThrow(CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_JitName, &pwzJitName));
-
+#endif // !FEATURE_CORECLR
+
if (NULL == pwzJitName)
{
pwzJitName = MAKEDLLNAME_W(W("clrjit"));
@@ -4301,7 +4305,7 @@ LPWSTR ExecutionManager::GetJitName()
return pwzJitName;
}
-#endif // FEATURE_MERGE_JIT_AND_ENGINE
+#endif // !FEATURE_MERGE_JIT_AND_ENGINE
#endif // #ifndef DACCESS_COMPILE
diff --git a/src/vm/codeman.h b/src/vm/codeman.h
index dbe990e9ab..1ed37e5bb7 100644
--- a/src/vm/codeman.h
+++ b/src/vm/codeman.h
@@ -1275,7 +1275,7 @@ public:
static void ClearCaches( void );
static BOOL IsCacheCleanupRequired();
- static LPWSTR GetJitName();
+ static LPCWSTR GetJitName();
static void Unload(LoaderAllocator *pLoaderAllocator);
diff --git a/src/vm/jitinterface.cpp b/src/vm/jitinterface.cpp
index 46542482ba..f4575a966d 100644
--- a/src/vm/jitinterface.cpp
+++ b/src/vm/jitinterface.cpp
@@ -11306,9 +11306,9 @@ void CEEJitInfo::getEHinfo(
}
#endif // CROSSGEN_COMPILE
-#ifdef CROSSGEN_COMPILE
+#if defined(CROSSGEN_COMPILE)
EXTERN_C ICorJitCompiler* __stdcall getJit();
-#endif
+#endif // defined(CROSSGEN_COMPILE)
#ifdef FEATURE_INTERPRETER
static CorJitResult CompileMethodWithEtwWrapper(EEJitManager *jitMgr,
@@ -11364,16 +11364,16 @@ CorJitResult invokeCompileMethodHelper(EEJitManager *jitMgr,
BEGIN_SO_TOLERANT_CODE(GetThread());
-#ifdef CROSSGEN_COMPILE
+#if defined(CROSSGEN_COMPILE) && !defined(FEATURE_CORECLR)
ret = getJit()->compileMethod( comp,
info,
flags,
nativeEntry,
nativeSizeOfCode);
-#else // CROSSGEN_COMPILE
+#else // defined(CROSSGEN_COMPILE) && !defined(FEATURE_CORECLR)
-#ifdef ALLOW_SXS_JIT
+#if defined(ALLOW_SXS_JIT) && !defined(CROSSGEN_COMPILE)
if (FAILED(ret) && jitMgr->m_alternateJit
#ifdef FEATURE_STACK_SAMPLING
&& (!samplingEnabled || (flags2 & CORJIT_FLG2_SAMPLING_JIT_BACKGROUND))
@@ -11403,7 +11403,7 @@ CorJitResult invokeCompileMethodHelper(EEJitManager *jitMgr,
ret = CORJIT_SKIPPED;
}
}
-#endif // ALLOW_SXS_JIT
+#endif // defined(ALLOW_SXS_JIT) && !defined(CROSSGEN_COMPILE)
#ifdef FEATURE_INTERPRETER
static ConfigDWORD s_InterpreterFallback;
@@ -11450,6 +11450,7 @@ CorJitResult invokeCompileMethodHelper(EEJitManager *jitMgr,
}
#endif // FEATURE_INTERPRETER
+#if !defined(CROSSGEN_COMPILE)
// Cleanup any internal data structures allocated
// such as IL code after a successfull JIT compile
// If the JIT fails we keep the IL around and will
@@ -11466,8 +11467,9 @@ CorJitResult invokeCompileMethodHelper(EEJitManager *jitMgr,
comp->MethodCompileComplete(info->ftn);
#endif // FEATURE_INTERPRETER
}
-
-#endif // CROSSGEN_COMPILE
+#endif // !defined(CROSSGEN_COMPILE)
+
+#endif // defined(CROSSGEN_COMPILE) && !defined(FEATURE_CORECLR)
END_SO_TOLERANT_CODE;
diff --git a/src/vm/pefile.cpp b/src/vm/pefile.cpp
index f6bf408cac..1537ef9c60 100644
--- a/src/vm/pefile.cpp
+++ b/src/vm/pefile.cpp
@@ -1748,11 +1748,11 @@ static void RuntimeVerifyLog(DWORD level, LoggableAssembly *pLogAsm, const WCHAR
static const LPCWSTR CorCompileRuntimeDllNames[NUM_RUNTIME_DLLS] =
{
#ifdef FEATURE_CORECLR
- MAKEDLLNAME_W(W("CORECLR"))
+ MAKEDLLNAME_W(W("coreclr")),
#else
MAKEDLLNAME_W(W("CLR")),
- MAKEDLLNAME_W(W("CLRJIT"))
#endif
+ MAKEDLLNAME_W(W("clrjit"))
};
#if !defined(FEATURE_CORECLR) && !defined(CROSSGEN_COMPILE)
@@ -1828,7 +1828,7 @@ extern HMODULE CorCompileGetRuntimeDll(CorCompileRuntimeDlls id)
// Currently special cased for every entry.
#ifdef FEATURE_CORECLR
- static_assert_no_msg(NUM_RUNTIME_DLLS == 1);
+ static_assert_no_msg(NUM_RUNTIME_DLLS == 2);
static_assert_no_msg(CORECLR_INFO == 0);
#else // !FEATURE_CORECLR
static_assert_no_msg(NUM_RUNTIME_DLLS == 2);
diff --git a/src/zap/zapper.cpp b/src/zap/zapper.cpp
index 699f1da8f6..27d99c7f90 100644
--- a/src/zap/zapper.cpp
+++ b/src/zap/zapper.cpp
@@ -695,7 +695,8 @@ void Zapper::LoadAndInitializeJITForNgen(LPCWSTR pwzJitName, OUT HINSTANCE* phJi
HRESULT hr = E_FAIL;
-#ifdef FEATURE_MERGE_JIT_AND_ENGINE
+#ifdef FEATURE_CORECLR
+ // TODO_DJIT: Currently, we are looking up the JIT from the same location as CoreCLR. The path needs to be passed by the caller.
PathString CoreClrFolder;
extern HINSTANCE g_hThisInst;
if (WszGetModuleFileName(g_hThisInst, CoreClrFolder))
@@ -849,10 +850,19 @@ void Zapper::InitEE(BOOL fForceDebug, BOOL fForceProfile, BOOL fForceInstrument)
ThrowLastError();
}
#else
- LPCWSTR pwzJitName = CorCompileGetRuntimeDllName(NGEN_COMPILER_INFO);
+
+ CorCompileRuntimeDlls ngenDllId;
+
+#if !defined(FEATURE_CORECLR)
+ ngenDllId = NGEN_COMPILER_INFO;
+#else // FEATURE_CORECLR
+ ngenDllId = CROSSGEN_COMPILER_INFO;
+#endif
+
+ LPCWSTR pwzJitName = CorCompileGetRuntimeDllName(ngenDllId);
LoadAndInitializeJITForNgen(pwzJitName, &m_hJitLib, &m_pJitCompiler);
-#if defined(_TARGET_AMD64_) && !defined(CROSSGEN_COMPILE)
+#if defined(_TARGET_AMD64_) && !defined(CROSSGEN_COMPILE) && !defined(FEATURE_CORECLR)
// For reasons related to servicing, and RyuJIT rollout on .NET 4.6 and beyond, we only use RyuJIT when the registry
// value UseRyuJIT (type DWORD), under key HKLM\SOFTWARE\Microsoft\.NETFramework, is set to 1. Otherwise, we fall back
// to JIT64.
@@ -875,7 +885,7 @@ void Zapper::InitEE(BOOL fForceDebug, BOOL fForceProfile, BOOL fForceInstrument)
// obfuscator tries to directly call the main JIT's getJit() function.
m_pJitCompiler->setRealJit(fallbackICorJitCompiler);
}
-#endif // defined(_TARGET_AMD64_) && !defined(CROSSGEN_COMPILE)
+#endif // defined(_TARGET_AMD64_) && !defined(CROSSGEN_COMPILE) && !defined(FEATURE_CORECLR)
#endif // FEATURE_MERGE_JIT_AND_ENGINE
#ifdef ALLOW_SXS_JIT_NGEN