Your binaries doesn't work for Linux 16.04
error while loading shared libraries: libboost_system.so.1.55.0:
The current version of libboost is 1.58
Please recompile
doesn't compile for me on ubuntu at all. Will take longer than I've got to fix. The lib boost thing is a real mess in ubuntu, can't find the boost-program-files module (or something like that) and stops compiling. none of the fixes I've found work so far. I now have 1.55 and 1.58 installed as well as a dozen versions of makefile.lists.
Got it compiled on arch last night if anybody wants that. Took a few hours plus compile time
It can be also compiled on Ubuntu 17.10 with latest GCC 7 with few tweaks. Some test compilation failed, but daemon and wallet compiled and linked OK (and work OK).
Cryptonote sources (and forks) should be more updated and tested with new versions of GCC and boost.
Here is my diff from trunk:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c33f90c..151c5f8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,7 +55,7 @@ else()
if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
set(WARNINGS "${WARNINGS} -Wno-error=mismatched-tags -Wno-error=null-conversion -Wno-overloaded-shift-op-parentheses -Wno-error=shift-count-overflow -Wno-error=tautological-constant-out-of-range-compare -Wno-error=unused-private-field -Wno-error=unneeded-internal-declaration -Wno-error=unused-function")
else()
- set(WARNINGS "${WARNINGS} -Wlogical-op -Wno-error=maybe-uninitialized -Wno-error=clobbered -Wno-error=unused-but-set-variable")
+ set(WARNINGS "${WARNINGS} -Wno-logical-op -Wno-error=maybe-uninitialized -Wno-error=clobbered -Wno-error=unused-but-set-variable -Wno-error=terminate")
endif()
if(MINGW)
set(WARNINGS "${WARNINGS} -Wno-error=unused-value")
diff --git a/src/Common/Base58.cpp b/src/Common/Base58.cpp
index 7cf17b4..a9e5f92 100644
--- a/src/Common/Base58.cpp
+++ b/src/Common/Base58.cpp
@@ -84,13 +84,20 @@ namespace Tools
uint64_t res = 0;
switch (9 - size)
{
- case 1: res |= *data++;
+ case 1: res |= *data++;
+ /* FALLTHRU */
case 2: res <<= 8; res |= *data++;
+ /* FALLTHRU */
case 3: res <<= 8; res |= *data++;
+ /* FALLTHRU */
case 4: res <<= 8; res |= *data++;
+ /* FALLTHRU */
case 5: res <<= 8; res |= *data++;
+ /* FALLTHRU */
case 6: res <<= 8; res |= *data++;
+ /* FALLTHRU */
case 7: res <<= 8; res |= *data++;
+ /* FALLTHRU */
case 8: res <<= 8; res |= *data; break;
default: assert(false);
}
diff --git a/src/CryptoNoteCore/SwappedMap.h b/src/CryptoNoteCore/SwappedMap.h
index dd32945..b7ee9ec 100644
--- a/src/CryptoNoteCore/SwappedMap.h
+++ b/src/CryptoNoteCore/SwappedMap.h
@@ -7,6 +7,7 @@
#include
#include
#include
+#include
#include
#include
#include
diff --git a/src/crypto/crypto.cpp b/src/crypto/crypto.cpp
index 45ecd95..4df65b2 100644
--- a/src/crypto/crypto.cpp
+++ b/src/crypto/crypto.cpp
@@ -315,15 +315,21 @@ namespace Crypto {
#pragma warning(disable: 4200)
#endif
+ struct ec_point_pair {
+ EllipticCurvePoint a, b;
+ };
+
struct rs_comm {
Hash h;
- struct {
+ /*struct {
EllipticCurvePoint a, b;
} ab[];
+ */
+ struct ec_point_pair ab[];
};
static inline size_t rs_comm_size(size_t pubs_count) {
- return sizeof(rs_comm) + pubs_count * sizeof(rs_comm().ab[0]);
+ return sizeof(rs_comm) + pubs_count * sizeof(/*rs_comm().ab[0]*/ec_point_pair);
}
those fall through errors go away if you put a break at the end of each case..