|
|
dbd30d6 |
diff --git a/rapid/plugin/group_replication/libmysqlgcs/CMakeLists.txt b/rapid/plugin/group_replication/libmysqlgcs/CMakeLists.txt
|
|
|
dbd30d6 |
index e9f51ca8fc9..42a9575e008 100644
|
|
|
dbd30d6 |
--- a/rapid/plugin/group_replication/libmysqlgcs/CMakeLists.txt
|
|
|
dbd30d6 |
+++ b/rapid/plugin/group_replication/libmysqlgcs/CMakeLists.txt
|
|
|
dbd30d6 |
@@ -139,8 +139,13 @@ IF(MSVC)
|
|
|
dbd30d6 |
|
|
|
dbd30d6 |
# This disables signed/unsigned mismatch warnings
|
|
|
dbd30d6 |
# Compiler warning C4018.
|
|
|
dbd30d6 |
- ADD_COMPILE_FLAGS(${XCOM_SUN_RPCS} ${XCOM_RPCGEN_SOURCES}
|
|
|
dbd30d6 |
- COMPILE_FLAGS "/wd4018")
|
|
|
dbd30d6 |
+ IF(WIN32_CLANG)
|
|
|
dbd30d6 |
+ ADD_COMPILE_FLAGS(${XCOM_SUN_RPCS} ${XCOM_RPCGEN_SOURCES}
|
|
|
dbd30d6 |
+ COMPILE_FLAGS "-Wno-sign-compare")
|
|
|
dbd30d6 |
+ ELSE()
|
|
|
dbd30d6 |
+ ADD_COMPILE_FLAGS(${XCOM_SUN_RPCS} ${XCOM_RPCGEN_SOURCES}
|
|
|
dbd30d6 |
+ COMPILE_FLAGS "/wd4018")
|
|
|
dbd30d6 |
+ ENDIF()
|
|
|
dbd30d6 |
ELSEIF(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR
|
|
|
dbd30d6 |
CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
|
dbd30d6 |
ADD_COMPILE_FLAGS(${XCOM_SOURCES} ${XCOM_SUN_RPCS} ${XCOM_RPCGEN_SOURCES}
|
|
|
dbd30d6 |
@@ -153,5 +158,9 @@ ADD_COMPILE_FLAGS(${GCS_SOURCES} COMPILE_FLAGS "-DMYSQL_DYNAMIC_PLUGIN")
|
|
|
dbd30d6 |
|
|
|
dbd30d6 |
ADD_CONVENIENCE_LIBRARY(${GCS_LIBRARY} ${XCOM_SOURCES} ${GCS_SOURCES})
|
|
|
dbd30d6 |
|
|
|
dbd30d6 |
+IF(TIRPC_LIBRARY)
|
|
|
dbd30d6 |
+ TARGET_LINK_LIBRARIES(${GCS_LIBRARY} ${TIRPC_LIBRARY})
|
|
|
dbd30d6 |
+ENDIF()
|
|
|
dbd30d6 |
+
|
|
|
dbd30d6 |
# convenience target
|
|
|
dbd30d6 |
ADD_CUSTOM_TARGET(lib${GCS_LIBRARY} DEPENDS ${GCS_LIBRARY})
|
|
|
dbd30d6 |
diff --git a/rapid/plugin/group_replication/libmysqlgcs/configure.cmake b/rapid/plugin/group_replication/libmysqlgcs/configure.cmake
|
|
|
dbd30d6 |
index b4519371579..5653d9a3d16 100644
|
|
|
dbd30d6 |
--- a/rapid/plugin/group_replication/libmysqlgcs/configure.cmake
|
|
|
dbd30d6 |
+++ b/rapid/plugin/group_replication/libmysqlgcs/configure.cmake
|
|
|
dbd30d6 |
@@ -54,8 +54,17 @@ IF (WIN32)
|
|
|
dbd30d6 |
ENDIF()
|
|
|
dbd30d6 |
|
|
|
dbd30d6 |
IF (NOT WIN32)
|
|
|
dbd30d6 |
+ # First look for tirpc, then the old Sun RPC
|
|
|
dbd30d6 |
+ FIND_PATH(RPC_INCLUDE_DIR
|
|
|
dbd30d6 |
+ NAMES rpc/rpc.h
|
|
|
dbd30d6 |
+ HINTS /usr/include/tirpc
|
|
|
dbd30d6 |
+ NO_DEFAULT_PATH
|
|
|
dbd30d6 |
+ )
|
|
|
dbd30d6 |
+ FIND_PATH(RPC_INCLUDE_DIR NAMES rpc/rpc.h)
|
|
|
dbd30d6 |
+
|
|
|
dbd30d6 |
SET (CMAKE_REQUIRED_FLAGS_BACKUP ${CMAKE_REQUIRED_FLAGS})
|
|
|
dbd30d6 |
SET (CMAKE_REQUIRED_FLAGS "-Wno-error")
|
|
|
dbd30d6 |
+ SET (CMAKE_REQUIRED_INCLUDES ${RPC_INCLUDE_DIR})
|
|
|
dbd30d6 |
ENDIF()
|
|
|
dbd30d6 |
|
|
|
dbd30d6 |
#
|
|
|
dbd30d6 |
diff --git a/rapid/plugin/group_replication/libmysqlgcs/rpcgen.cmake b/rapid/plugin/group_replication/libmysqlgcs/rpcgen.cmake
|
|
|
dbd30d6 |
index e26ae09ecb9..9b14b2e77e4 100644
|
|
|
dbd30d6 |
--- a/rapid/plugin/group_replication/libmysqlgcs/rpcgen.cmake
|
|
|
dbd30d6 |
+++ b/rapid/plugin/group_replication/libmysqlgcs/rpcgen.cmake
|
|
|
dbd30d6 |
@@ -94,6 +94,23 @@ FOREACH(X xcom_vp)
|
|
|
dbd30d6 |
${XCOM_BASEDIR}/xcom_proto_enum.h
|
|
|
dbd30d6 |
${XCOM_BASEDIR}/xcom_limits.h)
|
|
|
dbd30d6 |
ELSE()
|
|
|
dbd30d6 |
+ FIND_PROGRAM(RPCGEN_EXECUTABLE rpcgen DOC "path to the rpcgen executable")
|
|
|
dbd30d6 |
+ MARK_AS_ADVANCED(RPCGEN_EXECUTABLE)
|
|
|
dbd30d6 |
+ IF(NOT RPCGEN_EXECUTABLE)
|
|
|
dbd30d6 |
+ MESSAGE(FATAL_ERROR "Could not find rpcgen")
|
|
|
dbd30d6 |
+ ENDIF()
|
|
|
dbd30d6 |
+
|
|
|
dbd30d6 |
+ IF(NOT RPC_INCLUDE_DIR)
|
|
|
dbd30d6 |
+ MESSAGE(FATAL_ERROR
|
|
|
dbd30d6 |
+ "Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc")
|
|
|
dbd30d6 |
+ ENDIF()
|
|
|
dbd30d6 |
+ MESSAGE(STATUS "RPC_INCLUDE_DIR ${RPC_INCLUDE_DIR}")
|
|
|
dbd30d6 |
+ IF(RPC_INCLUDE_DIR STREQUAL "/usr/include/tirpc")
|
|
|
dbd30d6 |
+ INCLUDE_DIRECTORIES(SYSTEM /usr/include/tirpc)
|
|
|
dbd30d6 |
+ ADD_DEFINITIONS(-DHAVE_TIRPC)
|
|
|
dbd30d6 |
+ SET(TIRPC_LIBRARY tirpc)
|
|
|
dbd30d6 |
+ ENDIF()
|
|
|
dbd30d6 |
+
|
|
|
dbd30d6 |
# on unix systems try to generate them if needed
|
|
|
dbd30d6 |
ADD_CUSTOM_COMMAND(OUTPUT ${x_gen_h} ${x_gen_c} ${x_tmp_plat_h}
|
|
|
dbd30d6 |
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
|
dbd30d6 |
@@ -110,10 +127,10 @@ FOREACH(X xcom_vp)
|
|
|
dbd30d6 |
|
|
|
dbd30d6 |
# generate the sources
|
|
|
dbd30d6 |
COMMAND ${CMAKE_COMMAND} -E remove -f ${x_gen_h}
|
|
|
dbd30d6 |
- COMMAND rpcgen -C -h -o
|
|
|
dbd30d6 |
+ COMMAND ${RPCGEN_EXECUTABLE} -C -h -o
|
|
|
dbd30d6 |
${x_gen_h} ${x_tmp_x_canonical_name}
|
|
|
dbd30d6 |
COMMAND ${CMAKE_COMMAND} -E remove -f ${x_gen_c}
|
|
|
dbd30d6 |
- COMMAND rpcgen -C -c -o
|
|
|
dbd30d6 |
+ COMMAND ${RPCGEN_EXECUTABLE} -C -c -o
|
|
|
dbd30d6 |
${x_gen_c} ${x_tmp_x_canonical_name}
|
|
|
dbd30d6 |
WORKING_DIRECTORY ${gen_xdr_dir}
|
|
|
dbd30d6 |
DEPENDS
|
|
|
dbd30d6 |
diff --git a/rapid/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_transport.c b/rapid/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_transport.c
|
|
|
dbd30d6 |
index ad892aa56ae..bc04b597d49 100644
|
|
|
dbd30d6 |
--- a/rapid/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_transport.c
|
|
|
dbd30d6 |
+++ b/rapid/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_transport.c
|
|
|
dbd30d6 |
@@ -342,13 +345,9 @@ static void dump_header(char *buf) {
|
|
|
dbd30d6 |
|
|
|
dbd30d6 |
void dbg_app_data(app_data_ptr a);
|
|
|
dbd30d6 |
|
|
|
dbd30d6 |
-#ifdef HAVE___CONST
|
|
|
dbd30d6 |
-#define const __const
|
|
|
dbd30d6 |
-#else
|
|
|
dbd30d6 |
#ifdef OLD_XDR
|
|
|
dbd30d6 |
#define const
|
|
|
dbd30d6 |
#endif
|
|
|
dbd30d6 |
-#endif
|
|
|
dbd30d6 |
|
|
|
dbd30d6 |
/* ARGSUSED */
|
|
|
dbd30d6 |
static bool_t x_putlong(XDR *xdrs,
|
|
|
dbd30d6 |
@@ -380,9 +379,8 @@ static bool_t x_putbytes(XDR *xdrs, const char *bp MY_ATTRIBUTE((unused)),
|
|
|
dbd30d6 |
#endif
|
|
|
dbd30d6 |
|
|
|
dbd30d6 |
static u_int
|
|
|
dbd30d6 |
-#if defined(__APPLE__) || defined(__FreeBSD__) || \
|
|
|
dbd30d6 |
- defined(X_GETPOSTN_NOT_USE_CONST)
|
|
|
dbd30d6 |
-x_getpostn(__const XDR *xdrs)
|
|
|
dbd30d6 |
+#if defined(__APPLE__) || defined(__FreeBSD__) || defined(HAVE_TIRPC)
|
|
|
dbd30d6 |
+x_getpostn(XDR *xdrs)
|
|
|
dbd30d6 |
#else
|
|
|
dbd30d6 |
x_getpostn(const XDR *xdrs)
|
|
|
dbd30d6 |
#endif
|