You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On OS X 10.10 (Yosemite) using augeas 1.1.0 installed via MacPorts and ruby-augeas 0.5.0 ruby bindings fail with an unknown error - Failed to initialize Augeas (SystemCallError).
This can be reproduced via a simple test program such as:
If I force loading libfa.dylib first via export DYLD_INSERT_LIBRARIES=/opt/local/lib/libfa.dylib it resolves correctly and the test program no longer causes an exception. This confirmed that it's caused by how dyld resolves hash_create.
Looking at libfa.dylib the function hash_create is in fact defined.
but disassembling libfa.dylib shows that there's a stub to call hash_create from state_set_hash_add instead of a direct call to hash_create!?
...
0000000000009a02 callq 0x1f5d2 ## symbol stub for: _hash_create
...
NOTE: if compiled manually from the release tarball, i.e. not via MacPorts, the calls to hash_create are direct as expected (and thus avoids this problem altogether).
You can read my dissectionselsewhere, but the gist is that the sloppy parsing of MACOSX_DEPLOYMENT_TARGET used by old versions of Libtool broke once the OS X minor version went into the double digits.
The bug was fixed in the recent Libtool 2.4.3 release, but any configure scripts generated by older Libtool still have the bug. The best fix is to regenerate your next release's configure using a recent Libtool.
On OS X 10.10 (Yosemite) using augeas 1.1.0 installed via MacPorts and ruby-augeas 0.5.0 ruby bindings fail with an
unknown error - Failed to initialize Augeas (SystemCallError)
.This can be reproduced via a simple test program such as:
It fails with:
I debugged into it and it fails because
dyld
resolveshash_create
tolibsystem_c.dylib
and notlibfa.dylib
as illustrated by this backtrace.If I force loading
libfa.dylib
first viaexport DYLD_INSERT_LIBRARIES=/opt/local/lib/libfa.dylib
it resolves correctly and the test program no longer causes an exception. This confirmed that it's caused by howdyld
resolveshash_create
.Looking at
libfa.dylib
the functionhash_create
is in fact defined.but disassembling
libfa.dylib
shows that there's a stub to callhash_create
fromstate_set_hash_add
instead of a direct call tohash_create
!?NOTE: if compiled manually from the release tarball, i.e. not via MacPorts, the calls to
hash_create
are direct as expected (and thus avoids this problem altogether).The text was updated successfully, but these errors were encountered: