glibc/sysdeps/aarch64
Adhemerval Zanella 3e8814903c math: Refactor how to use libm-test-ulps
The current approach tracks math maximum supported errors by explicitly
setting them per function and architecture. On newer implementations or
new compiler versions, the file is updated with newer values if it
shows higher results. The idea is to track the maximum known error, to
update the manual with the obtained values.

The constant libm-test-ulps shows little value, where it is usually a
mechanical change done by the maintainer, for past releases it is
usually ignored whether the ulp change resulted from a compiler
regression, and the math tests already have a maximum ulp error that
triggers a regression.

It was shown by a recent update after the new acosf [1] implementation
that is correctly rounded, where the libm-test-ulps was indeed from a
compiler issue.

This patch removes all arch-specific libm-test-ulps, adds system generic
libm-test-ulps where applicable, and changes its semantics. The generic
files now track specific implementation constraints, like if it is
expected to be correctly rounded, or if the system-specific has
different error expectations.

Now multiple libm-test-ulps can be defined, and system-specific
overrides generic implementation.  This is for the case where
arch-specific implementation might show worse precision than generic
implementation, for instance, the cbrtf on i686.

Regressions are only reported if the implementation shows larger errors
than 9 ulps (13 for IBM long double) unless it is overridden by
libm-test-ulps and the maximum error is not printed at the end of tests.
The regen-ulps rule is also removed since it does not make sense to
update the libm-test-ulps automatically.

The manual error table is also removed, Paul Zimmermann and others have
been tracking libm precision with a more comprehensive analysis for some
releases; so link to his work instead.

[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=9cc9f8e11e8fb8f54f1e84d9f024917634a78201
2025-03-12 13:40:07 -03:00
..
bits AArch64: Remove LP64 and ILP32 ifdefs 2025-02-24 14:20:29 +00:00
fpu AArch64: Simplify lrint 2025-02-24 14:20:03 +00:00
multiarch AArch64: Use prefer_sve_ifuncs for SVE memset 2025-02-27 16:51:57 +00:00
nptl AArch64: Remove LP64 and ILP32 ifdefs 2025-02-24 14:20:29 +00:00
sys Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
Implies
Makefile aarch64: Add GCS user-space allocation logic 2025-01-20 09:36:19 +00:00
Versions
__alloc_gcs.c aarch64: Add GCS user-space allocation logic 2025-01-20 09:36:19 +00:00
__arm_za_disable.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
__longjmp.S AArch64: Cleanup pointer mangling 2025-02-24 14:17:57 +00:00
__mtag_tag_region.S AArch64: Remove PTR_ARG/SIZE_ARG defines 2025-02-24 14:15:15 +00:00
__mtag_tag_zero_region.S AArch64: Remove PTR_ARG/SIZE_ARG defines 2025-02-24 14:15:15 +00:00
aarch64-gcs.h aarch64: Add GCS user-space allocation logic 2025-01-20 09:36:19 +00:00
abort-instr.h
atomic-machine.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
bsd-_setjmp.c
bsd-setjmp.c
configure Convert to autoconf 2.72 (vanilla release, no distribution patches) 2024-06-17 21:15:28 +02:00
configure.ac aarch64: fix check for SVE support in assembler 2024-03-14 14:27:56 +00:00
cpu-features.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
crti.S AArch64: Remove PTR_REG defines 2025-02-24 14:16:55 +00:00
crtn.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
dl-audit-check.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
dl-bti.c aarch64: Use l_searchlist.r_list for bti 2025-01-20 09:31:47 +00:00
dl-diagnostics-cpu.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
dl-dtprocnum.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
dl-gcs.c aarch64: Ignore GCS property of ld.so 2025-01-20 09:36:19 +00:00
dl-irel.h AArch64: Remove AARCH64_R macro 2025-02-24 14:19:19 +00:00
dl-link.sym
dl-lookupcfg.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
dl-machine.h AArch64: Remove AARCH64_R macro 2025-02-24 14:19:19 +00:00
dl-prop.h aarch64: Handle GCS marking 2025-01-20 09:35:56 +00:00
dl-start.S AArch64: Remove PTR_REG defines 2025-02-24 14:16:55 +00:00
dl-tlsdesc.S AArch64: Remove PTR_REG defines 2025-02-24 14:16:55 +00:00
dl-tlsdesc.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
dl-trampoline.S AArch64: Remove PTR_REG defines 2025-02-24 14:16:55 +00:00
dl-tunables.list aarch64: Add glibc.cpu.aarch64_gcs tunable 2025-01-20 09:31:33 +00:00
e_sqrtl.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
elf-initfini.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
hp-timing.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
jmpbuf-offsets.h aarch64: Define jmp_buf offset for GCS 2025-01-20 09:22:41 +00:00
jmpbuf-unwind.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ldsodefs.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
libc-mtag.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
libc-start.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
libc-tls.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
linkmap.h aarch64: Handle GCS marking 2025-01-20 09:35:56 +00:00
machine-gmon.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
math-tests-trap.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
math-use-builtins-ffs.h string: Use builtins for ffs and ffsll 2024-02-01 09:31:33 -03:00
mcount.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memchr.S AArch64: Remove PTR_ARG/SIZE_ARG defines 2025-02-24 14:15:15 +00:00
memcmp.S AArch64: Remove PTR_ARG/SIZE_ARG defines 2025-02-24 14:15:15 +00:00
memcpy.S AArch64: Remove PTR_ARG/SIZE_ARG defines 2025-02-24 14:15:15 +00:00
memmove.c
memrchr.S AArch64: Remove PTR_ARG/SIZE_ARG defines 2025-02-24 14:15:15 +00:00
memset.S AArch64: Remove PTR_ARG/SIZE_ARG defines 2025-02-24 14:15:15 +00:00
preconfigure elf: Enable TLS descriptor tests on aarch64 2024-03-19 14:53:30 -03:00
rawmemchr.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
rtld-global-offsets.sym aarch64: Enable GCS in dynamic linked exe 2025-01-20 09:31:47 +00:00
setjmp.S AArch64: Cleanup pointer mangling 2025-02-24 14:17:57 +00:00
sfp-machine.h aarch64: Use 64-bit variable to access the special registers 2025-01-13 10:17:38 -03:00
sotruss-lib.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
start.S AArch64: Remove PTR_REG defines 2025-02-24 14:16:55 +00:00
stpcpy.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strchr.S AArch64: Remove PTR_ARG/SIZE_ARG defines 2025-02-24 14:15:15 +00:00
strchrnul.S AArch64: Remove PTR_ARG/SIZE_ARG defines 2025-02-24 14:15:15 +00:00
strcmp.S AArch64: Remove PTR_ARG/SIZE_ARG defines 2025-02-24 14:15:15 +00:00
strcpy.S AArch64: Remove PTR_ARG/SIZE_ARG defines 2025-02-24 14:15:15 +00:00
strlen.S AArch64: Remove PTR_ARG/SIZE_ARG defines 2025-02-24 14:15:15 +00:00
strncmp.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strnlen.S AArch64: Remove PTR_ARG/SIZE_ARG defines 2025-02-24 14:15:15 +00:00
strrchr.S AArch64: Remove PTR_ARG/SIZE_ARG defines 2025-02-24 14:15:15 +00:00
sysdep.h AArch64: Remove AARCH64_R macro 2025-02-24 14:19:19 +00:00
tlsdesc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tlsdesc.sym
tst-audit.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-audit26.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-audit26mod.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-audit26mod.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-audit27.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-audit27mod.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-audit27mod.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-auditmod26.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-auditmod27.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-ifunc-arg-1.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-ifunc-arg-2.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-sme-jmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-vpcs-mod.S aarch64: Fix tests not compatible with targets supporting GCS 2025-01-20 09:36:19 +00:00
tst-vpcs.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wordcopy.c aarch64: Don't build wordcopy 2022-10-28 11:14:54 +01:00