Trying to build 6.3.9 using the docker build env. running on a RHEL 7.x env. result in compile error

HI,
I am trying to build the foundationdB 6.3.9 using the docker build env. and I get the following error when running Ninja:
[547/788] Building CXX object fdbserver/CMakeFiles/fdbserver.dir/storageserver.actor.g.cpp.o
In file included from opt/build/foundationdb/flow/serialize.h:30,
from opt/build/foundationdb/flow/flow.h:43,
from opt/build/foundationdb/fdbrpc/fdbrpc.h:25,
from /opt/build/foundationdb/fdbserver/storageserver.actor.cpp:22:
In function ‘bool operator==(const StringRef&, const StringRef&)’,
inlined from ‘UpdateEagerReadInfo::finishKeyBegin()::<lambda(const std::pair<StringRef, int>&, const std::pair<StringRef, int>&)>’ at /opt/build/foundationdb/fdbserver/storageserver.actor.cpp:227:149,
inlined from ‘bool __gnu_cxx::__ops::_Iter_comp_val<_Compare>::operator()(_Iterator, _Value&) [with _Iterator = __gnu_cxx::__normal_iterator<std::pair<StringRef, int>, std::vector<std::pair<StringRef, int> > >; _Value = std::pair<StringRef, int>; _Compare = UpdateEagerReadInfo::finishKeyBegin()::<lambda(const std::pair<StringRef, int>&, const std::pair<StringRef, int>&)>]’ at /opt/rh/devtoolset-8/root/usr/include/c++/8/bits/predefined_ops.h:177:11,
inlined from ‘void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<StringRef, int>
, std::vector<std::pair<StringRef, int> > >; _Distance = long int; _Tp = std::pair<StringRef, int>; _Compare = __gnu_cxx::__ops::_Iter_comp_val<UpdateEagerReadInfo::finishKeyBegin()::<lambda(const std::pair<StringRef, int>&, const std::pair<StringRef, int>&)> >]’ at /opt/rh/devtoolset-8/root/usr/include/c++/8/bits/stl_heap.h:133:48,
inlined from ‘void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<StringRef, int>, std::vector<std::pair<StringRef, int> > >; _Distance = long int; _Tp = std::pair<StringRef, int>; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<UpdateEagerReadInfo::finishKeyBegin()::<lambda(const std::pair<StringRef, int>&, const std::pair<StringRef, int>&)> >]’ at /opt/rh/devtoolset-8/root/usr/include/c++/8/bits/stl_heap.h:237:23:
opt/build/foundationdb/flow/Arena.h:673:43: warning: ‘int __builtin_memcmp_eq(const void
, const void*, long unsigned int)’ specified size between 18446744071562067968 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]
return lhs.size() == rhs.size() && memcmp(lhs.begin(), rhs.begin(), lhs.size()) == 0;

I am running the docker on a rhel7.x env. and the docker version is docker-ce 19.03.5 following the readme.md instruction.
Could anyone suggest a solution?

1 Like

Is this a warning or an error? The tip of the release branch runs with -werror I believe, so it would fail there, but I was thinking 6.3.9 permitted warnings.

This particular warning should be resolved later on the 6.3 branch (see Attempt to fix a build warning that's now blocking the compile due to… · apple/foundationdb@449e4b9 · GitHub). If this is failing your compile, you could probably apply the change, switch to a newer revision, or disable -werror in your compile.

1 Like

It seems like an warning, so will try with the -w flag and see if it goes through