title: dll + boost + VS2015 + WinXP == crashes
body: <p>I'm writing <em>my.dll</em> which to be run on <em>WinXP</em>, it's compiled with '<em>vs2015</em>' and uses '<em>boost 1.64.0 32bit prebuilt library</em>'.</p>
  
  <p>There's only one line of code for <em>my.dll</em>:</p>
  
  <pre><code>#include &lt;boost/thread/shared_mutex.hpp&gt;
  </code></pre>
  
  <p>Try to load it via regsvr32 on WinXP (regsvr32 calls LoadLibrary):</p>
  
  <pre><code>regsvr32 my.dll
  </code></pre>
  
  <p>It fails to load, from windbg I see there's an Access violation - code c0000005</p>
  
  <p>I tried the old version 1.63, same problem. I guess it's related to magic statics of vs2015, tried to add the compile flag "/Zc:threadSafeInit-" to disable it but still no luck.</p>
  
  <p>There seems to be compile flags like <code>BOOST_LOG_USE_COMPILER_TLS</code>, <code>BOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION</code> for disabling thread-safe for some particular library, but I don't see any flag that can do that for Boost.Thread.</p>
  
  <p>Any idea?</p>
  
  <p>My dev environment is: Win10 + VS2015(update 3) + boost_1.64.0_msvc14_32bit (prebuilt windows binary) + compile flag( "/MT /Zc:threadSafeInit-" )</p>
  
  <p>The testing environment:
     crashes on:  WinXP_sp3  / Win2003_R2 
     works fine on: Win7+</p>