Thread overview
[Issue 20019] Symbol not found: _dyld_enumerate_tlv_storage on macOS 10.15
Jul 01
kinke
Jul 01
kinke
Jul 07
Dlang Bot
Jul 08
Dlang Bot
July 01
https://issues.dlang.org/show_bug.cgi?id=20019

--- Comment #1 from Jacob Carlborg <doob@me.com> ---
Actually, just running DMD is enough to reproduce it.

--
July 01
https://issues.dlang.org/show_bug.cgi?id=20019

kinke <kinke@gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kinke@gmx.net

--- Comment #2 from kinke <kinke@gmx.net> ---
> This issue will apply to LDC as well.

Nope, we don't use this symbol.

--
July 01
https://issues.dlang.org/show_bug.cgi?id=20019

--- Comment #3 from kinke <kinke@gmx.net> ---
Argh, my grep was bad, as the C druntime files aren't included in a prebuilt package (I'm at work), so yes, LDC will be affected too.

--
July 07
https://issues.dlang.org/show_bug.cgi?id=20019

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #4 from Dlang Bot <dlang-bot@dlang.rocks> ---
@jacob-carlborg created dlang/druntime pull request #2666 " Fix issue 20019: Symbol not found: _dyld_enumerate_tlv_storage on macOS 10.15" fixing this issue:

- Fix issue 20019: Symbol not found: _dyld_enumerate_tlv_storage on macOS 10.15

  The symbol `dyld_enumerate_tlv_storage` has been used to iterate all
  the thread local storage addresses and registered them as roots with
  the garbage collector.

  The symbol has always been a private symbol, not part of the public
  API. In the latest version of macOS, 10.15 it has been removed.

  This replaces the usage of `dyld_enumerate_tlv_storage` by manually
  iterating the TLV sections of all images and get key that the dynamic
  loader has setup for each TLS symbol. The key is then used to get the
  base address of the TLV storage.

https://github.com/dlang/druntime/pull/2666

--
July 08
https://issues.dlang.org/show_bug.cgi?id=20019

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #5 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/druntime pull request #2666 " Fix issue 20019: Symbol not found: _dyld_enumerate_tlv_storage on macOS 10.15" was merged into stable:

- 378fc6dfadc8b638616d146496eaee79995678ac by Jacob Carlborg:
  Fix issue 20019: Symbol not found: _dyld_enumerate_tlv_storage on macOS 10.15

  The symbol `dyld_enumerate_tlv_storage` has been used to iterate all
  the thread local storage addresses and registered them as roots with
  the garbage collector.

  The symbol has always been a private symbol, not part of the public
  API. In the latest version of macOS, 10.15 it has been removed.

  This replaces the usage of `dyld_enumerate_tlv_storage` by manually
  iterating the TLV sections of all images and get key that the dynamic
  loader has setup for each TLS symbol. The key is then used to get the
  base address of the TLV storage.

https://github.com/dlang/druntime/pull/2666

--