From: Martin Wilck <mwilck@xxxxxxxx> 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 <mwilck@xxxxxxxx> --- tests/alias.c | 1 + tests/dmevents.c | 1 + 2 files changed, 2 insertions(+) diff --git a/tests/alias.c b/tests/alias.c index 0311faa..5e0bfea 100644 --- a/tests/alias.c +++ b/tests/alias.c @@ -1,3 +1,4 @@ +#include <pthread.h> #include <stdint.h> #include <setjmp.h> #include <stdio.h> diff --git a/tests/dmevents.c b/tests/dmevents.c index b7c5122..29eaa6d 100644 --- a/tests/dmevents.c +++ b/tests/dmevents.c @@ -16,6 +16,7 @@ * */ +#include <pthread.h> #include <stdint.h> #include <stdbool.h> #include <stdarg.h> -- 2.29.2 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel