Note that this does not affect 2.5 which uses a different mechanism to check for windows features.
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;
static const bool kHaveInterlocked64 = false;