Explorar o código

Work around dlopen'ed objects not executing constructors on solaris platform.

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2276 fd59a12c-fef9-0310-b244-a6a79926bd2f
Steven Dake %!s(int64=16) %!d(string=hai) anos
pai
achega
cbb6aaf78b
Modificáronse 8 ficheiros con 24 adicións e 0 borrados
  1. 3 0
      exec/vsf_quorum.c
  2. 4 0
      services/cfg.c
  3. 3 0
      services/confdb.c
  4. 3 0
      services/cpg.c
  5. 4 0
      services/evs.c
  6. 3 0
      services/pload.c
  7. 1 0
      services/testquorum.c
  8. 3 0
      services/votequorum.c

+ 3 - 0
exec/vsf_quorum.c

@@ -261,6 +261,9 @@ static int quorum_exec_init_fn (struct corosync_api_v1 *api)
 	int res;
 	int res;
 	void *quorum_iface_p;
 	void *quorum_iface_p;
 
 
+#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);

+ 4 - 0
services/cfg.c

@@ -352,6 +352,10 @@ struct req_exec_cfg_shutdown {
 static int cfg_exec_init_fn (
 static int 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);

+ 3 - 0
services/confdb.c

@@ -270,6 +270,9 @@ __attribute__ ((constructor)) static void corosync_lcr_component_register (void)
 static int confdb_exec_init_fn (
 static int confdb_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 0;
 	return 0;
 }
 }

+ 3 - 0
services/cpg.c

@@ -492,6 +492,9 @@ static int notify_lib_joinlist(
 
 
 static int cpg_exec_init_fn (struct corosync_api_v1 *corosync_api)
 static int cpg_exec_init_fn (struct corosync_api_v1 *corosync_api)
 {
 {
+#ifdef COROSYNC_SOLARIS
+	logsys_subsys_init();
+#endif
 	api = corosync_api;
 	api = corosync_api;
 	return (0);
 	return (0);
 }
 }

+ 4 - 0
services/evs.c

@@ -204,6 +204,10 @@ __attribute__ ((constructor)) static void corosync_lcr_component_register (void)
 static int evs_exec_init_fn (
 static int evs_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 0;
 	return 0;

+ 3 - 0
services/pload.c

@@ -214,6 +214,9 @@ __attribute__ ((constructor)) static void corosync_lcr_component_register (void)
 static int pload_exec_init_fn (
 static int pload_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 0;
 	return 0;

+ 1 - 0
services/testquorum.c

@@ -99,6 +99,7 @@ static struct lcr_comp test_quorum_comp_ver0 = {
 void corosync_lcr_component_register (void);
 void corosync_lcr_component_register (void);
 
 
 void corosync_lcr_component_register (void) {
 void corosync_lcr_component_register (void) {
+	logsys_subsys_init();
 #else
 #else
 __attribute__ ((constructor)) static void corosync_lcr_component_register (void) {
 __attribute__ ((constructor)) static void corosync_lcr_component_register (void) {
 #endif
 #endif

+ 3 - 0
services/votequorum.c

@@ -499,6 +499,9 @@ static int votequorum_exec_init_fn (struct corosync_api_v1 *api)
 	hdb_handle_t object_handle;
 	hdb_handle_t object_handle;
 	hdb_handle_t find_handle;
 	hdb_handle_t find_handle;
 
 
+#ifdef COROSYNC_SOLARIS
+	logsys_subsys_init();
+#endif
 	ENTER();
 	ENTER();
 
 
 	corosync_api = api;
 	corosync_api = api;