From d2b7be6e9b8439b76639bbf578405d5b2988461d Mon Sep 17 00:00:00 2001 From: Stefanus Du Toit Date: Tue, 28 Apr 2009 16:37:58 +0000 Subject: Fix choice of version of Windows callback to use to consider not only the Visual Studio version, but also the Windows SDK version. Patch by Tareq Siraj. llvm-svn: 70299 --- llvm/lib/System/Win32/DynamicLibrary.inc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'llvm/lib/System') diff --git a/llvm/lib/System/Win32/DynamicLibrary.inc b/llvm/lib/System/Win32/DynamicLibrary.inc index 3c35e6c9695..1ddf6cea0b3 100644 --- a/llvm/lib/System/Win32/DynamicLibrary.inc +++ b/llvm/lib/System/Win32/DynamicLibrary.inc @@ -19,6 +19,10 @@ #include #endif +#ifdef _MSC_VER + #include +#endif + #ifdef __MINGW32__ #if (HAVE_LIBIMAGEHLP != 1) #error "libimagehlp.a should be present" @@ -44,7 +48,14 @@ static std::vector OpenedHandles; #endif extern "C" { -#if !defined(_MSC_VER) || _MSC_VER < 1500 +// Use old callback if: +// - Not using Visual Studio +// - Visual Studio 2005 or earlier but only if we are not using the Windows SDK +// or Windows SDK version is older than 6.0 +// Use new callback if: +// - Newer Visual Studio (comes with newer SDK). +// - Visual Studio 2005 with Windows SDK 6.0+ +#if !defined(_MSC_VER) || _MSC_VER < 1500 && (!defined(VER_PRODUCTBUILD) || VER_PRODUCTBUILD < 6000) static BOOL CALLBACK ELM_Callback(PSTR ModuleName, ModuleBaseType ModuleBase, ULONG ModuleSize, -- cgit v1.2.3