[PATCH] nptl: Fix issue unwinding through sem_wait futex
Stafford Horne
shorne@gmail.com
Wed Nov 11 21:46:45 GMT 2020
Calls to sem_wait may use the __futex_abstimed_wait_cancelable64
function that is built in futex-internal. If we get a C++ exception,
i.e. thread cancel when we are waiting on a semaphore thread unwinding
fails. Example test: nptl/tst-cancel24
Adding -fexceptions flag when building futex-internal fixes this.
---
nptl/Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/nptl/Makefile b/nptl/Makefile
index b30d263ca4..a1ffb6258a 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -220,6 +220,7 @@ CFLAGS-pthread_cond_wait.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-sem_wait.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-sem_timedwait.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-sem_clockwait.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-futex-internal.c += -fexceptions -fasynchronous-unwind-tables
# These are the function wrappers we have to duplicate here.
CFLAGS-fcntl.c += -fexceptions -fasynchronous-unwind-tables
--
2.26.2
More information about the Libc-alpha
mailing list