Related to the earlier comments about building extensions on Windows, I just noticed that we don't treat "WINDLL" as equivalent to "WIN32", and "WIN32" isn't set in a Visual Studio DLL project.
We should actually be testing _WIN32, which is the compiler's pre-defined macro. The attached patch to c.h takes care of that - it tests _WIN32 in c.h and sets WIN32 early if it's found.
_WIN32 is set for both win32 and win64, like we expect from WIN32.
Regardless of where the other thread goes, this seems like something we should fix. Thus - applied, with minor changes to the comment, thanks.
My understanding is that this change alone doesn't actually help us very much, so I haven't backpatched it anywhere. Let me know if that understanding was incorrect, and it would actually help as a backpatch.