shadow / shadow-plugin-bitcoin

A Shadow plug-in that runs the Bitcoin Satoshi reference software

Home Page:https://shadow.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unable to build plugin on Ubuntu 16.04

AMarcedone opened this issue · comments

I am having issues building the plugin on Ubuntu 16.04.
I tracked down the command which is failing from the make script, and it is the following:

 antonio@AntonioXPS13:~/shadowInstall/shadow-plugin-bitcoin/build/shadow-plugin-bitcoin/src$ cd /home/antonio/shadowInstall/shadow-plugin-bitcoin/build/shadow-plugin-bitcoin/src %&& /usr/bin/clang++   -DBOOST_ALL_DYN_LINK="1 -DBOOST_ALL_NO_LIB=1 -DBOOST_THREAD_POSIX" -DDEBUG -DHAVE_CONFIG_H -DLEVELDB_PLATFORM_POSIX -Dshadow_preload_bitcoind_EXPORTS -I/home/antonio/shadowInstall/shadow-plugin-bitcoin/build/shadow-plugin-bitcoin/src -I/home/antonio/shadowInstall/shadow-plugin-bitcoin/src -I/home/antonio/shadowInstall/shadow-plugin-bitcoin/build/bitcoin/src/leveldb/helpers/memenv -I/home/antonio/shadowInstall/shadow-plugin-bitcoin/build/bitcoin/src/leveldb/helpers -I/home/antonio/shadowInstall/shadow-plugin-bitcoin/build/bitcoin/src/leveldb/include -I/home/antonio/shadowInstall/shadow-plugin-bitcoin/build/bitcoin/src/leveldb -I/home/antonio/shadowInstall/shadow-plugin-bitcoin/build/bitcoin/src/config -I/home/antonio/shadowInstall/shadow-plugin-bitcoin/build/bitcoin/src -I/home/antonio/shadowInstall/shadow-plugin-bitcoin/build/gnu-pth -I/home/antonio/shadowInstall/shadow-plugin-bitcoin/build/boost_1_62_0 -I/home/antonio/shadowInstall/shadow-plugin-bitcoin/cmake -I/home/antonio/.shadow/include -I/home/antonio/.shadow/share/cmake/Modules -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include  -g -g -fPIC   -DHAS_BOOST -DHAVE_WORKING_BOOST_SLEEP -o CMakeFiles/shadow-preload-bitcoind.dir/bitcoind/bitcoind-preload.cpp.o -c /home/antonio/shadowInstall/shadow-plugin-bitcoin/src/bitcoind/bitcoind-preload.cpp
 /home/antonio/shadowInstall/shadow-plugin-bitcoin/src/bitcoind/bitcoind-preload.cpp:15:8: error: incomplete type 'std::locale' named in nested name specifier
   std::locale::locale();
   ~~~~~^~~~~~~~
 /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/localefwd.h:55:9: note: forward declaration of 'std::locale'
   class locale;
         ^
 /home/antonio/shadowInstall/shadow-plugin-bitcoin/src/bitcoind/bitcoind-preload.cpp:20:8: error: incomplete type 'std::locale' named in nested name specifier
   void locale::_S_initialize() {
        ^~~~~~~~
 /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/localefwd.h:55:9: note: forward declaration of 'std::locale'
   class locale;
         ^
 2 errors generated.
 

The version of clang I am using:

$ clang -v -print-search-dirs
Ubuntu clang version 3.6.2-3ubuntu2 (tags/RELEASE_362/final) (based on LLVM 3.6.2)
Target: x86_64-pc-linux-gnu
Thread model: posix
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/5.4.0
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/6.0.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.7
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.7.4
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8.5
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9.3
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.0.0
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/5.4.0
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/6.0.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.7.4
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.5
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.3
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.0.0
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0
Candidate multilib: .;@m64
Selected multilib: .;@m64
programs: =/usr/bin:/usr/lib/llvm-3.6/bin:/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../x86_64-linux-gnu/bin
libraries: =/usr/lib/llvm-3.6/bin/../lib/clang/3.6.2:/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0:/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../x86_64-linux-gnu:/lib/x86_64-linux-gnu:/lib/../lib64:/usr/lib/x86_64-linux-gnu:/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../..:/usr/lib/llvm-3.6/bin/../lib:/lib:/usr/lib

I think this might be related to the version of stdlibc++ I am using, but I am not sure how to force the clang compiler to use a different one after installing it via apt-get. Any suggestions?

Make sure you are using Shadow version 1.10.2, and the latest master branch of the bitcoin plugin. After that, I don't have much experience building this plugin in many diverse environments.

Thanks!
If I manage to make progress, I'll post a comment here.