Description
A recent commit to Kudu, "rpc: add experimental rpc_reuseport flag", added the use of the rpc flag SO_REUSEREPORT
This flag is not available with older versions of Linux, resulting in the compiler error:
In file included from kudu/src/kudu/util/net/socket.h:24:0, from kudu/src/kudu/util/net/socket.cc:18: kudu/src/kudu/util/net/socket.cc: In member function ‘kudu::Status kudu::Socket::SetReusePort(bool)’: kudu/src/kudu/util/net/socket.cc:249:48: error: ‘SO_REUSEPORT’ was not declared in this scope RETURN_NOT_OK_PREPEND(SetSockOpt(SOL_SOCKET, SO_REUSEPORT, int_flag), ^ kudu/src/kudu/util/status.h:43:33: note: in definition of macro ‘KUDU_RETURN_NOT_OK_PREPEND’ const ::kudu::Status& _s = (s); \ ^ kudu/src/kudu/util/net/socket.cc:249:3: note: in expansion of macro ‘RETURN_NOT_OK_PREPEND’ RETURN_NOT_OK_PREPEND(SetSockOpt(SOL_SOCKET, SO_REUSEPORT, int_flag), ^ [ 36%] Building CXX object src/kudu/util/CMakeFiles/kudu_util_exported.dir/mutex.cc.o make[2]: *** [src/kudu/util/CMakeFiles/kudu_util.dir/net/socket.cc.o] Error 1 make[2]: *** Waiting for unfinished jobs....
This is in particular a problem for Impala's toolchain, which attempts and now fails to build Kudu on centos 6.4, ubuntu 12.04, and debian 7.