glibc/sysdeps/powerpc
Adhemerval Zanella ecb1e7220d powerpc: Do not raise exception traps for fesetexcept/fesetexceptflag (BZ 30988)
According to ISO C23 (7.6.4.4), fesetexcept is supposed to set
floating-point exception flags without raising a trap (unlike
feraiseexcept, which is supposed to raise a trap if feenableexcept was
called with the appropriate argument).

This is a side-effect of how we implement the GNU extension
feenableexcept, where feenableexcept/fesetenv/fesetmode/feupdateenv
might issue prctl (PR_SET_FPEXC, PR_FP_EXC_PRECISE) depending of the
argument.  And on PR_FP_EXC_PRECISE, setting a floating-point exception
flag triggers a trap.

To make the both functions follow the C23, fesetexcept and
fesetexceptflag now fail if the argument may trigger a trap.

The math tests now check for an value different than 0, instead
of bail out as unsupported for EXCEPTION_SET_FORCES_TRAP.

Checked on powerpc64le-linux-gnu.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2023-12-19 15:12:34 -03:00
..
bits
fpu powerpc: Do not raise exception traps for fesetexcept/fesetexceptflag (BZ 30988) 2023-12-19 15:12:34 -03:00
nofpu
nptl powerpc: Add space for HWCAP3/HWCAP4 in the TCB for future Power. 2023-12-15 20:20:14 -06:00
power4
power6
powerpc32
powerpc64 powerpc: Fix performance issues of strcmp power10 2023-12-15 16:42:40 -06:00
sys/platform
Makefile
Versions powerpc: Add space for HWCAP3/HWCAP4 in the TCB for future Power. 2023-12-15 20:20:14 -06:00
abort-instr.h
atomic-machine.h
dl-lookupcfg.h
dl-procinfo.c
dl-procinfo.h
dl-tls.c
dl-tls.h
dl-tunables.list
elf-initfini.h
ffs.c
fpu_control.h
gccframe.h
hwcapinfo.c powerpc: Add space for HWCAP3/HWCAP4 in the TCB for future Power. 2023-12-15 20:20:14 -06:00
hwcapinfo.h
ifunc-sel.h
jmpbuf-offsets.h
jmpbuf-unwind.h
ldsodefs.h
libc-tls.c
locale-defines.sym
longjmp.c
machine-gmon.h
math-tests-snan-cast.h
mod-cache-ppc.c
mod-tlsopt-powerpc.c
mp_clz_tab.c
novmx-longjmp.c
novmx-sigjmp.c
novmxsetjmp.h
preconfigure
preconfigure.ac
rtld-global-offsets.sym
sigjmp.c
sotruss-lib.c
stackinfo.h
string-fza.h
sysdep.h
test-arith.c
test-arithf.c
test-get_hwcap-static.c
test-get_hwcap.c
test-gettimebase.c
tst-cache-ppc-static-dlopen.c
tst-cache-ppc-static.c
tst-cache-ppc.c
tst-set_ppr.c
tst-stack-align.h
tst-tlsifunc-static.c
tst-tlsifunc.c
tst-tlsopt-powerpc.c