not sure if this patch fixes all your problems, but give it a try.

My compiler doesn't give me any warnings with or without patch.  

Regards
-steve


On Wed, 2009-01-07 at 14:34 +0100, Andrew Beekhof wrote:
> On the topic of logsys, I now noticed a bunch of macros like this one:
> 
> #define log_printf(lvl, format, args...)                              \
>   do {                                                                        
> \
>       _logsys_log_printf (logsys_subsys_id, (char *) __FUNCTION__,    \
>               __FILE__, __LINE__, lvl, format, ##args);               \
> } while(0)
> 
> 
> __FUNCTION__ is a const and the compiler won't let one cast it away.
> 
> The compiler still spews out dozens of "warning: cast discards  
> qualifiers from target type" messages (which causes my builds to fail).
> 
> What can't it be passed in as a const?  Surely you're not actually  
> modifying it.
> 
> Andrew
> 
> On Jan 7, 2009, at 1:43 PM, Steven Dake wrote:
> 
> > Yes.
> >
> > We can make it optional and use pthread_mutex in its place if the spin
> > lock operations aren't present.
> >
> > The only reason it is used now is because it is about 4x faster then
> > mutexes in the use cases of the logsys.
> >
> > I wasn't aware of the portability problems.
> >
> > Is there a method to test if spin_lock is unavailable on these
> > platforms?  I don't have any of those platforms available to test on.
> >
> > Regards
> > -steve
> >
> >
> > On Wed, 2009-01-07 at 13:36 +0100, Andrew Beekhof wrote:
> >> Hi Steve,
> >>
> >> Unfortunately the use of pthread_spin_lock by logsys makes corosync
> >> unusable/uncompilable on a number of platforms including OSX:
> >>    
> >> http://www.gnu.org/software/gnulib/manual/html_node/pthread_005fspin_005flock.html
> >>
> >> Is there an alternative you could use instead?
> >>
> >> The full gcc output follows:
> >> ==== /Users/beekhof/Development/corosync-svn/exec ===
> >> logsys.c:114: error: syntax error before 'logsys_idx_spinlock'
> >> logsys.c:114: warning: type defaults to 'int' in declaration of
> >> 'logsys_idx_spinlock'
> >> logsys.c:114: warning: data definition has no type or storage class
> >> logsys.c: In function 'records_reclaim':
> >> logsys.c:176: warning: implicit declaration of function
> >> 'pthread_spin_lock'
> >> logsys.c:205: warning: implicit declaration of function
> >> 'pthread_spin_unlock'
> >> logsys.c: In function '_logsys_rec_init':
> >> logsys.c:567: warning: implicit declaration of function
> >> 'pthread_spin_init'
> >> make[1]: *** [logsys.o] Error 1
> >> make: *** [all] Error 2
> >>
> >> _______________________________________________
> >> Openais mailing list
> >> [email protected]
> >> https://lists.linux-foundation.org/mailman/listinfo/openais
> >
> 
Index: include/corosync/engine/logsys.h
===================================================================
--- include/corosync/engine/logsys.h	(revision 1718)
+++ include/corosync/engine/logsys.h	(working copy)
@@ -140,7 +140,7 @@
 
 extern void _logsys_log_printf (
 	int subsys,
-	char *function_name,
+	const char *function_name,
 	char *file_name,
 	int file_line,
 	unsigned int level,
@@ -149,7 +149,7 @@
 
 extern void _logsys_log_rec (
 	int subsys,
-	char *function_name,
+	const char *function_name,
 	char *file_name,
 	int file_line,
 	unsigned int rec_ident,
@@ -215,57 +215,57 @@
 
 #define log_printf(lvl, format, args...)				\
  do {									\
-	_logsys_log_printf (logsys_subsys_id, (char *) __FUNCTION__,	\
+	_logsys_log_printf (logsys_subsys_id, __FUNCTION__,		\
 		__FILE__, __LINE__, lvl, format, ##args);		\
 } while(0)
 
 #define ENTER() do {							\
-	_logsys_log_rec (logsys_subsys_id, (char *) __FUNCTION__,	\
+	_logsys_log_rec (logsys_subsys_id, __FUNCTION__,		\
 		__FILE__,  __LINE__, LOGSYS_TAG_ENTER, LOG_REC_END);	\
 } while(0)
 
 #define LEAVE() do {							\
-	_logsys_log_rec (logsys_subsys_id, (char *) __FUNCTION__,	\
+	_logsys_log_rec (logsys_subsys_id, __FUNCTION__,		\
 		__FILE__,  __LINE__, LOGSYS_TAG_LEAVE, LOG_REC_END);	\
 } while(0)
 
 #define TRACE1(format, args...) do {					\
-	_logsys_log_printf (logsys_subsys_id, (char *) __FUNCTION__,	\
+	_logsys_log_printf (logsys_subsys_id, __FUNCTION__,		\
 		__FILE__,  __LINE__, LOGSYS_TAG_TRACE1, format, ##args);\
 } while(0)
 
 #define TRACE2(format, args...) do {					\
-	_logsys_log_printf (logsys_subsys_id, (char *) __FUNCTION__,	\
+	_logsys_log_printf (logsys_subsys_id, __FUNCTION__,		\
 		__FILE__,  __LINE__, LOGSYS_TAG_TRACE2, format, ##args);\
 } while(0)
 
 #define TRACE3(format, args...) do {					\
-	_logsys_log_printf (logsys_subsys_id, (char *) __FUNCTION__,	\
+	_logsys_log_printf (logsys_subsys_id, __FUNCTION__,		\
 		__FILE__,  __LINE__, LOGSYS_TAG_TRACE3, format, ##args);\
 } while(0)
 
 #define TRACE4(format, args...) do {					\
-	_logsys_log_printf (logsys_subsys_id, (char *) __FUNCTION__,	\
+	_logsys_log_printf (logsys_subsys_id, __FUNCTION__,		\
 		__FILE__,  __LINE__, LOGSYS_TAG_TRACE4, format, ##args);\
 } while(0)
 
 #define TRACE5(format, args...) do {					\
-	_logsys_log_printf (logsys_subsys_id, (char *) __FUNCTION__,	\
+	_logsys_log_printf (logsys_subsys_id, __FUNCTION__,		\
 		__FILE__,  __LINE__, LOGSYS_TAG_TRACE5, format, ##args);\
 } while(0)
 
 #define TRACE6(format, args...) do {					\
-	_logsys_log_printf (logsys_subsys_id, (char *) __FUNCTION__,	\
+	_logsys_log_printf (logsys_subsys_id, __FUNCTION__,		\
 		__FILE__,  __LINE__, LOGSYS_TAG_TRACE6, format, ##args);\
 } while(0)
 
 #define TRACE7(format, args...) do {					\
-	_logsys_log_printf (logsys_subsys_id, (char *) __FUNCTION__,	\
+	_logsys_log_printf (logsys_subsys_id, __FUNCTION__,		\
 		__FILE__,  __LINE__, LOGSYS_TAG_TRACE7, format, ##args);\
 } while(0)
 
 #define TRACE8(format, args...) do {					\
-	_logsys_log_printf (logsys_subsys_id, (char *) __FUNCTION__,	\
+	_logsys_log_printf (logsys_subsys_id, __FUNCTION__,		\
 		__FILE__,  __LINE__, LOGSYS_TAG_TRACE8, format, ##args);\
 } while(0)
 
Index: exec/logsys.c
===================================================================
--- exec/logsys.c	(revision 1718)
+++ exec/logsys.c	(working copy)
@@ -254,7 +254,7 @@
 */
 static void log_printf_to_logs (
 	char *subsys,
-	char *function_name,
+	const char *function_name,
 	char *file_name,
 	int file_line,
 	unsigned int level,
@@ -287,7 +287,7 @@
 					break;
 
 				case 'n':
-					len = strcpy_cutoff (&output_buffer[output_buffer_idx], function_name, cutoff);
+					len = strcpy_cutoff (&output_buffer[output_buffer_idx], (char *)function_name, cutoff);
 					output_buffer_idx += len;
 					break;
 
@@ -587,7 +587,7 @@
  */
 void _logsys_log_rec (
 	int subsys,
-	char *function_name,
+	const char *function_name,
 	char *file_name,
 	int file_line,
 	unsigned int rec_ident,
@@ -629,7 +629,7 @@
 	buf_len[0] = strlen (logsys_loggers[subsys].subsys) + 1;
 	buf_args[1] = file_name;
 	buf_len[1] = strlen (file_name) + 1;
-	buf_args[2] = function_name;
+	buf_args[2] = (char *)function_name;
 	buf_len[2] = strlen (function_name) + 1;
 	for (i = 0; i < 3; i++) {
 		record_reclaim_size += ((buf_len[i] + 3) >> 2) + 1;
@@ -738,7 +738,7 @@
 
 void _logsys_log_printf (
         int subsys,
-        char *function_name,
+        const char *function_name,
         char *file_name,
         int file_line,
         unsigned int level,
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to