On Wed, Apr 14, 2021 at 08:33:43PM +0200, Mark Kettenis wrote:
> The ELFv2 ABI on powerpc64 explicitly states that when returning
> through setjmp(3) from longjmp(3), the "limited access bits" are *not*
> restored to the values they had before setjmp(3) was called.
> 
> This means that the tests here are expected to fail according to the
> ABI.
> 
> Now we may opt to restore them anyway.  But it should be obvious that
> relying on this behaviour is not portable.
> 
> Thoughts?

OK bluhm@

> Index: regress/lib/libc/setjmp-fpu/Makefile
> ===================================================================
> RCS file: /cvs/src/regress/lib/libc/setjmp-fpu/Makefile,v
> retrieving revision 1.5
> diff -u -p -r1.5 Makefile
> --- regress/lib/libc/setjmp-fpu/Makefile      17 Dec 2020 00:51:11 -0000      
> 1.5
> +++ regress/lib/libc/setjmp-fpu/Makefile      14 Apr 2021 18:28:12 -0000
> @@ -15,4 +15,12 @@ run-$p: $p
>       ./$p
>  .endfor
>  
> +.if ${MACHINE} == powerpc64
> +# The powerpc64 ELFv2 ABI explicitly states that exception enable bits
> +# and rounding control bits are not restored by longjmp(3)
> +.for p in ${PROGS:M*jmp}
> +REGRESS_EXPECTED_FAILURES += run-$p
> +.endfor
> +.endif
> +
>  .include <bsd.regress.mk>

Reply via email to