Skip to content
This repository has been archived by the owner on Feb 7, 2018. It is now read-only.

openSUSE - Work through all build errors #552

Closed
w-sec opened this issue Jun 6, 2016 · 30 comments
Closed

openSUSE - Work through all build errors #552

w-sec opened this issue Jun 6, 2016 · 30 comments
Assignees
Labels

Comments

@w-sec
Copy link

w-sec commented Jun 6, 2016

OS: Opensuse 42.1
I'm trying to build from source.
After satisfying dependencies I successfully runned cmake. Then make and got the following errors. AdminEthFace.h.tmp file is not found, as well as cpuid headers + lib, I'm not sure where is it looking for it. And VMJM fails at compiling.

Heres the full log:

limechain@fruittree:~/Dev/webthree-umbrella/build> cmake ..
-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- boost headers: /usr/include
-- boost lib : /usr/lib64/libboost_thread-mt.so;/usr/lib64/libboost_date_time-mt.so;/usr/lib64/libboost_system-mt.so;/usr/lib64/libboost_regex-mt.so;/usr/lib64/libboost_chrono-mt.so;/usr/lib64/libboost_filesystem-mt.so;/usr/lib64/libboost_unit_test_framework-mt.so;/usr/lib64/libboost_program_options-mt.so;/usr/lib64/libboost_random-mt.so


-- Configuring cpp-ethereum

-- CMake Version 3.3.2
-- CMAKE_BUILD_TYPE Build type RelWithDebInfo
-- TARGET_PLATFORM Target platform Linux
--------------------------------------------------------------- features
-- PROFILING Profiling support OFF
------------------------------------------------------------- components
-- GUI Build GUI components ON

-- SOLIDITY Build Solidity ON

-- Found gmp: /usr/lib64/libgmp.so
-- Gmp headers: /usr/include
-- Gmp lib : /usr/lib64/libgmp.so


-- Configuring dev

-- CMake Version 3.3.2
-- CMAKE_BUILD_TYPE Build type RelWithDebInfo
-- TARGET_PLATFORM Target platform Linux
--------------------------------------------------------------- features
-- PROFILING Profiling support OFF
-- PARANOID - OFF
-- MINIUPNPC - ON
------------------------------------------------------------- components
-- GUI Build GUI components ON
-- TESTS Build tests ON
-- TOOLS Build tools ON

-- SOLIDITY Build Solidity ON

-- Found jsoncpp: /usr/lib64/libjsoncpp.so
-- JsonCpp headers: /usr/include
-- JsonCpp lib : /usr/lib64/libjsoncpp.so
-- Found leveldb: /usr/lib64/libleveldb.so
-- LevelDB headers: /usr/include
-- LevelDB lib : /usr/lib64/libleveldb.so
-- Found CryptoPP: /usr/include (found suitable version "5.6.2", minimum required is "5.6.2")
-- CryptoPP headers: /usr/include
-- CryptoPP lib : /usr/lib64/libcryptopp.so
-- Found miniupnpc: /usr/lib64/libminiupnpc.so
-- miniupnpc headers: /usr/include
-- miniupnpc lib : /usr/lib64/libminiupnpc.so
./memorydb.cpp./overlaydb.cpp./test.cpp./libdevcore/./Base36.cpp./libdevcore/./CommonJS.cpp./libdevcore/./FixedHash.cpp./libdevcore/./RangeMask.cpp./libdevcore/./core.cpp./libdevcore/./rlp.cpp./libdevcrypto/./AES.cpp./libdevcrypto/./MemTrie.cpp./libdevcrypto/./SecretStore.cpp./libdevcrypto/./crypto.cpp./libdevcrypto/./hexPrefix.cpp./libdevcrypto/./trie.cpp./libp2p/./capability.cpp./libp2p/./eip-8.cpp./libp2p/./net.cpp./libp2p/./peer.cpp./libp2p/./rlpx.cpp


-- Configuring ethereum

-- CMake Version 3.3.2
-- CMAKE_BUILD_TYPE Build type RelWithDebInfo
-- TARGET_PLATFORM Target platform Linux
--------------------------------------------------------------- features
-- Hardware identification support
-- HTTP Request support
-- VMTRACE VM execution tracing OFF
-- PROFILING Profiling support OFF
-- FATDB Full database exploring ON
-- ROCKSDB Prefer rocksdb to leveldb OFF
-- OLYMPIC Default to the Olympic network OFF
-- PARANOID - OFF
------------------------------------------------------------- components
-- GUI Build GUI components ON
-- TESTS Build tests ON
-- ETHASHCL Build OpenCL components ON
-- EVMJIT Build LLVM-based JIT EVM ON

-- SOLIDITY Build Solidity ON

-- EVM JIT 0.9.0
-- Using LLVM 3.7.0 (/usr/share/llvm/cmake)
-- Looking for CL_VERSION_2_0
-- Looking for CL_VERSION_2_0 - not found
-- Looking for CL_VERSION_1_2
-- Looking for CL_VERSION_1_2 - found
-- Found OpenCL: /usr/lib64/libOpenCL.so (found version "1.2")
-- OpenCL headers: /usr/include
-- OpenCL lib : /usr/lib64/libOpenCL.so
-- Cpuid headers: CPUID_INCLUDE_DIR-NOTFOUND
-- Cpuid lib : CPUID_LIBRARY-NOTFOUND
-- Found json_rpc_cpp: /usr/local/include (found suitable version "0.6.0", minimum required is "0.4")
-- json-rpc-cpp headers: /usr/local/include
-- json-rpc-cpp lib : /usr/local/lib/libjsonrpccpp-common.so;/usr/local/lib/libjsonrpccpp-server.so;/usr/local/lib/libjsonrpccpp-client.so
-- Found CURL: /usr/lib64/libcurl.so
-- curl headers: /usr/include
-- curl lib : /usr/lib64/libcurl.so
-- test: ClientBase | --eth_testfile=BlockTests/bcJS_API_Test --eth_threads=1; --eth_testfile=BlockTests/bcJS_API_Test --eth_threads=3; --eth_testfile=BlockTests/bcJS_API_Test --eth_threads=10; --eth_testfile=BlockTests/bcValidBlockTest --eth_threads=1; --eth_testfile=BlockTests/bcValidBlockTest --eth_threads=3; --eth_testfile=BlockTests/bcValidBlockTest --eth_threads=10
-- test: JsonRpc | --eth_testfile=BlockTests/bcJS_API_Test; --eth_testfile=BlockTests/bcValidBlockTest


-- Configuring webthree

-- CMake Version 3.3.2
-- CMAKE_BUILD_TYPE Build type RelWithDebInfo
-- TARGET_PLATFORM Target platform Linux
--------------------------------------------------------------- features
-- PROFILING Profiling support OFF
------------------------------------------------------------- components
-- GUI Build GUI components ON
-- TESTS Build tests ON

-- SOLIDITY Build Solidity ON

-- Found mhd: /usr/lib64/libmicrohttpd.so
-- microhttpd headers: /usr/include
-- microhttpd lib : /usr/lib64/libmicrohttpd.so
-- jsonrpcstub location : /usr/local/bin/jsonrpcstub


-- Configuring solidity

-- CMake Version 3.3.2
-- CMAKE_BUILD_TYPE Build type RelWithDebInfo
-- TARGET_PLATFORM Target platform Linux
--------------------------------------------------------------- features
-- PROFILING Profiling support OFF
------------------------------------------------------------- components
-- GUI Build GUI components ON
-- TESTS Build tests ON

-- SOLIDITY Build Solidity ON


-- Configuring alethzero

-- CMake Version 3.3.2
-- CMAKE_BUILD_TYPE Build type RelWithDebInfo
-- TARGET_PLATFORM Target platform Linux
--------------------------------------------------------------- features
-- PROFILING Profiling support OFF
------------------------------------------------------------- components
-- GUI Build GUI components ON

-- SOLIDITY Build Solidity ON


-- Configuring mix

-- CMake Version 3.3.2
-- CMAKE_BUILD_TYPE Build type RelWithDebInfo
-- TARGET_PLATFORM Target platform Linux
--------------------------------------------------------------- features
-- PROFILING Profiling support OFF
------------------------------------------------------------- components
-- GUI Build GUI components ON

-- SOLIDITY Build Solidity ON

-- mix-ide qmldir:
-- Configuring done
-- Generating done
-- Build files have been written to: /home/limechain/Dev/webthree-umbrella/build
limechain@fruittree:~/Dev/webthree-umbrella/build> make -j4
Scanning dependencies of target dev_BuildInfo.h
Scanning dependencies of target secp256k1
Scanning dependencies of target cpp-ethereum_BuildInfo.h
Scanning dependencies of target scrypt
[ 0%] Building C object webthree-helpers/utils/secp256k1/CMakeFiles/secp256k1.dir/secp256k1.c.o
[ 0%] Building C object webthree-helpers/utils/libscrypt/CMakeFiles/scrypt.dir/b64.c.o
[ 0%] Built target dev_BuildInfo.h
[ 0%] Building C object webthree-helpers/utils/libscrypt/CMakeFiles/scrypt.dir/crypto-mcf.c.o
[ 1%] Building C object webthree-helpers/utils/libscrypt/CMakeFiles/scrypt.dir/crypto-scrypt-saltgen.c.o
[ 1%] Building C object webthree-helpers/utils/libscrypt/CMakeFiles/scrypt.dir/crypto_scrypt-check.c.o
[ 1%] Building C object webthree-helpers/utils/libscrypt/CMakeFiles/scrypt.dir/crypto_scrypt-hash.c.o
Scanning dependencies of target ethereum_BuildInfo.h
[ 1%] Building C object webthree-helpers/utils/libscrypt/CMakeFiles/scrypt.dir/crypto_scrypt-hexconvert.c.o
[ 1%] Built target cpp-ethereum_BuildInfo.h
[ 1%] Built target ethereum_BuildInfo.h
[ 1%] Building C object webthree-helpers/utils/libscrypt/CMakeFiles/scrypt.dir/crypto_scrypt-nosse.c.o
Scanning dependencies of target evmjit
[ 1%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/JIT.cpp.o
[ 1%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/JIT-c.cpp.o
[ 2%] Building C object webthree-helpers/utils/libscrypt/CMakeFiles/scrypt.dir/sha256.c.o
[ 2%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/Arith256.cpp.o
[ 2%] Building C object webthree-helpers/utils/libscrypt/CMakeFiles/scrypt.dir/slowequals.c.o
[ 2%] Linking C shared library libscrypt.so
[ 2%] Built target scrypt
Scanning dependencies of target ethash
[ 2%] Building C object libethereum/libethash/CMakeFiles/ethash.dir/io.c.o
[ 2%] Building C object libethereum/libethash/CMakeFiles/ethash.dir/internal.c.o
[ 2%] Building C object libethereum/libethash/CMakeFiles/ethash.dir/io_posix.c.o
[ 3%] Building CXX object libethereum/libethash/CMakeFiles/ethash.dir/sha3_cryptopp.cpp.o
[ 3%] Linking CXX shared library libethash.so
[ 3%] Built target ethash
[ 3%] Generating NatspecResources.hpp
Scanning dependencies of target natspec
[ 3%] Building CXX object libethereum/libnatspec/CMakeFiles/natspec.dir/NatspecExpressionEvaluator.cpp.o
[ 4%] Linking CXX shared library libnatspec.so
[ 5%] Linking C static library libsecp256k1.a
[ 5%] Built target secp256k1
Scanning dependencies of target minerphonehome.jsonstub
Error renaming from "/home/limechain/Dev/webthree-umbrella/libethereum/ethminer/PhoneHome.h.tmp" to "/home/limechain/Dev/webthree-umbrella/libethereum/ethminer/PhoneHome.h": No such file or directory
[ 5%] Built target minerphonehome.jsonstub
Scanning dependencies of target minerfarm.jsonstub
[ 5%] Built target natspec
Error renaming from "/home/limechain/Dev/webthree-umbrella/libethereum/ethminer/FarmClient.h.tmp" to "/home/limechain/Dev/webthree-umbrella/libethereum/ethminer/FarmClient.h": No such file or directory
[ 6%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/Array.cpp.o
[ 6%] Built target minerfarm.jsonstub
Scanning dependencies of target webthree_BuildInfo.h
[ 6%] Built target webthree_BuildInfo.h
Scanning dependencies of target admin_eth.jsonstub
CMake Error at /home/limechain/Dev/webthree-umbrella/webthree-helpers/cmake/scripts/jsonrpcstub.cmake:56 (file):
file failed to open for reading (No such file or directory):

/home/limechain/Dev/webthree-umbrella/webthree/libweb3jsonrpc/AdminEthFace.h.tmp

webthree/libweb3jsonrpc/CMakeFiles/admin_eth.jsonstub.dir/build.make:57: recipe for target 'admin_eth.jsonstub' failed
make[2]: *** [admin_eth.jsonstub] Error 1
CMakeFiles/Makefile2:2176: recipe for target 'webthree/libweb3jsonrpc/CMakeFiles/admin_eth.jsonstub.dir/all' failed
make[1]: * [webthree/libweb3jsonrpc/CMakeFiles/admin_eth.jsonstub.dir/all] Error 2
make[1]: * Waiting for unfinished jobs....
[ 6%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/BasicBlock.cpp.o
[ 6%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/Cache.cpp.o
[ 6%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/Compiler.cpp.o
[ 6%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/CompilerHelper.cpp.o
[ 7%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/Endianness.cpp.o
[ 7%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/ExecStats.cpp.o
[ 7%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/Ext.cpp.o
[ 7%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/GasMeter.cpp.o
[ 7%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/Instruction.cpp.o
[ 8%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/Memory.cpp.o
[ 8%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/Optimizer.cpp.o
[ 8%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/RuntimeManager.cpp.o
[ 8%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/Type.cpp.o
[ 9%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/Utils.cpp.o
[ 9%] Building CXX object libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/support/Path.cpp.o
[ 9%] Linking CXX shared library libevmjit.so
CMakeFiles/evmjit.dir/JIT.cpp.o: In function dev::evmjit::(anonymous namespace)::SymbolResolver::~SymbolResolver()': /home/limechain/Dev/webthree-umbrella/libethereum/evmjit/libevmjit/JIT.cpp:109: undefined reference tollvm::SectionMemoryManager::~SectionMemoryManager()'
CMakeFiles/evmjit.dir/JIT.cpp.o: In function dev::evmjit::(anonymous namespace)::JITImpl::JITImpl()': /usr/include/llvm/Support/TargetSelect.h:119: undefined reference toLLVMInitializeX86TargetInfo'
/usr/include/llvm/Support/TargetSelect.h:121: undefined reference to LLVMInitializeX86TargetMC' CMakeFiles/evmjit.dir/JIT.cpp.o: In functiondev::evmjit::(anonymous namespace)::JITImpl::JITImpl()':
/home/limechain/Dev/webthree-umbrella/libethereum/evmjit/libevmjit/JIT.cpp:139: undefined reference to llvm::EngineBuilder::EngineBuilder(std::unique_ptr<llvm::Module, std::default_delete<llvm::Module> >)' /home/limechain/Dev/webthree-umbrella/libethereum/evmjit/libevmjit/JIT.cpp:141: undefined reference tollvm::EngineBuilder::setMCJITMemoryManager(std::unique_ptr<llvm::RTDyldMemoryManager, std::default_deletellvm::RTDyldMemoryManager >)'
CMakeFiles/evmjit.dir/JIT.cpp.o: In function llvm::EngineBuilder::create()': /usr/include/llvm/ExecutionEngine/ExecutionEngine.h:631: undefined reference tollvm::EngineBuilder::selectTarget()'
/usr/include/llvm/ExecutionEngine/ExecutionEngine.h:631: undefined reference to llvm::EngineBuilder::create(llvm::TargetMachine*)' CMakeFiles/evmjit.dir/JIT.cpp.o: In functiondev::evmjit::(anonymous namespace)::JITImpl::JITImpl()':
/home/limechain/Dev/webthree-umbrella/libethereum/evmjit/libevmjit/JIT.cpp:139: undefined reference to llvm::EngineBuilder::~EngineBuilder()' /home/limechain/Dev/webthree-umbrella/libethereum/evmjit/libevmjit/JIT.cpp:139: undefined reference tollvm::EngineBuilder::~EngineBuilder()'
CMakeFiles/evmjit.dir/JIT.cpp.o: In function dev::evmjit::(anonymous namespace)::SymbolResolver::~SymbolResolver()': /home/limechain/Dev/webthree-umbrella/libethereum/evmjit/libevmjit/JIT.cpp:109: undefined reference tollvm::SectionMemoryManager::~SectionMemoryManager()'
CMakeFiles/evmjit.dir/JIT.cpp.o: In function llvm::MCJITMemoryManager::~MCJITMemoryManager()': /usr/include/llvm/ExecutionEngine/RuntimeDyld.h:90: undefined reference tovtable for llvm::RuntimeDyld::MemoryManager'
CMakeFiles/evmjit.dir/JIT.cpp.o: In function llvm::MCJITMemoryManager::~MCJITMemoryManager()': /usr/include/llvm/ExecutionEngine/RuntimeDyld.h:90: undefined reference tovtable for llvm::RuntimeDyld::MemoryManager'
CMakeFiles/evmjit.dir/JIT.cpp.o: In function llvm::RTDyldMemoryManager::getSymbolAddress(std::string const&)': /usr/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:73: undefined reference tollvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::string const&)'
CMakeFiles/evmjit.dir/JIT.cpp.o:(.data.rel.ro._ZTVN4llvm18MCJITMemoryManagerE[ZTVN4llvm18MCJITMemoryManagerE]+0x58): undefined reference to llvm::RuntimeDyld::MemoryManager::anchor()' CMakeFiles/evmjit.dir/JIT.cpp.o:(.data.rel.ro+0x20): undefined reference tollvm::SectionMemoryManager::allocateCodeSection(unsigned long, unsigned int, unsigned int, llvm::StringRef)'
CMakeFiles/evmjit.dir/JIT.cpp.o:(.data.rel.ro+0x28): undefined reference to llvm::SectionMemoryManager::allocateDataSection(unsigned long, unsigned int, unsigned int, llvm::StringRef, bool)' CMakeFiles/evmjit.dir/JIT.cpp.o:(.data.rel.ro+0x40): undefined reference tollvm::RTDyldMemoryManager::registerEHFrames(unsigned char
, unsigned long, unsigned long)'
CMakeFiles/evmjit.dir/JIT.cpp.o:(.data.rel.ro+0x48): undefined reference to llvm::RTDyldMemoryManager::deregisterEHFrames(unsigned char_, unsigned long, unsigned long)' CMakeFiles/evmjit.dir/JIT.cpp.o:(.data.rel.ro+0x50): undefined reference to llvm::SectionMemoryManager::finalizeMemory(std::string
)'
CMakeFiles/evmjit.dir/JIT.cpp.o:(.data.rel.ro+0x58): undefined reference tollvm::RuntimeDyld::MemoryManager::anchor()' CMakeFiles/evmjit.dir/JIT.cpp.o:(.data.rel.ro+0x88): undefined reference to llvm::RTDyldMemoryManager::getPointerToNamedFunction(std::string const&, bool)'
CMakeFiles/evmjit.dir/JIT.cpp.o:(.data.rel.ro+0x90): undefined reference tollvm::SectionMemoryManager::invalidateInstructionCache()' CMakeFiles/evmjit.dir/JIT.cpp.o:(.data.rel.ro+0xc8): undefined reference to llvm::RuntimeDyld::SymbolResolver::anchor()'
CMakeFiles/evmjit.dir/Optimizer.cpp.o: In functiondev::eth::jit::(anonymous namespace)::LongJmpEliminationPass::runOnFunction(llvm::Function&)': /home/limechain/Dev/webthree-umbrella/libethereum/evmjit/libevmjit/Optimizer.cpp:63: undefined reference to llvm::ReplaceInstWithInst(llvm::Instruction
, llvm::Instruction
)'
CMakeFiles/evmjit.dir/Optimizer.cpp.o: In functiondev::eth::jit::(anonymous namespace)::LowerEVMPass::runOnBasicBlock(llvm::BasicBlock&)': /home/limechain/Dev/webthree-umbrella/libethereum/evmjit/libevmjit/Optimizer.cpp:157: undefined reference to llvm::ReplaceInstWithInst(llvm::iplist<llvm::Instruction, llvm::ilist_traitsllvm::Instruction >&, llvm::ilist_iteratorllvm::Instruction&, llvm::Instruction
)'
CMakeFiles/evmjit.dir/Optimizer.cpp.o: In functiondev::eth::jit::optimize(llvm::Module&)': /home/limechain/Dev/webthree-umbrella/libethereum/evmjit/libevmjit/Optimizer.cpp:79: undefined reference to llvm::createCFGSimplificationPass(int, std::function<bool (llvm::Function const&)>)'
/home/limechain/Dev/webthree-umbrella/libethereum/evmjit/libevmjit/Optimizer.cpp:80: undefined reference tollvm::createInstructionCombiningPass()' /home/limechain/Dev/webthree-umbrella/libethereum/evmjit/libevmjit/Optimizer.cpp:81: undefined reference to llvm::createAggressiveDCEPass()'
/home/limechain/Dev/webthree-umbrella/libethereum/evmjit/libevmjit/Optimizer.cpp:82: undefined reference tollvm::createLowerSwitchPass()' CMakeFiles/evmjit.dir/Optimizer.cpp.o: In function dev::eth::jit::prepare(llvm::Module&)':
/home/limechain/Dev/webthree-umbrella/libethereum/evmjit/libevmjit/Optimizer.cpp:174: undefined reference tollvm::createCFGSimplificationPass(int, std::function<bool (llvm::Function const&)>)' /home/limechain/Dev/webthree-umbrella/libethereum/evmjit/libevmjit/Optimizer.cpp:175: undefined reference to llvm::createDeadCodeEliminationPass()'
collect2: error: ld returned 1 exit status
libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/build.make:568: recipe for target 'libethereum/evmjit/libevmjit/libevmjit.so.0.9.0.2' failed
make[2]: *** [libethereum/evmjit/libevmjit/libevmjit.so.0.9.0.2] Error 1
CMakeFiles/Makefile2:851: recipe for target 'libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/all' failed
make[1]: *** [libethereum/evmjit/libevmjit/CMakeFiles/evmjit.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

@bobsummerwill bobsummerwill self-assigned this Jun 6, 2016
@bobsummerwill
Copy link
Contributor

Hey there!
Were you following the instructions for openSUSE at http://www.ethdocs.org/en/latest/ethereum-clients/cpp-ethereum/building-from-source/linux.html?

The missing headers one looks exactly the same as #513, and it is fascinating that it has shown up on another platform again. I can only think that it is a bug in json-rpc-cpp which nobody has quite managed to nail down yet. You may be able to work around that by building from v0.6.0 from source like I have been experimenting with here:

https://github.com/bobsummerwill/cpp-ethereum/blob/merge_repos/setup.sh#L69

The CpuID one is an optional dependency, and shouldn't be breaking anything.

If you can't find a functional LLVM 3.7 or 3.8 then you can just skip the EVMJIT entirely by adding -DEVMJIT=0 to your cmake step.

Please do let me know how all that goes. Please do use a gist.github.com for the log, otherwise the markdown syntax here makes the logs really unreadable. Best wishes!

BTW ... are you looking to build just a Solidity compiler, or are you looking at other tools, like eth, ethminer, etc?

@w-sec
Copy link
Author

w-sec commented Jun 7, 2016

I'm trying to build all the tools, will update upon testing the suggested, thanks a lot!

@w-sec
Copy link
Author

w-sec commented Jun 7, 2016

Hi, just tried to install without EVMJIT and now that error does not appear but I get an error linking libOpenCL.so in /usr/lib64/libOpenCL.so returns 'cannot find' I checked and it is there. In output sticks -l flag of ld with the path /user/lib64/libOpenCL.so (eg: "-l/usr/lib64/libOpenCL.so") might this be the error? The full output is here: https://gist.github.com/wainersec/4207db46478423f764fc862ccdb795c8

Thanks!

@w-sec
Copy link
Author

w-sec commented Jun 7, 2016

Just upgraded OpenCL headers from 1.2 to 2.0 and problem persist.

@bobsummerwill
Copy link
Contributor

Hmm. I have seen that issue before on some Linux distros. The "detection" logic must be flawed in some way.

The workaround you could try is to add -DETHASHCL=0 to your cmake, to disable OpenCL entirely.

@w-sec
Copy link
Author

w-sec commented Jun 7, 2016

Without OpenCL I would be able to GPU mine?

@bobsummerwill
Copy link
Contributor

No, if you are looking to GPU mine that we'll need to work out what is wrong and fix it. It is likely something specific to openSUSE which is behaving differently than for other distros.

Let's talk on #557 about that.

Aside - did you get past the "missing headers" issue? Did you make any changes to your jsonrpccpp install?

@bobsummerwill
Copy link
Contributor

They were being found ...

-- Found OpenCL: /usr/lib64/libOpenCL.so (found version "1.2") 
-- OpenCL headers: /usr/include
-- OpenCL lib   : /usr/lib64/libOpenCL.so

That -l/usr/lib64/libOpenCL.so expansion was the issue, as far as I could see, and that should be gone with the tweak to the UseOpenCL. Could you try the version in that PR, please? ie. just adding the conditional. Do you have -DGUI=0 on your cmake? Could you try that, please? Plus that edit so it is respected.

@w-sec
Copy link
Author

w-sec commented Jun 7, 2016

I was not using -DGUI=0, just tried and error persist as the same.

@w-sec
Copy link
Author

w-sec commented Jun 7, 2016

Yes, after that gist I upgraded to OpenCL 2 and it is also getting found at cmake, just fails at make.

@w-sec
Copy link
Author

w-sec commented Jun 7, 2016

Tried with the UseOpenCL PR and got the same result.

@w-sec
Copy link
Author

w-sec commented Jun 7, 2016

With the PR I get two not found lines:

[ 10%] Linking CXX shared library libethash-cl.so
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -l/usr/lib64/libOpenCL.so
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -l/usr/lib64/libOpenCL.so
collect2: error: ld returned 1 exit status

@w-sec
Copy link
Author

w-sec commented Jun 7, 2016

Heres the full command for link:
/usr/bin/c++ -fPIC -std=c++11 -fpermissive -O2 -g -DETH_RELEASE -shared -Wl,-soname,libethash-cl.so -o libethash-cl.so CMakeFiles/ethash-cl.dir/ethash_cl_miner.cpp.o -lcryptopp ../libethash/libethash.so -Wl,--no-as-needed -l/usr/lib64/libOpenCL.so -Wl,--as-needed -Wl,--no-as-needed -l/usr/lib64/libOpenCL.so -Wl,--as-needed -lcryptopp -Wl,-rpath,/home/limechain/Dev/webthree-umbrella/build/libethereum/libethash:

@bobsummerwill
Copy link
Contributor

bobsummerwill commented Jun 7, 2016

Hokey, dokey, OpenCL fix in the PR will be merged soon.

Fantastic! So these new ones (#557 (comment)) are just "warnings-treated-as-errors", which your GCC is being fussier about than on other distros. GIve me 5 mins, and I make a new PR and link it here for you to try.

@bobsummerwill
Copy link
Contributor

Already. Give this extra PR a whirl - https://github.com/ethereum/solidity/pull/642/files.

BTW - Did you make any jsonrpccpp change? that was in regard to the "missing generated headers" thing.

@w-sec
Copy link
Author

w-sec commented Jun 7, 2016

Great, I worked arround it without solidity for now "-DSOLIDITY=OFF". I got almost %70 compiled when an eth miner error came up: https://gist.github.com/wainersec/5b0e4b46e20e22408086a9b90e3f4283

@bobsummerwill
Copy link
Contributor

So please do try flipping Solidity back on, with the one-liner fix.

For the ethminer one, as per http://unix.stackexchange.com/questions/125918/libcurl-so-4-undefined-reference-error, it looks like you are probably missing libssl. I assume that your libcurl binaries were not built by you?

@bobsummerwill
Copy link
Contributor

" You can investigate which exact library is missing by using ldd on libcurl.so:

$ ldd /usr/lib/x86_64-linux-gnu/libcurl.so.4

"

@w-sec
Copy link
Author

w-sec commented Jun 8, 2016

Yeap, those libraries are not missing. They are there, actually built everything from scratch a few hours ago, OpenSSL, OpenSSH, zlib and curl. But stll get the same error: https://gist.github.com/wainersec/23fffae9b441145386147377c8af08d3 Solidity builds now works like charm :)

@w-sec
Copy link
Author

w-sec commented Jun 8, 2016

I think this new problem is not within webthree-umbrella but with OS setup, I'm following on stackexchange. http://unix.stackexchange.com/questions/288477/ssl-related-undefined-reference-on-libssh2-and-libcurl-libs-when-compiling-c-o

Thanks Bob!

@bobsummerwill
Copy link
Contributor

Hokey dokey. Keep me in the loop!

I just merged that Solidity fix, by the way: ethereum/solidity#642

@bobsummerwill bobsummerwill changed the title AdminEthFace.h.tmp not found + CPUID not found + LLVM compiling failure. openSUSE - AdminEthFace.h.tmp not found + CPUID not found + LLVM compiling failure. Jun 9, 2016
@bobsummerwill
Copy link
Contributor

Hey @wainersec!
Did you get any further with that ssl2 issue?

@bobsummerwill bobsummerwill changed the title openSUSE - AdminEthFace.h.tmp not found + CPUID not found + LLVM compiling failure. openSUSE - Work through all build errors Jun 10, 2016
@w-sec
Copy link
Author

w-sec commented Jun 10, 2016

Hi, nope. Someone in stackexchange suggested that I messed up the libz when compiled it. Uninstalled that version and came back to package version for OS. but error still persist.

@w-sec
Copy link
Author

w-sec commented Jun 11, 2016

I've been able to work arround by migrating to the rolling release version of OpenSUSE Tumbleweed. Now compiled like charm. After make install I tried to run eth and I got this error:
eth: error while loading shared libraries: libweb3jsonrpc.so: cannot open shared object file: No such file or directory

After this I run a locate to see where I was able to find this library and its on /usr/local/lib/libweb3jsonrpc.so Is this where it should be?

@w-sec
Copy link
Author

w-sec commented Jun 11, 2016

Running it from compilation directory it works.

@bobsummerwill
Copy link
Contributor

bobsummerwill commented Jun 14, 2016

So @wainersec ... you have a working build?

Based on your experience, do you have suggested documentation updates for http://www.ethdocs.org/en/latest/ethereum-clients/cpp-ethereum/building-from-source/linux.html?

@bobsummerwill
Copy link
Contributor

@wainersec ^^^ ???

@w-sec
Copy link
Author

w-sec commented Jun 23, 2016

Hi @bobsummerwill , sorry about the delay. Yes it is working now. I will rebuild on a fresh OS during weekend. This way I will be able to note all the requirements for it and will update info for documentation.

@bobsummerwill
Copy link
Contributor

Hey @wainersec,

Just another note here ...

I have been working on an infrastructure-as-code alternative to these tedious per-distro sets of instructions, which will "go live" when we switch back to cpp-ethereum.

You can see my work-in-progress on that here:

Now for the TravisCI bit, we're stuck with just Ubuntu Trusty automation for the time being, but we might well be able to expand that via Docker in the future.

Whatever the case, I would like to expand this install_deps.sh pattern pattern to cover more distros, so that our ethdocs.org instructions for the distros which we have bothered to do that can be simplified to, with the steps being executed directly and committed in with the code itself.

  • git clone --recursive
  • ./install_deps.sh
  • cmake
  • make

So maybe for openSUSE we can take that approach instead, rather than bothering with written instructions?

@bobsummerwill
Copy link
Contributor

bobsummerwill commented Jul 8, 2016

You're using Tumbleweed, right?

If you copy https://github.com/bobsummerwill/cpp-ethereum/blob/merge_repos/install_deps.sh locally and run it, does it go into the right conditional?

It looks like openSUSE has only got partial support for LSB (see https://bugzilla.suse.com/show_bug.cgi?id=977054) and that we might need to do something different to identify openSUSE releases.

Is it just Leap 42.1 and Tumbleweed which we would need to account for?

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

No branches or pull requests

2 participants