I've spent the morning trying to get the C++ library compiled using mingw/cygwin. I had to make a few changes to get things to compile. Some places didn't include sys/time.h when they needed to (for the timeval struct) and I needed to make the timeval struct in the global namespace, else the compiler would try to look for it in the thrift namespace.
There was also a minor issue with the syntax for the #ifdef HAVE_STRERROR_R check in Thrift.cpp; the config.h file says to set the parameter to 0 if strerror_r is not available - rather than undefine it.
Last of all, I had to add in an implementation of vsnprintf() as my version of mingw did not provide it