Add support for standalone GC back compatibility (#78484)
authorJan Vorlicek <janvorli@microsoft.com>
Mon, 21 Nov 2022 14:34:36 +0000 (15:34 +0100)
committerGitHub <noreply@github.com>
Mon, 21 Nov 2022 14:34:36 +0000 (15:34 +0100)
commitb0dff26e3ba32118d9f5a9110fd71ad32eeb1dc1
tree4f01001a93e7c849b94b0f74c53c58ba8f5ccd73
parent84eb4a68fe5be2f988e71c8358c49dcf36bb2e36
Add support for standalone GC back compatibility (#78484)

Currently, the version of the standalone GC has to match the version
that the runtime was compiled with. This change enables loosening that
requirement. Runtime is allowed to use any standalone GC as long as its
version is larger or equal to a defined minimum version. GC is now
passed the version of GC the runtime was compiled with and it can use it
to behave in a way compatible with that version. For example, if we add
new methods to the GC to EE interface, that GC can check the GC version
the runtime supports and skip calling the new methods if it is running
with an older runtime.
src/coreclr/gc/gccommon.cpp
src/coreclr/gc/gcenv.ee.standalone.inl
src/coreclr/gc/gcload.cpp
src/coreclr/vm/gcheaputilities.cpp