From dc01259447cb70f982459237e0f0b46978224984 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Thu, 30 Dec 2021 06:39:58 +0300 Subject: [PATCH 1/2] SourceMod SDK: introduction into Valve memory system by components related to HL2SDK. Can be disabled with `META_NO_HL2SDK` definition --- public/smsdk_ext.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/public/smsdk_ext.cpp b/public/smsdk_ext.cpp index 529ee6d2aa..a5e0dea283 100644 --- a/public/smsdk_ext.cpp +++ b/public/smsdk_ext.cpp @@ -474,8 +474,9 @@ bool SDKExtension::SDK_OnMetamodPauseChange(bool paused, char *error, size_t max #endif +#if defined(__linux__) || defined(__APPLE__) /* Overload a few things to prevent libstdc++ linking */ -#if defined __linux__ || defined __APPLE__ +#if !defined(SOURCE_ENGINE) || defined(NO_MALLOC_OVERRIDE) || defined(META_NO_HL2SDK) extern "C" void __cxa_pure_virtual(void) { } @@ -499,5 +500,7 @@ void operator delete[](void * ptr) { free(ptr); } -#endif - +#else +#include +#endif // !defined(SOURCE_ENGINE) || defined(NO_MALLOC_OVERRIDE) || defined(META_NO_HL2SDK) +#endif // defined(__linux__) || defined(__APPLE__) From d4622e74e7ecb52764bcb006e1a5854d4c214db4 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Fri, 7 Jan 2022 03:01:39 +0300 Subject: [PATCH 2/2] Add memoverride.cpp source to Core --- core/AMBuilder | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/AMBuilder b/core/AMBuilder index b531379c00..946b39798a 100644 --- a/core/AMBuilder +++ b/core/AMBuilder @@ -138,6 +138,10 @@ for sdk_name in SM.sdks: binary.sources += pb_sources binary.compiler.cxxdefines += ['PROTOBUF_ENABLE'] + # Instead of using the external SourceMod SDK. + if cxx.target.platform in ['linux', 'mac']: + binary.sources += [os.path.join(sdk.path, 'public', 'tier0', 'memoverride.cpp')] + if cxx.target.platform == 'mac' and sdk.name in ['csgo']: # We need a proxy library since the game uses libstdc++. pb_binary = SM.HL2Library(builder, cxx, 'pbproxy.' + sdk.ext, sdk)