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 -
> 1.5
> +++ regress/lib/libc/setjmp-fpu/Makefile 14 Apr 2021 18:28:12 -
> @@ -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