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