From ac444cd31375e566449e3780024dddd63e03e23a Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 2 Jan 2016 10:25:53 -0800 Subject: [PATCH] Fixed bug 3092 - Statically link sdl2 with /MT for msvc Martin Gerhardy According to https://msdn.microsoft.com/de-de/library/2kzt1wy3%28v=vs.120%29.aspx when one is using /MT for msvc compilations the libcmt.lib is already linked to the binary. This lib includes the symbol that is now guarded (see attached patch) by the #ifndef _MT. --- src/stdlib/SDL_stdlib.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/stdlib/SDL_stdlib.c b/src/stdlib/SDL_stdlib.c index f11f65d64..85872e255 100644 --- a/src/stdlib/SDL_stdlib.c +++ b/src/stdlib/SDL_stdlib.c @@ -275,8 +275,11 @@ int SDL_tolower(int x) { return ((x) >= 'A') && ((x) <= 'Z') ? ('a'+((x)-'A')) : #ifndef __FLTUSED__ #define __FLTUSED__ +/* the multithreaded runtime already includes libcmt.lib - and this symbol is in there. */ +#ifndef _MT __declspec(selectany) int _fltused = 1; #endif +#endif /* The optimizer on Visual Studio 2005 and later generates memcpy() calls */ #if (_MSC_VER >= 1400) && defined(_WIN64) && !defined(_DEBUG)