[MacPorts] #55272: cmake @3.9.5: dyld: lazy symbol binding failed: Symbol not found: __ZSt11_Hash_bytesPKvmm
MacPorts
noreply at macports.org
Wed Nov 8 02:47:22 UTC 2017
#55272: cmake @3.9.5: dyld: lazy symbol binding failed: Symbol not found:
__ZSt11_Hash_bytesPKvmm
-------------------------+--------------------------
Reporter: ryandesign | Owner: michaelld
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords: mountainlion
Port: cmake |
-------------------------+--------------------------
Comment (by ryandesign):
What I think has happened is that on the 10.6, 10.7, and 10.8 buildbot
workers, cmake 3.9.5 did actually build a binary while using the cxx11 1.1
portgroup, but it was not functional, in the way shown in this ticket, and
it was not distributable because of something in the large compiler
dependency chain. When you committed
[44373e0fd9955702e9e2f6820b2cf595fec24c65/macports-ports], reverting
[c8d94a92cb1d690a3dc052ff1ed7c0107af9b32a/macports-ports], the large
compiler dependency chain went away, making it distributable again, so it
distributed the nonfunctional binary it built before.
I can see that the "bad" cmake binary is linked with libgcc's libstdc++:
{{{
$ otool -L /opt/local/bin/cmake
/opt/local/bin/cmake:
/opt/local/lib/libexpat.1.dylib (compatibility version 8.0.0,
current version 8.7.0)
/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current
version 1.2.11)
/opt/local/lib/libarchive.13.dylib (compatibility version 17.0.0,
current version 17.2.0)
/opt/local/lib/libcurl.4.dylib (compatibility version 10.0.0,
current version 10.0.0)
/opt/local/lib/libuv.1.dylib (compatibility version 2.0.0, current
version 2.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
(compatibility version 150.0.0, current version 744.19.0)
/opt/local/lib/libgcc/libstdc++.6.dylib (compatibility version
7.0.0, current version 7.24.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 169.3.0)
}}}
while the "good" cmake binary is linked with OS X's libstdc++:
{{{
$ otool -L /opt/local/bin/cmake
/opt/local/bin/cmake:
/opt/local/lib/libexpat.1.dylib (compatibility version 8.0.0,
current version 8.7.0)
/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current
version 1.2.11)
/opt/local/lib/libarchive.13.dylib (compatibility version 17.0.0,
current version 17.2.0)
/opt/local/lib/libcurl.4.dylib (compatibility version 10.0.0,
current version 10.0.0)
/opt/local/lib/libuv.1.dylib (compatibility version 2.0.0, current
version 2.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
(compatibility version 150.0.0, current version 744.19.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current
version 56.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 169.3.0)
}}}
10.5 ppc was unaffected because clang doesn't work on ppc so it didn't
build a faulty binary, and when the clang compiler dependency was removed
it built and distributed a good binary.
So I think you can fix the problem for 10.6, 10.7, and 10.8 by revbumping
cmake.
--
Ticket URL: <https://trac.macports.org/ticket/55272#comment:2>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list