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) 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__)