Got it!
so the crashes were most certainly due to mixing libc++ and libstdc++ in the same binary (which was only possible in the first place because libc++ uses an inline namespace on std), especially when passing std::string as arg to functions as std::strings are not binary compatible between both c++ libs, one uses refcounting and the other uses the small string optimization (see
http://stackoverflow.com/questions/8454329/why-cant-clang-with-libc-in-c0x-mode-link-this-boostprogram-options-examp)
From here, there were only 2 solutions possible:
- compile everything with clang
- compile everything with gcc (Qt5 included, which is not in macports...)
So I went with the first solution (which is also the cleanest solution in the long term, as we use the platform's native compiler) and decided to fix compilation with clang. The resulting pull requests are here:
https://github.com/InvictusInnovations/fc/pull/3https://github.com/InvictusInnovations/BitShares/pull/16with this done, it is now possible to build a portable .dmg using the same instructions as in linux, ie:
git clone https://github.com/InvictusInnovations/keyhotee
cd keyhotee
git clone https://github.com/InvictusInnovations/BitShares
cd BitShares
git clone https://github.com/InvictusInnovations/fc
cd ..
export QTDIR=/usr/local/Cellar/qt5/5.2.0
cmake . && make
cd bin && $QTDIR/bin/macdeployqt Keyhotee.app -dmg
no need to fiddle anymore with compiler flags, etc. (note: this still assumes you have brew installed and installed the deps with it, ie: qt5, boost, icu)
I think this one should work everywhere now,
Updated .dmg:
https://www.dropbox.com/s/ngq8c9hsbypxsvv/Keyhotee.dmg