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/

Reply via email to