[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