瀏覽代碼

build: bring SOLARIS up to the same standard as other OSes

drop all SOLARIS specific ifdefs and replace them with feature checks

Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
Fabio M. Di Nitto 13 年之前
父節點
當前提交
6d28d51284
共有 14 個文件被更改,包括 94 次插入61 次删除
  1. 16 4
      configure.ac
  2. 0 4
      exec/cfg.c
  3. 0 4
      exec/cmap.c
  4. 0 3
      exec/cpg.c
  5. 5 4
      exec/main.c
  6. 0 4
      exec/mon.c
  7. 0 4
      exec/pload.c
  8. 36 8
      exec/totemudp.c
  9. 36 8
      exec/totemudpu.c
  10. 0 4
      exec/votequorum.c
  11. 0 3
      exec/vsf_quorum.c
  12. 1 3
      exec/wd.c
  13. 0 4
      include/corosync/corotypes.h
  14. 0 4
      include/corosync/mar_gen.h

+ 16 - 4
configure.ac

@@ -96,12 +96,28 @@ AC_CHECK_HEADERS([arpa/inet.h fcntl.h limits.h netdb.h netinet/in.h stdint.h \
 		  sys/time.h syslog.h unistd.h sys/types.h getopt.h malloc.h \
 		  sys/time.h syslog.h unistd.h sys/types.h getopt.h malloc.h \
 		  utmpx.h ifaddrs.h stddef.h sys/file.h sys/uio.h])
 		  utmpx.h ifaddrs.h stddef.h sys/file.h sys/uio.h])
 
 
+# Check entries in specific structs
 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
 		[AC_DEFINE_UNQUOTED([HAVE_SOCK_SIN_LEN], [1], [sockaddr_in needs sin_len])],
 		[AC_DEFINE_UNQUOTED([HAVE_SOCK_SIN_LEN], [1], [sockaddr_in needs sin_len])],
 		[], [[#include <netinet/in.h>]])
 		[], [[#include <netinet/in.h>]])
 AC_CHECK_MEMBER([struct sockaddr_in6.sin6_len],
 AC_CHECK_MEMBER([struct sockaddr_in6.sin6_len],
 		[AC_DEFINE_UNQUOTED([HAVE_SOCK_SIN6_LEN], [1], [sockaddr_in6 needs sin6_len])],
 		[AC_DEFINE_UNQUOTED([HAVE_SOCK_SIN6_LEN], [1], [sockaddr_in6 needs sin6_len])],
 		[], [[#include <netinet/in.h>]])
 		[], [[#include <netinet/in.h>]])
+AC_CHECK_MEMBER([struct msghdr.msg_control],
+		[AC_DEFINE_UNQUOTED([HAVE_MSGHDR_CONTROL], [1], [msghdr has msg_control])],
+		[], [[#include <sys/socket.h>]])
+AC_CHECK_MEMBER([struct msghdr.msg_controllen],
+		[AC_DEFINE_UNQUOTED([HAVE_MSGHDR_CONTROLLEN], [1], [msghdr has msg_controllen])],
+		[], [[#include <sys/socket.h>]])
+AC_CHECK_MEMBER([struct msghdr.msg_flags],
+		[AC_DEFINE_UNQUOTED([HAVE_MSGHDR_FLAGS], [1], [msghdr has msg_flags])],
+		[], [[#include <sys/socket.h>]])
+AC_CHECK_MEMBER([struct msghdr.msg_accrights],
+		[AC_DEFINE_UNQUOTED([HAVE_MSGHDR_ACCRIGHTS], [1], [msghdr has msg_accrights])],
+		[], [[#include <sys/socket.h>]])
+AC_CHECK_MEMBER([struct msghdr.msg_accrightslen],
+		[AC_DEFINE_UNQUOTED([HAVE_MSGHDR_ACCRIGHTSLEN], [1], [msghdr has msg_accrightslen])],
+		[], [[#include <sys/socket.h>]])
 
 
 # Checks for typedefs.
 # Checks for typedefs.
 AC_TYPE_UID_T
 AC_TYPE_UID_T
@@ -343,10 +359,6 @@ case "$host_os" in
 			     -current_version ${SONAME} \
 			     -current_version ${SONAME} \
 			     -compatibility_version ${SONAME} -install_name \$(libdir)/\$(@)"
 			     -compatibility_version ${SONAME} -install_name \$(libdir)/\$(@)"
 	;;
 	;;
-	*solaris*)
-		AC_DEFINE_UNQUOTED([COROSYNC_SOLARIS], [1],
-				   [Compiling for Solaris platform])
-	;;
 esac
 esac
 
 
 # *FLAGS handling goes here
 # *FLAGS handling goes here

+ 0 - 4
exec/cfg.c

@@ -246,10 +246,6 @@ struct req_exec_cfg_shutdown {
 static char *cfg_exec_init_fn (
 static char *cfg_exec_init_fn (
 	struct corosync_api_v1 *corosync_api_v1)
 	struct corosync_api_v1 *corosync_api_v1)
 {
 {
-#ifdef COROSYNC_SOLARIS
-	logsys_subsys_init();
-#endif
-
 	api = corosync_api_v1;
 	api = corosync_api_v1;
 
 
 	list_init(&trackers_list);
 	list_init(&trackers_list);

+ 0 - 4
exec/cmap.c

@@ -169,10 +169,6 @@ static int cmap_exec_exit_fn(void)
 static char *cmap_exec_init_fn (
 static char *cmap_exec_init_fn (
 	struct corosync_api_v1 *corosync_api)
 	struct corosync_api_v1 *corosync_api)
 {
 {
-
-#ifdef COROSYNC_SOLARIS
-	logsys_subsys_init();
-#endif
 	api = corosync_api;
 	api = corosync_api;
 
 
 	return (NULL);
 	return (NULL);

+ 0 - 3
exec/cpg.c

@@ -990,9 +990,6 @@ static void joinlist_messages_delete (void)
 
 
 static char *cpg_exec_init_fn (struct corosync_api_v1 *corosync_api)
 static char *cpg_exec_init_fn (struct corosync_api_v1 *corosync_api)
 {
 {
-#ifdef COROSYNC_SOLARIS
-	logsys_subsys_init();
-#endif
 	list_init (&downlist_messages_head);
 	list_init (&downlist_messages_head);
 	list_init (&joinlist_messages_head);
 	list_init (&joinlist_messages_head);
 	api = corosync_api;
 	api = corosync_api;

+ 5 - 4
exec/main.c

@@ -438,12 +438,13 @@ static void corosync_mlockall (void)
 
 
 	rlimit.rlim_cur = RLIM_INFINITY;
 	rlimit.rlim_cur = RLIM_INFINITY;
 	rlimit.rlim_max = RLIM_INFINITY;
 	rlimit.rlim_max = RLIM_INFINITY;
-#ifndef COROSYNC_SOLARIS
-	setrlimit (RLIMIT_MEMLOCK, &rlimit);
-#else
-	setrlimit (RLIMIT_VMEM, &rlimit);
+
+#ifndef RLIMIT_MEMLOCK
+#define RLIMIT_MEMLOCK RLIMIT_VMEM
 #endif
 #endif
 
 
+	setrlimit (RLIMIT_MEMLOCK, &rlimit);
+
 	res = mlockall (MCL_CURRENT | MCL_FUTURE);
 	res = mlockall (MCL_CURRENT | MCL_FUTURE);
 	if (res == -1) {
 	if (res == -1) {
 		LOGSYS_PERROR (errno, LOGSYS_LEVEL_WARNING,
 		LOGSYS_PERROR (errno, LOGSYS_LEVEL_WARNING,

+ 0 - 4
exec/mon.c

@@ -463,12 +463,8 @@ static void mon_instance_init (struct resource_instance* inst)
 
 
 static char *mon_exec_init_fn (struct corosync_api_v1 *corosync_api)
 static char *mon_exec_init_fn (struct corosync_api_v1 *corosync_api)
 {
 {
-
 	sg_init();
 	sg_init();
 
 
-#ifdef COROSYNC_SOLARIS
-	logsys_subsys_init();
-#endif
 	api = corosync_api;
 	api = corosync_api;
 
 
 	mon_instance_init (&memory_used_inst);
 	mon_instance_init (&memory_used_inst);

+ 0 - 4
exec/pload.c

@@ -270,10 +270,6 @@ static char *pload_exec_init_fn (struct corosync_api_v1 *corosync_api)
 {
 {
 	icmap_track_t pload_track = NULL;
 	icmap_track_t pload_track = NULL;
 
 
-#ifdef COROSYNC_SOLARIS
-	logsys_subsys_init();
-#endif
-
 	api = corosync_api;
 	api = corosync_api;
 
 
 	/*
 	/*

+ 36 - 8
exec/totemudp.c

@@ -285,12 +285,19 @@ static inline void ucast_sendmsg (
 	msg_ucast.msg_namelen = addrlen;
 	msg_ucast.msg_namelen = addrlen;
 	msg_ucast.msg_iov = (void *)&iovec;
 	msg_ucast.msg_iov = (void *)&iovec;
 	msg_ucast.msg_iovlen = 1;
 	msg_ucast.msg_iovlen = 1;
-#if !defined(COROSYNC_SOLARIS)
+#ifdef HAVE_MSGHDR_CONTROL
 	msg_ucast.msg_control = 0;
 	msg_ucast.msg_control = 0;
+#endif
+#ifdef HAVE_MSGHDR_CONTROLLEN
 	msg_ucast.msg_controllen = 0;
 	msg_ucast.msg_controllen = 0;
+#endif
+#ifdef HAVE_MSGHDR_FLAGS
 	msg_ucast.msg_flags = 0;
 	msg_ucast.msg_flags = 0;
-#else
+#endif
+#ifdef HAVE_MSGHDR_ACCRIGHTS
 	msg_ucast.msg_accrights = NULL;
 	msg_ucast.msg_accrights = NULL;
+#endif
+#ifdef HAVE_MSGHDR_ACCRIGHTSLEN
 	msg_ucast.msg_accrightslen = 0;
 	msg_ucast.msg_accrightslen = 0;
 #endif
 #endif
 
 
@@ -345,12 +352,19 @@ static inline void mcast_sendmsg (
 	msg_mcast.msg_namelen = addrlen;
 	msg_mcast.msg_namelen = addrlen;
 	msg_mcast.msg_iov = (void *)&iovec;
 	msg_mcast.msg_iov = (void *)&iovec;
 	msg_mcast.msg_iovlen = 1;
 	msg_mcast.msg_iovlen = 1;
-#if !defined(COROSYNC_SOLARIS)
+#ifdef HAVE_MSGHDR_CONTROL
 	msg_mcast.msg_control = 0;
 	msg_mcast.msg_control = 0;
+#endif
+#ifdef HAVE_MSGHDR_CONTROLLEN
 	msg_mcast.msg_controllen = 0;
 	msg_mcast.msg_controllen = 0;
+#endif
+#ifdef HAVE_MSGHDR_FLAGS
 	msg_mcast.msg_flags = 0;
 	msg_mcast.msg_flags = 0;
-#else
+#endif
+#ifdef HAVE_MSGHDR_ACCRIGHTS
 	msg_mcast.msg_accrights = NULL;
 	msg_mcast.msg_accrights = NULL;
+#endif
+#ifdef HAVE_MSGHDR_ACCRIGHTSLEN
 	msg_mcast.msg_accrightslen = 0;
 	msg_mcast.msg_accrightslen = 0;
 #endif
 #endif
 
 
@@ -420,12 +434,19 @@ static int net_deliver_fn (
 	msg_recv.msg_namelen = sizeof (struct sockaddr_storage);
 	msg_recv.msg_namelen = sizeof (struct sockaddr_storage);
 	msg_recv.msg_iov = iovec;
 	msg_recv.msg_iov = iovec;
 	msg_recv.msg_iovlen = 1;
 	msg_recv.msg_iovlen = 1;
-#if !defined(COROSYNC_SOLARIS)
+#ifdef HAVE_MSGHDR_CONTROL
 	msg_recv.msg_control = 0;
 	msg_recv.msg_control = 0;
+#endif
+#ifdef HAVE_MSGHDR_CONTROLLEN
 	msg_recv.msg_controllen = 0;
 	msg_recv.msg_controllen = 0;
+#endif
+#ifdef HAVE_MSGHDR_FLAGS
 	msg_recv.msg_flags = 0;
 	msg_recv.msg_flags = 0;
-#else
+#endif
+#ifdef HAVE_MSGHDR_ACCRIGHTS
 	msg_recv.msg_accrights = NULL;
 	msg_recv.msg_accrights = NULL;
+#endif
+#ifdef HAVE_MSGHDR_ACCRIGHTSLEN
 	msg_recv.msg_accrightslen = 0;
 	msg_recv.msg_accrightslen = 0;
 #endif
 #endif
 
 
@@ -1232,12 +1253,19 @@ extern int totemudp_recv_mcast_empty (
 	msg_recv.msg_namelen = sizeof (struct sockaddr_storage);
 	msg_recv.msg_namelen = sizeof (struct sockaddr_storage);
 	msg_recv.msg_iov = &instance->totemudp_iov_recv_flush;
 	msg_recv.msg_iov = &instance->totemudp_iov_recv_flush;
 	msg_recv.msg_iovlen = 1;
 	msg_recv.msg_iovlen = 1;
-#if !defined(COROSYNC_SOLARIS)
+#ifdef HAVE_MSGHDR_CONTROL
 	msg_recv.msg_control = 0;
 	msg_recv.msg_control = 0;
+#endif
+#ifdef HAVE_MSGHDR_CONTROLLEN
 	msg_recv.msg_controllen = 0;
 	msg_recv.msg_controllen = 0;
+#endif
+#ifdef HAVE_MSGHDR_FLAGS
 	msg_recv.msg_flags = 0;
 	msg_recv.msg_flags = 0;
-#else
+#endif
+#ifdef HAVE_MSGHDR_ACCRIGHTS
 	msg_recv.msg_accrights = NULL;
 	msg_recv.msg_accrights = NULL;
+#endif
+#ifdef HAVE_MSGHDR_ACCRIGHTSLEN
 	msg_recv.msg_accrightslen = 0;
 	msg_recv.msg_accrightslen = 0;
 #endif
 #endif
 
 

+ 36 - 8
exec/totemudpu.c

@@ -280,12 +280,19 @@ static inline void ucast_sendmsg (
 	msg_ucast.msg_namelen = addrlen;
 	msg_ucast.msg_namelen = addrlen;
 	msg_ucast.msg_iov = (void *)&iovec;
 	msg_ucast.msg_iov = (void *)&iovec;
 	msg_ucast.msg_iovlen = 1;
 	msg_ucast.msg_iovlen = 1;
-#if !defined(COROSYNC_SOLARIS)
+#ifdef HAVE_MSGHDR_CONTROL
 	msg_ucast.msg_control = 0;
 	msg_ucast.msg_control = 0;
+#endif
+#ifdef HAVE_MSGHDR_CONTROLLEN
 	msg_ucast.msg_controllen = 0;
 	msg_ucast.msg_controllen = 0;
+#endif
+#ifdef HAVE_MSGHDR_FLAGS
 	msg_ucast.msg_flags = 0;
 	msg_ucast.msg_flags = 0;
-#else
+#endif
+#ifdef HAVE_MSGHDR_ACCRIGHTS
 	msg_ucast.msg_accrights = NULL;
 	msg_ucast.msg_accrights = NULL;
+#endif
+#ifdef HAVE_MSGHDR_ACCRIGHTSLEN
 	msg_ucast.msg_accrightslen = 0;
 	msg_ucast.msg_accrightslen = 0;
 #endif
 #endif
 
 
@@ -349,12 +356,19 @@ static inline void mcast_sendmsg (
 		msg_mcast.msg_namelen = addrlen;
 		msg_mcast.msg_namelen = addrlen;
 		msg_mcast.msg_iov = (void *)&iovec;
 		msg_mcast.msg_iov = (void *)&iovec;
 		msg_mcast.msg_iovlen = 1;
 		msg_mcast.msg_iovlen = 1;
-	#if !defined(COROSYNC_SOLARIS)
+	#ifdef HAVE_MSGHDR_CONTROL
 		msg_mcast.msg_control = 0;
 		msg_mcast.msg_control = 0;
+	#endif
+	#ifdef HAVE_MSGHDR_CONTROLLEN
 		msg_mcast.msg_controllen = 0;
 		msg_mcast.msg_controllen = 0;
+	#endif
+	#ifdef HAVE_MSGHDR_FLAGS
 		msg_mcast.msg_flags = 0;
 		msg_mcast.msg_flags = 0;
-	#else
+	#endif
+	#ifdef HAVE_MSGHDR_ACCRIGHTS
 		msg_mcast.msg_accrights = NULL;
 		msg_mcast.msg_accrights = NULL;
+	#endif
+	#ifdef HAVE_MSGHDR_ACCRIGHTSLEN
 		msg_mcast.msg_accrightslen = 0;
 		msg_mcast.msg_accrightslen = 0;
 	#endif
 	#endif
 
 
@@ -406,12 +420,19 @@ static int net_deliver_fn (
 	msg_recv.msg_namelen = sizeof (struct sockaddr_storage);
 	msg_recv.msg_namelen = sizeof (struct sockaddr_storage);
 	msg_recv.msg_iov = iovec;
 	msg_recv.msg_iov = iovec;
 	msg_recv.msg_iovlen = 1;
 	msg_recv.msg_iovlen = 1;
-#if !defined(COROSYNC_SOLARIS)
+#ifdef HAVE_MSGHDR_CONTROL
 	msg_recv.msg_control = 0;
 	msg_recv.msg_control = 0;
+#endif
+#ifdef HAVE_MSGHDR_CONTROLLEN
 	msg_recv.msg_controllen = 0;
 	msg_recv.msg_controllen = 0;
+#endif
+#ifdef HAVE_MSGHDR_FLAGS
 	msg_recv.msg_flags = 0;
 	msg_recv.msg_flags = 0;
-#else
+#endif
+#ifdef HAVE_MSGHDR_ACCRIGHTS
 	msg_recv.msg_accrights = NULL;
 	msg_recv.msg_accrights = NULL;
+#endif
+#ifdef HAVE_MSGHDR_ACCRIGHTSLEN
 	msg_recv.msg_accrightslen = 0;
 	msg_recv.msg_accrightslen = 0;
 #endif
 #endif
 
 
@@ -949,12 +970,19 @@ extern int totemudpu_recv_mcast_empty (
 	msg_recv.msg_namelen = sizeof (struct sockaddr_storage);
 	msg_recv.msg_namelen = sizeof (struct sockaddr_storage);
 	msg_recv.msg_iov = &instance->totemudpu_iov_recv;
 	msg_recv.msg_iov = &instance->totemudpu_iov_recv;
 	msg_recv.msg_iovlen = 1;
 	msg_recv.msg_iovlen = 1;
-#if !defined(COROSYNC_SOLARIS)
+#ifdef HAVE_MSGHDR_CONTROL
 	msg_recv.msg_control = 0;
 	msg_recv.msg_control = 0;
+#endif
+#ifdef HAVE_MSGHDR_CONTROLLEN
 	msg_recv.msg_controllen = 0;
 	msg_recv.msg_controllen = 0;
+#endif
+#ifdef HAVE_MSGHDR_FLAGS
 	msg_recv.msg_flags = 0;
 	msg_recv.msg_flags = 0;
-#else
+#endif
+#ifdef HAVE_MSGHDR_ACCRIGHTS
 	msg_recv.msg_accrights = NULL;
 	msg_recv.msg_accrights = NULL;
+#endif
+#ifdef HAVE_MSGHDR_ACCRIGHTSLEN
 	msg_recv.msg_accrightslen = 0;
 	msg_recv.msg_accrightslen = 0;
 #endif
 #endif
 
 

+ 0 - 4
exec/votequorum.c

@@ -1751,10 +1751,6 @@ static char *votequorum_exec_init_fn (struct corosync_api_v1 *api)
 {
 {
 	char *error = NULL;
 	char *error = NULL;
 
 
-#ifdef COROSYNC_SOLARIS
-	logsys_subsys_init();
-#endif
-
 	ENTER();
 	ENTER();
 
 
 	/*
 	/*

+ 0 - 3
exec/vsf_quorum.c

@@ -257,9 +257,6 @@ static char *quorum_exec_init_fn (struct corosync_api_v1 *api)
 	char *quorum_module = NULL;
 	char *quorum_module = NULL;
 	char *error;
 	char *error;
 
 
-#ifdef COROSYNC_SOLARIS
-	logsys_subsys_init();
-#endif
 	corosync_api = api;
 	corosync_api = api;
 	list_init (&lib_trackers_list);
 	list_init (&lib_trackers_list);
 	list_init (&internal_trackers_list);
 	list_init (&internal_trackers_list);

+ 1 - 3
exec/wd.c

@@ -708,9 +708,7 @@ static char *wd_exec_init_fn (struct corosync_api_v1 *corosync_api)
 {
 {
 
 
 	ENTER();
 	ENTER();
-#ifdef COROSYNC_SOLARIS
-	logsys_subsys_init();
-#endif
+
 	api = corosync_api;
 	api = corosync_api;
 
 
 	watchdog_timeout_get_initial();
 	watchdog_timeout_get_initial();

+ 0 - 4
include/corosync/corotypes.h

@@ -36,11 +36,7 @@
 #ifndef COROTYPES_H_DEFINED
 #ifndef COROTYPES_H_DEFINED
 #define COROTYPES_H_DEFINED
 #define COROTYPES_H_DEFINED
 
 
-#ifndef COROSYNC_SOLARIS
 #include <stdint.h>
 #include <stdint.h>
-#else
-#include <sys/types.h>
-#endif
 #include <errno.h>
 #include <errno.h>
 #include <time.h>
 #include <time.h>
 #include <sys/time.h>
 #include <sys/time.h>

+ 0 - 4
include/corosync/mar_gen.h

@@ -35,11 +35,7 @@
 #ifndef MAR_GEN_H_DEFINED
 #ifndef MAR_GEN_H_DEFINED
 #define MAR_GEN_H_DEFINED
 #define MAR_GEN_H_DEFINED
 
 
-#ifndef COROSYNC_SOLARIS
 #include <stdint.h>
 #include <stdint.h>
-#else
-#include <sys/types.h>
-#endif
 #include <string.h>
 #include <string.h>
 
 
 #include <corosync/corotypes.h>
 #include <corosync/corotypes.h>