+49
pkgs/development/compilers/dotnet/vmr-compiler-opt-v8.patch
+49
pkgs/development/compilers/dotnet/vmr-compiler-opt-v8.patch
···+diff --git a/src/runtime/src/native/corehost/corehost.cpp b/src/runtime/src/native/corehost/corehost.cpp+#define EMBED_HASH_FULL_UTF8 (EMBED_HASH_HI_PART_UTF8 EMBED_HASH_LO_PART_UTF8) // NUL terminated++// This avoids compiler optimization which cause EMBED_HASH_HI_PART_UTF8 EMBED_HASH_LO_PART_UTF8++// to be placed adjacent causing them to match EMBED_HASH_FULL_UTF8 when searched for replacing.++static bool compare_memory_nooptimization(volatile const char* a, volatile const char* b, size_t length)+// Contains the EMBED_HASH_FULL_UTF8 value at compile time or the managed DLL name replaced by "dotnet build".+- // Must not be 'const' because std::string(&embed[0]) below would bind to a const string ctor plus length+- // where length is determined at compile time (=64) instead of the actual length of the string at runtime.++ // Must not be 'const' because strlen below could be determined at compile time (=64) instead of the actual+static char embed[EMBED_MAX] = EMBED_HASH_FULL_UTF8; // series of NULs followed by embed hash string+trace::error(_X("This executable is not bound to a managed DLL to execute. The binding value is: '%s'"), app_dll->c_str());
+220
pkgs/development/compilers/dotnet/vmr-compiler-opt-v9.patch
+220
pkgs/development/compilers/dotnet/vmr-compiler-opt-v9.patch
···+diff --git a/src/runtime/src/native/corehost/corehost.cpp b/src/runtime/src/native/corehost/corehost.cpp+#define EMBED_HASH_FULL_UTF8 (EMBED_HASH_HI_PART_UTF8 EMBED_HASH_LO_PART_UTF8) // NUL terminated++bool compare_memory_nooptimization(volatile const char* a, volatile const char* b, size_t length)+// Contains the EMBED_HASH_FULL_UTF8 value at compile time or the managed DLL name replaced by "dotnet build".+// Must not be 'const' because std::string(&embed[0]) below would bind to a const string ctor plus length+// where length is determined at compile time (=64) instead of the actual length of the string at runtime.+- static char embed[EMBED_MAX] = EMBED_HASH_FULL_UTF8; // series of NULs followed by embed hash string++ volatile static char embed[EMBED_MAX] = EMBED_HASH_FULL_UTF8; // series of NULs followed by embed hash string+trace::error(_X("The managed DLL bound to this executable could not be retrieved from the executable image."));+trace::error(_X("This executable is not bound to a managed DLL to execute. The binding value is: '%s'"), app_dll->c_str());+diff --git a/src/runtime/src/native/corehost/corehost.cpp b/src/runtime/src/native/corehost/corehost.cpp+#define EMBED_HASH_FULL_UTF8 (EMBED_HASH_HI_PART_UTF8 EMBED_HASH_LO_PART_UTF8) // NUL terminated+bool compare_memory_nooptimization(volatile const char* a, volatile const char* b, size_t length)+// Contains the EMBED_HASH_FULL_UTF8 value at compile time or the managed DLL name replaced by "dotnet build".+// Must not be 'const' because std::string(&embed[0]) below would bind to a const string ctor plus length+// where length is determined at compile time (=64) instead of the actual length of the string at runtime.+- volatile static char embed[EMBED_MAX] = EMBED_HASH_FULL_UTF8; // series of NULs followed by embed hash string++ static char embed[EMBED_MAX] = EMBED_HASH_FULL_UTF8; // series of NULs followed by embed hash string+trace::error(_X("The managed DLL bound to this executable could not be retrieved from the executable image."));+diff --git a/src/runtime/src/native/corehost/corehost.cpp b/src/runtime/src/native/corehost/corehost.cpp+#define EMBED_HASH_FULL_UTF8 (EMBED_HASH_HI_PART_UTF8 EMBED_HASH_LO_PART_UTF8) // NUL terminated++// This avoids compiler optimization which cause EMBED_HASH_HI_PART_UTF8 EMBED_HASH_LO_PART_UTF8++// to be placed adjacent causing them to match EMBED_HASH_FULL_UTF8 when searched for replacing.+-bool compare_memory_nooptimization(volatile const char* a, volatile const char* b, size_t length)++static bool compare_memory_nooptimization(volatile const char* a, volatile const char* b, size_t length)+trace::error(_X("The managed DLL bound to this executable is longer than the max allowed length (%d)"), EMBED_MAX - 1);+trace::error(_X("This executable is not bound to a managed DLL to execute. The binding value is: '%s'"), app_dll->c_str());+diff --git a/src/runtime/src/native/corehost/corehost.cpp b/src/runtime/src/native/corehost/corehost.cpp+// Contains the EMBED_HASH_FULL_UTF8 value at compile time or the managed DLL name replaced by "dotnet build".+- // Must not be 'const' because std::string(&embed[0]) below would bind to a const string ctor plus length+- // where length is determined at compile time (=64) instead of the actual length of the string at runtime.++ // Must not be 'const' because strlen below could be determined at compile time (=64) instead of the actual+static char embed[EMBED_MAX] = EMBED_HASH_FULL_UTF8; // series of NULs followed by embed hash string
+2
pkgs/development/compilers/dotnet/vmr.nix
+2
pkgs/development/compilers/dotnet/vmr.nix
···