I'm digging into a problem with building Pidgin in GCC 4.8, and I found out that w32api 3.14 includes winsock2.h while current version 4.0.3-1 includes winsock.h instead. Pidgin source code has some files which end up including winsock2.h after windows.h, which is a problem if windows.h inlcuded winsock.h already, which is the case with GCC 4.8 and current w32api 4.0.3-1 (I'm assuming GCC is tied with specific versions of w32api).

So a few questions:

1. Is w32api 3.14 the right match for GCC 4.4.0? That's was indicated for manual download from their wiki. I wonder if they use a different w32api version for that version of GCC. If that's the case, then GCC 4.8 possibly needs a custom version as well.

2. Why does newer win32api include winsock.h instead of winsock2.h? I would expect the opposite, no?

3. What is the right w32api version match for GCC 4.7.2? That's the "right" compiler to use, rather than 4.8, but I cannot find a way to downgrade GCC, as asked in another thread. I would like to take a look at whatever version is used by GCC 4.7.2 to check if it still includes winsock2.h instead of winsock.h.

4. What are my alternatives with these new versions of win32api which include winsock.h, except for moving the indirect winsock2.h includes to the top before windows.h in Pidgin source code?

Thanks in advance.