device-mapper-multipath/0123-multipath-tools-tests-fix-stringop-overflow-build-er.patch

53 lines
1.9 KiB
Diff
Raw Normal View History

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck@suse.com>
Date: Wed, 10 Feb 2021 13:15:17 +0100
Subject: [PATCH] multipath-tools tests: fix stringop-overflow build errors
with gcc 11
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>. The error is encountered iUntil this is fixed in the toolchain,
work around it by including <pthread.h> before <setjmp.h>.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
---
tests/alias.c | 1 +
tests/dmevents.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/tests/alias.c b/tests/alias.c
index 0311faa6..5e0bfea3 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 b7c5122b..29eaa6db 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>