On Wed, 2021-02-10 at 13:24 +0100, mwi...@suse.com wrote:
> From: Martin Wilck <mwi...@suse.com>
> 
> gcc-11 throws an error compiling alias.c and dmevents.c:
> 
> In file included from ../libmultipath/checkers.h:4,
>                  from ../libmultipath/prio.h:7,
>                  from ../libmultipath/structs.h:8,
>                  from dmevents.c:29:
> ../multipathd/dmevents.c: In function 'dmevent_loop':
> ../multipathd/dmevents.c:357:17: error: '__sigsetjmp' accessing 200
> bytes in a region of size 72 [-Werror=stringop-overflow=]
>   357 |                 pthread_cleanup_push(cleanup_lock, &waiter-
> >vecs->lock);
>       |                 ^~~~~~~~~~~~~~~~~~~~
> ../multipathd/dmevents.c:357:17: note: referencing argument 1 of type
> 'struct __jmp_buf_tag *'
> /usr/include/pthread.h:734:12: note: in a call to function
> '__sigsetjmp'
>   734 | extern int __sigsetjmp (struct __jmp_buf_tag *__env, int
> __savemask) __THROWNL;
>       |            ^~~~~~~~~~~
> 
> The reason seems to be a mismatch between the __sigsetjmp() prototype
> in <setjmp.h> and <pthread.h>. Until this is fixed in the toolchain,
> work around it by including <pthread.h> first.
> 
> Signed-off-by: Martin Wilck <mwi...@suse.com>

I'm told that this issue is related to this glibc bug:
https://sourceware.org/bugzilla/show_bug.cgi?id=26647

and should be fixed in glibc 2.33. Yet adding this patch doesn't hurt
us and can serve as a workaround for environments with gcc 11.

Regards
Martin



--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to