facebook / wdt

Warp speed Data Transfer (WDT) is an embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths.
https://www.facebook.com/WdtOpenSource
Other
2.86k stars 391 forks source link

Unable to compile. Too much errors from folly. #182

Closed mickelmayers closed 3 years ago

mickelmayers commented 5 years ago

Hi, I'm having issues with compiling wdt on CentOS 7 (and CentOS 6) . Compilation stops after many error messages in //usr/local/lib/libgflags.so.2.2: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status collect2: error: ld returned 1 exit status make[2]: [_bin/wdt/wdt_gen_test] Error 1 make[2]: [_bin/wdt/wdt_gen_stats] Error 1 make[1]: [CMakeFiles/wdt_gen_test.dir/all] Error 2 make[1]: Waiting for unfinished jobs.... make[1]: [CMakeFiles/wdt_gen_stats.dir/all] Error 2 make[2]: [_bin/wdt/bench/wdt_gen_files] Error 1 make[1]: *** [CMakeFiles/wdt_gen_files.dir/all] Error 2

In file included from /home/kacabr/new_working/wdt/../folly/folly/Portability.h:21:0, from /home/kacabr/new_working/wdt/../folly/folly/hash/detail/ChecksumDetail.h:19, from /home/kacabr/new_working/folly/folly/hash/detail/Crc32CombineDetail.cpp:17: /home/kacabr/new_working/wdt/../folly/folly/portability/Config.h:27:18: error: missing binary operator before token "("

if __has_include()

              ^

In file included from /home/kacabr/new_working/wdt/../folly/folly/Portability.h:21:0, from /home/kacabr/new_working/wdt/../folly/folly/hash/detail/ChecksumDetail.h:19, from /home/kacabr/new_working/folly/folly/hash/detail/ChecksumDetail.cpp:113: /home/kacabr/new_working/wdt/../folly/folly/portability/Config.h:27:18: error: missing binary operator before token "("

if __has_include()

              ^

In file included from /home/kacabr/new_working/wdt/../folly/folly/hash/detail/ChecksumDetail.h:19:0, from /home/kacabr/new_working/folly/folly/hash/detail/Crc32CombineDetail.cpp:17: /home/kacabr/new_working/wdt/../folly/folly/Portability.h:448:49: error: missing binary operator before token "("

if __cpp_coroutines >= 201703L && __has_include(<experimental/coroutine>)

                                             ^

In file included from /home/kacabr/new_working/wdt/../folly/folly/hash/detail/ChecksumDetail.h:19:0, from /home/kacabr/new_working/folly/folly/hash/detail/ChecksumDetail.cpp:113: /home/kacabr/new_working/wdt/../folly/folly/Portability.h:448:49: error: missing binary operator before token "("

if __cpp_coroutines >= 201703L && __has_include(<experimental/coroutine>)

                                             ^

In file included from /home/kacabr/new_working/wdt/../folly/folly/Portability.h:21:0, from /home/kacabr/new_working/wdt/../folly/folly/CpuId.h:21, from /home/kacabr/new_working/folly/folly/hash/Checksum.cpp:19: /home/kacabr/new_working/wdt/../folly/folly/portability/Config.h:27:18: error: missing binary operator before token "("

if __has_include()

...

Is wdt working with master branch from folly?

ritiek commented 5 years ago

Your g++ version is probably old and not supported by folly.

$ g++ -v

I was able to compile wdt successfully with g++ v7.3.0.

If for some reason you can't update your g++ version, I came across these notes and they might be helpful in your case: https://github.com/facebook/wdt/blob/a288ed7aea910bd9691d64fcd1724b4758c36ba8/CMakeLists.txt#L28-L32

christiansenandi commented 4 years ago

I have this error aswell but on RHEL... above did not fix it..


  Operating System: Red Hat Enterprise Linux
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.7:GA:server
            Kernel: Linux 3.10.0-1062.9.1.el7.x86_64
      Architecture: x86-64

Output from make -j

`[ 2%] Building CXX object CMakeFiles/folly4wdt.dir/folly/folly/Conv.cpp.o [ 6%] Building CXX object CMakeFiles/folly4wdt.dir/folly/folly/hash/Checksum.cpp.o [ 6%] Building CXX object CMakeFiles/folly4wdt.dir/folly/folly/Demangle.cpp.o [ 9%] Building CXX object CMakeFiles/folly4wdt.dir/folly/folly/hash/detail/ChecksumDetail.cpp.o [ 11%] Building CXX object CMakeFiles/folly4wdt.dir/folly/folly/hash/detail/Crc32cDetail.cpp.o [ 13%] Building CXX object CMakeFiles/folly4wdt.dir/folly/folly/hash/detail/Crc32CombineDetail.cpp.o In file included from /root/wdt/folly/folly/CPortability.h:22:0, from /root/wdt/folly/folly/Portability.h:31, from /root/wdt/folly/folly/CpuId.h:21, from /root/wdt/folly/folly/hash/Checksum.cpp:19: /root/wdt/folly/folly/portability/Config.h:23:18: error: missing binary operator before token "("

if __has_include()

              ^

/root/wdt/folly/folly/portability/Config.h:27:18: error: missing binary operator before token "("

if __has_include(<bits/c++config.h>)

              ^

In file included from /root/wdt/folly/folly/CPortability.h:22:0, from /root/wdt/folly/folly/Portability.h:31, from /root/wdt/folly/folly/hash/detail/ChecksumDetail.h:19, from /root/wdt/folly/folly/hash/detail/ChecksumDetail.cpp:113: /root/wdt/folly/folly/portability/Config.h:23:18: error: missing binary operator before token "("

if __has_include()

              ^

/root/wdt/folly/folly/portability/Config.h:27:18: error: missing binary operator before token "("

if __has_include(<bits/c++config.h>)

              ^

In file included from /root/wdt/folly/folly/CPortability.h:22:0, from /root/wdt/folly/folly/FBString.h:33, from /root/wdt/folly/folly/Demangle.h:19, from /root/wdt/folly/folly/Demangle.cpp:17: /root/wdt/folly/folly/portability/Config.h:23:18: error: missing binary operator before token "("

if __has_include()

              ^

/root/wdt/folly/folly/portability/Config.h:27:18: error: missing binary operator before token "("

if __has_include(<bits/c++config.h>)

              ^

In file included from /root/wdt/folly/folly/hash/detail/ChecksumDetail.h:19:0, from /root/wdt/folly/folly/hash/detail/ChecksumDetail.cpp:113: /root/wdt/folly/folly/Portability.h:22:1: error: static assertion failed: cplusplus >= 201402L static_assert(cplusplus >= 201402L, "cplusplus >= 201402L"); ^ /root/wdt/folly/folly/Portability.h:26:1: error: static assertion failed: GNUC >= 5 static_assert(GNUC >= 5, "GNUC__ >= 5"); ^ [ 15%] Building CXX object CMakeFiles/folly4wdt.dir/folly/folly/ScopeGuard.cpp.o In file included from /root/wdt/folly/folly/CPortability.h:22:0, from /root/wdt/folly/folly/Portability.h:31, from /root/wdt/folly/folly/hash/detail/ChecksumDetail.h:19, from /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:17: /root/wdt/folly/folly/portability/Config.h:23:18: error: missing binary operator before token "("

if __has_include()

              ^

/root/wdt/folly/folly/portability/Config.h:27:18: error: missing binary operator before token "("

if __has_include(<bits/c++config.h>)

              ^

make[2]: [CMakeFiles/folly4wdt.dir/folly/folly/hash/detail/ChecksumDetail.cpp.o] Error 1 make[2]: Waiting for unfinished jobs.... In file included from /root/wdt/folly/folly/CPortability.h:22:0, from /root/wdt/folly/folly/Portability.h:31, from /root/wdt/folly/folly/hash/detail/ChecksumDetail.h:19, from /root/wdt/folly/folly/hash/detail/Crc32cDetail.cpp:34: /root/wdt/folly/folly/portability/Config.h:23:18: error: missing binary operator before token "("

if __has_include()

              ^

/root/wdt/folly/folly/portability/Config.h:27:18: error: missing binary operator before token "("

if __has_include(<bits/c++config.h>)

              ^

In file included from /root/wdt/folly/folly/CPortability.h:22:0, from /root/wdt/folly/folly/FBString.h:33, from /root/wdt/folly/folly/Demangle.h:19, from /root/wdt/folly/folly/Conv.h:116, from /root/wdt/folly/folly/Conv.cpp:17: /root/wdt/folly/folly/portability/Config.h:23:18: error: missing binary operator before token "("

if __has_include()

              ^

/root/wdt/folly/folly/portability/Config.h:27:18: error: missing binary operator before token "("

if __has_include(<bits/c++config.h>)

              ^

In file included from /root/wdt/folly/folly/functional/ApplyTuple.h:25:0, from /root/wdt/folly/folly/hash/Hash.h:31, from /root/wdt/folly/folly/FBString.h:45, from /root/wdt/folly/folly/Demangle.h:19, from /root/wdt/folly/folly/Conv.h:116, from /root/wdt/folly/folly/Conv.cpp:17: /root/wdt/folly/folly/functional/Invoke.h:23:63: fatal error: boost/preprocessor/facilities/is_empty_variadic.hpp: No such file or directory

include <boost/preprocessor/facilities/is_empty_variadic.hpp>

                                                           ^

compilation terminated. In file included from /root/wdt/folly/folly/functional/ApplyTuple.h:25:0, from /root/wdt/folly/folly/hash/Hash.h:31, from /root/wdt/folly/folly/FBString.h:45, from /root/wdt/folly/folly/Demangle.h:19, from /root/wdt/folly/folly/Demangle.cpp:17: /root/wdt/folly/folly/functional/Invoke.h:23:63: fatal error: boost/preprocessor/facilities/is_empty_variadic.hpp: No such file or directory

include <boost/preprocessor/facilities/is_empty_variadic.hpp>

                                                           ^

compilation terminated. In file included from /root/wdt/folly/folly/CpuId.h:21:0, from /root/wdt/folly/folly/hash/Checksum.cpp:19: /root/wdt/folly/folly/Portability.h:22:1: error: static assertion failed: cplusplus >= 201402L static_assert(cplusplus >= 201402L, "cplusplus >= 201402L"); ^ /root/wdt/folly/folly/Portability.h:26:1: error: static assertion failed: GNUC >= 5 static_assert(GNUC >= 5, "GNUC >= 5"); ^ In file included from /root/wdt/folly/folly/hash/detail/ChecksumDetail.h:19:0, from /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:17: /root/wdt/folly/folly/Portability.h:22:1: error: static assertion failed: cplusplus >= 201402L static_assert(cplusplus >= 201402L, "cplusplus >= 201402L"); ^ /root/wdt/folly/folly/Portability.h:26:1: error: static assertion failed: GNUC >= 5 static_assert(GNUC >= 5, "GNUC >= 5"); ^ In file included from /root/wdt/folly/folly/CPortability.h:22:0, from /root/wdt/folly/folly/Portability.h:31, from /root/wdt/folly/folly/ScopeGuard.h:26, from /root/wdt/folly/folly/ScopeGuard.cpp:17: /root/wdt/folly/folly/portability/Config.h:23:18: error: missing binary operator before token "("

if __has_include()

              ^

/root/wdt/folly/folly/portability/Config.h:27:18: error: missing binary operator before token "("

if __has_include(<bits/c++config.h>)

              ^

In file included from /root/wdt/folly/folly/lang/Bits.h:60:0, from /root/wdt/folly/folly/Bits.h:17, from /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:22: /root/wdt/folly/folly/ConstexprMath.h: In function ‘constexpr std::size_t folly::constexpr_find_last_set(T)’: /root/wdt/folly/folly/ConstexprMath.h:151:13: error: expected type-specifier using U = std::make_unsigned_t; ^ /root/wdt/folly/folly/ConstexprMath.h:152:57: error: expected type-specifier before ‘U’ return t == T(0) ? 0 : 1 + constexpr_log2(static_cast(t)); ^ /root/wdt/folly/folly/ConstexprMath.h:152:57: error: expected ‘>’ before ‘U’ /root/wdt/folly/folly/ConstexprMath.h:152:57: error: expected ‘(’ before ‘U’ /root/wdt/folly/folly/ConstexprMath.h:152:57: error: ‘U’ was not declared in this scope /root/wdt/folly/folly/ConstexprMath.h: In function ‘constexpr std::size_t folly::constexpr_find_first_set(T)’: /root/wdt/folly/folly/ConstexprMath.h:171:13: error: expected type-specifier using U = std::make_unsigned_t; ^ /root/wdt/folly/folly/ConstexprMath.h:175:70: error: expected type-specifier before ‘U’ : 1 + detail::constexpr_find_firstset(size{}, 0, static_cast(t)); ^ /root/wdt/folly/folly/ConstexprMath.h:175:70: error: expected ‘>’ before ‘U’ /root/wdt/folly/folly/ConstexprMath.h:175:70: error: expected ‘(’ before ‘U’ /root/wdt/folly/folly/ConstexprMath.h:175:70: error: ‘U’ was not declared in this scope In file included from /root/wdt/folly/folly/ScopeGuard.h:26:0, from /root/wdt/folly/folly/ScopeGuard.cpp:17: /root/wdt/folly/folly/Portability.h:22:1: error: static assertion failed: cplusplus >= 201402L static_assert(cplusplus >= 201402L, "cplusplus >= 201402L"); ^ /root/wdt/folly/folly/Portability.h:26:1: error: static assertion failed: GNUC >= 5 static_assert(GNUC >= 5, "GNUC >= 5"); ^ In file included from /root/wdt/folly/folly/Utility.h:26:0, from /root/wdt/folly/folly/ScopeGuard.h:28, from /root/wdt/folly/folly/ScopeGuard.cpp:17: /root/wdt/folly/folly/Traits.h:167:16: error: template declaration of ‘constexpr const bool folly::detail::is_instantiation_of_v’ constexpr bool is_instantiation_of_v = is_instantiation_of<C, T>::value; ^ /root/wdt/folly/folly/Traits.h:207:38: error: template declaration of ‘constexpr const bool folly::is_constexpr_default_constructible_v’ FOLLY_INLINE_VARIABLE constexpr bool is_constexpr_default_constructible_v = ^ /root/wdt/folly/folly/Traits.h:386:31: error: expected type-specifier using is_trivially_copyable = std::is_trivially_copyable; ^ /root/wdt/folly/folly/Traits.h:390:38: error: template declaration of ‘constexpr const bool folly::is_trivially_copyable_v’ FOLLY_INLINE_VARIABLE constexpr bool is_trivially_copyable_v = ^ /root/wdt/folly/folly/Traits.h:391:5: error: ‘is_trivially_copyable’ was not declared in this scope is_trivially_copyable::value; ^ /root/wdt/folly/folly/Traits.h:391:28: error: expected primary-expression before ‘>’ token is_trivially_copyable::value; ^ /root/wdt/folly/folly/Traits.h:391:29: error: ‘::value’ has not been declared is_trivially_copyable::value; ^ /root/wdt/folly/folly/Traits.h:525:28: error: ‘is_trivially_copyable’ was not declared in this scope is_trivially_copyable>::type {}; ^ /root/wdt/folly/folly/Traits.h:525:50: error: template argument 3 is invalid is_trivially_copyable>::type {}; ^ /root/wdt/folly/folly/Traits.h:525:51: error: expected ‘{’ before ‘>’ token is_trivially_copyable>::type {}; ^ /root/wdt/folly/folly/Traits.h:525:51: error: expected unqualified-id before ‘>’ token /root/wdt/folly/folly/Traits.h:737:24: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas] FOLLY_GCC_DISABLE_WARNING("-Wbool-compare") ^ In file included from /root/wdt/folly/folly/ScopeGuard.h:28:0, from /root/wdt/folly/folly/ScopeGuard.cpp:17: /root/wdt/folly/folly/Utility.h:327:12: error: ‘std::enable_if_t’ has not been declared std::enable_if_t< ^ /root/wdt/folly/folly/Utility.h:327:23: error: expected ‘>’ before ‘<’ token std::enable_if_t< ^ /root/wdt/folly/folly/Utility.h:361:11: error: ‘underlying_type_t’ in namespace ‘std’ does not name a type constexpr std::underlying_type_t tounderlying(E e) noexcept { ^ In file included from /root/wdt/folly/folly/ScopeGuard.cpp:17:0: /root/wdt/folly/folly/ScopeGuard.h: In constructor ‘folly::detail::ScopeGuardImpl<FunctionType, InvokeNoexcept>::ScopeGuardImpl(folly::detail::ScopeGuardImpl<FunctionType, InvokeNoexcept>&&)’: /root/wdt/folly/folly/ScopeGuard.h:93:18: error: ‘exchange’ is not a member of ‘std’ dismissed = std::exchange(other.dismissed_, true); ^ In file included from /root/wdt/folly/folly/lang/Bits.h:62:0, from /root/wdt/folly/folly/Bits.h:17, from /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:22: /root/wdt/folly/folly/Traits.h: At global scope: /root/wdt/folly/folly/Traits.h:167:16: error: template declaration of ‘constexpr const bool folly::detail::is_instantiation_of_v’ constexpr bool is_instantiation_of_v = is_instantiation_of<C, T>::value; ^ /root/wdt/folly/folly/Traits.h:207:38: error: template declaration of ‘constexpr const bool folly::is_constexpr_default_constructible_v’ FOLLY_INLINE_VARIABLE constexpr bool is_constexpr_default_constructible_v = ^ /root/wdt/folly/folly/Traits.h:386:31: error: expected type-specifier using is_trivially_copyable = std::is_trivially_copyable; ^ /root/wdt/folly/folly/Traits.h:390:38: error: template declaration of ‘constexpr const bool folly::is_trivially_copyable_v’ FOLLY_INLINE_VARIABLE constexpr bool is_trivially_copyable_v = ^ /root/wdt/folly/folly/Traits.h:391:5: error: ‘is_trivially_copyable’ was not declared in this scope is_trivially_copyable::value; ^ /root/wdt/folly/folly/Traits.h:391:28: error: expected primary-expression before ‘>’ token is_trivially_copyable::value; ^ /root/wdt/folly/folly/Traits.h:391:29: error: ‘::value’ has not been declared is_trivially_copyable::value; ^ /root/wdt/folly/folly/Traits.h:525:28: error: ‘is_trivially_copyable’ was not declared in this scope is_trivially_copyable>::type {}; ^ /root/wdt/folly/folly/Traits.h:525:50: error: template argument 3 is invalid is_trivially_copyable>::type {}; ^ /root/wdt/folly/folly/Traits.h:525:51: error: expected ‘{’ before ‘>’ token is_trivially_copyable>::type {}; ^ /root/wdt/folly/folly/Traits.h:525:51: error: expected unqualified-id before ‘>’ token /root/wdt/folly/folly/Traits.h:737:24: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas] FOLLY_GCC_DISABLE_WARNING("-Wbool-compare") ^ In file included from /root/wdt/folly/folly/lang/Bits.h:63:0, from /root/wdt/folly/folly/Bits.h:17, from /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:22: /root/wdt/folly/folly/Utility.h:327:12: error: ‘std::enable_if_t’ has not been declared std::enable_if_t< ^ /root/wdt/folly/folly/Utility.h:327:23: error: expected ‘>’ before ‘<’ token std::enable_if_t< ^ /root/wdt/folly/folly/Utility.h:361:11: error: ‘underlying_type_t’ in namespace ‘std’ does not name a type constexpr std::underlying_type_t to_underlying(E e) noexcept { ^ In file included from /root/wdt/folly/folly/Bits.h:17:0, from /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:22: /root/wdt/folly/folly/lang/Bits.h:79:10: error: ‘std::enable_if_t’ has not been declared std::enable_if_t< ^ /root/wdt/folly/folly/lang/Bits.h:79:21: error: expected ‘>’ before ‘<’ token std::enable_if_t< ^ /root/wdt/folly/folly/lang/Bits.h:93:11: error: ‘make_signed_t’ in namespace ‘std’ does not name a type constexpr std::make_signed_t bits_to_signed(Src const s) { ^ /root/wdt/folly/folly/lang/Bits.h:98:11: error: ‘make_unsigned_t’ in namespace ‘std’ does not name a type constexpr std::make_unsigned_t bits_to_unsigned(Src const s) { ^ /root/wdt/folly/folly/lang/Bits.h: In function ‘constexpr unsigned int folly::findFirstSet(T)’: /root/wdt/folly/folly/lang/Bits.h:113:17: error: ‘folly::detail::bits_to_signed’ has not been declared using detail::bits_to_signed; ^ /root/wdt/folly/folly/lang/Bits.h:120:47: error: ‘bits_to_signed’ was not declared in this scope sizeof(T) <= sizeof(S0) ? builtin_ffs(bits_to_signed(v)) : ^ /root/wdt/folly/folly/lang/Bits.h:120:64: error: expected primary-expression before ‘>’ token sizeof(T) <= sizeof(S0) ? builtin_ffs(bits_to_signed(v)) : ^ /root/wdt/folly/folly/lang/Bits.h:121:65: error: expected primary-expression before ‘>’ token sizeof(T) <= sizeof(S1) ? __builtin_ffsl(bits_to_signed(v)) : ^ /root/wdt/folly/folly/lang/Bits.h:122:66: error: expected primary-expression before ‘>’ token sizeof(T) <= sizeof(S2) ? builtin_ffsll(bits_to_signed(v)) : ^ /root/wdt/folly/folly/lang/Bits.h: In function ‘constexpr unsigned int folly::findLastSet(T)’: /root/wdt/folly/folly/lang/Bits.h:136:17: error: ‘folly::detail::bits_to_unsigned’ has not been declared using detail::bits_to_unsigned; ^ make[2]: [CMakeFiles/folly4wdt.dir/folly/folly/ScopeGuard.cpp.o] Error 1 /root/wdt/folly/folly/lang/Bits.h:146:47: error: ‘bits_to_unsigned’ was not declared in this scope sizeof(T) <= sizeof(U0) ? builtin_clz(bits_to_unsigned(v)) : ^ /root/wdt/folly/folly/lang/Bits.h:146:66: error: expected primary-expression before ‘>’ token sizeof(T) <= sizeof(U0) ? __builtin_clz(bits_to_unsigned(v)) : ^ /root/wdt/folly/folly/lang/Bits.h:147:67: error: expected primary-expression before ‘>’ token sizeof(T) <= sizeof(U1) ? builtin_clzl(bits_to_unsigned(v)) : ^ /root/wdt/folly/folly/lang/Bits.h:148:68: error: expected primary-expression before ‘>’ token sizeof(T) <= sizeof(U2) ? builtin_clzll(bits_to_unsigned(v)) : ^ /root/wdt/folly/folly/lang/Bits.h: In function ‘constexpr unsigned int folly::popcount(T)’: /root/wdt/folly/folly/lang/Bits.h:173:17: error: ‘folly::detail::bits_to_unsigned’ has not been declared using detail::bits_to_unsigned; ^ /root/wdt/folly/folly/lang/Bits.h:180:52: error: ‘bits_to_unsigned’ was not declared in this scope sizeof(T) <= sizeof(U0) ? __builtin_popcount(bits_to_unsigned(v)) : ^ /root/wdt/folly/folly/lang/Bits.h:180:71: error: expected primary-expression before ‘>’ token sizeof(T) <= sizeof(U0) ? builtin_popcount(bits_to_unsigned(v)) : ^ /root/wdt/folly/folly/lang/Bits.h:181:72: error: expected primary-expression before ‘>’ token sizeof(T) <= sizeof(U1) ? __builtin_popcountl(bits_to_unsigned(v)) : ^ /root/wdt/folly/folly/lang/Bits.h:182:73: error: expected primary-expression before ‘>’ token sizeof(T) <= sizeof(U2) ? __builtin_popcountll(bits_to_unsigned(v)) : ^ /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp: At global scope: /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:65:34: error: ‘std::index_sequence’ has not been declared constexpr auto operator()(std::index_sequence<i...>) const { ^ /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:65:48: error: expected ‘,’ or ‘...’ before ‘<’ token constexpr auto operator()(std::index_sequence<i...>) const { ^ /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:65:56: warning: ‘operator()’ function uses ‘auto’ type specifier without trailing return type [enabled by default] constexpr auto operator()(std::index_sequence<i...>) const { ^ /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:128:32: error: ‘make_index_sequence’ is not a member of ‘std’ gf_powers_make{}(std::make_index_sequence<62>{}); ^ /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:128:60: error: expected primary-expression before ‘{’ token gf_powers_make{}(std::make_index_sequence<62>{}); ^ /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:130:31: error: ‘make_index_sequence’ is not a member of ‘std’ gf_powers_make{}(std::make_index_sequence<62>{}); ^ /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:130:59: error: expected primary-expression before ‘{’ token gf_powers_make{}(std::make_index_sequence<62>{}); ^ In file included from /root/wdt/folly/folly/Bits.h:17:0, from /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:22: /root/wdt/folly/folly/lang/Bits.h: In instantiation of ‘constexpr unsigned int folly::findFirstSet(T) [with T = long unsigned int]’: /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:147:30: required from ‘uint32_t folly::crc32_append_zeroes(F, uint32_t, size_t, uint32_t, const std::array<unsigned int, 62ul>&) [with F = unsigned int ()(unsigned int, unsigned int, unsigned int); uint32_t = unsigned int; size_t = long unsigned int]’ /root/wdt/folly/folly/hash/detail/Crc32CombineDetail.cpp:164:79: required from here /root/wdt/folly/folly/lang/Bits.h:125:1: error: body of constexpr function ‘constexpr unsigned int folly::findFirstSet(T) [with T = long unsigned int]’ not a return-statement } ^ /root/wdt/folly/folly/lang/Bits.h: In instantiation of ‘static T folly::detail::EndianInt::swap(T) [with T = long unsigned int]’: /root/wdt/folly/folly/lang/Bits.h:291:47: required from ‘static T folly::Endian::swap(T) [with T = long unsigned int]’ /root/wdt/folly/folly/lang/Bits.h:303:3: required from here /root/wdt/folly/folly/lang/Bits.h:248:50: error: no matching function for call to ‘bit_cast(long unsigned int&)’ return bit_cast(byteswap_gen(bit_cast(x))); ^ /root/wdt/folly/folly/lang/Bits.h:248:50: note: candidate is: /root/wdt/folly/folly/lang/Bits.h:83:4: note: template<class To, class From, int > To folly::bit_cast(const From&) To bit_cast(const From& src) noexcept { ^ /root/wdt/folly/folly/lang/Bits.h:83:4: note: template argument deduction/substitution failed: /root/wdt/folly/folly/lang/Bits.h:248:50: note: couldn't deduce template parameter ‘’ return bit_cast(byteswap_gen(bit_cast(x))); ^ /root/wdt/folly/folly/lang/Bits.h: In instantiation of ‘static T folly::detail::EndianInt::swap(T) [with T = long int]’: /root/wdt/folly/folly/lang/Bits.h:291:47: required from ‘static T folly::Endian::swap(T) [with T = long int]’ /root/wdt/folly/folly/lang/Bits.h:303:3: required from here /root/wdt/folly/folly/lang/Bits.h:248:50: error: no matching function for call to ‘bit_cast(long int&)’ /root/wdt/folly/folly/lang/Bits.h:248:50: note: candidate is: /root/wdt/folly/folly/lang/Bits.h:83:4: note: template<class To, class From, int > To folly::bit_cast(const From&) To bit_cast(const From& src) noexcept { ^ /root/wdt/folly/folly/lang/Bits.h:83:4: note: template argument deduction/substitution failed: /root/wdt/folly/folly/lang/Bits.h:248:50: note: couldn't deduce template parameter ‘’ return bit_cast(byteswap_gen(bit_cast(x))); ^ /root/wdt/folly/folly/lang/Bits.h: In instantiation of ‘static T folly::detail::EndianInt::swap(T) [with T = unsigned int]’: /root/wdt/folly/folly/lang/Bits.h:291:47: required from ‘static T folly::Endian::swap(T) [with T = unsigned int]’ /root/wdt/folly/folly/lang/Bits.h:304:3: required from here /root/wdt/folly/folly/lang/Bits.h:248:50: error: no matching function for call to ‘bit_cast(unsigned int&)’ /root/wdt/folly/folly/lang/Bits.h:248:50: note: candidate is: /root/wdt/folly/folly/lang/Bits.h:83:4: note: template<class To, class From, int > To folly::bit_cast(const From&) To bit_cast(const From& src) noexcept { ^ /root/wdt/folly/folly/lang/Bits.h:83:4: note: template argument deduction/substitution failed: /root/wdt/folly/folly/lang/Bits.h:248:50: note: couldn't deduce template parameter ‘’ return bit_cast(byteswap_gen(bit_cast(x))); ^ /root/wdt/folly/folly/lang/Bits.h: In instantiation of ‘static T folly::detail::EndianInt::swap(T) [with T = int]’: /root/wdt/folly/folly/lang/Bits.h:291:47: required from ‘static T folly::Endian::swap(T) [with T = int]’ /root/wdt/folly/folly/lang/Bits.h:304:3: required from here /root/wdt/folly/folly/lang/Bits.h:248:50: error: no matching function for call to ‘bit_cast(int&)’ /root/wdt/folly/folly/lang/Bits.h:248:50: note: candidate is: /root/wdt/folly/folly/lang/Bits.h:83:4: note: template<class To, class From, int > To folly::bit_cast(const From&) To bit_cast(const From& src) noexcept { ^ /root/wdt/folly/folly/lang/Bits.h:83:4: note: template argument deduction/substitution failed: /root/wdt/folly/folly/lang/Bits.h:248:50: note: couldn't deduce template parameter ‘’ return bit_cast(byteswap_gen(bit_cast(x))); ^ /root/wdt/folly/folly/lang/Bits.h: In instantiation of ‘static T folly::detail::EndianInt::swap(T) [with T = short unsigned int]’: /root/wdt/folly/folly/lang/Bits.h:291:47: required from ‘static T folly::Endian::swap(T) [with T = short unsigned int]’ /root/wdt/folly/folly/lang/Bits.h:305:3: required from here /root/wdt/folly/folly/lang/Bits.h:248:50: error: no matching function for call to ‘bit_cast(short unsigned int&)’ /root/wdt/folly/folly/lang/Bits.h:248:50: note: candidate is: /root/wdt/folly/folly/lang/Bits.h:83:4: note: template<class To, class From, int > To folly::bit_cast(const From&) To bit_cast(const From& src) noexcept { ^ /root/wdt/folly/folly/lang/Bits.h:83:4: note: template argument deduction/substitution failed: /root/wdt/folly/folly/lang/Bits.h:248:50: note: couldn't deduce template parameter ‘’ return bit_cast(byteswap_gen(bit_cast(x))); ^ /root/wdt/folly/folly/lang/Bits.h: In instantiation of ‘static T folly::detail::EndianInt::swap(T) [with T = short int]’: /root/wdt/folly/folly/lang/Bits.h:291:47: required from ‘static T folly::Endian::swap(T) [with T = short int]’ /root/wdt/folly/folly/lang/Bits.h:305:3: required from here /root/wdt/folly/folly/lang/Bits.h:248:50: error: no matching function for call to ‘bit_cast(short int&)’ /root/wdt/folly/folly/lang/Bits.h:248:50: note: candidate is: /root/wdt/folly/folly/lang/Bits.h:83:4: note: template<class To, class From, int > To folly::bit_cast(const From&) To bit_cast(const From& src) noexcept { ^ /root/wdt/folly/folly/lang/Bits.h:83:4: note: template argument deduction/substitution failed: /root/wdt/folly/folly/lang/Bits.h:248:50: note: couldn't deduce template parameter ‘’ return bit_cast(byteswap_gen(bit_cast(x))); ^ /root/wdt/folly/folly/lang/Bits.h: In instantiation of ‘static T folly::detail::EndianInt::swap(T) [with T = unsigned char]’: /root/wdt/folly/folly/lang/Bits.h:291:47: required from ‘static T folly::Endian::swap(T) [with T = unsigned char]’ /root/wdt/folly/folly/lang/Bits.h:306:3: required from here /root/wdt/folly/folly/lang/Bits.h:248:50: error: no matching function for call to ‘bit_cast(unsigned char&)’ /root/wdt/folly/folly/lang/Bits.h:248:50: note: candidate is: /root/wdt/folly/folly/lang/Bits.h:83:4: note: template<class To, class From, int > To folly::bit_cast(const From&) To bit_cast(const From& src) noexcept { ^ /root/wdt/folly/folly/lang/Bits.h:83:4: note: template argument deduction/substitution failed: /root/wdt/folly/folly/lang/Bits.h:248:50: note: couldn't deduce template parameter ‘’ return bit_cast(byteswap_gen(bit_cast(x))); ^ /root/wdt/folly/folly/lang/Bits.h: In instantiation of ‘static T folly::detail::EndianInt::swap(T) [with T = signed char]’: /root/wdt/folly/folly/lang/Bits.h:291:47: required from ‘static T folly::Endian::swap(T) [with T = signed char]’ /root/wdt/folly/folly/lang/Bits.h:306:3: required from here /root/wdt/folly/folly/lang/Bits.h:248:50: error: no matching function for call to ‘bit_cast(signed char&)’ /root/wdt/folly/folly/lang/Bits.h:248:50: note: candidate is: /root/wdt/folly/folly/lang/Bits.h:83:4: note: template<class To, class From, int > To folly::bit_cast(const From&) To bit_cast(const From& src) noexcept { ^ /root/wdt/folly/folly/lang/Bits.h:83:4: note: template argument deduction/substitution failed: /root/wdt/folly/folly/lang/Bits.h:248:50: note: couldn't deduce template parameter ‘’ return bit_cast(byteswap_gen(bit_cast(x))); ^ make[2]: ** [CMakeFiles/folly4wdt.dir/folly/folly/Conv.cpp.o] Error 1 make[2]: [CMakeFiles/folly4wdt.dir/folly/folly/hash/detail/Crc32CombineDetail.cpp.o] Error 1 make[2]: [CMakeFiles/folly4wdt.dir/folly/folly/Demangle.cpp.o] Error 1 make[2]: [CMakeFiles/folly4wdt.dir/folly/folly/hash/Checksum.cpp.o] Error 1 In file included from /root/wdt/folly/folly/hash/detail/ChecksumDetail.h:19:0, from /root/wdt/folly/folly/hash/detail/Crc32cDetail.cpp:34: /root/wdt/folly/folly/Portability.h:22:1: error: static assertion failed: cplusplus >= 201402L static_assert(cplusplus >= 201402L, "cplusplus >= 201402L"); ^ /root/wdt/folly/folly/Portability.h:26:1: error: static assertion failed: GNUC >= 5 static_assert(GNUC >= 5, "GNUC__ >= 5"); ^ make[2]: [CMakeFiles/folly4wdt.dir/folly/folly/hash/detail/Crc32cDetail.cpp.o] Error 1 make[1]: [CMakeFiles/folly4wdt.dir/all] Error 2 make: *** [all] Error 2 `

Output from "cmake /root/wdt/CMakeLists.txt -DFOLLY_SOURCE_DIR=/root/wdt/folly"

-- Boost version: 1.53.0 -- Found the following Boost libraries: -- system -- filesystem -- Configuring done -- Generating done -- Build files have been written to: /root/wdt

davide125 commented 3 years ago

The stock compiler on CentOS 7 is likely too old for this, I recommend trying to use the one from devtoolset instead.