[SERVER-9408] Windows feature detection macros assume Vista aware SDK headers. Created: 19/Apr/13  Updated: 11/Jul/16  Resolved: 04/Jun/13

Status: Closed
Project: Core Server
Component/s: Build
Affects Version/s: 2.4.2
Fix Version/s: 2.4.5

Type: Bug Priority: Major - P3
Reporter: Andrew Morrow (Inactive) Assignee: Andrew Morrow (Inactive)
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows


Issue Links:
Related
Operating System: Windows
Participants:

 Description   

Note that this does not affect 2.5 which uses a different mechanism to check for windows features.

In https://github.com/mongodb/mongo/blob/v2.4/src/mongo/platform/atomic_intrinsics_win32.h#L90

we use the macro _WIN32_WINNT_VISTA to check against _WIN32_WINNT, but we don't first check that _WIN32_WINNT_VISTA is defined. So, if you try to build using a Windows SDK that predates the addition of the WIN32_WINNT_VISTA macro, the file will fail to compile.

The solution is to change the code to:

#if defined(_WIN32_WINNT_VISTA) && (_WIN32_WINNT >= _WIN32_WINNT_VISTA)
static const bool kHaveInterlocked64 = true;
#else
static const bool kHaveInterlocked64 = false;
#endif



 Comments   
Comment by auto [ 04/Jun/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-9408 Don't assume Vista aware SDK when selecting Interlocked64 implementation
Branch: v2.4
https://github.com/mongodb/mongo/commit/3ec04acb1a7183b30533678e745a920389ec8d91

Generated at Thu Feb 08 03:20:19 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.