Backport of core PR15849.
The first commit disables thread_local on some platforms and is not ported:
- The Darwin exclusion is no longer needed since D5514.
- The MinGw exclusion does not seem necessary, at least with our version. The tests run fine on Windows, both 32 and 64 bits.
Also see D2219 which removes the thread_local check.
This introduces a number of bugs:
- This is breaking the build for some *BSD.
- This makes some Unix tools inefficient, like ps or killall.
- Some thread names are truncated and cannot be differentiated.
The fixes will be ported in their own diff for readability.