On Tue, Jun 28, 2011 at 01:44:23AM +0100, Pádraig Brady wrote:
> The attached patch fixes compilation -Werrors with GCC 4.6
>
> cheers,
> Pádraig.
>
> Fix compilation with GCC 4.6
>
> avoid -Werror=unused-but-set-variable issues
> remove -Wcast-qual which caused issues with copyHostList()
Care to explain or show those "issues"?
> diff -r 856ae1408ff9 configure.ac
> --- a/configure.ac Sun Jun 19 21:03:24 2011 +0200
> +++ b/configure.ac Tue Jun 28 01:23:28 2011 +0100
> @@ -1186,12 +1186,12 @@
> CFLAGS="$CFLAGS -ggdb3 -O0"
>
> # We had to eliminate -Wnested-externs because of libtool changes
> + # -Wcast-qual gives errors with GCC 4.6
And those cannot be fixed?
Why?
> EXTRA_FLAGS="-fgnu89-inline
> -fstack-protector-all
> -Wall
> -Waggregate-return
> -Wbad-function-cast
> - -Wcast-qual
> -Wcast-align
> -Wdeclaration-after-statement
> -Wendif-labels
> diff -r 856ae1408ff9 lib/clplumbing/base64_md5_test.c
> --- a/lib/clplumbing/base64_md5_test.c Sun Jun 19 21:03:24 2011 +0200
> +++ b/lib/clplumbing/base64_md5_test.c Tue Jun 28 01:23:28 2011 +0100
> @@ -108,5 +108,6 @@
> error_count++;
> }
>
> + (void) rc; /* Suppress -Werror=unused-but-set-variable */
> return error_count;
> }
> diff -r 856ae1408ff9 lib/clplumbing/cl_msg.c
> --- a/lib/clplumbing/cl_msg.c Sun Jun 19 21:03:24 2011 +0200
> +++ b/lib/clplumbing/cl_msg.c Tue Jun 28 01:23:28 2011 +0100
> @@ -598,7 +598,6 @@
> {
>
> size_t startlen = sizeof(MSG_START)-1;
> - int internal_type;
>
>
> int (*addfield) (struct ha_msg* msg, char* name, size_t namelen,
> @@ -633,8 +632,6 @@
> return(HA_FAIL);
> }
>
> - internal_type = type;
> -
> HA_MSG_ASSERT(type < DIMOF(fieldtypefuncs));
>
> addfield = fieldtypefuncs[type].addfield;
> diff -r 856ae1408ff9 lib/clplumbing/cl_msg_types.c
> --- a/lib/clplumbing/cl_msg_types.c Sun Jun 19 21:03:24 2011 +0200
> +++ b/lib/clplumbing/cl_msg_types.c Tue Jun 28 01:23:28 2011 +0100
> @@ -931,7 +931,6 @@
> void* value, size_t vallen, int depth)
> {
> int next;
> - struct ha_msg* childmsg;
>
> if ( !msg || !name || !value
> || depth < 0){
> @@ -940,8 +939,6 @@
> return HA_FAIL;
> }
>
> - childmsg = (struct ha_msg*)value;
> -
> next = msg->nfields;
> msg->names[next] = name;
> msg->nlens[next] = namelen;
> @@ -964,7 +961,6 @@
> int next;
> int j;
> GList* list = NULL;
> - int stringlen_add;
>
> if ( !msg || !name || !value
> || namelen <= 0
> @@ -983,13 +979,8 @@
> }
>
> if ( j >= msg->nfields){
> - int listlen;
> list = (GList*)value;
>
> - listlen = string_list_pack_length(list);
> -
> - stringlen_add = list_stringlen(namelen,listlen , value);
> -
> next = msg->nfields;
> msg->names[next] = name;
> msg->nlens[next] = namelen;
> @@ -1001,8 +992,7 @@
> } else if( msg->types[j] == FT_LIST ){
>
> GList* oldlist = (GList*) msg->values[j];
> - int oldlistlen = string_list_pack_length(oldlist);
> - int newlistlen;
> + int listlen;
> size_t i;
>
> for ( i =0; i < g_list_length((GList*)value); i++){
> @@ -1014,12 +1004,10 @@
> return HA_FAIL;
> }
>
> - newlistlen = string_list_pack_length(list);
> + listlen = string_list_pack_length(list);
>
> - stringlen_add = newlistlen - oldlistlen;
> -
> msg->values[j] = list;
> - msg->vlens[j] = string_list_pack_length(list);
> + msg->vlens[j] = listlen;
> g_list_free((GList*)value); /*we don't free each element
> because they are used in new
> list*/
> free(name); /* this name is no longer necessary
> @@ -1069,7 +1057,6 @@
> void* value, size_t vallen, int depth)
> {
> int next;
> - struct ha_msg* childmsg;
>
> if ( !msg || !name || !value
> || depth < 0){
> @@ -1078,8 +1065,6 @@
> return HA_FAIL;
> }
>
> - childmsg = (struct ha_msg*)value;
> -
> next = msg->nfields;
> msg->names[next] = name;
> msg->nlens[next] = namelen;
> diff -r 856ae1408ff9 lib/clplumbing/cl_poll.c
> --- a/lib/clplumbing/cl_poll.c Sun Jun 19 21:03:24 2011 +0200
> +++ b/lib/clplumbing/cl_poll.c Tue Jun 28 01:23:28 2011 +0100
> @@ -497,7 +497,6 @@
> int
> cl_poll_ignore(int fd)
> {
> - short nsig;
> int flags;
>
> if (debug) {
> @@ -511,7 +510,6 @@
> if (!is_monitored[fd]) {
> return 0;
> }
> - nsig = monitorinfo[fd].nsig;
>
> is_monitored[fd] = FALSE;
> memset(monitorinfo+fd, 0, sizeof(monitorinfo[0]));
> diff -r 856ae1408ff9 lib/clplumbing/cl_syslog.c
> --- a/lib/clplumbing/cl_syslog.c Sun Jun 19 21:03:24 2011 +0200
> +++ b/lib/clplumbing/cl_syslog.c Tue Jun 28 01:23:28 2011 +0100
> @@ -120,14 +120,12 @@
> int
> cl_syslogfac_str2int(const char *fname)
> {
> - struct _syslog_code *fnames;
> int i;
>
> if(fname == NULL || strcmp("none", fname) == 0) {
> return 0;
> }
>
> - fnames = (struct _syslog_code *) facilitynames;
> for (i = 0; facilitynames[i].c_name != NULL; i++) {
> if (strcmp(fname, facilitynames[i].c_name) == 0) {
> return facilitynames[i].c_val;
> @@ -140,10 +138,8 @@
> const char *
> cl_syslogfac_int2str(int fnum)
> {
> - struct _syslog_code *fnames;
> int i;
>
> - fnames = (struct _syslog_code *) facilitynames;
> for (i = 0; facilitynames[i].c_name != NULL; i++) {
> if (facilitynames[i].c_val == fnum) {
> return facilitynames[i].c_name;
> diff -r 856ae1408ff9 lib/clplumbing/ipcsocket.c
> --- a/lib/clplumbing/ipcsocket.c Sun Jun 19 21:03:24 2011 +0200
> +++ b/lib/clplumbing/ipcsocket.c Tue Jun 28 01:23:28 2011 +0100
> @@ -1117,7 +1117,9 @@
>
> int nbytes;
> int result;
> +#ifdef IPC_TIME_DEBUG
> struct IPC_MESSAGE* ipcmsg;
> +#endif
>
> socket_resume_io(ch);
> result = socket_resume_io_read(ch, &nbytes, TRUE);
> @@ -1138,12 +1140,10 @@
> ch->recv_queue->current_qlen = 0;
> return IPC_FAIL;
> }
> +#ifdef IPC_TIME_DEBUG
> ipcmsg = *message = (struct IPC_MESSAGE *) (element->data);
Um, you skip setting message now??
I think you need to keep
*message = (struct IPC_MESSAGE *) (element->data);
outside the ifdef?
> -
> -
> -#ifdef IPC_TIME_DEBUG
> - ipc_time_debug(ch, ipcmsg, MSGPOS_DEQUEUE);
> -#endif
> + ipc_time_debug(ch, ipcmsg, MSGPOS_DEQUEUE);
> +#endif
>
> CHECKFOO(1,ch, *message, SavedReadBody, "read message");
> SocketIPCStats.nreceived++;
> diff -r 856ae1408ff9 lib/clplumbing/ipctest.c
> --- a/lib/clplumbing/ipctest.c Sun Jun 19 21:03:24 2011 +0200
> +++ b/lib/clplumbing/ipctest.c Tue Jun 28 01:23:28 2011 +0100
> @@ -1326,7 +1326,6 @@
> mainloop_server(IPC_Channel* chan, int repcount)
> {
> struct iterinfo info;
> - GCHSource* msgchan;
> guint sendmsgsrc;
>
>
> @@ -1340,7 +1339,7 @@
> chan->low_flow_mark = 2;
>
> sendmsgsrc = g_idle_add(s_send_msg, &info);
> - msgchan = G_main_add_IPC_Channel(G_PRIORITY_DEFAULT, chan
> + G_main_add_IPC_Channel(G_PRIORITY_DEFAULT, chan
> , FALSE, s_rcv_msg, &info, NULL);
> cl_log(LOG_INFO, "Mainloop echo server: %d reps pid %d.", repcount,
> (int)getpid());
> g_main_run(loop);
> diff -r 856ae1408ff9 lib/plugins/lrm/raexeclsb.c
> --- a/lib/plugins/lrm/raexeclsb.c Sun Jun 19 21:03:24 2011 +0200
> +++ b/lib/plugins/lrm/raexeclsb.c Tue Jun 28 01:23:28 2011 +0100
> @@ -322,7 +322,6 @@
> cur = tmp;
> continue;
> }
> - is_lsb_script = FALSE;
Why? that does not look right.
> next_continue = FALSE;
> found_begin_tag = FALSE;
> while (NULL != fgets(buffer, BUFLEN, fp)) {
> @@ -370,6 +369,8 @@
> *rsc_info = g_list_remove(*rsc_info, cur->data);
> g_free(cur->data);
> }
> +#else
> + (void) is_lsb_script;
> #endif
> cur = tmp;
> }
> @@ -504,6 +505,8 @@
> break;
> }
> }
> +#else
> + (void) next_continue;
> #endif
>
> /* Enter into the lsb-compliant comment block */
> diff -r 856ae1408ff9 logd/ha_logd.c
> --- a/logd/ha_logd.c Sun Jun 19 21:03:24 2011 +0200
> +++ b/logd/ha_logd.c Tue Jun 28 01:23:28 2011 +0100
> @@ -138,11 +138,10 @@
> {
> char buf[MAXLINE];
> va_list ap;
> - int nbytes;
>
> buf[MAXLINE-1] = EOS;
> va_start(ap, fmt);
> - nbytes=vsnprintf(buf, sizeof(buf)-1, fmt, ap);
> + (void) vsnprintf(buf, sizeof(buf)-1, fmt, ap);
What is that (void) supposed to achieve?
> va_end(ap);
>
> fprintf(stderr, "%s", buf);
> diff -r 856ae1408ff9 lrm/test/apitest.c
> --- a/lrm/test/apitest.c Sun Jun 19 21:03:24 2011 +0200
> +++ b/lrm/test/apitest.c Tue Jun 28 01:23:28 2011 +0100
> @@ -44,7 +44,6 @@
> lrm_op_t* op = NULL;
> const char* rid = "ip248";
> GHashTable* param = NULL;
> - int call_id;
> GList* classes;
> int i;
>
> @@ -104,7 +103,7 @@
> op->user_data_len = strlen(op->user_data)+1;
> op->interval = 1000;
> op->target_rc=EVERYTIME;
> - call_id = rsc->ops->perform_op(rsc,op);
> + rsc->ops->perform_op(rsc,op);
> printf_op(op);
> lrm_free_op(op);
>
> @@ -142,7 +141,7 @@
> op->user_data_len = strlen(op->user_data)+1;
> op->interval = 2000;
> op->target_rc=EVERYTIME;
> - call_id = rsc->ops->perform_op(rsc,op);
> + rsc->ops->perform_op(rsc,op);
> printf_op(op);
> lrm_free_op(op);
>
> @@ -180,7 +179,7 @@
> op->user_data_len = strlen(op->user_data)+1;
> op->interval = 3000;
> op->target_rc=EVERYTIME;
> - call_id = rsc->ops->perform_op(rsc,op);
> + rsc->ops->perform_op(rsc,op);
> printf_op(op);
> lrm_free_op(op);
>
> diff -r 856ae1408ff9 lrm/test/callbacktest.c
> --- a/lrm/test/callbacktest.c Sun Jun 19 21:03:24 2011 +0200
> +++ b/lrm/test/callbacktest.c Tue Jun 28 01:23:28 2011 +0100
> @@ -44,7 +44,6 @@
> lrm_op_t* op = NULL;
> const char* rid = "ip248";
> GHashTable* param = NULL;
> - int call_id;
>
> lrm = ll_lrm_new("lrm");
>
> @@ -94,7 +93,7 @@
> op->user_data_len = strlen(op->user_data)+1;
> op->interval = 1000;
> op->target_rc=EVERYTIME;
> - call_id = rsc->ops->perform_op(rsc,op);
> + rsc->ops->perform_op(rsc,op);
> printf_op(op);
>
> puts("perform_op(stop)...");
>
> _______________________________________________________
> Linux-HA-Dev: [email protected]
> http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
> Home Page: http://linux-ha.org/
--
: Lars Ellenberg
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting http://www.linbit.com
DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.
_______________________________________________________
Linux-HA-Dev: [email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/