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.