havenprotocol / haven

Haven is an untraceable cryptocurrency that proposes a new way of achieving a stable fiat value storage while being traded at market value.
Other
58 stars 41 forks source link

failing to compile on Arch Linux #24

Closed semeion closed 6 years ago

semeion commented 6 years ago

How can i fix this errors?

mnemonic@blackbird[~/haven]$ make
mkdir -p build/release
cd build/release && cmake -D BUILD_TESTS=ON -D CMAKE_BUILD_TYPE=release ../.. && make
-- The C compiler identification is GNU 8.1.0
-- The CXX compiler identification is GNU 8.1.0
-- 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
-- Building without build tag
-- Could not find DEVELOPER_LOCAL_TOOLS in env (not required)
-- BOOST_IGNORE_SYSTEM_PATHS defaults to OFF
-- Could not find DEVELOPER_LIBUNBOUND_OLD in env (not required)
-- Building for a 64-bit system
-- Building internal libraries as static
-- Could not find DATABASE in env (not required unless you want to change database type from default: lmdb)
-- Using LMDB as default DB type
-- Stack trace on exception enabled (using easylogging++)
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE  
-- Found OpenSSL: /usr/lib/libcrypto.so (found version "1.1.0h") 
-- Using OpenSSL include dir at /usr/include
-- Could NOT find MiniUPnPc (missing: MINIUPNP_INCLUDE_DIR MINIUPNP_LIBRARY) 
-- Using miniupnpc from local source tree (/external/miniupnpc)
-- Looking for libunbound
-- Found libunbound include (unbound.h) in /usr/include
-- Found libunbound shared library
-- Using 64-bit LMDB from source tree
-- Building on x86_64 for native
-- Performing Test _Wformat_c
-- Performing Test _Wformat_c - Success
-- Performing Test _Wformat_cxx
-- Performing Test _Wformat_cxx - Success
-- Performing Test _Wformat_security_c
-- Performing Test _Wformat_security_c - Success
-- Performing Test _Wformat_security_cxx
-- Performing Test _Wformat_security_cxx - Success
-- Performing Test _fstack_protector_c
-- Performing Test _fstack_protector_c - Success
-- Performing Test _fstack_protector_cxx
-- Performing Test _fstack_protector_cxx - Success
-- Performing Test _fstack_protector_strong_c
-- Performing Test _fstack_protector_strong_c - Success
-- Performing Test _fstack_protector_strong_cxx
-- Performing Test _fstack_protector_strong_cxx - Success
-- Looking for -pie linker flag
-- Looking for -pie linker flag - found
-- Looking for -Wl,-z,relro linker flag
-- Looking for -Wl,-z,relro linker flag - found
-- Looking for -Wl,-z,now linker flag
-- Looking for -Wl,-z,now linker flag - found
-- Looking for -Wl,-z,noexecstack linker flag
-- Looking for -Wl,-z,noexecstack linker flag - found
-- Looking for -Wl,-z,noexecheap linker flag
-- Looking for -Wl,-z,noexecheap linker flag - not found
-- Using C security hardening flags:  -Wformat -Wformat-security -fstack-protector -fstack-protector-strong
-- Using C++ security hardening flags:  -Wformat -Wformat-security -fstack-protector -fstack-protector-strong
-- Using linker security hardening flags:  -pie -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack
-- AES support enabled
-- Found Boost Version: 106600
-- Looking for rl_copy_text
-- Looking for rl_copy_text - found
-- Looking for rl_filename_completion_function
-- Looking for rl_filename_completion_function - found
-- Found readline library at: /usr
-- Found Git: /usr/bin/git
-- Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY) 
-- GTest not found on the system: will use GTest bundled with this source
Doxygen: graphviz not found - graphs disabled
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) 
-- Performing Test HAVE_C11
-- Performing Test HAVE_C11 - Success
-- Looking for memset_s in c
-- Looking for memset_s in c - not found
-- Looking for explicit_bzero in c
-- Looking for explicit_bzero in c - found
-- Looking for strptime
-- Looking for strptime - found
-- Configuring done
-- Generating done
-- Build files have been written to: /home/mnemonic/haven/build/release
make[1]: Entering directory '/home/mnemonic/haven/build/release'
make[2]: Entering directory '/home/mnemonic/haven/build/release'
make[3]: Entering directory '/home/mnemonic/haven/build/release'
Scanning dependencies of target generate_translations_header
make[3]: Leaving directory '/home/mnemonic/haven/build/release'
make[3]: Entering directory '/home/mnemonic/haven/build/release'
[  0%] Creating directories for 'generate_translations_header'
[  1%] No download step for 'generate_translations_header'
[  1%] No patch step for 'generate_translations_header'
[  1%] No update step for 'generate_translations_header'
[  2%] Performing configure step for 'generate_translations_header'
-- The C compiler identification is GNU 8.1.0
-- The CXX compiler identification is GNU 8.1.0
-- 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
CMake Warning at CMakeLists.txt:38 (message):
  lrelease program not found, translation files not built

-- Configuring done
-- Generating done
-- Build files have been written to: /home/mnemonic/haven/build/release/translations
[  2%] Performing build step for 'generate_translations_header'
make[4]: Entering directory '/home/mnemonic/haven/build/release/translations'
make[5]: Entering directory '/home/mnemonic/haven/build/release/translations'
make[6]: Entering directory '/home/mnemonic/haven/build/release/translations'
Scanning dependencies of target generate_translations_header
make[6]: Leaving directory '/home/mnemonic/haven/build/release/translations'
make[6]: Entering directory '/home/mnemonic/haven/build/release/translations'
[ 50%] Building C object CMakeFiles/generate_translations_header.dir/generate_translations_header.c.o
[100%] Linking C executable generate_translations_header
Generating embedded translations header
make[6]: Leaving directory '/home/mnemonic/haven/build/release/translations'
[100%] Built target generate_translations_header
make[5]: Leaving directory '/home/mnemonic/haven/build/release/translations'
make[4]: Leaving directory '/home/mnemonic/haven/build/release/translations'
[  2%] Performing install step for 'generate_translations_header'

[  3%] Completed 'generate_translations_header'
make[3]: Leaving directory '/home/mnemonic/haven/build/release'
[  3%] Built target generate_translations_header
make[3]: Entering directory '/home/mnemonic/haven/build/release'
Scanning dependencies of target libminiupnpc-static
make[3]: Leaving directory '/home/mnemonic/haven/build/release'
make[3]: Entering directory '/home/mnemonic/haven/build/release'
[  3%] Building C object external/miniupnpc/CMakeFiles/libminiupnpc-static.dir/igd_desc_parse.c.o
[  3%] Building C object external/miniupnpc/CMakeFiles/libminiupnpc-static.dir/miniupnpc.c.o
[  4%] Building C object external/miniupnpc/CMakeFiles/libminiupnpc-static.dir/minixml.c.o
[  4%] Building C object external/miniupnpc/CMakeFiles/libminiupnpc-static.dir/minisoap.c.o
[  4%] Building C object external/miniupnpc/CMakeFiles/libminiupnpc-static.dir/minissdpc.c.o
[  5%] Building C object external/miniupnpc/CMakeFiles/libminiupnpc-static.dir/miniwget.c.o
[  5%] Building C object external/miniupnpc/CMakeFiles/libminiupnpc-static.dir/upnpcommands.c.o
[  5%] Building C object external/miniupnpc/CMakeFiles/libminiupnpc-static.dir/upnpdev.c.o
[  6%] Building C object external/miniupnpc/CMakeFiles/libminiupnpc-static.dir/upnpreplyparse.c.o
[  6%] Building C object external/miniupnpc/CMakeFiles/libminiupnpc-static.dir/upnperrors.c.o
[  7%] Building C object external/miniupnpc/CMakeFiles/libminiupnpc-static.dir/connecthostport.c.o
[  7%] Building C object external/miniupnpc/CMakeFiles/libminiupnpc-static.dir/portlistingparse.c.o
[  7%] Building C object external/miniupnpc/CMakeFiles/libminiupnpc-static.dir/receivedata.c.o
[  8%] Linking C static library libminiupnpc.a
make[3]: Leaving directory '/home/mnemonic/haven/build/release'
[  8%] Built target libminiupnpc-static
make[3]: Entering directory '/home/mnemonic/haven/build/release'
Scanning dependencies of target lmdb
make[3]: Leaving directory '/home/mnemonic/haven/build/release'
make[3]: Entering directory '/home/mnemonic/haven/build/release'
[  8%] Building C object external/db_drivers/liblmdb/CMakeFiles/lmdb.dir/mdb.c.o
[  8%] Building C object external/db_drivers/liblmdb/CMakeFiles/lmdb.dir/midl.c.o
[  9%] Linking C static library liblmdb.a
make[3]: Leaving directory '/home/mnemonic/haven/build/release'
[  9%] Built target lmdb
make[3]: Entering directory '/home/mnemonic/haven/build/release'
Scanning dependencies of target easylogging
make[3]: Leaving directory '/home/mnemonic/haven/build/release'
make[3]: Entering directory '/home/mnemonic/haven/build/release'
[  9%] Building CXX object external/easylogging++/CMakeFiles/easylogging.dir/easylogging++.cc.o
[  9%] Linking CXX static library libeasylogging.a
make[3]: Leaving directory '/home/mnemonic/haven/build/release'
[  9%] Built target easylogging
make[3]: Entering directory '/home/mnemonic/haven/build/release'
Scanning dependencies of target epee
make[3]: Leaving directory '/home/mnemonic/haven/build/release'
make[3]: Entering directory '/home/mnemonic/haven/build/release'
[ 10%] Building CXX object contrib/epee/src/CMakeFiles/epee.dir/hex.cpp.o
[ 10%] Building CXX object contrib/epee/src/CMakeFiles/epee.dir/http_auth.cpp.o
[ 10%] Building CXX object contrib/epee/src/CMakeFiles/epee.dir/mlog.cpp.o
[ 11%] Building CXX object contrib/epee/src/CMakeFiles/epee.dir/net_utils_base.cpp.o
[ 11%] Building CXX object contrib/epee/src/CMakeFiles/epee.dir/string_tools.cpp.o
[ 12%] Building CXX object contrib/epee/src/CMakeFiles/epee.dir/wipeable_string.cpp.o
[ 12%] Building C object contrib/epee/src/CMakeFiles/epee.dir/memwipe.c.o
[ 12%] Building CXX object contrib/epee/src/CMakeFiles/epee.dir/connection_basic.cpp.o
In file included from /home/mnemonic/haven/src/serialization/crypto.h:37,
                 from /home/mnemonic/haven/src/cryptonote_basic/cryptonote_basic.h:44,
                 from /home/mnemonic/haven/src/cryptonote_protocol/cryptonote_protocol_defs.h:35,
                 from /home/mnemonic/haven/src/cryptonote_protocol/cryptonote_protocol_handler_common.h:34,
                 from /home/mnemonic/haven/contrib/epee/include/net/../../../../src/cryptonote_core/cryptonote_core.h:39,
                 from /home/mnemonic/haven/contrib/epee/include/net/abstract_tcp_server2.inl:52,
                 from /home/mnemonic/haven/contrib/epee/include/net/abstract_tcp_server2.h:324,
                 from /home/mnemonic/haven/contrib/epee/src/connection_basic.cpp:77:
/home/mnemonic/haven/src/crypto/chacha.h: In function ‘void crypto::generate_chacha8_key(const void*, size_t, crypto::chacha8_key&)’:
/home/mnemonic/haven/src/crypto/chacha.h:93:39: error: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of non-trivially copyable type ‘struct crypto::chacha8_key’; use copy-assignment or copy-initialization instead [-Werror=class-memaccess]
     memcpy(&key, pwd_hash, sizeof(key));
                                       ^
/home/mnemonic/haven/src/crypto/chacha.h:61:10: note: ‘struct crypto::chacha8_key’ declared here
   struct chacha8_key {
          ^~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[3]: *** [contrib/epee/src/CMakeFiles/epee.dir/build.make:154: contrib/epee/src/CMakeFiles/epee.dir/connection_basic.cpp.o] Error 1
make[3]: Leaving directory '/home/mnemonic/haven/build/release'
make[2]: *** [CMakeFiles/Makefile2:368: contrib/epee/src/CMakeFiles/epee.dir/all] Error 2
make[2]: Leaving directory '/home/mnemonic/haven/build/release'
make[1]: *** [Makefile:141: all] Error 2
make[1]: Leaving directory '/home/mnemonic/haven/build/release'
make: *** [Makefile:65: release-all] Error 2
mnemonic@blackbird:2[~/haven]$ 
semeion commented 6 years ago

Someone can help me here?

arcmags commented 6 years ago

I was able to build the latest release on Arch Linux using gcc6. Here's a PKGBUILD to do so if you are interested.

EDIT: new PKGBUILD for Arch Linux without requiring gcc6.

semeion commented 6 years ago

@arcmags , thank you

BTW i got it working using CXXFLAGS="-Wno-error=class-memaccess" make to compile in GCC 8.1.0.