On loongson/sparc64/hppa/riscv: CIpcServerProxy.cpp: In member function 'void CIpcServerProxy::send(const CIpcMessage&)': CIpcServerProxy.cpp:93: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: ../synergy/CProtocolUtil.h:81: note: candidate 1: static void CProtocolUtil::writef(void*, const char*, void*) ../synergy/CProtocolUtil.h:53: note: candidate 2: static void CProtocolUtil::writef(synergy::IStream*, const char*, ...) ../synergy/CProtocolUtil.h:81: error: 'static void CProtocolUtil::writef(void*, const char*, void*)' is private CIpcServerProxy.cpp:93: error: within this context gcc bug fixed in 4.3.3 (but similar occurs in clang 11.1.0) Index: src/lib/ipc/IpcServerProxy.cpp --- src/lib/ipc/IpcServerProxy.cpp.orig +++ src/lib/ipc/IpcServerProxy.cpp @@ -95,7 +95,11 @@ IpcServerProxy::send(const IpcMessage& message) case kIpcCommand: { const IpcCommandMessage& cm = static_cast(message); String command = cm.command(); +#if defined(__mips64__) || defined(__sparc64__) || defined(__hppa__) || defined(__riscv) + ProtocolUtil::writef(static_cast(&m_stream), static_cast(kIpcMsgCommand), &command); +#else ProtocolUtil::writef(&m_stream, kIpcMsgCommand, &command); +#endif break; }