diff --git a/reactos/lib/3rdparty/mingw/tlsmcrt.c b/reactos/lib/3rdparty/mingw/tlsmcrt.c index 2450b8b9216..c5c01d9b8a6 100644 --- a/reactos/lib/3rdparty/mingw/tlsmcrt.c +++ b/reactos/lib/3rdparty/mingw/tlsmcrt.c @@ -11,3 +11,34 @@ we do tls cleanup in runtime and _CRT_MT has value 2. */ int _CRT_MT = 2; +// HACK around broken imports from libmingwex, until RosBE64 is updated +#ifdef _M_AMD64 + +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#include + +int __mingwthr_key_dtor (DWORD key, void (*dtor)(void *)); +int __mingwthr_remove_key_dtor (DWORD key); + +extern int ___w64_mingwthr_remove_key_dtor (DWORD key); +extern int ___w64_mingwthr_add_key_dtor (DWORD key, void (*dtor)(void *)); + +int +__mingwthr_remove_key_dtor (DWORD key) +{ + return ___w64_mingwthr_remove_key_dtor (key); +} + +int +__mingwthr_key_dtor (DWORD key, void (*dtor)(void *)) +{ + if (dtor) + return ___w64_mingwthr_add_key_dtor (key, dtor); + + return 0; +} +#endif +