What does -vtls compiler flag does and ...
Seb
seb at wilzba.ch
Thu Oct 4 23:48:03 UTC 2018
On Wednesday, 3 October 2018 at 20:58:01 UTC, Stanislav Blinov
wrote:
> On Wednesday, 3 October 2018 at 20:41:15 UTC, welkam wrote:
>> I was playing around with dmd`s make file trying to see if I
>> can compile dmd with different compilers and different
>> compilation flags. By playing around I found that some dmd
>> files are compiled with -vtls flag unconditionally and that
>> ldc do not support this flag. First I dont know what -vtls
>> flag does so I looked at documentation...
>
>> Aren't all variables thread local unless explicitly specified?
>
> No, all *static non-immutable* variables are thread-local by
> default, not just "all variables".
>
>> What this flag does? Why some files compiled with it and other
>> dont? Why it is added to all compilation targets
>> unconditionally?
>
> It does what it says, just prints some diagnostic info. You can
> just ignore it, i.e. not use it. As for why it's in the
> makefile, I can only guess that someone keeps it there for
> diagnostic purposes :)
It was added during the transition to a D codebase to avoid
regressions. These days its more or less useless as it doesn't
fail the build anyhow.
Though LDC and GDC still rely on extern(C++) global variables for
their interface with the frontend (not TLS static).
See also: https://github.com/dlang/dmd/pull/8018
More information about the Digitalmars-d-learn
mailing list