[dm-devel] multipath-tools: broken build system + warnings
Martin Wilck
mwilck at suse.com
Wed Mar 7 21:16:19 UTC 2018
On Wed, 2018-03-07 at 17:40 +0100, Xose Vazquez Perez wrote:
> Hi,
>
> It has to type "make" *twice* to build the full
> source code.
Hm, strange. I need to double check. It doesn't happen with my tree
AFAICS.
>
> And new warnings:
>
> ==== 2 gcc warnings ===
> make[1]: Entering directory '/home/xose/curre/arrays/multipath-
> tools/multipathd'
>
> cc -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int
> -Werror=implicit-function-declaration -Werror=format-security -Wno-
> sign-compare -Wno-unused-parameter -Wno-clobbered -Werror=cast-qual
> -Werror=discarded-qualifiers -Wp,-D_FORTIFY_SOURCE=2 -fstack-
> protector-strong --param=ssp-buffer-size=4 -DBIN_DIR=\"/sbin\"
> -DLIB_STRING=\"lib64\" -DRUN_DIR=\"run\" -MMD -MP -fPIE -DPIE
> -I../libmultipath -I../libmpathpersist -I../libmpathcmd -I../third-
> party -DUSE_SYSTEMD=234 -c -o uxlsnr.o uxlsnr.c
> uxlsnr.c: In function ‘uxsock_cleanup’:
> uxlsnr.c:151:16: warning: cast from pointer to integer of different
> size [-Wpointer-to-int-cast]
> int ux_sock = (int)arg;
This is fixed by my recent
[PATCH] multipathd: fix -Wpointer-to-int-cast warning in uxlsnr
> ^
> In file included from ../libmultipath/debug.h:5:0,
> from uxlsnr.c:28:
> uxlsnr.c: In function ‘uxsock_listen’:
> uxlsnr.c:184:39: warning: cast to pointer from integer of different
> size [-Wint-to-pointer-cast]
> pthread_cleanup_push(uxsock_cleanup, (void *)ux_sock);
> ^
> ==== end 2 gcc warnings ===
> ==== 2 clang warnings ===
> make[1]: Entering directory '/home/xose/curre/arrays/multipath-
> tools/multipath'
> clang -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int
> -Werror=implicit-function-declaration -Werror=format-security -Wno-
> sign-compare -Wno-unused-parameter -Wno-clobbered -Werror=cast-qual
> -Werror=discarded-qualifiers -Wp,-D_FORTIFY_SOURCE=2 -fstack-
> protector-strong --param=ssp-buffer-size=4 -DBIN_DIR=\"/sbin\"
> -DLIB_STRING=\"lib64\" -DRUN_DIR=\"run\" -MMD -MP -fPIE -DPIE
> -I../libmultipath -I../libmpathcmd -c -o main.o main.c
> main.c:628:11: warning: variable 'reply' is used uninitialized
> whenever 'if' condition is true [-Wsometimes-uninitialized]
> else if (p >= command + sizeof(command)) {
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> main.c:648:7: note: uninitialized use occurs here
> FREE(reply);
> ^~~~~
> ../libmultipath/memory.h:58:32: note: expanded from macro 'FREE'
> #define FREE(p) do { free(p); p = NULL; } while(0)
> ^
> main.c:628:7: note: remove the 'if' if its condition is always false
> else if (p >= command + sizeof(command)) {
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> main.c:609:32: note: initialize the variable 'reply' to silence this
> warning
> char command[1024], *p, *reply;
> ^
> = NULL
>
> clang -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int
> -Werror=implicit-function-declaration -Werror=format-security -Wno-
> sign-compare -Wno-unused-parameter -Wno-clobbered -Werror=cast-qual
> -Werror=discarded-qualifiers -Wp,-D_FORTIFY_SOURCE=2 -fstack-
> protector-strong --param=ssp-buffer-size=4 -DBIN_DIR=\"/sbin\"
> -DLIB_STRING=\"lib64\" -DRUN_DIR=\"run\" -MMD -MP -fPIE -DPIE
> -I../libmultipath -I../libmpathpersist -I../libmpathcmd -I../third-
> party -DUSE_SYSTEMD=234 -c -o uxlsnr.o uxlsnr.c
> uxlsnr.c:184:39: warning: cast to 'void *' from smaller integer type
> 'int' [-Wint-to-void-pointer-cast]
> pthread_cleanup_push(uxsock_cleanup, (void *)ux_sock);
> ^
> ==== end 2 clang warnings ===
Thanks for pointing this out. I'll send a fixup patch (setting reply =
NULL, as clang helpfully suggested).
Martin
--
Dr. Martin Wilck <mwilck at suse.com>, Tel. +49 (0)911 74053 2107
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
More information about the dm-devel
mailing list