From cb8c8ec6435f3db3e982382ca2e82017271d0a0a Mon Sep 17 00:00:00 2001 From: Peter Sollich Date: Thu, 19 Nov 2020 14:31:55 +0100 Subject: [PATCH] Increment breaking change no for doubly linked freelists (#44800) Update breaking change number because doubly linked free lists use one additional bit in the method table pointer at the beginning of objects now. Added a comment noting that gcDacVars->major_version_number that is set in gc.cpp is not actually checked by SOS, so SOS_BREAKING_CHANGE_VERSION should be updated if GC changes in a way that is incompatible with the existing SOS. --- src/coreclr/src/gc/gc.cpp | 3 +++ src/coreclr/src/inc/sospriv.idl | 2 +- src/coreclr/src/pal/prebuilt/inc/sospriv.h | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/coreclr/src/gc/gc.cpp b/src/coreclr/src/gc/gc.cpp index 6eb6142f27b7b..0efd127445073 100644 --- a/src/coreclr/src/gc/gc.cpp +++ b/src/coreclr/src/gc/gc.cpp @@ -40519,6 +40519,9 @@ void PopulateDacVars(GcDacVars *gcDacVars) #ifndef DACCESS_COMPILE assert(gcDacVars != nullptr); *gcDacVars = {}; + // Note: these version numbers are not actually checked by SOS, so if you change + // the GC in a way that makes it incompatible with SOS, please change + // SOS_BREAKING_CHANGE_VERSION in both the runtime and the diagnostics repo gcDacVars->major_version_number = 1; gcDacVars->minor_version_number = 0; gcDacVars->built_with_svr = &g_built_with_svr_gc; diff --git a/src/coreclr/src/inc/sospriv.idl b/src/coreclr/src/inc/sospriv.idl index dae0a4ff52088..6da8b5814f7ee 100644 --- a/src/coreclr/src/inc/sospriv.idl +++ b/src/coreclr/src/inc/sospriv.idl @@ -413,7 +413,7 @@ interface ISOSDacInterface8 : IUnknown // Increment anytime there is a change in the data structures that SOS depends on like // stress log structs (StressMsg, StressLogChunck, ThreadStressLog, etc), exception // stack traces (StackTraceElement), the PredefinedTlsSlots enums, etc. -cpp_quote("#define SOS_BREAKING_CHANGE_VERSION 1") +cpp_quote("#define SOS_BREAKING_CHANGE_VERSION 2") [ object, diff --git a/src/coreclr/src/pal/prebuilt/inc/sospriv.h b/src/coreclr/src/pal/prebuilt/inc/sospriv.h index e1cbc05e9028a..38bb6791ea177 100644 --- a/src/coreclr/src/pal/prebuilt/inc/sospriv.h +++ b/src/coreclr/src/pal/prebuilt/inc/sospriv.h @@ -2675,7 +2675,7 @@ EXTERN_C const IID IID_ISOSDacInterface8; /* interface __MIDL_itf_sospriv_0000_0012 */ /* [local] */ -#define SOS_BREAKING_CHANGE_VERSION 1 +#define SOS_BREAKING_CHANGE_VERSION 2 extern RPC_IF_HANDLE __MIDL_itf_sospriv_0000_0012_v0_0_c_ifspec;