<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    On 05.09.2011 21:35, Sönke Ludwig wrote:
    <blockquote cite="mid:4E65247F.2090705@informatik.uni-luebeck.de"
      type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      Am 05.09.2011 19:54, schrieb Rainer Schuetze:
      <blockquote cite="mid:4E650CBA.6080702@gmx.de" type="cite">
        <meta content="text/html; charset=ISO-8859-1"
          http-equiv="Content-Type">
        <br>
        What OS are you running on? <br>
        <br>
        Your code works for me (XP SP3). Also Visual D works fine AFAICT
        (its a plugin DLL to VS).<br>
        <br>
      </blockquote>
      Windows 7 x64 SP1... But it is more complicated than it seemed.<br>
      <br>
      I had another file linked to the DLL that I thought had not
      effect. But actually it used a function from another DLL* that was
      linked in statically via passing a .lib file to the command line
      (along with the source files). The error does not occur if
      compiling and linking is done by separate invocations of dmd. Also
      commenting out all the lines that use a function from the external
      DLL fixes the problem.<br>
      <br>
      (* that DLL is LLVM 2.9, so no D code inside)<br>
      <br>
      <br>
    </blockquote>
    <br>
    There might be issues if you are calling another DLL from inside the
    (non-shared) static constructors and that DLL also uses TLS. In
    DllMain(DLL_PROCESS_ATTACH), each existing thread is initialized by
    just swapping the TLS data of the DLL and then running the module
    initialization. So if another DLL is called, it will only see the
    TLS of the thread that called DllMain.<br>
    <br>
    I don't think anything in this code has changes recently. Is this a
    regression from the last dmd version?<br>
    <br>
    <br>
  </body>
</html>