There are basically two source bases, the
original MinGW project and the
MinGW-w64 project.
The original MinGW project isn't very actively maintained anymore, has/had quite a few issues (e.g. regarding C++11 features) and does not provide an 64bit compiler.
The MinGW-w64 project is actively maintained and already up-to-date with GCC 5.2, plus I have yet to run into any issues with C++11/14 features.
Now from these two source bases exist multiple builds, i.e. someone grabbed the source and compiled the compiler. Such builds are for example the TDM builds, the nuwen builds, the MinGW-w64 Builds and a bunch of others. All of the mentioned builds are using the MinGW-w64 source base by now.
The TDM builds have
quite a few quirks, the most prominent and in my opinion a deal-breaker is that by default the runtime libraries are linked statically. Every other GCC based (and Clang based) compiler acts differently and thus all build scripts you find out there will expect things to work differently, meaning unless a build script is explicitly adjusted for the TDM compilers, it won't be fully compatible with the TDM builds. This is why I advocate whenever I have the chance to not use TDM builds.
The nuwen builds are created by S.T.L. the guy behind Visual Studios implementation of the STL (standard library). In addition to the GCC toolchain you'll also get a few libraries pre-compiled including boost, zlib, SDL and a bunch more. One issue that these builds sometimes have is that there's no
mingw32-make.exe which for example CMake is looking for when you use the MinGW Makefile generator, but this is a minor issue and can easily be fixed.
The MinGW-w64 Builds are my favorite builds because they come in various configurations and are usually updated very quickly. I've been using them for a long time and haven't noticed any issues. There are many options which I'll go into further down.
DW2, SJLJ and SEH are exception models, meaning they are different implementation of exception handling. It really doesn't matter which model you use. If you research them a bit then you'll find that some yield "better" performance and some can be used to throw across OS calls or similar. But again it doesn't matter, especially not for SFML.
POSIX threads and Win32 threads specify what implementation for threading is used. The important point is that if you want to use
std::thread you'll have to use the POSIX threading model, which unfortunately will pull in the winpthread library that you either have to ship the DLL of or link it statically (only link statically if you also link the runtime libs statically). I've no idea what Mario said about the licensing.
As for version numbers, they match the GCC version numbers. The newest version you currently can get it GCC 5.2. The 4.9.2 packages you see on the download page used
this package. If you want to use the pre-built libs you have to use that exact compiler.
My personally recommendation is to get the
MinGW-w64 installer, download the latest version and build SFML and any other library from source.
It's simple and doesn't give you any headaches as others seem to suggest...