www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Undefined symbol: _dyld_enumerate_tlv_storage (OSX)

reply =?iso-8859-1?Q?Robert_M._M=FCnch?= <robert.muench saphirion.com> writes:
I have two project I want to compile and both times get this error:

Undefined symbols for architecture x86_64:
  "_dyld_enumerate_tlv_storage", referenced from:
      __d_dyld_getTLSRange in libphobos2.a(osx_tls.o)

I'm wondering where this comes from as I didn't see it in the past. Any idea?

-- 
Robert M. Mnch
http://www.saphirion.com
smarter | better | faster
Oct 10 2019
next sibling parent reply Daniel Kozak <kozzi11 gmail.com> writes:
What dmd version?

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

On Thu, Oct 10, 2019 at 8:15 PM Robert M. Münch via
Digitalmars-d-learn <digitalmars-d-learn puremagic.com> wrote:
 I have two project I want to compile and both times get this error:

 Undefined symbols for architecture x86_64:
   "_dyld_enumerate_tlv_storage", referenced from:
       __d_dyld_getTLSRange in libphobos2.a(osx_tls.o)

 I'm wondering where this comes from as I didn't see it in the past. Any idea?

 --
 Robert M. Münch
 http://www.saphirion.com
 smarter | better | faster
Oct 10 2019
next sibling parent Laurent =?UTF-8?B?VHLDqWd1aWVy?= <laurent.treguier.sink gmail.com> writes:
On Thursday, 10 October 2019 at 18:31:25 UTC, Daniel Kozak wrote:
 What dmd version?

 https://issues.dlang.org/show_bug.cgi?id=20019
Ah, I should have read this before replying; that's precisely the issue I had.
Oct 10 2019
prev sibling parent reply =?iso-8859-1?Q?Robert_M._M=FCnch?= <robert.muench saphirion.com> writes:
On 2019-10-10 18:31:25 +0000, Daniel Kozak said:

 What dmd version?
I think I had an older one like 2.085 or so. I updated to 2.088 and it now seems to work.
 https://issues.dlang.org/show_bug.cgi?id=20019
I'm on OSX 10.14.6, so this might not be directly related to Catalina but maybe more to the XCode Version installed: | => xcrun --show-sdk-version 10.15 So, it's possible to run 10.14 with SDK version 10.15 which seems to trigger the problem. Thanks for the hints. -- Robert M. Mnch http://www.saphirion.com smarter | better | faster
Oct 11 2019
parent reply Jacob Carlborg <doob me.com> writes:
On 2019-10-11 18:48, Robert M. Mnch wrote:
 On 2019-10-10 18:31:25 +0000, Daniel Kozak said:
 
 
 What dmd version?
 
 
 I think I had an older one like 2.085 or so. I updated to 2.088 and it 
 now seems to work.
 
 
 https://issues.dlang.org/show_bug.cgi?id=20019
 
 
 I'm on OSX 10.14.6, so this might not be directly related to Catalina 
 but maybe more to the XCode Version installed:
 
 
 | => xcrun --show-sdk-version
 
 10.15
 
 
 So, it's possible to run 10.14 with SDK version 10.15 which seems to 
 trigger the problem.
No, I don't think that's the problem. I have the same setup and I don't have this problem. What result do you get if you run the following command: nm /usr/lib/system/libdyld.dylib | grep _dyld_enumerate_tlv_storage -- /Jacob Carlborg
Oct 11 2019
parent reply =?iso-8859-1?Q?Robert_M._M=FCnch?= <robert.muench saphirion.com> writes:
On 2019-10-11 18:09:01 +0000, Jacob Carlborg said:

 No, I don't think that's the problem. I have the same setup and I don't 
 have this problem.
Interesting... but the update seems to have solved the problem. Maybe some old DMD compiler stuff lying around got in the way.
 What result do you get if you run the following command:
 
 nm /usr/lib/system/libdyld.dylib | grep _dyld_enumerate_tlv_storage
=> nm /usr/lib/system/libdyld.dylib | grep _dyld_enumerate_tlv_storage 0000000000017eca T _dyld_enumerate_tlv_storage -- Robert M. Mnch http://www.saphirion.com smarter | better | faster
Oct 14 2019
parent Jacob Carlborg <doob me.com> writes:
On 2019-10-14 09:29, Robert M. Münch wrote:

 => nm /usr/lib/system/libdyld.dylib | grep _dyld_enumerate_tlv_storage
 0000000000017eca T _dyld_enumerate_tlv_storage
Strange, the output shows that the symbol is present. -- /Jacob Carlborg
Oct 14 2019
prev sibling next sibling parent Laurent =?UTF-8?B?VHLDqWd1aWVy?= <laurent.treguier.sink gmail.com> writes:
On Thursday, 10 October 2019 at 18:12:51 UTC, Robert M. Münch 
wrote:
 I have two project I want to compile and both times get this 
 error:

 Undefined symbols for architecture x86_64:
  "_dyld_enumerate_tlv_storage", referenced from:
      __d_dyld_getTLSRange in libphobos2.a(osx_tls.o)

 I'm wondering where this comes from as I didn't see it in the 
 past. Any idea?
I had the same missing symbol at runtime, when trying to run an already compiled binary (LDC 1.16 I think) after a Catalina update. In that case, recompiling (LDC 1.17 or DMD 2.088.0) was apparently enough to mitigate the issue.
Oct 10 2019
prev sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2019-10-10 20:12, Robert M. Münch wrote:
 I have two project I want to compile and both times get this error:
 
 Undefined symbols for architecture x86_64:
   "_dyld_enumerate_tlv_storage", referenced from:
       __d_dyld_getTLSRange in libphobos2.a(osx_tls.o)
 
 I'm wondering where this comes from as I didn't see it in the past. Any 
 idea?
 
Any D application needs to be compiled with DMD 2.087.1 or later or the corresponding version of LDC to be able to run on macOS Catalina. That includes DMD itself. The oldest version of DMD that runs on Catalina is 2.088.0, since any given version of DMD is compiled with the previous version. That means that all D applications out there for macOS needs to be recompiled. -- /Jacob Carlborg
Oct 11 2019
next sibling parent reply Joel <joelcnz gmail.com> writes:
On Friday, 11 October 2019 at 11:38:27 UTC, Jacob Carlborg wrote:
 On 2019-10-10 20:12, Robert M. Münch wrote:
 I have two project I want to compile and both times get this 
 error:
 
 Undefined symbols for architecture x86_64:
   "_dyld_enumerate_tlv_storage", referenced from:
       __d_dyld_getTLSRange in libphobos2.a(osx_tls.o)
 
 I'm wondering where this comes from as I didn't see it in the 
 past. Any idea?
 
Any D application needs to be compiled with DMD 2.087.1 or later or the corresponding version of LDC to be able to run on macOS Catalina. That includes DMD itself. The oldest version of DMD that runs on Catalina is 2.088.0, since any given version of DMD is compiled with the previous version. That means that all D applications out there for macOS needs to be recompiled.
I get this since Catalina: Joel-Computer:VacSpace joelchristensen$ dub Failed to invoke the compiler dmd to determine the build platform: dyld: lazy symbol binding failed: Symbol not found: _dyld_enumerate_tlv_storage Referenced from: /usr/local/bin/dmd Expected in: /usr/lib/libSystem.B.dylib dyld: Symbol not found: _dyld_enumerate_tlv_storage Referenced from: /usr/local/bin/dmd Expected in: /usr/lib/libSystem.B.dylib Joel-Computer:VacSpace joelchristensen$ I use Home Brew (brew upgrade dmd, and brew upgrade dub) Brew is only up to 2.087.1 at the moment - John Colvin seems to be the man that mantains dmd with brew.
Oct 13 2019
next sibling parent Paolo Invernizzi <paolo.invernizzi gmail.com> writes:
On Monday, 14 October 2019 at 05:36:44 UTC, Joel wrote:
 On Friday, 11 October 2019 at 11:38:27 UTC, Jacob Carlborg 
 wrote:
 [...]
I get this since Catalina: Joel-Computer:VacSpace joelchristensen$ dub Failed to invoke the compiler dmd to determine the build platform: dyld: lazy symbol binding failed: Symbol not found: _dyld_enumerate_tlv_storage Referenced from: /usr/local/bin/dmd Expected in: /usr/lib/libSystem.B.dylib dyld: Symbol not found: _dyld_enumerate_tlv_storage Referenced from: /usr/local/bin/dmd Expected in: /usr/lib/libSystem.B.dylib Joel-Computer:VacSpace joelchristensen$ I use Home Brew (brew upgrade dmd, and brew upgrade dub) Brew is only up to 2.087.1 at the moment - John Colvin seems to be the man that mantains dmd with brew.
I confirm that DMD downloaded from the official script works like charms on Catilina. You can rely on that right now ...
Oct 14 2019
prev sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2019-10-14 07:36, Joel wrote:

 I use Home Brew (brew upgrade dmd, and brew upgrade dub)
 Brew is only up to 2.087.1 at the moment - John Colvin seems to be the 
 man that mantains dmd with brew.
You can use DVM [1] to install the latest version of DMD. [1] https://github.com/jacob-carlborg/dvm -- /Jacob Carlborg
Oct 14 2019
next sibling parent Joel Ezra Christensen <joelcnz gmail.com> writes:
On Monday, 14 October 2019 at 18:49:04 UTC, Jacob Carlborg wrote:
 On 2019-10-14 07:36, Joel wrote:

 I use Home Brew (brew upgrade dmd, and brew upgrade dub)
 Brew is only up to 2.087.1 at the moment - John Colvin seems 
 to be the man that mantains dmd with brew.
You can use DVM [1] to install the latest version of DMD. [1] https://github.com/jacob-carlborg/dvm
Thanks, but I’m not sure, since I’m using home for D, I’m not sure I won’t get complications. I guess it should be fine, I think I’ll just use TimeMachine and then try DVM.
Oct 14 2019
prev sibling next sibling parent Joel <joelcnz gmail.com> writes:
On Monday, 14 October 2019 at 18:49:04 UTC, Jacob Carlborg wrote:
 On 2019-10-14 07:36, Joel wrote:

 I use Home Brew (brew upgrade dmd, and brew upgrade dub)
 Brew is only up to 2.087.1 at the moment - John Colvin seems 
 to be the man that mantains dmd with brew.
You can use DVM [1] to install the latest version of DMD. [1] https://github.com/jacob-carlborg/dvm
I started an issue for DVM under: 'macOS Cataline'
Oct 15 2019
prev sibling parent Joel <joelcnz gmail.com> writes:
On Monday, 14 October 2019 at 18:49:04 UTC, Jacob Carlborg wrote:
 On 2019-10-14 07:36, Joel wrote:

 I use Home Brew (brew upgrade dmd, and brew upgrade dub)
 Brew is only up to 2.087.1 at the moment - John Colvin seems 
 to be the man that mantains dmd with brew.
You can use DVM [1] to install the latest version of DMD. [1] https://github.com/jacob-carlborg/dvm
I added an issue for DVM under: 'macOS Cataline'
Oct 15 2019
prev sibling parent reply nazriel <spam dzfl.pl> writes:
On Friday, 11 October 2019 at 11:38:27 UTC, Jacob Carlborg wrote:
 On 2019-10-10 20:12, Robert M. Münch wrote:
 I have two project I want to compile and both times get this 
 error:
 
 Undefined symbols for architecture x86_64:
   "_dyld_enumerate_tlv_storage", referenced from:
       __d_dyld_getTLSRange in libphobos2.a(osx_tls.o)
 
 I'm wondering where this comes from as I didn't see it in the 
 past. Any idea?
 
Any D application needs to be compiled with DMD 2.087.1 or later or the corresponding version of LDC to be able to run on macOS Catalina. That includes DMD itself. The oldest version of DMD that runs on Catalina is 2.088.0, since any given version of DMD is compiled with the previous version. That means that all D applications out there for macOS needs to be recompiled.
When I tried to build DMD from source (via updated brew tap) it failed due to fact that DMD_HOST is stuck on dmd.2.079.1 which seems to still use old symbols. Should we bump https://github.com/dlang/dmd/blob/master/src/posix.mak#L143 ? BR, Damian
Oct 16 2019
parent nazriel <spam dzfl.pl> writes:
On Wednesday, 16 October 2019 at 15:52:22 UTC, nazriel wrote:
 On Friday, 11 October 2019 at 11:38:27 UTC, Jacob Carlborg 
 wrote:
 ...

 Should we bump 
 https://github.com/dlang/dmd/blob/master/src/posix.mak#L143 ?

 BR,
 Damian
I made two PRs, lets see how it plays out: - https://github.com/dlang/dmd/pull/10489 - https://github.com/Homebrew/homebrew-core/pull/45456 BR, Damian
Oct 17 2019