Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem with running the latest solc on OS X Yosemite: Symbol not found: __ZN4Json5ValueaSERKS0_ #477

Closed
Nashatyrev opened this issue Apr 5, 2016 · 9 comments

Comments

@Nashatyrev
Copy link
Member

46-20-235-13:solc admin$ brew install cpp-ethereum
Warning: ethereum/ethereum/cpp-ethereum-1.2.3 already installed
46-20-235-13:solc admin$ solc --version
solc, the solidity compiler commandline interface
Version: 0.3.1-c492d9be/RelWithDebInfo-Darwin/appleclang/JIT linked to libethereum-1.2.3-bb12c30a/RelWithDebInfo-Darwin/appleclang/JIT
46-20-235-13:solc admin$ solc a.sol 
dyld: lazy symbol binding failed: Symbol not found: __ZN4Json5ValueaSERKS0_
  Referenced from: /usr/local/Cellar/cpp-ethereum/1.2.3/lib/libsolidity.dylib
  Expected in: /usr/local/lib/libjsoncpp.dylib

dyld: Symbol not found: __ZN4Json5ValueaSERKS0_
  Referenced from: /usr/local/Cellar/cpp-ethereum/1.2.3/lib/libsolidity.dylib
  Expected in: /usr/local/lib/libjsoncpp.dylib

Trace/BPT trap: 5
@Nashatyrev
Copy link
Member Author

brew uninstall cpp-ethereum
brew install cpp-ethereum

gives me the same result

Build jsoncpp from latest master branch - result is the same

Just checked on a clean Yosemite - the same error

@Nashatyrev
Copy link
Member Author

On El Captain solc works perfectly fine after installing with Homebrew.
In both cases the same jsoncpp 1.6.5 is used and on both systems there is no such symbol as __ZN4Json5ValueaSERKS0_ exported by this lib.

@chriseth
Copy link
Contributor

chriseth commented Apr 6, 2016

@bobsummerwill do you have an idea here?

@Nashatyrev
Copy link
Member Author

Took the libjsoncpp.dylib from this package https://build.ethdev.com/cpp-binaries-data/release-1.2.3/Ethereum.dmg and, it contains missing symbol:

46-20-235-13:solc3 admin$ nm -gU libjsoncpp.dylib | grep Valuea
000000000000e844 T __ZN4Json5ValueaSERKS0_

After replacing the lib everything worked fine.

@VoR0220
Copy link
Member

VoR0220 commented Apr 6, 2016

sounds like a problem with the updated brew.

@bobsummerwill
Copy link
Contributor

From Gitter ...

That is really weird, @Nashatyrev! I wonder if there is some pre-processor magic going on? Some one of those DYLIBs has some extra symbols. I know we hit something before, though I think it was with cryptopp, where there was some issue with the minimum target architecture, like building for SSE2 or not, which resulted in different binaries where this kind of thing happened on one OS X version and not others.

@bruceseymour
Copy link

Where does the libjsoncpp.dylib replacement file go? I was able to download the dmg and find the libjsoncpp.dylib using 'Show Package Contents' from Finder.

I'm receiving a Segmentation fault: 11 when using ethminer -G and/or ethminer -C and hopefully this will fix the issue if I can replace the file.

@chriseth
Copy link
Contributor

chriseth commented Aug 5, 2016

@bobsummerwill is this fixed?

@chriseth chriseth added this to the 3-build-system milestone Aug 5, 2016
@bobsummerwill
Copy link
Contributor

I believe so, yes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants