Skip to content

Commit 451fd23

Browse files
authored
Stop compiling fragile NGen support into the runtime (dotnet#24625)
1 parent 3eae9c0 commit 451fd23

38 files changed

+168
-146
lines changed

clrdefinitions.cmake

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,6 @@ endif(CLR_CMAKE_PLATFORM_UNIX)
175175
if(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_FREEBSD)
176176
add_definitions(-DFEATURE_PERFMAP)
177177
endif(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_FREEBSD)
178-
add_definitions(-DFEATURE_PREJIT)
179178

180179
if(NOT CLR_CMAKE_PLATFORM_UNIX)
181180
add_definitions(-DFEATURE_PROFAPI_ATTACH_DETACH)

crossgen.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Contains the crossgen build specific definitions. Included by the leaf crossgen cmake files.
22

33
add_definitions(
4+
-DFEATURE_PREJIT
45
-DCROSSGEN_COMPILE
56
-DCROSS_COMPILE
67
-DFEATURE_NATIVE_IMAGE_GENERATION

src/inc/dacvars.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,11 @@ DEFINE_DACVAR(ULONG, PTR_GcDacVars, dac__g_gcDacGlobals, g_gcDacGlobals)
121121

122122
DEFINE_DACVAR(ULONG, PTR_AppDomain, AppDomain__m_pTheAppDomain, AppDomain::m_pTheAppDomain)
123123
DEFINE_DACVAR(ULONG, PTR_SystemDomain, SystemDomain__m_pSystemDomain, SystemDomain::m_pSystemDomain)
124+
#ifdef FEATURE_PREJIT
124125
DEFINE_DACVAR(ULONG, BOOL, SystemDomain__s_fForceDebug, SystemDomain::s_fForceDebug)
125126
DEFINE_DACVAR(ULONG, BOOL, SystemDomain__s_fForceProfiling, SystemDomain::s_fForceProfiling)
126127
DEFINE_DACVAR(ULONG, BOOL, SystemDomain__s_fForceInstrument, SystemDomain::s_fForceInstrument)
128+
#endif
127129

128130
#ifdef FEATURE_INTEROP_DEBUGGING
129131
DEFINE_DACVAR(ULONG, DWORD, dac__g_debuggerWordTLSIndex, g_debuggerWordTLSIndex)

src/inc/jithelpers.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,11 @@
304304
JITHELPER(CORINFO_HELP_EE_VSD_FIXUP, NULL, CORINFO_HELP_SIG_NO_ALIGN_STUB)
305305
#endif
306306
JITHELPER(CORINFO_HELP_EE_EXTERNAL_FIXUP, ExternalMethodFixupStub, CORINFO_HELP_SIG_NO_ALIGN_STUB)
307+
#ifdef FEATURE_PREJIT
307308
JITHELPER(CORINFO_HELP_EE_VTABLE_FIXUP, VirtualMethodFixupStub, CORINFO_HELP_SIG_NO_ALIGN_STUB)
309+
#else
310+
JITHELPER(CORINFO_HELP_EE_VTABLE_FIXUP, NULL, CORINFO_HELP_SIG_NO_ALIGN_STUB)
311+
#endif
308312

309313
JITHELPER(CORINFO_HELP_EE_REMOTING_THUNK, NULL, CORINFO_HELP_SIG_UNDEF)
310314

src/utilcode/pedecoder.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,6 @@ CHECK PEDecoder::CheckFormat() const
3434
{
3535
CHECK(CheckCorHeader());
3636

37-
#if !defined(FEATURE_PREJIT)
38-
CHECK(IsILOnly());
39-
#endif
40-
4137
if (IsILOnly() && !HasReadyToRunHeader())
4238
CHECK(CheckILOnly());
4339

src/vm/amd64/ExternalMethodFixupThunk.asm

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ include AsmConstants.inc
77

88
extern ExternalMethodFixupWorker:proc
99
extern ProcessCLRException:proc
10+
11+
ifdef FEATURE_PREJIT
1012
extern VirtualMethodFixupWorker:proc
13+
endif
1114

1215
ifdef FEATURE_READYTORUN
1316
extern DynamicHelperWorker:proc
@@ -87,6 +90,7 @@ DYNAMICHELPER <DynamicHelperFrameFlags_ObjectArg OR DynamicHelperFrameFlags_Obje
8790

8891
endif ; FEATURE_READYTORUN
8992

93+
ifdef FEATURE_PREJIT
9094
;============================================================================================
9195
;; EXTERN_C VOID __stdcall VirtualMethodFixupStub()
9296

@@ -103,5 +107,6 @@ PATCH_LABEL VirtualMethodFixupPatchLabel
103107
TAILJMP_RAX
104108

105109
NESTED_END VirtualMethodFixupStub, _TEXT
110+
endif ; FEATURE_PREJIT
106111

107112
end

src/vm/amd64/cgenamd64.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -820,6 +820,7 @@ DWORD GetOffsetAtEndOfFunction(ULONGLONG uImageBase,
820820
return offsetInFunc;
821821
}
822822

823+
#ifdef FEATURE_PREJIT
823824
//==========================================================================================
824825
// In NGen image, virtual slots inherited from cross-module dependencies point to jump thunks.
825826
// These jump thunk initially point to VirtualMethodFixupStub which transfers control here.
@@ -913,6 +914,7 @@ EXTERN_C PCODE VirtualMethodFixupWorker(TransitionBlock * pTransitionBlock, CORC
913914
// Ready to return
914915
return pCode;
915916
}
917+
#endif // FEATURE_PREJIT
916918

917919
#ifdef FEATURE_READYTORUN
918920

src/vm/amd64/externalmethodfixupthunk.S

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ DYNAMICHELPER (DynamicHelperFrameFlags_ObjectArg | DynamicHelperFrameFlags_Objec
8080

8181
#endif // FEATURE_READYTORUN
8282

83+
#ifdef FEATURE_PREJIT
8384
//============================================================================================
8485
// EXTERN_C VOID __stdcall VirtualMethodFixupStub()
8586

@@ -96,3 +97,4 @@ PATCH_LABEL VirtualMethodFixupPatchLabel
9697
TAILJMP_RAX
9798

9899
NESTED_END VirtualMethodFixupStub, _TEXT
100+
#endif // FEATURE_PREJIT

src/vm/appdomain.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,11 @@ static const WCHAR OTHER_DOMAIN_FRIENDLY_NAME_PREFIX[] = W("Domain");
9898

9999
SPTR_IMPL(AppDomain, AppDomain, m_pTheAppDomain);
100100
SPTR_IMPL(SystemDomain, SystemDomain, m_pSystemDomain);
101+
#ifdef FEATURE_PREJIT
101102
SVAL_IMPL(BOOL, SystemDomain, s_fForceDebug);
102103
SVAL_IMPL(BOOL, SystemDomain, s_fForceProfiling);
103104
SVAL_IMPL(BOOL, SystemDomain, s_fForceInstrument);
105+
#endif
104106

105107
#ifndef DACCESS_COMPILE
106108

@@ -1587,7 +1589,7 @@ void SystemDomain::operator delete(void *pMem)
15871589
// Do nothing - new() was in-place
15881590
}
15891591

1590-
1592+
#ifdef FEATURE_PREJIT
15911593
void SystemDomain::SetCompilationOverrides(BOOL fForceDebug,
15921594
BOOL fForceProfiling,
15931595
BOOL fForceInstrument)
@@ -1597,9 +1599,11 @@ void SystemDomain::SetCompilationOverrides(BOOL fForceDebug,
15971599
s_fForceProfiling = fForceProfiling;
15981600
s_fForceInstrument = fForceInstrument;
15991601
}
1602+
#endif
16001603

16011604
#endif //!DACCESS_COMPILE
16021605

1606+
#ifdef FEATURE_PREJIT
16031607
void SystemDomain::GetCompilationOverrides(BOOL * fForceDebug,
16041608
BOOL * fForceProfiling,
16051609
BOOL * fForceInstrument)
@@ -1609,6 +1613,7 @@ void SystemDomain::GetCompilationOverrides(BOOL * fForceDebug,
16091613
*fForceProfiling = s_fForceProfiling;
16101614
*fForceInstrument = s_fForceInstrument;
16111615
}
1616+
#endif
16121617

16131618
#ifndef DACCESS_COMPILE
16141619

src/vm/appdomain.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3218,6 +3218,7 @@ class SystemDomain : public BaseDomain
32183218
static DWORD m_dwLowestFreeIndex;
32193219
#endif // DACCESS_COMPILE
32203220

3221+
#ifdef FEATURE_PREJIT
32213222
protected:
32223223

32233224
// These flags let the correct native image of mscorlib to be loaded.
@@ -3226,6 +3227,7 @@ class SystemDomain : public BaseDomain
32263227
SVAL_DECL(BOOL, s_fForceDebug);
32273228
SVAL_DECL(BOOL, s_fForceProfiling);
32283229
SVAL_DECL(BOOL, s_fForceInstrument);
3230+
#endif
32293231

32303232
public:
32313233
static void SetCompilationOverrides(BOOL fForceDebug,

0 commit comments

Comments
 (0)