[PATCH] nptl: Fix issue unwinding through sem_wait futex
Adhemerval Zanella
adhemerval.zanella@linaro.org
Thu Nov 12 11:38:46 GMT 2020
On 11/11/2020 18:46, Stafford Horne via Libc-alpha wrote:
> 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
>
I have fixed it with a04689ee7a2600a1466354096123c57ccd1e1dc7, are
you still seeing the same issue with master?
More information about the Libc-alpha
mailing list