aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/aarch64/libm-test-ulps13
-rw-r--r--sysdeps/aarch64/memset.S25
-rw-r--r--sysdeps/aarch64/multiarch/memcpy_oryon1.S40
-rw-r--r--sysdeps/aarch64/multiarch/memset_oryon1.S26
-rw-r--r--sysdeps/aarch64/stackinfo.h33
-rw-r--r--sysdeps/alpha/fpu/libm-test-ulps20
-rw-r--r--sysdeps/arc/fpu/libm-test-ulps20
-rw-r--r--sysdeps/arc/nofpu/libm-test-ulps7
-rw-r--r--sysdeps/arc/stackinfo.h33
-rw-r--r--sysdeps/arm/libm-test-ulps22
-rw-r--r--sysdeps/csky/fpu/libm-test-ulps22
-rw-r--r--sysdeps/csky/nofpu/libm-test-ulps22
-rw-r--r--sysdeps/csky/stackinfo.h29
-rw-r--r--sysdeps/generic/math_uint128.h150
-rw-r--r--sysdeps/generic/stackinfo.h15
-rw-r--r--sysdeps/hppa/fpu/libm-test-ulps20
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps16
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/libm-test-ulps13
-rw-r--r--sysdeps/ieee754/dbl-64/s_erfc.c1
-rw-r--r--sysdeps/ieee754/float128/s_erfcf128.c1
-rw-r--r--sysdeps/ieee754/flt-32/e_gammaf_r.c2
-rw-r--r--sysdeps/ieee754/flt-32/e_lgammaf_r.c575
-rw-r--r--sysdeps/ieee754/flt-32/k_tanf.c102
-rw-r--r--sysdeps/ieee754/flt-32/lgamma_negf.c283
-rw-r--r--sysdeps/ieee754/flt-32/math_config.h27
-rw-r--r--sysdeps/ieee754/flt-32/s_cbrtf.c136
-rw-r--r--sysdeps/ieee754/flt-32/s_erfcf.c187
-rw-r--r--sysdeps/ieee754/flt-32/s_erff.c470
-rw-r--r--sysdeps/ieee754/flt-32/s_expm1f.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_tanf.c224
-rw-r--r--sysdeps/ieee754/ldbl-128/s_erfcl.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_erfcl.c1
-rw-r--r--sysdeps/ieee754/ldbl-96/s_erfcl.c1
-rw-r--r--sysdeps/loongarch/lp64/libm-test-ulps20
-rw-r--r--sysdeps/loongarch/stackinfo.h33
-rw-r--r--sysdeps/m68k/coldfire/fpu/libm-test-ulps1
-rw-r--r--sysdeps/m68k/coldfire/nofpu/sfp-machine.h52
-rw-r--r--sysdeps/m68k/m680x0/fpu/libm-test-ulps16
-rw-r--r--sysdeps/mach/hurd/bits/mman_ext.h1
-rw-r--r--sysdeps/microblaze/libm-test-ulps7
-rw-r--r--sysdeps/microblaze/sfp-machine.h52
-rw-r--r--sysdeps/mips/mips32/libm-test-ulps22
-rw-r--r--sysdeps/mips/mips64/libm-test-ulps20
-rw-r--r--sysdeps/nios2/Implies4
-rw-r--r--sysdeps/nios2/Makefile26
-rw-r--r--sysdeps/nios2/Subdirs1
-rw-r--r--sysdeps/nios2/Versions12
-rw-r--r--sysdeps/nios2/__longjmp.S81
-rw-r--r--sysdeps/nios2/abort-instr.h2
-rw-r--r--sysdeps/nios2/bits/dl_find_object.h25
-rw-r--r--sysdeps/nios2/bits/endianness.h16
-rw-r--r--sysdeps/nios2/bits/fenv.h52
-rw-r--r--sysdeps/nios2/bits/link.h54
-rw-r--r--sysdeps/nios2/bits/setjmp.h30
-rw-r--r--sysdeps/nios2/bits/wordsize.h21
-rw-r--r--sysdeps/nios2/bsd-_setjmp.S1
-rw-r--r--sysdeps/nios2/bsd-setjmp.S1
-rw-r--r--sysdeps/nios2/configure174
-rw-r--r--sysdeps/nios2/configure.ac15
-rw-r--r--sysdeps/nios2/crti.S98
-rw-r--r--sysdeps/nios2/crtn.S49
-rw-r--r--sysdeps/nios2/dl-init.c29
-rw-r--r--sysdeps/nios2/dl-machine.h307
-rw-r--r--sysdeps/nios2/dl-tls.h45
-rw-r--r--sysdeps/nios2/dl-trampoline.S79
-rw-r--r--sysdeps/nios2/elf-initfini.h20
-rw-r--r--sysdeps/nios2/gccframe.h21
-rw-r--r--sysdeps/nios2/jmpbuf-offsets.h47
-rw-r--r--sysdeps/nios2/jmpbuf-unwind.h37
-rw-r--r--sysdeps/nios2/ldbl-classify-compat.h8
-rw-r--r--sysdeps/nios2/ldsodefs.h43
-rw-r--r--sysdeps/nios2/libc-tls.c32
-rw-r--r--sysdeps/nios2/libm-test-ulps279
-rw-r--r--sysdeps/nios2/libm-test-ulps-name1
-rw-r--r--sysdeps/nios2/machine-gmon.h64
-rw-r--r--sysdeps/nios2/nptl/Makefile22
-rw-r--r--sysdeps/nios2/nptl/bits/pthreadtypes-arch.h37
-rw-r--r--sysdeps/nios2/nptl/pthreaddef.h32
-rw-r--r--sysdeps/nios2/nptl/tcb-offsets.sym13
-rw-r--r--sysdeps/nios2/nptl/tls.h149
-rw-r--r--sysdeps/nios2/preconfigure6
-rw-r--r--sysdeps/nios2/setjmp.S74
-rw-r--r--sysdeps/nios2/sfp-machine.h51
-rw-r--r--sysdeps/nios2/sotruss-lib.c51
-rw-r--r--sysdeps/nios2/stackguard-macros.h6
-rw-r--r--sysdeps/nios2/stackinfo.h33
-rw-r--r--sysdeps/nios2/start.S139
-rw-r--r--sysdeps/nios2/sysdep.h65
-rw-r--r--sysdeps/nios2/tst-audit.h23
-rw-r--r--sysdeps/nios2/tst-file-align.h20
-rw-r--r--sysdeps/nios2/utmp-size.h2
-rw-r--r--sysdeps/or1k/fpu/libm-test-ulps22
-rw-r--r--sysdeps/or1k/nofpu/libm-test-ulps22
-rw-r--r--sysdeps/posix/system.c2
-rw-r--r--sysdeps/powerpc/fpu/libm-test-ulps20
-rw-r--r--sysdeps/powerpc/fpu/math_private.h5
-rw-r--r--sysdeps/powerpc/nofpu/libm-test-ulps20
-rw-r--r--sysdeps/powerpc/powerpc32/stackinfo.h (renamed from sysdeps/powerpc/stackinfo.h)8
-rw-r--r--sysdeps/powerpc/powerpc64/crti.S6
-rw-r--r--sysdeps/powerpc/powerpc64/crtn.S6
-rw-r--r--sysdeps/powerpc/powerpc64/le/power9/strncpy.S12
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strncpy.S54
-rw-r--r--sysdeps/powerpc/powerpc64/ppc-mcount.S6
-rw-r--r--sysdeps/powerpc/powerpc64/sysdep.h5
-rw-r--r--sysdeps/pthread/Makefile2
-rw-r--r--sysdeps/pthread/tst-sem19.c77
-rw-r--r--sysdeps/pthread/tst-spin5.c82
-rw-r--r--sysdeps/riscv/nofpu/libm-test-ulps20
-rw-r--r--sysdeps/riscv/rvd/libm-test-ulps20
-rw-r--r--sysdeps/riscv/rvd/math-use-builtins-fma.h4
-rw-r--r--sysdeps/riscv/rvd/s_copysign.c29
-rw-r--r--sysdeps/riscv/rvd/s_fma.c37
-rw-r--r--sysdeps/riscv/rvf/s_copysignf.c29
-rw-r--r--sysdeps/riscv/rvf/s_fmaf.c31
-rw-r--r--sysdeps/riscv/stackinfo.h33
-rw-r--r--sysdeps/s390/fpu/libm-test-ulps20
-rw-r--r--sysdeps/sh/libm-test-ulps12
-rw-r--r--sysdeps/sparc/fpu/libm-test-ulps20
-rw-r--r--sysdeps/unix/sysv/linux/Makefile1
-rw-r--r--sysdeps/unix/sysv/linux/brk.c2
-rw-r--r--sysdeps/unix/sysv/linux/dl-early_allocate.c2
-rw-r--r--sysdeps/unix/sysv/linux/dl-sysdep.c4
-rw-r--r--sysdeps/unix/sysv/linux/fstat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/fstatat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/fxstat.c2
-rw-r--r--sysdeps/unix/sysv/linux/fxstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/fxstatat.c2
-rw-r--r--sysdeps/unix/sysv/linux/fxstatat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/gettimeofday.c4
-rw-r--r--sysdeps/unix/sysv/linux/lxstat.c2
-rw-r--r--sysdeps/unix/sysv/linux/lxstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/Makefile18
-rw-r--r--sysdeps/unix/sysv/linux/nios2/Versions6
-rw-r--r--sysdeps/unix/sysv/linux/nios2/arch-syscall.h339
-rw-r--r--sysdeps/unix/sysv/linux/nios2/atomic-machine.h83
-rw-r--r--sysdeps/unix/sysv/linux/nios2/bits/procfs.h34
-rw-r--r--sysdeps/unix/sysv/linux/nios2/bits/statfs.h75
-rw-r--r--sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h135
-rw-r--r--sysdeps/unix/sysv/linux/nios2/bits/timesize.h20
-rw-r--r--sysdeps/unix/sysv/linux/nios2/c++-types.data67
-rw-r--r--sysdeps/unix/sysv/linux/nios2/cacheflush.c29
-rw-r--r--sysdeps/unix/sysv/linux/nios2/clone.S83
-rw-r--r--sysdeps/unix/sysv/linux/nios2/configure5
-rw-r--r--sysdeps/unix/sysv/linux/nios2/configure.ac4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/getcontext.S66
-rw-r--r--sysdeps/unix/sysv/linux/nios2/kernel-features.h24
-rw-r--r--sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h26
-rw-r--r--sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h9
-rw-r--r--sysdeps/unix/sysv/linux/nios2/kernel_stat.h21
-rw-r--r--sysdeps/unix/sysv/linux/nios2/ld.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libanl.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc.abilist2877
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist28
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libdl.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libm.abilist880
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libnsl.abilist121
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libpthread.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libresolv.abilist67
-rw-r--r--sysdeps/unix/sysv/linux/nios2/librt.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libthread_db.abilist40
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libutil.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/localplt.data30
-rw-r--r--sysdeps/unix/sysv/linux/nios2/makecontext.c79
-rw-r--r--sysdeps/unix/sysv/linux/nios2/pointer_guard.h40
-rw-r--r--sysdeps/unix/sysv/linux/nios2/send.c9
-rw-r--r--sysdeps/unix/sysv/linux/nios2/setcontext.S115
-rw-r--r--sysdeps/unix/sysv/linux/nios2/shlib-versions2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h28
-rw-r--r--sysdeps/unix/sysv/linux/nios2/swapcontext.S125
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sys/cachectl.h33
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sys/ucontext.h61
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sys/user.h58
-rw-r--r--sysdeps/unix/sysv/linux/nios2/syscall.S36
-rw-r--r--sysdeps/unix/sysv/linux/nios2/syscall_cancel.S95
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sysdep.S50
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sysdep.h223
-rw-r--r--sysdeps/unix/sysv/linux/nios2/time64-compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/ucontext_i.sym29
-rw-r--r--sysdeps/unix/sysv/linux/nios2/vfork.S34
-rw-r--r--sysdeps/unix/sysv/linux/rseq-internal.h1
-rw-r--r--sysdeps/unix/sysv/linux/settimeofday.c4
-rw-r--r--sysdeps/unix/sysv/linux/sigwait.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigwaitinfo.c2
-rw-r--r--sysdeps/unix/sysv/linux/spawni.c8
-rw-r--r--sysdeps/unix/sysv/linux/tst-sem_getvalue-affinity.c185
-rw-r--r--sysdeps/unix/sysv/linux/xstat.c2
-rw-r--r--sysdeps/unix/sysv/linux/xstat64.c2
-rw-r--r--sysdeps/x86/nptl/bits/struct_mutex.h2
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps20
-rw-r--r--sysdeps/x86_64/multiarch/strncat-evex.S4
192 files changed, 1782 insertions, 10370 deletions
diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps
index c523d45..89b166b 100644
--- a/sysdeps/aarch64/libm-test-ulps
+++ b/sysdeps/aarch64/libm-test-ulps
@@ -474,7 +474,6 @@ ldouble: 2
Function: "cbrt":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_advsimd":
@@ -483,7 +482,6 @@ float: 1
Function: "cbrt_downward":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_sve":
@@ -492,12 +490,10 @@ float: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
ldouble: 1
Function: "cbrt_upward":
double: 5
-float: 1
ldouble: 1
Function: Real part of "ccos":
@@ -995,7 +991,6 @@ ldouble: 5
Function: "erf":
double: 1
-float: 1
ldouble: 1
Function: "erf_advsimd":
@@ -1293,22 +1288,18 @@ ldouble: 7
Function: "lgamma":
double: 3
-float: 4
ldouble: 5
Function: "lgamma_downward":
double: 4
-float: 4
ldouble: 8
Function: "lgamma_towardzero":
double: 4
-float: 3
ldouble: 5
Function: "lgamma_upward":
double: 4
-float: 5
ldouble: 8
Function: "log":
@@ -1570,7 +1561,6 @@ float: 3
ldouble: 4
Function: "tan":
-float: 1
ldouble: 1
Function: "tan_advsimd":
@@ -1579,7 +1569,6 @@ float: 2
Function: "tan_downward":
double: 1
-float: 2
ldouble: 1
Function: "tan_sve":
@@ -1588,12 +1577,10 @@ float: 2
Function: "tan_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "tan_upward":
double: 1
-float: 1
ldouble: 1
Function: "tanh":
diff --git a/sysdeps/aarch64/memset.S b/sysdeps/aarch64/memset.S
index b76dde1..8402219 100644
--- a/sysdeps/aarch64/memset.S
+++ b/sysdeps/aarch64/memset.S
@@ -103,7 +103,7 @@ L(set_long):
mrs zva_val, dczid_el0
and zva_val, zva_val, 31
cmp zva_val, 4 /* ZVA size is 64 bytes. */
- b.ne L(zva_128)
+ b.ne L(no_zva)
#endif
stp q0, q0, [dst, 32]
bic dst, dstin, 63
@@ -136,28 +136,5 @@ L(no_zva_loop):
stp q0, q0, [dstend, -32]
ret
-#ifndef ZVA64_ONLY
- .p2align 4
-L(zva_128):
- cmp zva_val, 5 /* ZVA size is 128 bytes. */
- b.ne L(no_zva)
-
- stp q0, q0, [dst, 32]
- stp q0, q0, [dst, 64]
- stp q0, q0, [dst, 96]
- bic dst, dst, 127
- sub count, dstend, dst /* Count is now 128 too large. */
- sub count, count, 128 + 128 /* Adjust count and bias for loop. */
-1: add dst, dst, 128
- dc zva, dst
- subs count, count, 128
- b.hi 1b
- stp q0, q0, [dstend, -128]
- stp q0, q0, [dstend, -96]
- stp q0, q0, [dstend, -64]
- stp q0, q0, [dstend, -32]
- ret
-#endif
-
END (MEMSET)
libc_hidden_builtin_def (MEMSET)
diff --git a/sysdeps/aarch64/multiarch/memcpy_oryon1.S b/sysdeps/aarch64/multiarch/memcpy_oryon1.S
index 4efc43d..6cae97d 100644
--- a/sysdeps/aarch64/multiarch/memcpy_oryon1.S
+++ b/sysdeps/aarch64/multiarch/memcpy_oryon1.S
@@ -160,46 +160,6 @@ L(copy96):
.p2align 6
L(copy_long):
- /* On oryon1 cores, large memcpy's are helped by using ldnp/stnp.
- This loop is identical to the one below it but using ldnp/stnp
- instructions. For loops that are less than 32768 bytes,
- the ldnp/stnp instructions will not help and will cause a slow
- down so only use the ldnp/stnp loop for the largest sizes. */
-
- cmp count, #32768
- b.lo L(copy_long_without_nontemp)
- and tmp1, dstin, 15
- bic dst, dstin, 15
- ldnp D_l, D_h, [src]
- sub src, src, tmp1
- add count, count, tmp1 /* Count is now 16 too large. */
- ldnp A_l, A_h, [src, 16]
- stnp D_l, D_h, [dstin]
- ldnp B_l, B_h, [src, 32]
- ldnp C_l, C_h, [src, 48]
- ldnp D_l, D_h, [src, 64]
- add src, src, #64
- subs count, count, 128 + 16 /* Test and readjust count. */
-
-L(nontemp_loop64):
- tbz src, #6, 1f
-1:
- stnp A_l, A_h, [dst, 16]
- ldnp A_l, A_h, [src, 16]
- stnp B_l, B_h, [dst, 32]
- ldnp B_l, B_h, [src, 32]
- stnp C_l, C_h, [dst, 48]
- ldnp C_l, C_h, [src, 48]
- stnp D_l, D_h, [dst, 64]
- ldnp D_l, D_h, [src, 64]
- add src, src, #64
- add dst, dst, #64
- subs count, count, 64
- b.hi L(nontemp_loop64)
- b L(last64)
-
-L(copy_long_without_nontemp):
-
and tmp1, dstin, 15
bic dst, dstin, 15
ldp D_l, D_h, [src]
diff --git a/sysdeps/aarch64/multiarch/memset_oryon1.S b/sysdeps/aarch64/multiarch/memset_oryon1.S
index 6fa28a9..b63c16e 100644
--- a/sysdeps/aarch64/multiarch/memset_oryon1.S
+++ b/sysdeps/aarch64/multiarch/memset_oryon1.S
@@ -93,8 +93,6 @@ L(set_long):
cmp count, 256
ccmp valw, 0, 0, cs
b.eq L(try_zva)
- cmp count, #32768
- b.hi L(set_long_with_nontemp)
/* Small-size or non-zero memset does not use DC ZVA. */
sub count, dstend, dst
@@ -117,30 +115,6 @@ L(set_long):
stp val, val, [dstend, -16]
ret
-L(set_long_with_nontemp):
- /* Small-size or non-zero memset does not use DC ZVA. */
- sub count, dstend, dst
-
- /* Adjust count and bias for loop. By subtracting extra 1 from count,
- it is easy to use tbz instruction to check whether loop tailing
- count is less than 33 bytes, so as to bypass 2 unnecessary stps. */
- sub count, count, 64+16+1
-
-1: stnp val, val, [dst, 16]
- stnp val, val, [dst, 32]
- stnp val, val, [dst, 48]
- stnp val, val, [dst, 64]
- add dst, dst, #64
- subs count, count, 64
- b.hs 1b
-
- tbz count, 5, 1f /* Remaining count is less than 33 bytes? */
- stnp val, val, [dst, 16]
- stnp val, val, [dst, 32]
-1: stnp val, val, [dstend, -32]
- stnp val, val, [dstend, -16]
- ret
-
L(try_zva):
/* Write the first and last 64 byte aligned block using stp rather
than using DC ZVA as it is faster. */
diff --git a/sysdeps/aarch64/stackinfo.h b/sysdeps/aarch64/stackinfo.h
deleted file mode 100644
index 5a4dce7..0000000
--- a/sysdeps/aarch64/stackinfo.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
-
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This file contains a bit of information about the stack allocation
- of the processor. */
-
-#ifndef _STACKINFO_H
-#define _STACKINFO_H 1
-
-#include <elf.h>
-
-/* On AArch64 the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-/* Default to a non-executable stack. */
-#define DEFAULT_STACK_PERMS (PF_R|PF_W)
-
-#endif /* stackinfo.h */
diff --git a/sysdeps/alpha/fpu/libm-test-ulps b/sysdeps/alpha/fpu/libm-test-ulps
index 212c52c..0f7628b 100644
--- a/sysdeps/alpha/fpu/libm-test-ulps
+++ b/sysdeps/alpha/fpu/libm-test-ulps
@@ -417,22 +417,18 @@ ldouble: 2
Function: "cbrt":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_downward":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
ldouble: 1
Function: "cbrt_upward":
double: 5
-float: 1
ldouble: 1
Function: Real part of "ccos":
@@ -913,42 +909,34 @@ ldouble: 5
Function: "erf":
double: 1
-float: 1
ldouble: 1
Function: "erf_downward":
double: 1
-float: 1
ldouble: 2
Function: "erf_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "erf_upward":
double: 1
-float: 1
ldouble: 2
Function: "erfc":
double: 5
-float: 3
ldouble: 4
Function: "erfc_downward":
double: 5
-float: 6
ldouble: 5
Function: "erfc_towardzero":
double: 3
-float: 4
ldouble: 4
Function: "erfc_upward":
double: 5
-float: 6
ldouble: 5
Function: "exp":
@@ -1146,22 +1134,18 @@ ldouble: 7
Function: "lgamma":
double: 4
-float: 7
ldouble: 5
Function: "lgamma_downward":
double: 5
-float: 7
ldouble: 8
Function: "lgamma_towardzero":
double: 5
-float: 6
ldouble: 5
Function: "lgamma_upward":
double: 5
-float: 6
ldouble: 8
Function: "log":
@@ -1358,22 +1342,18 @@ float: 3
ldouble: 4
Function: "tan":
-float: 1
ldouble: 1
Function: "tan_downward":
double: 1
-float: 2
ldouble: 1
Function: "tan_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "tan_upward":
double: 1
-float: 1
ldouble: 1
Function: "tanh":
diff --git a/sysdeps/arc/fpu/libm-test-ulps b/sysdeps/arc/fpu/libm-test-ulps
index 7812a11..4d4b22d 100644
--- a/sysdeps/arc/fpu/libm-test-ulps
+++ b/sysdeps/arc/fpu/libm-test-ulps
@@ -337,19 +337,15 @@ float: 2
Function: "cbrt":
double: 4
-float: 1
Function: "cbrt_downward":
double: 4
-float: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
Function: "cbrt_upward":
double: 5
-float: 1
Function: Real part of "ccos":
double: 3
@@ -737,35 +733,27 @@ float: 6
Function: "erf":
double: 1
-float: 1
Function: "erf_downward":
double: 1
-float: 1
Function: "erf_towardzero":
double: 1
-float: 2
Function: "erf_upward":
double: 2
-float: 2
Function: "erfc":
double: 5
-float: 5
Function: "erfc_downward":
double: 4
-float: 4
Function: "erfc_towardzero":
double: 4
-float: 4
Function: "erfc_upward":
double: 5
-float: 5
Function: "exp":
double: 1
@@ -929,19 +917,15 @@ float: 9
Function: "lgamma":
double: 7
-float: 6
Function: "lgamma_downward":
double: 6
-float: 5
Function: "lgamma_towardzero":
double: 7
-float: 6
Function: "lgamma_upward":
double: 7
-float: 6
Function: "log":
double: 1
@@ -1097,19 +1081,15 @@ float: 3
Function: "tan":
double: 1
-float: 1
Function: "tan_downward":
double: 1
-float: 2
Function: "tan_towardzero":
double: 1
-float: 2
Function: "tan_upward":
double: 1
-float: 2
Function: "tanh":
double: 3
diff --git a/sysdeps/arc/nofpu/libm-test-ulps b/sysdeps/arc/nofpu/libm-test-ulps
index d0cfa46..4faf784 100644
--- a/sysdeps/arc/nofpu/libm-test-ulps
+++ b/sysdeps/arc/nofpu/libm-test-ulps
@@ -84,7 +84,6 @@ float: 1
Function: "cbrt":
double: 4
-float: 1
Function: Real part of "ccos":
double: 1
@@ -178,11 +177,9 @@ float: 2
Function: "erf":
double: 1
-float: 1
Function: "erfc":
double: 5
-float: 3
Function: "exp":
double: 1
@@ -226,7 +223,6 @@ float: 4
Function: "lgamma":
double: 4
-float: 7
Function: "log10":
double: 2
@@ -263,9 +259,6 @@ Function: "sinh":
double: 2
float: 2
-Function: "tan":
-float: 1
-
Function: "tanh":
double: 2
float: 2
diff --git a/sysdeps/arc/stackinfo.h b/sysdeps/arc/stackinfo.h
deleted file mode 100644
index 99a7f56..0000000
--- a/sysdeps/arc/stackinfo.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Stack environment definitions for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This file contains a bit of information about the stack allocation
- of the processor. */
-
-#ifndef _STACKINFO_H
-#define _STACKINFO_H 1
-
-#include <elf.h>
-
-/* On ARC the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-/* Default to a non-executable stack. */
-#define DEFAULT_STACK_PERMS (PF_R|PF_W)
-
-#endif /* stackinfo.h */
diff --git a/sysdeps/arm/libm-test-ulps b/sysdeps/arm/libm-test-ulps
index 6cdd3d5..c80122d 100644
--- a/sysdeps/arm/libm-test-ulps
+++ b/sysdeps/arm/libm-test-ulps
@@ -333,19 +333,15 @@ float: 1
Function: "cbrt":
double: 4
-float: 1
Function: "cbrt_downward":
double: 4
-float: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
Function: "cbrt_upward":
double: 5
-float: 1
Function: Real part of "ccos":
double: 1
@@ -730,35 +726,27 @@ float: 3
Function: "erf":
double: 1
-float: 1
Function: "erf_downward":
double: 1
-float: 1
Function: "erf_towardzero":
double: 1
-float: 1
Function: "erf_upward":
double: 1
-float: 1
Function: "erfc":
double: 5
-float: 3
Function: "erfc_downward":
double: 5
-float: 6
Function: "erfc_towardzero":
double: 3
-float: 4
Function: "erfc_upward":
double: 5
-float: 6
Function: "exp":
double: 1
@@ -923,19 +911,15 @@ float: 5
Function: "lgamma":
double: 4
-float: 7
Function: "lgamma_downward":
double: 5
-float: 7
Function: "lgamma_towardzero":
double: 5
-float: 6
Function: "lgamma_upward":
double: 5
-float: 6
Function: "log":
float: 1
@@ -1094,20 +1078,14 @@ Function: "sinh_upward":
double: 3
float: 3
-Function: "tan":
-float: 1
-
Function: "tan_downward":
double: 1
-float: 2
Function: "tan_towardzero":
double: 1
-float: 1
Function: "tan_upward":
double: 1
-float: 1
Function: "tanh":
double: 2
diff --git a/sysdeps/csky/fpu/libm-test-ulps b/sysdeps/csky/fpu/libm-test-ulps
index a7b2bec..d67cfe1 100644
--- a/sysdeps/csky/fpu/libm-test-ulps
+++ b/sysdeps/csky/fpu/libm-test-ulps
@@ -330,19 +330,15 @@ float: 1
Function: "cbrt":
double: 4
-float: 1
Function: "cbrt_downward":
double: 4
-float: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
Function: "cbrt_upward":
double: 5
-float: 1
Function: Real part of "ccos":
double: 1
@@ -723,35 +719,27 @@ float: 3
Function: "erf":
double: 1
-float: 1
Function: "erf_downward":
double: 1
-float: 1
Function: "erf_towardzero":
double: 1
-float: 1
Function: "erf_upward":
double: 1
-float: 1
Function: "erfc":
double: 5
-float: 3
Function: "erfc_downward":
double: 5
-float: 6
Function: "erfc_towardzero":
double: 3
-float: 4
Function: "erfc_upward":
double: 5
-float: 6
Function: "exp":
double: 1
@@ -887,19 +875,15 @@ float: 5
Function: "lgamma":
double: 4
-float: 7
Function: "lgamma_downward":
double: 5
-float: 7
Function: "lgamma_towardzero":
double: 5
-float: 6
Function: "lgamma_upward":
double: 5
-float: 6
Function: "log10":
double: 2
@@ -1016,20 +1000,14 @@ Function: "sinh_upward":
double: 3
float: 3
-Function: "tan":
-float: 1
-
Function: "tan_downward":
double: 1
-float: 2
Function: "tan_towardzero":
double: 1
-float: 1
Function: "tan_upward":
double: 1
-float: 1
Function: "tanh":
double: 2
diff --git a/sysdeps/csky/nofpu/libm-test-ulps b/sysdeps/csky/nofpu/libm-test-ulps
index 4e4451a..6cdf9fd 100644
--- a/sysdeps/csky/nofpu/libm-test-ulps
+++ b/sysdeps/csky/nofpu/libm-test-ulps
@@ -328,19 +328,15 @@ float: 1
Function: "cbrt":
double: 4
-float: 1
Function: "cbrt_downward":
double: 4
-float: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
Function: "cbrt_upward":
double: 5
-float: 1
Function: Real part of "ccos":
double: 1
@@ -721,35 +717,27 @@ float: 3
Function: "erf":
double: 1
-float: 1
Function: "erf_downward":
double: 1
-float: 1
Function: "erf_towardzero":
double: 1
-float: 1
Function: "erf_upward":
double: 1
-float: 1
Function: "erfc":
double: 5
-float: 3
Function: "erfc_downward":
double: 5
-float: 6
Function: "erfc_towardzero":
double: 3
-float: 4
Function: "erfc_upward":
double: 5
-float: 6
Function: "exp":
double: 1
@@ -885,19 +873,15 @@ float: 5
Function: "lgamma":
double: 4
-float: 7
Function: "lgamma_downward":
double: 5
-float: 4
Function: "lgamma_towardzero":
double: 5
-float: 4
Function: "lgamma_upward":
double: 5
-float: 5
Function: "log":
float: 1
@@ -1047,20 +1031,14 @@ Function: "sinh_upward":
double: 3
float: 3
-Function: "tan":
-float: 1
-
Function: "tan_downward":
double: 1
-float: 2
Function: "tan_towardzero":
double: 1
-float: 1
Function: "tan_upward":
double: 1
-float: 1
Function: "tanh":
double: 2
diff --git a/sysdeps/csky/stackinfo.h b/sysdeps/csky/stackinfo.h
deleted file mode 100644
index ef22fa3..0000000
--- a/sysdeps/csky/stackinfo.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Stack environment definitions. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _STACKINFO_H
-#define _STACKINFO_H 1
-
-#include <elf.h>
-
-/* On C-SKY the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-#define DEFAULT_STACK_PERMS (PF_R|PF_W)
-
-#endif /* stackinfo.h */
diff --git a/sysdeps/generic/math_uint128.h b/sysdeps/generic/math_uint128.h
new file mode 100644
index 0000000..1251f59
--- /dev/null
+++ b/sysdeps/generic/math_uint128.h
@@ -0,0 +1,150 @@
+/* Internal 128 bit int support.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _MATH_INT128_H
+#define _MATH_INT128_H
+
+/* Limited support for internal 128 bit integer, used on some math
+ implementations. It uses compiler builtin type if supported, otherwise
+ it is emulated. Only unsigned and some operations are currently supported:
+
+ - u128_t: the 128 bit unsigned type.
+ - u128_high: return the high part of the number.
+ - u128_low: return the low part of the number.
+ - u128_from_u64: create a 128 bit number from a 64 bit one.
+ - u128_mul: multiply two 128 bit numbers.
+ - u128_add: add two 128 bit numbers.
+ - u128_lshift: left shift a number.
+ - u128_rshift: right shift a number.
+ */
+
+#if defined __BITINT_MAXWIDTH__ && __BITINT_MAXWIDTH__ >= 128
+typedef unsigned _BitInt(128) u128;
+# define __MATH_INT128_BUILTIN_TYPE 1
+#elif defined __SIZEOF_INT128__
+typedef unsigned __int128 u128;
+# define __MATH_INT128_BUILTIN_TYPE 1
+#else
+# define __MATH_INT128_BUILTIN_TYPE 0
+#endif
+
+#if __MATH_INT128_BUILTIN_TYPE
+# define u128_high(__x) (uint64_t)((__x) >> 64)
+# define u128_low(__x) (uint64_t)(__x)
+# define u128_from_u64(__x) (u128)(__x)
+# define u128_mul(__x, __y) (__x) * (__y)
+# define u128_add(__x, __y) (__x) + (__y)
+# define u128_lshift(__x, __y) (__x) << (__y)
+# define u128_rshift(__x, __y) (__x) >> (__y)
+#else
+typedef struct
+{
+ uint64_t low;
+ uint64_t high;
+} u128;
+
+# define u128_high(__x) (__x).high
+# define u128_low(__x) (__x).low
+# define u128_from_u64(__x) (u128){.low = (__x), .high = 0}
+
+# define MASK32 (UINT64_C(0xffffffff))
+
+static u128 u128_add (u128 x, u128 y)
+{
+ bool carry = x.low + y.low < x.low;
+ return (u128) { .high = x.high + y.high + carry, .low = x.low + y.low };
+}
+
+static u128 u128_lshift (u128 x, unsigned int n)
+{
+ switch (n)
+ {
+ case 0: return x;
+ case 1 ... 63: return (u128) { .high = (x.high << n) | (x.low >> (64 - n)),
+ .low = x.low << n };
+ case 64 ...127: return (u128) { .high = x.low << (n - 64), .low = 0};
+ default: return (u128) { .high = 0, .low = 0 };
+ }
+}
+
+static u128 u128_rshift (u128 x, unsigned int n)
+{
+ switch (n)
+ {
+ case 0: return x;
+ case 1 ... 63: return (u128) { .high = x.high >> n,
+ .low = (x.high << (64 - n)) | (x.low >> n) };
+ case 64 ...127: return (u128) { .high = 0, .low = x.high >> (n - 64) };
+ default: return (u128) { .high = 0, .low = 0 };
+ }
+}
+
+static u128 u128_mul (u128 x, u128 y)
+{
+ if (x.high == 0 && y.high == 0)
+ {
+ uint64_t x0 = x.low & MASK32;
+ uint64_t x1 = x.low >> 32;
+ uint64_t y0 = y.low & MASK32;
+ uint64_t y1 = y.low >> 32;
+ u128 x0y0 = { .high = 0, .low = x0 * y0 };
+ u128 x0y1 = { .high = 0, .low = x0 * y1 };
+ u128 x1y0 = { .high = 0, .low = x1 * y0 };
+ u128 x1y1 = { .high = x1 * y1, .low = 0 };
+ /* x0y0 + ((x0y1 + x1y0) << 32) + x1y1 */
+ return u128_add (u128_add (x0y0,
+ u128_lshift (u128_add (x0y1, x1y0),
+ 32)),
+ x1y1);
+ }
+ else
+ {
+ uint64_t x0 = x.low & MASK32;
+ uint64_t x1 = x.low >> 32;
+ uint64_t x2 = x.high & MASK32;
+ uint64_t x3 = x.high >> 32;
+ uint64_t y0 = y.low & MASK32;
+ uint64_t y1 = y.low >> 32;
+ uint64_t y2 = y.high & MASK32;
+ uint64_t y3 = y.high >> 32;
+ u128 x0y0 = { .high = 0, .low = x0 * y0 };
+ u128 x0y1 = { .high = 0, .low = x0 * y1 };
+ u128 x0y2 = { .high = 0, .low = x0 * y2 };
+ u128 x0y3 = { .high = 0, .low = x0 * y3 };
+ u128 x1y0 = { .high = 0, .low = x1 * y0 };
+ u128 x1y1 = { .high = 0, .low = x1 * y1 };
+ u128 x1y2 = { .high = 0, .low = x1 * y2 };
+ u128 x2y0 = { .high = 0, .low = x2 * y0 };
+ u128 x2y1 = { .high = 0, .low = x2 * y1 };
+ u128 x3y0 = { .high = 0, .low = x3 * y0 };
+ /* x0y0 + ((x0y1 + x1y0) << 32) + ((x0y2 + x1y1 + x2y0) << 64) +
+ ((x0y3 + x1y2 + x2y1 + x3y0) << 96) */
+ u128 r0 = u128_add (x0y0,
+ u128_lshift (u128_add (x0y1, x1y0),
+ 32));
+ u128 r1 = u128_add (u128_lshift (u128_add (u128_add (x0y2, x1y1), x2y0),
+ 64),
+ u128_lshift (u128_add (u128_add (x0y3, x1y2),
+ u128_add (x2y1, x3y0)),
+ 96));
+ return u128_add (r0, r1);
+ }
+}
+#endif /* __SIZEOF_INT128__ */
+
+#endif
diff --git a/sysdeps/generic/stackinfo.h b/sysdeps/generic/stackinfo.h
index bf752ce..51e5f92 100644
--- a/sysdeps/generic/stackinfo.h
+++ b/sysdeps/generic/stackinfo.h
@@ -15,6 +15,15 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-/* This file contains a bit of information about the stack allocation
- of the processor. Since there is no general truth we can't say
- anything here. */
+/* This file contains a bit of information about the stack allocation of the
+ processor. Default to a non executable stack that grows downwards. */
+
+#ifndef _STACKINFO_H
+#define _STACKINFO_H 1
+
+#include <elf.h>
+
+#define _STACK_GROWS_DOWN 1
+#define DEFAULT_STACK_PERMS (PF_R|PF_W)
+
+#endif
diff --git a/sysdeps/hppa/fpu/libm-test-ulps b/sysdeps/hppa/fpu/libm-test-ulps
index 0af5b61..9ed2204 100644
--- a/sysdeps/hppa/fpu/libm-test-ulps
+++ b/sysdeps/hppa/fpu/libm-test-ulps
@@ -338,20 +338,16 @@ float: 1
Function: "cbrt":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_downward":
double: 4
-float: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
Function: "cbrt_upward":
double: 5
-float: 1
Function: Real part of "ccos":
double: 1
@@ -746,37 +742,29 @@ float: 3
Function: "erf":
double: 1
-float: 1
ldouble: 1
Function: "erf_downward":
double: 1
-float: 1
Function: "erf_towardzero":
double: 1
-float: 1
Function: "erf_upward":
double: 1
-float: 1
Function: "erfc":
double: 5
-float: 3
ldouble: 1
Function: "erfc_downward":
double: 5
-float: 6
Function: "erfc_towardzero":
double: 3
-float: 4
Function: "erfc_upward":
double: 5
-float: 6
Function: "exp":
double: 1
@@ -946,20 +934,16 @@ float: 5
Function: "lgamma":
double: 4
-float: 7
ldouble: 1
Function: "lgamma_downward":
double: 5
-float: 7
Function: "lgamma_towardzero":
double: 5
-float: 6
Function: "lgamma_upward":
double: 5
-float: 6
Function: "log":
double: 1
@@ -1123,20 +1107,16 @@ float: 3
Function: "tan":
double: 1
-float: 1
ldouble: 1
Function: "tan_downward":
double: 1
-float: 2
Function: "tan_towardzero":
double: 1
-float: 1
Function: "tan_upward":
double: 1
-float: 1
Function: "tanh":
double: 2
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index a77ded2..c06da68 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -1078,49 +1078,41 @@ ldouble: 3
Function: "erf":
double: 1
-float: 1
float128: 1
ldouble: 1
Function: "erf_downward":
double: 1
-float: 1
float128: 2
ldouble: 1
Function: "erf_towardzero":
double: 1
-float: 1
float128: 1
ldouble: 1
Function: "erf_upward":
double: 1
-float: 1
float128: 2
ldouble: 1
Function: "erfc":
double: 5
-float: 3
float128: 4
ldouble: 5
Function: "erfc_downward":
double: 5
-float: 6
float128: 5
ldouble: 4
Function: "erfc_towardzero":
double: 3
-float: 4
float128: 4
ldouble: 4
Function: "erfc_upward":
double: 5
-float: 6
float128: 5
ldouble: 5
@@ -1362,25 +1354,21 @@ ldouble: 5
Function: "lgamma":
double: 4
-float: 5
float128: 5
ldouble: 4
Function: "lgamma_downward":
double: 5
-float: 5
float128: 8
ldouble: 7
Function: "lgamma_towardzero":
double: 5
-float: 6
float128: 5
ldouble: 7
Function: "lgamma_upward":
double: 5
-float: 6
float128: 8
ldouble: 6
@@ -1626,25 +1614,21 @@ float128: 4
ldouble: 5
Function: "tan":
-float: 1
float128: 1
ldouble: 2
Function: "tan_downward":
double: 1
-float: 2
float128: 1
ldouble: 3
Function: "tan_towardzero":
double: 1
-float: 2
float128: 1
ldouble: 3
Function: "tan_upward":
double: 1
-float: 2
float128: 1
ldouble: 2
diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
index a9cd01b..43ffbd7 100644
--- a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
+++ b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
@@ -1081,49 +1081,41 @@ ldouble: 3
Function: "erf":
double: 1
-float: 1
float128: 1
ldouble: 1
Function: "erf_downward":
double: 1
-float: 1
float128: 2
ldouble: 1
Function: "erf_towardzero":
double: 1
-float: 1
float128: 1
ldouble: 1
Function: "erf_upward":
double: 1
-float: 1
float128: 2
ldouble: 1
Function: "erfc":
double: 5
-float: 3
float128: 4
ldouble: 5
Function: "erfc_downward":
double: 5
-float: 6
float128: 5
ldouble: 4
Function: "erfc_towardzero":
double: 3
-float: 4
float128: 4
ldouble: 4
Function: "erfc_upward":
double: 5
-float: 6
float128: 5
ldouble: 5
@@ -1365,7 +1357,6 @@ ldouble: 5
Function: "lgamma":
double: 4
-float: 5
float128: 5
ldouble: 4
@@ -1628,25 +1619,21 @@ float128: 4
ldouble: 5
Function: "tan":
-float: 1
float128: 1
ldouble: 2
Function: "tan_downward":
double: 1
-float: 2
float128: 1
ldouble: 3
Function: "tan_towardzero":
double: 1
-float: 2
float128: 1
ldouble: 3
Function: "tan_upward":
double: 1
-float: 2
float128: 1
ldouble: 2
diff --git a/sysdeps/ieee754/dbl-64/s_erfc.c b/sysdeps/ieee754/dbl-64/s_erfc.c
new file mode 100644
index 0000000..95d17c8
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/s_erfc.c
@@ -0,0 +1 @@
+/* Not required. */
diff --git a/sysdeps/ieee754/float128/s_erfcf128.c b/sysdeps/ieee754/float128/s_erfcf128.c
new file mode 100644
index 0000000..95d17c8
--- /dev/null
+++ b/sysdeps/ieee754/float128/s_erfcf128.c
@@ -0,0 +1 @@
+/* Not required. */
diff --git a/sysdeps/ieee754/flt-32/e_gammaf_r.c b/sysdeps/ieee754/flt-32/e_gammaf_r.c
index 6b1f95d..66e8cae 100644
--- a/sysdeps/ieee754/flt-32/e_gammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_gammaf_r.c
@@ -140,7 +140,7 @@ __ieee754_gammaf_r (float x, int *signgamp)
};
double m = z - 0x1.7p+1;
- double i = roundeven (m);
+ double i = roundeven_finite (m);
double step = copysign (1.0, i);
double d = m - i, d2 = d * d, d4 = d2 * d2, d8 = d4 * d4;
double f = (c[0] + d * c[1]) + d2 * (c[2] + d * c[3])
diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
index a1a3a60..75ec25f 100644
--- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -1,247 +1,366 @@
-/* e_lgammaf_r.c -- float version of e_lgamma_r.c.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+/* Correctly-rounded logarithm of the absolute value of the gamma function
+ for binary32 value.
+Copyright (c) 2023, 2024 Alexei Sibidanov.
+
+This file is part of the CORE-MATH project
+project (file src/binary32/lgamma/lgammaf.c, revision bc385c2).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+/* Changes with respect to the original CORE-MATH code:
+ - removed the dealing with errno
+ (this is done in the wrapper math/w_lgammaf_compat2.c).
+ - usage of math_narrow_eval to deal with underflow/overflow.
+ - deal with signamp. */
+
+#include <array_length.h>
+#include <stdint.h>
#include <math.h>
-#include <math-narrow-eval.h>
-#include <math_private.h>
-#include <libc-diag.h>
#include <libm-alias-finite.h>
+#include <limits.h>
+#include <math-narrow-eval.h>
+#include "math_config.h"
-static const float
-two23= 8.3886080000e+06, /* 0x4b000000 */
-half= 5.0000000000e-01, /* 0x3f000000 */
-one = 1.0000000000e+00, /* 0x3f800000 */
-pi = 3.1415927410e+00, /* 0x40490fdb */
-a0 = 7.7215664089e-02, /* 0x3d9e233f */
-a1 = 3.2246702909e-01, /* 0x3ea51a66 */
-a2 = 6.7352302372e-02, /* 0x3d89f001 */
-a3 = 2.0580807701e-02, /* 0x3ca89915 */
-a4 = 7.3855509982e-03, /* 0x3bf2027e */
-a5 = 2.8905137442e-03, /* 0x3b3d6ec6 */
-a6 = 1.1927076848e-03, /* 0x3a9c54a1 */
-a7 = 5.1006977446e-04, /* 0x3a05b634 */
-a8 = 2.2086278477e-04, /* 0x39679767 */
-a9 = 1.0801156895e-04, /* 0x38e28445 */
-a10 = 2.5214456400e-05, /* 0x37d383a2 */
-a11 = 4.4864096708e-05, /* 0x383c2c75 */
-tc = 1.4616321325e+00, /* 0x3fbb16c3 */
-tf = -1.2148628384e-01, /* 0xbdf8cdcd */
-/* tt = -(tail of tf) */
-tt = 6.6971006518e-09, /* 0x31e61c52 */
-t0 = 4.8383611441e-01, /* 0x3ef7b95e */
-t1 = -1.4758771658e-01, /* 0xbe17213c */
-t2 = 6.4624942839e-02, /* 0x3d845a15 */
-t3 = -3.2788541168e-02, /* 0xbd064d47 */
-t4 = 1.7970675603e-02, /* 0x3c93373d */
-t5 = -1.0314224288e-02, /* 0xbc28fcfe */
-t6 = 6.1005386524e-03, /* 0x3bc7e707 */
-t7 = -3.6845202558e-03, /* 0xbb7177fe */
-t8 = 2.2596477065e-03, /* 0x3b141699 */
-t9 = -1.4034647029e-03, /* 0xbab7f476 */
-t10 = 8.8108185446e-04, /* 0x3a66f867 */
-t11 = -5.3859531181e-04, /* 0xba0d3085 */
-t12 = 3.1563205994e-04, /* 0x39a57b6b */
-t13 = -3.1275415677e-04, /* 0xb9a3f927 */
-t14 = 3.3552918467e-04, /* 0x39afe9f7 */
-u0 = -7.7215664089e-02, /* 0xbd9e233f */
-u1 = 6.3282704353e-01, /* 0x3f2200f4 */
-u2 = 1.4549225569e+00, /* 0x3fba3ae7 */
-u3 = 9.7771751881e-01, /* 0x3f7a4bb2 */
-u4 = 2.2896373272e-01, /* 0x3e6a7578 */
-u5 = 1.3381091878e-02, /* 0x3c5b3c5e */
-v1 = 2.4559779167e+00, /* 0x401d2ebe */
-v2 = 2.1284897327e+00, /* 0x4008392d */
-v3 = 7.6928514242e-01, /* 0x3f44efdf */
-v4 = 1.0422264785e-01, /* 0x3dd572af */
-v5 = 3.2170924824e-03, /* 0x3b52d5db */
-s0 = -7.7215664089e-02, /* 0xbd9e233f */
-s1 = 2.1498242021e-01, /* 0x3e5c245a */
-s2 = 3.2577878237e-01, /* 0x3ea6cc7a */
-s3 = 1.4635047317e-01, /* 0x3e15dce6 */
-s4 = 2.6642270386e-02, /* 0x3cda40e4 */
-s5 = 1.8402845599e-03, /* 0x3af135b4 */
-s6 = 3.1947532989e-05, /* 0x3805ff67 */
-r1 = 1.3920053244e+00, /* 0x3fb22d3b */
-r2 = 7.2193557024e-01, /* 0x3f38d0c5 */
-r3 = 1.7193385959e-01, /* 0x3e300f6e */
-r4 = 1.8645919859e-02, /* 0x3c98bf54 */
-r5 = 7.7794247773e-04, /* 0x3a4beed6 */
-r6 = 7.3266842264e-06, /* 0x36f5d7bd */
-w0 = 4.1893854737e-01, /* 0x3ed67f1d */
-w1 = 8.3333335817e-02, /* 0x3daaaaab */
-w2 = -2.7777778450e-03, /* 0xbb360b61 */
-w3 = 7.9365057172e-04, /* 0x3a500cfd */
-w4 = -5.9518753551e-04, /* 0xba1c065c */
-w5 = 8.3633989561e-04, /* 0x3a5b3dd2 */
-w6 = -1.6309292987e-03; /* 0xbad5c4e8 */
-
-static const float zero= 0.0000000000e+00;
-
-static float
-sin_pif(float x)
+static double
+as_r7 (double x, const double *c)
{
- float y,z;
- int n,ix;
-
- GET_FLOAT_WORD(ix,x);
- ix &= 0x7fffffff;
-
- if(ix<0x3e800000) return __sinf (pi*x);
- y = -x; /* x is assume negative */
-
- /*
- * argument reduction, make sure inexact flag not raised if input
- * is an integer
- */
- z = floorf(y);
- if(z!=y) { /* inexact anyway */
- y *= (float)0.5;
- y = (float)2.0*(y - floorf(y)); /* y = |x| mod 2.0 */
- n = (int) (y*(float)4.0);
- } else {
- if(ix>=0x4b800000) {
- y = zero; n = 0; /* y must be even */
- } else {
- if(ix<0x4b000000) z = y+two23; /* exact */
- GET_FLOAT_WORD(n,z);
- n &= 1;
- y = n;
- n<<= 2;
- }
- }
- switch (n) {
- case 0: y = __sinf (pi*y); break;
- case 1:
- case 2: y = __cosf (pi*((float)0.5-y)); break;
- case 3:
- case 4: y = __sinf (pi*(one-y)); break;
- case 5:
- case 6: y = -__cosf (pi*(y-(float)1.5)); break;
- default: y = __sinf (pi*(y-(float)2.0)); break;
- }
- return -y;
+ return (((x - c[0]) * (x - c[1])) * ((x - c[2]) * (x - c[3])))
+ * (((x - c[4]) * (x - c[5])) * ((x - c[6])));
}
+static double
+as_r8 (double x, const double *c)
+{
+ return (((x - c[0]) * (x - c[1])) * ((x - c[2]) * (x - c[3])))
+ * (((x - c[4]) * (x - c[5])) * ((x - c[6]) * (x - c[7])));
+}
+
+static double
+as_sinpi (double x)
+{
+ static const double c[] =
+ {
+ 0x1p+2, -0x1.de9e64df22ea4p+1, 0x1.472be122401f8p+0,
+ -0x1.d4fcd82df91bp-3, 0x1.9f05c97e0aab2p-6, -0x1.f3091c427b611p-10,
+ 0x1.b22c9bfdca547p-14, -0x1.15484325ef569p-18
+ };
+ x -= 0.5;
+ double x2 = x * x, x4 = x2 * x2, x8 = x4 * x4;
+ return (0.25 - x2)
+ * ((c[0] + x2 * c[1]) + x4 * (c[2] + x2 * c[3])
+ + x8 * ((c[4] + x2 * c[5]) + x4 * (c[6] + x2 * c[7])));
+}
+
+static double
+as_ln (double x)
+{
+ uint64_t t = asuint64 (x);
+ int e = (t >> 52) - 0x3ff;
+ static const double c[] =
+ {
+ 0x1.fffffffffff24p-1, -0x1.ffffffffd1d67p-2, 0x1.55555537802dep-2,
+ -0x1.ffffeca81b866p-3, 0x1.999611761d772p-3, -0x1.54f3e581b61bfp-3,
+ 0x1.1e642b4cb5143p-3, -0x1.9115a5af1e1edp-4
+ };
+ static const double il[] =
+ {
+ 0x1.59caeec280116p-57, 0x1.f0a30c01162aap-5, 0x1.e27076e2af2ebp-4,
+ 0x1.5ff3070a793d6p-3, 0x1.c8ff7c79a9a2p-3, 0x1.1675cababa60fp-2,
+ 0x1.4618bc21c5ec2p-2, 0x1.739d7f6bbd007p-2, 0x1.9f323ecbf984dp-2,
+ 0x1.c8ff7c79a9a21p-2, 0x1.f128f5faf06ecp-2, 0x1.0be72e4252a83p-1,
+ 0x1.1e85f5e7040d1p-1, 0x1.307d7334f10bep-1, 0x1.41d8fe84672afp-1,
+ 0x1.52a2d265bc5abp-1
+ };
+ static const double ix[] =
+ {
+ 0x1p+0, 0x1.e1e1e1e1e1e1ep-1, 0x1.c71c71c71c71cp-1,
+ 0x1.af286bca1af28p-1, 0x1.999999999999ap-1, 0x1.8618618618618p-1,
+ 0x1.745d1745d1746p-1, 0x1.642c8590b2164p-1, 0x1.5555555555555p-1,
+ 0x1.47ae147ae147bp-1, 0x1.3b13b13b13b14p-1, 0x1.2f684bda12f68p-1,
+ 0x1.2492492492492p-1, 0x1.1a7b9611a7b96p-1, 0x1.1111111111111p-1,
+ 0x1.0842108421084p-1
+ };
+ int i = (t >> 48) & 0xf;
+ t = (t & (~UINT64_C(0) >> 12)) | (INT64_C(0x3ff) << 52);
+ double z = ix[i] * asdouble (t) - 1;
+ double z2 = z * z, z4 = z2 * z2;
+ return e * 0x1.62e42fefa39efp-1 + il[i]
+ + z * ((c[0] + z * c[1]) + z2 * (c[2] + z * c[3])
+ + z4 * ((c[4] + z * c[5]) + z2 * (c[6] + z * c[7])));
+}
float
-__ieee754_lgammaf_r(float x, int *signgamp)
+__ieee754_lgammaf_r (float x, int *signgamp)
{
- float t,y,z,nadj,p,p1,p2,p3,q,r,w;
- int i,hx,ix;
-
- GET_FLOAT_WORD(hx,x);
-
- /* purge off +-inf, NaN, +-0, and negative arguments */
- *signgamp = 1;
- ix = hx&0x7fffffff;
- if(__builtin_expect(ix>=0x7f800000, 0)) return x*x;
- if(__builtin_expect(ix==0, 0))
- {
- if (hx < 0)
- *signgamp = -1;
- return one/fabsf(x);
- }
- if(__builtin_expect(ix<0x30800000, 0)) {
- /* |x|<2**-30, return -log(|x|) */
- if(hx<0) {
- *signgamp = -1;
- return -__ieee754_logf(-x);
- } else return -__ieee754_logf(x);
+ static const struct
+ {
+ float x;
+ float f;
+ float df;
+ } tb[] = {
+ { -0x1.efc2a2p+14, -0x1.222dbcp+18, -0x1p-7 },
+ { -0x1.627346p+7, -0x1.73235ep+9, -0x1p-16 },
+ { -0x1.08b14p+4, -0x1.f0cbe6p+4, -0x1p-21 },
+ { -0x1.69d628p+3, -0x1.0eac2ap+4, -0x1p-21 },
+ { -0x1.904902p+2, -0x1.65532cp+2, 0x1p-23 },
+ { -0x1.9272d2p+1, -0x1.170b98p-8, 0x1p-33 },
+ { -0x1.625edap+1, 0x1.6a6c4ap-5, -0x1p-30 },
+ { -0x1.5fc2aep+1, 0x1.c0a484p-11, -0x1p-36 },
+ { -0x1.5fb43ep+1, 0x1.5b697p-17, 0x1p-42 },
+ { -0x1.5fa20cp+1, -0x1.132f7ap-10, 0x1p-35 },
+ { -0x1.580c1ep+1, -0x1.5787c6p-4, 0x1p-29 },
+ { -0x1.3a7fcap+1, -0x1.e4cf24p-24, -0x1p-49 },
+ { -0x1.c2f04p-30, 0x1.43a6f6p+4, 0x1p-21 },
+ { -0x1.ade594p-30, 0x1.446ab2p+4, -0x1p-21 },
+ { -0x1.437e74p-40, 0x1.b7dec2p+4, -0x1p-21 },
+ { -0x1.d85bfep-43, 0x1.d31592p+4, -0x1p-21 },
+ { -0x1.f51c8ep-49, 0x1.0a572ap+5, -0x1p-20 },
+ { -0x1.108a5ap-66, 0x1.6d7b18p+5, -0x1p-20 },
+ { -0x1.ecf3fep-73, 0x1.8f8e5ap+5, -0x1p-20 },
+ { -0x1.25cb66p-123, 0x1.547a44p+6, -0x1p-19 },
+ { 0x1.ecf3fep-73, 0x1.8f8e5ap+5, -0x1p-20 },
+ { 0x1.108a5ap-66, 0x1.6d7b18p+5, -0x1p-20 },
+ { 0x1.a68bbcp-42, 0x1.c9c6e8p+4, 0x1p-21 },
+ { 0x1.ddfd06p-12, 0x1.ec5ba8p+2, -0x1p-23 },
+ { 0x1.f8a754p-9, 0x1.63acc2p+2, 0x1p-23 },
+ { 0x1.8d16b2p+5, 0x1.1e4b4ep+7, 0x1p-18 },
+ { 0x1.359e0ep+10, 0x1.d9ad02p+12, -0x1p-13 },
+ { 0x1.a82a2cp+13, 0x1.c38036p+16, 0x1p-9 },
+ { 0x1.62c646p+14, 0x1.9075bep+17, -0x1p-8 },
+ { 0x1.7f298p+31, 0x1.f44946p+35, -0x1p+10 },
+ { 0x1.a45ea4p+33, 0x1.25dcbcp+38, -0x1p+13 },
+ { 0x1.f9413ep+76, 0x1.9d5ab4p+82, -0x1p+57 },
+ { 0x1.dcbbaap+99, 0x1.fc5772p+105, 0x1p+80 },
+ { 0x1.58ace8p+112, 0x1.9e4f66p+118, -0x1p+93 },
+ { 0x1.87bdfp+115, 0x1.e465aep+121, 0x1p+96 },
+ };
+
+ float fx = floor (x);
+ float ax = fabsf (x);
+ uint32_t t = asuint (ax);
+ if (__glibc_unlikely (t >= (0xffu << 23)))
+ {
+ *signgamp = 1;
+ if (t == (0xffu << 23))
+ return INFINITY;
+ return x + x; /* nan */
+ }
+ if (__glibc_unlikely (fx == x))
+ {
+ if (x <= 0.0f)
+ {
+ *signgamp = asuint (x) >> 31 ? -1 : 1;
+ return 1.0f / 0.0f;
}
- if(hx<0) {
- if(ix>=0x4b000000) /* |x|>=2**23, must be -integer */
- return fabsf (x)/zero;
- if (ix > 0x40000000 /* X < 2.0f. */
- && ix < 0x41700000 /* X > -15.0f. */)
- return __lgamma_negf (x, signgamp);
- t = sin_pif(x);
- if(t==zero) return one/fabsf(t); /* -integer */
- nadj = __ieee754_logf(pi/fabsf(t*x));
- if(t<zero) *signgamp = -1;
- x = -x;
+ if (x == 1.0f || x == 2.0f)
+ {
+ *signgamp = 1;
+ return 0.0f;
}
+ }
+
+ /* Check the value of fx to avoid a spurious invalid exception.
+ Note that for a binary32 |x| >= 2^23, x is necessarily an integer,
+ and we already dealed with negative integers, thus now:
+ -2^23 < x < +Inf and x is not a negative integer nor 0, 1, 2. */
+ if (__glibc_likely (fx >= 0))
+ *signgamp = 1;
+ else
+ /* gamma(x) is negative in (-2n-1,-2n), thus when fx is odd. */
+ *signgamp = 1 - ((((int) fx) & 1) << 1);
- /* purge off 1 and 2 */
- if (ix==0x3f800000||ix==0x40000000) r = 0;
- /* for x < 2.0 */
- else if(ix<0x40000000) {
- if(ix<=0x3f666666) { /* lgamma(x) = lgamma(x+1)-log(x) */
- r = -__ieee754_logf(x);
- if(ix>=0x3f3b4a20) {y = one-x; i= 0;}
- else if(ix>=0x3e6d3308) {y= x-(tc-one); i=1;}
- else {y = x; i=2;}
- } else {
- r = zero;
- if(ix>=0x3fdda618) {y=(float)2.0-x;i=0;} /* [1.7316,2] */
- else if(ix>=0x3F9da620) {y=x-tc;i=1;} /* [1.23,1.73] */
- else {y=x-one;i=2;}
+ double z = ax, f;
+ if (__glibc_unlikely (ax < 0x1.52p-1f))
+ {
+ static const double rn[] =
+ {
+ -0x1.505bdf4b65acp+4, -0x1.51c80eb47e068p+2,
+ 0x1.0000000007cb8p+0, -0x1.4ac529250a1fcp+1,
+ -0x1.a8c99dbe1621ap+0, -0x1.4abdcc74115eap+0,
+ -0x1.1b87fe5a5b923p+0, -0x1.05b8a4d47ff64p+0
+ };
+ const double c0 = 0x1.0fc0fad268c4dp+2;
+ static const double rd[] =
+ {
+ -0x1.4db2cfe9a5265p+5, -0x1.062e99d1c4f27p+3,
+ -0x1.c81bc2ecf25f6p+1, -0x1.108e55c10091bp+1,
+ -0x1.7dd25af0b83d4p+0, -0x1.36bf1880125fcp+0,
+ -0x1.1379fc8023d9cp+0, -0x1.03712e41525d2p+0
+ };
+ double s = x;
+ f = (c0 * s) * as_r8 (s, rn) / as_r8 (s, rd) - as_ln (z);
+ }
+ else
+ {
+ if (ax > 0x1.afc1ap+1f)
+ {
+ if (__glibc_unlikely (x > 0x1.895f1cp+121f))
+ return math_narrow_eval (0x1p127f * 0x1p127f);
+ /* |x|>=2**23, must be -integer */
+ if (__glibc_unlikely (x < 0.0f && ax > 0x1p+23))
+ return ax / 0.0f;
+ double lz = as_ln (z);
+ f = (z - 0.5) * (lz - 1) + 0x1.acfe390c97d69p-2;
+ if (ax < 0x1.0p+20f)
+ {
+ double iz = 1.0 / z, iz2 = iz * iz;
+ if (ax > 1198.0f)
+ f += iz * (1. / 12.);
+ else if (ax > 0x1.279a7p+6f)
+ {
+ static const double c[] =
+ {
+ 0x1.555555547fbadp-4, -0x1.6c0fd270c465p-9
+ };
+ f += iz * (c[0] + iz2 * c[1]);
+ }
+ else if (ax > 0x1.555556p+3f)
+ {
+ static const double c[] =
+ {
+ 0x1.555555554de0bp-4, -0x1.6c16bdc45944fp-9,
+ 0x1.a0077f300ecb3p-11, -0x1.2e9cfff3b29c2p-11
+ };
+ double iz4 = iz2 * iz2;
+ f += iz * ((c[0] + iz2 * c[1]) + iz4 * (c[2] + iz2 * c[3]));
+ }
+ else
+ {
+ static const double c[] =
+ {
+ 0x1.5555555551286p-4, -0x1.6c16c0e7c4cf4p-9,
+ 0x1.a0193267fe6f2p-11, -0x1.37e87ec19cb45p-11,
+ 0x1.b40011dfff081p-11, -0x1.c16c8946b19b6p-10,
+ 0x1.e9f47ace150d8p-9, -0x1.4f5843a71a338p-8
+ };
+ double iz4 = iz2 * iz2, iz8 = iz4 * iz4;
+ double p = ((c[0] + iz2 * c[1]) + iz4 * (c[2] + iz2 * c[3]))
+ + iz8 * ((c[4] + iz2 * c[5])
+ + iz4 * (c[6] + iz2 * c[7]));
+ f += iz * p;
+ }
}
- switch(i) {
- case 0:
- z = y*y;
- p1 = a0+z*(a2+z*(a4+z*(a6+z*(a8+z*a10))));
- p2 = z*(a1+z*(a3+z*(a5+z*(a7+z*(a9+z*a11)))));
- p = y*p1+p2;
- r += (p-(float)0.5*y); break;
- case 1:
- z = y*y;
- w = z*y;
- p1 = t0+w*(t3+w*(t6+w*(t9 +w*t12))); /* parallel comp */
- p2 = t1+w*(t4+w*(t7+w*(t10+w*t13)));
- p3 = t2+w*(t5+w*(t8+w*(t11+w*t14)));
- p = z*p1-(tt-w*(p2+y*p3));
- r += (tf + p); break;
- case 2:
- p1 = y*(u0+y*(u1+y*(u2+y*(u3+y*(u4+y*u5)))));
- p2 = one+y*(v1+y*(v2+y*(v3+y*(v4+y*v5))));
- r += (-(float)0.5*y + p1/p2);
+ if (x < 0.0f)
+ {
+ f = 0x1.250d048e7a1bdp+0 - f - lz;
+ double lp = as_ln (as_sinpi (x - fx));
+ f -= lp;
}
}
- else if(ix<0x41000000) { /* x < 8.0 */
- i = (int)x;
- t = zero;
- y = x-(float)i;
- p = y*(s0+y*(s1+y*(s2+y*(s3+y*(s4+y*(s5+y*s6))))));
- q = one+y*(r1+y*(r2+y*(r3+y*(r4+y*(r5+y*r6)))));
- r = half*y+p/q;
- z = one; /* lgamma(1+s) = log(s) + lgamma(s) */
- switch(i) {
- case 7: z *= (y+(float)6.0); /* FALLTHRU */
- case 6: z *= (y+(float)5.0); /* FALLTHRU */
- case 5: z *= (y+(float)4.0); /* FALLTHRU */
- case 4: z *= (y+(float)3.0); /* FALLTHRU */
- case 3: z *= (y+(float)2.0); /* FALLTHRU */
- r += __ieee754_logf(z); break;
+ else
+ {
+ static const double rn[] =
+ {
+ -0x1.667923ff14df7p+5, -0x1.2d35f25ad8f64p+3,
+ -0x1.b8c9eab9d5bd3p+1, -0x1.7a4a97f494127p+0,
+ -0x1.3a6c8295b4445p-1, -0x1.da44e8b810024p-3,
+ -0x1.9061e81c77e4ap-5
+ };
+ if (x < 0.0f)
+ {
+ int ni = floorf (-2 * x);
+ if ((ni & 1) == 0 && ni == -2 * x)
+ return 1.0f / 0.0f;
+ }
+ const double c0 = 0x1.3cc0e6a0106b3p+2;
+ static const double rd[] =
+ {
+ -0x1.491a899e84c52p+6, -0x1.d202961b9e098p+3,
+ -0x1.4ced68c631ed6p+2, -0x1.2589eedf40738p+1,
+ -0x1.1302e3337271p+0, -0x1.c36b802f26dffp-2,
+ -0x1.3ded448acc39dp-3, -0x1.bffc491078eafp-6
+ };
+ f = (z - 1) * (z - 2) * c0 * as_r7 (z, rn) / as_r8 (z, rd);
+ if (x < 0.0f)
+ {
+ if (__glibc_unlikely (t < 0x40301b93u && t > 0x402f95c2u))
+ {
+ double h = (x + 0x1.5fb410a1bd901p+1)
+ - 0x1.a19a96d2e6f85p-54;
+ double h2 = h * h;
+ double h4 = h2 * h2;
+ static const double c[] =
+ {
+ -0x1.ea12da904b18cp+0, 0x1.3267f3c265a54p+3,
+ -0x1.4185ac30cadb3p+4, 0x1.f504accc3f2e4p+5,
+ -0x1.8588444c679b4p+7, 0x1.43740491dc22p+9,
+ -0x1.12400ea23f9e6p+11, 0x1.dac829f365795p+12
+ };
+ f = h * ((c[0] + h * c[1]) + h2 * (c[2] + h * c[3])
+ + h4 * ((c[4] + h * c[5]) + h2 * (c[6] + h * c[7])));
+ }
+ else if (__glibc_unlikely (t > 0x401ceccbu && t < 0x401d95cau))
+ {
+ double h = (x + 0x1.3a7fc9600f86cp+1)
+ + 0x1.55f64f98af8dp-55;
+ double h2 = h * h;
+ double h4 = h2 * h2;
+ static const double c[] =
+ {
+ 0x1.83fe966af535fp+0, 0x1.36eebb002f61ap+2,
+ 0x1.694a60589a0b3p+0, 0x1.1718d7aedb0b5p+3,
+ 0x1.733a045eca0d3p+2, 0x1.8d4297421205bp+4,
+ 0x1.7feea5fb29965p+4
+ };
+ f = h
+ * ((c[0] + h * c[1]) + h2 * (c[2] + h * c[3])
+ + h4 * ((c[4] + h * c[5]) + h2 * (c[6])));
+ }
+ else if (__glibc_unlikely (t > 0x40492009u && t < 0x404940efu))
+ {
+ double h = (x + 0x1.9260dbc9e59afp+1)
+ + 0x1.f717cd335a7b3p-53;
+ double h2 = h * h;
+ double h4 = h2 * h2;
+ static const double c[] =
+ {
+ 0x1.f20a65f2fac55p+2, 0x1.9d4d297715105p+4,
+ 0x1.c1137124d5b21p+6, 0x1.267203d24de38p+9,
+ 0x1.99a63399a0b44p+11, 0x1.2941214faaf0cp+14,
+ 0x1.bb912c0c9cdd1p+16
+ };
+ f = h * ((c[0] + h * c[1]) + h2 * (c[2] + h * c[3])
+ + h4 * ((c[4] + h * c[5]) + h2 * (c[6])));
+ }
+ else
+ {
+ f = 0x1.250d048e7a1bdp+0 - f;
+ double lp = as_ln (as_sinpi (x - fx) * z);
+ f -= lp;
+ }
}
- /* 8.0 <= x < 2**26 */
- } else if (ix < 0x4c800000) {
- t = __ieee754_logf(x);
- z = one/x;
- y = z*z;
- w = w0+z*(w1+y*(w2+y*(w3+y*(w4+y*(w5+y*w6)))));
- r = (x-half)*(t-one)+w;
- } else
- /* 2**26 <= x <= inf */
- r = math_narrow_eval (x*(__ieee754_logf(x)-one));
- /* NADJ is set for negative arguments but not otherwise,
- resulting in warnings that it may be used uninitialized
- although in the cases where it is used it has always been
- set. */
- DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
- if(hx<0) r = nadj - r;
- DIAG_POP_NEEDS_COMMENT;
- return r;
+ }
+ }
+
+ uint64_t tl = (asuint64 (f) + 5) & 0xfffffff;
+ float r = f;
+ if (__glibc_unlikely (tl <= 31u))
+ {
+ t = asuint (x);
+ for (unsigned i = 0; i < array_length (tb); i++)
+ {
+ if (t == asuint (tb[i].x))
+ return tb[i].f + tb[i].df;
+ }
+ }
+ return r;
}
libm_alias_finite (__ieee754_lgammaf_r, __lgammaf_r)
diff --git a/sysdeps/ieee754/flt-32/k_tanf.c b/sysdeps/ieee754/flt-32/k_tanf.c
index e1c9d14..1cc8931 100644
--- a/sysdeps/ieee754/flt-32/k_tanf.c
+++ b/sysdeps/ieee754/flt-32/k_tanf.c
@@ -1,101 +1 @@
-/* k_tanf.c -- float version of k_tan.c
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: k_tanf.c,v 1.4 1995/05/10 20:46:39 jtc Exp $";
-#endif
-
-#include <float.h>
-#include <math.h>
-#include <math_private.h>
-#include <math-underflow.h>
-static const float
-one = 1.0000000000e+00, /* 0x3f800000 */
-pio4 = 7.8539812565e-01, /* 0x3f490fda */
-pio4lo= 3.7748947079e-08, /* 0x33222168 */
-T[] = {
- 3.3333334327e-01, /* 0x3eaaaaab */
- 1.3333334029e-01, /* 0x3e088889 */
- 5.3968254477e-02, /* 0x3d5d0dd1 */
- 2.1869488060e-02, /* 0x3cb327a4 */
- 8.8632395491e-03, /* 0x3c11371f */
- 3.5920790397e-03, /* 0x3b6b6916 */
- 1.4562094584e-03, /* 0x3abede48 */
- 5.8804126456e-04, /* 0x3a1a26c8 */
- 2.4646313977e-04, /* 0x398137b9 */
- 7.8179444245e-05, /* 0x38a3f445 */
- 7.1407252108e-05, /* 0x3895c07a */
- -1.8558637748e-05, /* 0xb79bae5f */
- 2.5907305826e-05, /* 0x37d95384 */
-};
-
-float __kernel_tanf(float x, float y, int iy)
-{
- float z,r,v,w,s;
- int32_t ix,hx;
- GET_FLOAT_WORD(hx,x);
- ix = hx&0x7fffffff; /* high word of |x| */
- if(ix<0x39000000) /* x < 2**-13 */
- {if((int)x==0) { /* generate inexact */
- if((ix|(iy+1))==0) return one/fabsf(x);
- else if (iy == 1)
- {
- math_check_force_underflow (x);
- return x;
- }
- else
- return -one / x;
- }
- }
- if(ix>=0x3f2ca140) { /* |x|>=0.6744 */
- if(hx<0) {x = -x; y = -y;}
- z = pio4-x;
- w = pio4lo-y;
- x = z+w; y = 0.0;
- if (fabsf (x) < 0x1p-13f)
- return (1 - ((hx >> 30) & 2)) * iy * (1.0f - 2 * iy * x);
- }
- z = x*x;
- w = z*z;
- /* Break x^5*(T[1]+x^2*T[2]+...) into
- * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) +
- * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12]))
- */
- r = T[1]+w*(T[3]+w*(T[5]+w*(T[7]+w*(T[9]+w*T[11]))));
- v = z*(T[2]+w*(T[4]+w*(T[6]+w*(T[8]+w*(T[10]+w*T[12])))));
- s = z*x;
- r = y + z*(s*(r+v)+y);
- r += T[0]*s;
- w = x+r;
- if(ix>=0x3f2ca140) {
- v = (float)iy;
- return (float)(1-((hx>>30)&2))*(v-(float)2.0*(x-(w*w/(w+v)-r)));
- }
- if(iy==1) return w;
- else { /* if allow error up to 2 ulp,
- simply return -1.0/(x+r) here */
- /* compute -1.0/(x+r) accurately */
- float a,t;
- int32_t i;
- z = w;
- GET_FLOAT_WORD(i,z);
- SET_FLOAT_WORD(z,i&0xfffff000);
- v = r-(z - x); /* z+v = r+x */
- t = a = -(float)1.0/w; /* a = -1.0/w */
- GET_FLOAT_WORD(i,t);
- SET_FLOAT_WORD(t,i&0xfffff000);
- s = (float)1.0+t*z;
- return t+a*(s+t*v);
- }
-}
+/* Not needed. */
diff --git a/sysdeps/ieee754/flt-32/lgamma_negf.c b/sysdeps/ieee754/flt-32/lgamma_negf.c
index a8aa74e..1cc8931 100644
--- a/sysdeps/ieee754/flt-32/lgamma_negf.c
+++ b/sysdeps/ieee754/flt-32/lgamma_negf.c
@@ -1,282 +1 @@
-/* lgammaf expanding around zeros.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <float.h>
-#include <math.h>
-#include <math-narrow-eval.h>
-#include <math_private.h>
-#include <fenv_private.h>
-
-static const float lgamma_zeros[][2] =
- {
- { -0x2.74ff94p+0f, 0x1.3fe0f2p-24f },
- { -0x2.bf682p+0f, -0x1.437b2p-24f },
- { -0x3.24c1b8p+0f, 0x6.c34cap-28f },
- { -0x3.f48e2cp+0f, 0x1.707a04p-24f },
- { -0x4.0a13ap+0f, 0x1.e99aap-24f },
- { -0x4.fdd5ep+0f, 0x1.64454p-24f },
- { -0x5.021a98p+0f, 0x2.03d248p-24f },
- { -0x5.ffa4cp+0f, 0x2.9b82fcp-24f },
- { -0x6.005ac8p+0f, -0x1.625f24p-24f },
- { -0x6.fff3p+0f, 0x2.251e44p-24f },
- { -0x7.000dp+0f, 0x8.48078p-28f },
- { -0x7.fffe6p+0f, 0x1.fa98c4p-28f },
- { -0x8.0001ap+0f, -0x1.459fcap-28f },
- { -0x8.ffffdp+0f, -0x1.c425e8p-24f },
- { -0x9.00003p+0f, 0x1.c44b82p-24f },
- { -0xap+0f, 0x4.9f942p-24f },
- { -0xap+0f, -0x4.9f93b8p-24f },
- { -0xbp+0f, 0x6.b9916p-28f },
- { -0xbp+0f, -0x6.b9915p-28f },
- { -0xcp+0f, 0x8.f76c8p-32f },
- { -0xcp+0f, -0x8.f76c7p-32f },
- { -0xdp+0f, 0xb.09231p-36f },
- { -0xdp+0f, -0xb.09231p-36f },
- { -0xep+0f, 0xc.9cba5p-40f },
- { -0xep+0f, -0xc.9cba5p-40f },
- { -0xfp+0f, 0xd.73f9fp-44f },
- };
-
-static const float e_hi = 0x2.b7e15p+0f, e_lo = 0x1.628aeep-24f;
-
-/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) in Stirling's
- approximation to lgamma function. */
-
-static const float lgamma_coeff[] =
- {
- 0x1.555556p-4f,
- -0xb.60b61p-12f,
- 0x3.403404p-12f,
- };
-
-#define NCOEFF (sizeof (lgamma_coeff) / sizeof (lgamma_coeff[0]))
-
-/* Polynomial approximations to (|gamma(x)|-1)(x-n)/(x-x0), where n is
- the integer end-point of the half-integer interval containing x and
- x0 is the zero of lgamma in that half-integer interval. Each
- polynomial is expressed in terms of x-xm, where xm is the midpoint
- of the interval for which the polynomial applies. */
-
-static const float poly_coeff[] =
- {
- /* Interval [-2.125, -2] (polynomial degree 5). */
- -0x1.0b71c6p+0f,
- -0xc.73a1ep-4f,
- -0x1.ec8462p-4f,
- -0xe.37b93p-4f,
- -0x1.02ed36p-4f,
- -0xe.cbe26p-4f,
- /* Interval [-2.25, -2.125] (polynomial degree 5). */
- -0xf.29309p-4f,
- -0xc.a5cfep-4f,
- 0x3.9c93fcp-4f,
- -0x1.02a2fp+0f,
- 0x9.896bep-4f,
- -0x1.519704p+0f,
- /* Interval [-2.375, -2.25] (polynomial degree 5). */
- -0xd.7d28dp-4f,
- -0xe.6964cp-4f,
- 0xb.0d4f1p-4f,
- -0x1.9240aep+0f,
- 0x1.dadabap+0f,
- -0x3.1778c4p+0f,
- /* Interval [-2.5, -2.375] (polynomial degree 6). */
- -0xb.74ea2p-4f,
- -0x1.2a82cp+0f,
- 0x1.880234p+0f,
- -0x3.320c4p+0f,
- 0x5.572a38p+0f,
- -0x9.f92bap+0f,
- 0x1.1c347ep+4f,
- /* Interval [-2.625, -2.5] (polynomial degree 6). */
- -0x3.d10108p-4f,
- 0x1.cd5584p+0f,
- 0x3.819c24p+0f,
- 0x6.84cbb8p+0f,
- 0xb.bf269p+0f,
- 0x1.57fb12p+4f,
- 0x2.7b9854p+4f,
- /* Interval [-2.75, -2.625] (polynomial degree 6). */
- -0x6.b5d25p-4f,
- 0x1.28d604p+0f,
- 0x1.db6526p+0f,
- 0x2.e20b38p+0f,
- 0x4.44c378p+0f,
- 0x6.62a08p+0f,
- 0x9.6db3ap+0f,
- /* Interval [-2.875, -2.75] (polynomial degree 5). */
- -0x8.a41b2p-4f,
- 0xc.da87fp-4f,
- 0x1.147312p+0f,
- 0x1.7617dap+0f,
- 0x1.d6c13p+0f,
- 0x2.57a358p+0f,
- /* Interval [-3, -2.875] (polynomial degree 5). */
- -0xa.046d6p-4f,
- 0x9.70b89p-4f,
- 0xa.a89a6p-4f,
- 0xd.2f2d8p-4f,
- 0xd.e32b4p-4f,
- 0xf.fb741p-4f,
- };
-
-static const size_t poly_deg[] =
- {
- 5,
- 5,
- 5,
- 6,
- 6,
- 6,
- 5,
- 5,
- };
-
-static const size_t poly_end[] =
- {
- 5,
- 11,
- 17,
- 24,
- 31,
- 38,
- 44,
- 50,
- };
-
-/* Compute sin (pi * X) for -0.25 <= X <= 0.5. */
-
-static float
-lg_sinpi (float x)
-{
- if (x <= 0.25f)
- return __sinf (M_PIf * x);
- else
- return __cosf (M_PIf * (0.5f - x));
-}
-
-/* Compute cos (pi * X) for -0.25 <= X <= 0.5. */
-
-static float
-lg_cospi (float x)
-{
- if (x <= 0.25f)
- return __cosf (M_PIf * x);
- else
- return __sinf (M_PIf * (0.5f - x));
-}
-
-/* Compute cot (pi * X) for -0.25 <= X <= 0.5. */
-
-static float
-lg_cotpi (float x)
-{
- return lg_cospi (x) / lg_sinpi (x);
-}
-
-/* Compute lgamma of a negative argument -15 < X < -2, setting
- *SIGNGAMP accordingly. */
-
-float
-__lgamma_negf (float x, int *signgamp)
-{
- /* Determine the half-integer region X lies in, handle exact
- integers and determine the sign of the result. */
- int i = floorf (-2 * x);
- if ((i & 1) == 0 && i == -2 * x)
- return 1.0f / 0.0f;
- float xn = ((i & 1) == 0 ? -i / 2 : (-i - 1) / 2);
- i -= 4;
- *signgamp = ((i & 2) == 0 ? -1 : 1);
-
- SET_RESTORE_ROUNDF (FE_TONEAREST);
-
- /* Expand around the zero X0 = X0_HI + X0_LO. */
- float x0_hi = lgamma_zeros[i][0], x0_lo = lgamma_zeros[i][1];
- float xdiff = x - x0_hi - x0_lo;
-
- /* For arguments in the range -3 to -2, use polynomial
- approximations to an adjusted version of the gamma function. */
- if (i < 2)
- {
- int j = floorf (-8 * x) - 16;
- float xm = (-33 - 2 * j) * 0.0625f;
- float x_adj = x - xm;
- size_t deg = poly_deg[j];
- size_t end = poly_end[j];
- float g = poly_coeff[end];
- for (size_t j = 1; j <= deg; j++)
- g = g * x_adj + poly_coeff[end - j];
- return __log1pf (g * xdiff / (x - xn));
- }
-
- /* The result we want is log (sinpi (X0) / sinpi (X))
- + log (gamma (1 - X0) / gamma (1 - X)). */
- float x_idiff = fabsf (xn - x), x0_idiff = fabsf (xn - x0_hi - x0_lo);
- float log_sinpi_ratio;
- if (x0_idiff < x_idiff * 0.5f)
- /* Use log not log1p to avoid inaccuracy from log1p of arguments
- close to -1. */
- log_sinpi_ratio = __ieee754_logf (lg_sinpi (x0_idiff)
- / lg_sinpi (x_idiff));
- else
- {
- /* Use log1p not log to avoid inaccuracy from log of arguments
- close to 1. X0DIFF2 has positive sign if X0 is further from
- XN than X is from XN, negative sign otherwise. */
- float x0diff2 = ((i & 1) == 0 ? xdiff : -xdiff) * 0.5f;
- float sx0d2 = lg_sinpi (x0diff2);
- float cx0d2 = lg_cospi (x0diff2);
- log_sinpi_ratio = __log1pf (2 * sx0d2
- * (-sx0d2 + cx0d2 * lg_cotpi (x_idiff)));
- }
-
- float log_gamma_ratio;
- float y0 = math_narrow_eval (1 - x0_hi);
- float y0_eps = -x0_hi + (1 - y0) - x0_lo;
- float y = math_narrow_eval (1 - x);
- float y_eps = -x + (1 - y);
- /* We now wish to compute LOG_GAMMA_RATIO
- = log (gamma (Y0 + Y0_EPS) / gamma (Y + Y_EPS)). XDIFF
- accurately approximates the difference Y0 + Y0_EPS - Y -
- Y_EPS. Use Stirling's approximation. */
- float log_gamma_high
- = (xdiff * __log1pf ((y0 - e_hi - e_lo + y0_eps) / e_hi)
- + (y - 0.5f + y_eps) * __log1pf (xdiff / y));
- /* Compute the sum of (B_2k / 2k(2k-1))(Y0^-(2k-1) - Y^-(2k-1)). */
- float y0r = 1 / y0, yr = 1 / y;
- float y0r2 = y0r * y0r, yr2 = yr * yr;
- float rdiff = -xdiff / (y * y0);
- float bterm[NCOEFF];
- float dlast = rdiff, elast = rdiff * yr * (yr + y0r);
- bterm[0] = dlast * lgamma_coeff[0];
- for (size_t j = 1; j < NCOEFF; j++)
- {
- float dnext = dlast * y0r2 + elast;
- float enext = elast * yr2;
- bterm[j] = dnext * lgamma_coeff[j];
- dlast = dnext;
- elast = enext;
- }
- float log_gamma_low = 0;
- for (size_t j = 0; j < NCOEFF; j++)
- log_gamma_low += bterm[NCOEFF - 1 - j];
- log_gamma_ratio = log_gamma_high + log_gamma_low;
-
- return log_sinpi_ratio + log_gamma_ratio;
-}
+/* Not needed. */
diff --git a/sysdeps/ieee754/flt-32/math_config.h b/sysdeps/ieee754/flt-32/math_config.h
index dc07ebd..b30a03e 100644
--- a/sysdeps/ieee754/flt-32/math_config.h
+++ b/sysdeps/ieee754/flt-32/math_config.h
@@ -57,6 +57,33 @@ static inline int32_t
converttoint (double_t x);
#endif
+#ifndef ROUNDEVEN_INTRINSICS
+/* When set, roundeven_finite will route to the internal roundeven function. */
+# define ROUNDEVEN_INTRINSICS 1
+#endif
+
+/* Round x to nearest integer value in floating-point format, rounding halfway
+ cases to even. If the input is non finite the result is unspecified. */
+static inline double
+roundeven_finite (double x)
+{
+ if (!isfinite (x))
+ __builtin_unreachable ();
+#if ROUNDEVEN_INTRINSICS
+ return roundeven (x);
+#else
+ double y = round (x);
+ if (fabs (x - y) == 0.5)
+ {
+ union { double f; uint64_t i; } u = {y};
+ union { double f; uint64_t i; } v = {y - copysign (1.0, x)};
+ if (__builtin_ctzll (v.i) > __builtin_ctzll (u.i))
+ y = v.f;
+ }
+ return y;
+#endif
+}
+
static inline uint32_t
asuint (float f)
{
diff --git a/sysdeps/ieee754/flt-32/s_cbrtf.c b/sysdeps/ieee754/flt-32/s_cbrtf.c
index 68b8b0e..5a7a9a9 100644
--- a/sysdeps/ieee754/flt-32/s_cbrtf.c
+++ b/sysdeps/ieee754/flt-32/s_cbrtf.c
@@ -1,61 +1,99 @@
-/* Compute cubic root of float value.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
+/* Correctly-rounded cubic root of binary32 value.
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
+Copyright (c) 2023, 2024 Alexei Sibidanov.
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/cbrt/cbrtf.c, revision bc385c2).
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-#include <math.h>
-#include <libm-alias-float.h>
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
-#define CBRT2 1.2599210498948731648 /* 2^(1/3) */
-#define SQR_CBRT2 1.5874010519681994748 /* 2^(2/3) */
-
-static const double factor[5] =
-{
- 1.0 / SQR_CBRT2,
- 1.0 / CBRT2,
- 1.0,
- CBRT2,
- SQR_CBRT2
-};
-
+#include <fenv.h>
+#include <libm-alias-float.h>
+#include <math.h>
+#include <stdint.h>
+#include "math_config.h"
float
__cbrtf (float x)
{
- float xm, ym, u, t2;
- int xe;
-
- /* Reduce X. XM now is an range 1.0 to 0.5. */
- xm = __frexpf (fabsf (x), &xe);
-
- /* If X is not finite or is null return it (with raising exceptions
- if necessary.
- Note: *Our* version of `frexp' sets XE to zero if the argument is
- Inf or NaN. This is not portable but faster. */
- if (xe == 0 && fpclassify (x) <= FP_ZERO)
- return x + x;
-
- u = (0.492659620528969547 + (0.697570460207922770
- - 0.191502161678719066 * xm) * xm);
-
- t2 = u * u * u;
-
- ym = u * (t2 + 2.0 * xm) / (2.0 * t2 + xm) * factor[2 + xe % 3];
-
- return __ldexpf (x > 0.0 ? ym : -ym, xe / 3);
+ static const union
+ {
+ double d;
+ uint64_t u;
+ } escale[3] =
+ {
+ { .d = 1.0 },
+ { .d = 0x1.428a2f98d728bp+0 }, /* 2^(1/3) */
+ { .d = 0x1.965fea53d6e3dp+0 }, /* 2^(2/3) */
+ };
+ uint32_t u = asuint (x);
+ uint32_t au = u << 1;
+ uint32_t sgn = u >> 31;
+ uint32_t e = au >> 24;
+ if (__glibc_unlikely (au < 1u << 24 || au >= 0xffu << 24))
+ {
+ if (au >= 0xffu << 24)
+ return x + x; /* inf, nan */
+ if (au == 0)
+ return x; /* +-0 */
+ int nz = __builtin_clz (au) - 7; /* subnormal */
+ au <<= nz;
+ e -= nz - 1;
+ }
+ uint32_t mant = au & 0xffffff;
+ e += 899;
+ uint32_t et = e / 3, it = e % 3;
+ uint64_t isc = escale[it].u;
+ isc += (int64_t) (et - 342) << 52;
+ isc |= (int64_t) sgn << 63;
+ double cvt2 = asdouble (isc);
+ static const double c[] =
+ {
+ 0x1.2319d352ea5d5p-1, 0x1.67ad8ee258d1ap-1, -0x1.9342edf9cbad9p-2,
+ 0x1.b6388fc510a75p-3, -0x1.6002455599e2fp-4, 0x1.7b096936192c4p-6,
+ -0x1.e5577187e8bf8p-9, 0x1.169ef81d6c34ep-12
+ };
+ double z = asdouble ((uint64_t) mant << 28 | UINT64_C(0x3ff) << 52);
+ double r0 = -0x1.9931c6c2d19d1p-6 / z;
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ double f = ((c[0] + z * c[1]) + z2 * (c[2] + z * c[3]))
+ + z4 * ((c[4] + z * c[5]) + z2 * (c[6] + z * c[7])) + r0;
+ double r = f * cvt2;
+ float ub = r;
+ float lb = r - cvt2 * 1.4182e-9;
+ if (__glibc_likely (ub == lb))
+ return ub;
+ const double u0 = -0x1.ab16ec65d138fp+3;
+ double h = f * f * f - z;
+ f -= (f * r0 * u0) * h;
+ r = f * cvt2;
+ uint64_t cvt1 = asuint64 (r);
+ ub = r;
+ int64_t m0 = cvt1 << 19;
+ int64_t m1 = m0 >> 63;
+ if (__glibc_unlikely ((m0 ^ m1) < (UINT64_C(1) << 31)))
+ {
+ cvt1 = (cvt1 + (UINT64_C(1) << 31)) & UINT64_C(0xffffffff00000000);
+ ub = asdouble (cvt1);
+ }
+ return ub;
}
libm_alias_float (__cbrt, cbrt)
diff --git a/sysdeps/ieee754/flt-32/s_erfcf.c b/sysdeps/ieee754/flt-32/s_erfcf.c
new file mode 100644
index 0000000..3dae2a0
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_erfcf.c
@@ -0,0 +1,187 @@
+/* Correctly-rounded complementary error function for the binary32 format
+
+Copyright (c) 2023, 2024 Alexei Sibidanov.
+
+This file is part of the CORE-MATH project
+project (file src/binary32/erfc/erfcf.c revision bc385c2).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include <errno.h>
+#include <math.h>
+#include <stdint.h>
+#include <libm-alias-float.h>
+#include "math_config.h"
+
+static const double E[] =
+ {
+ 0x1p+0, 0x1.0163da9fb3335p+0, 0x1.02c9a3e778061p+0,
+ 0x1.04315e86e7f85p+0, 0x1.059b0d3158574p+0, 0x1.0706b29ddf6dep+0,
+ 0x1.0874518759bc8p+0, 0x1.09e3ecac6f383p+0, 0x1.0b5586cf9890fp+0,
+ 0x1.0cc922b7247f7p+0, 0x1.0e3ec32d3d1a2p+0, 0x1.0fb66affed31bp+0,
+ 0x1.11301d0125b51p+0, 0x1.12abdc06c31ccp+0, 0x1.1429aaea92dep+0,
+ 0x1.15a98c8a58e51p+0, 0x1.172b83c7d517bp+0, 0x1.18af9388c8deap+0,
+ 0x1.1a35beb6fcb75p+0, 0x1.1bbe084045cd4p+0, 0x1.1d4873168b9aap+0,
+ 0x1.1ed5022fcd91dp+0, 0x1.2063b88628cd6p+0, 0x1.21f49917ddc96p+0,
+ 0x1.2387a6e756238p+0, 0x1.251ce4fb2a63fp+0, 0x1.26b4565e27cddp+0,
+ 0x1.284dfe1f56381p+0, 0x1.29e9df51fdee1p+0, 0x1.2b87fd0dad99p+0,
+ 0x1.2d285a6e4030bp+0, 0x1.2ecafa93e2f56p+0, 0x1.306fe0a31b715p+0,
+ 0x1.32170fc4cd831p+0, 0x1.33c08b26416ffp+0, 0x1.356c55f929ff1p+0,
+ 0x1.371a7373aa9cbp+0, 0x1.38cae6d05d866p+0, 0x1.3a7db34e59ff7p+0,
+ 0x1.3c32dc313a8e5p+0, 0x1.3dea64c123422p+0, 0x1.3fa4504ac801cp+0,
+ 0x1.4160a21f72e2ap+0, 0x1.431f5d950a897p+0, 0x1.44e086061892dp+0,
+ 0x1.46a41ed1d0057p+0, 0x1.486a2b5c13cdp+0, 0x1.4a32af0d7d3dep+0,
+ 0x1.4bfdad5362a27p+0, 0x1.4dcb299fddd0dp+0, 0x1.4f9b2769d2ca7p+0,
+ 0x1.516daa2cf6642p+0, 0x1.5342b569d4f82p+0, 0x1.551a4ca5d920fp+0,
+ 0x1.56f4736b527dap+0, 0x1.58d12d497c7fdp+0, 0x1.5ab07dd485429p+0,
+ 0x1.5c9268a5946b7p+0, 0x1.5e76f15ad2148p+0, 0x1.605e1b976dc09p+0,
+ 0x1.6247eb03a5585p+0, 0x1.6434634ccc32p+0, 0x1.6623882552225p+0,
+ 0x1.68155d44ca973p+0, 0x1.6a09e667f3bcdp+0, 0x1.6c012750bdabfp+0,
+ 0x1.6dfb23c651a2fp+0, 0x1.6ff7df9519484p+0, 0x1.71f75e8ec5f74p+0,
+ 0x1.73f9a48a58174p+0, 0x1.75feb564267c9p+0, 0x1.780694fde5d3fp+0,
+ 0x1.7a11473eb0187p+0, 0x1.7c1ed0130c132p+0, 0x1.7e2f336cf4e62p+0,
+ 0x1.80427543e1a12p+0, 0x1.82589994cce13p+0, 0x1.8471a4623c7adp+0,
+ 0x1.868d99b4492edp+0, 0x1.88ac7d98a6699p+0, 0x1.8ace5422aa0dbp+0,
+ 0x1.8cf3216b5448cp+0, 0x1.8f1ae99157736p+0, 0x1.9145b0b91ffc6p+0,
+ 0x1.93737b0cdc5e5p+0, 0x1.95a44cbc8520fp+0, 0x1.97d829fde4e5p+0,
+ 0x1.9a0f170ca07bap+0, 0x1.9c49182a3f09p+0, 0x1.9e86319e32323p+0,
+ 0x1.a0c667b5de565p+0, 0x1.a309bec4a2d33p+0, 0x1.a5503b23e255dp+0,
+ 0x1.a799e1330b358p+0, 0x1.a9e6b5579fdbfp+0, 0x1.ac36bbfd3f37ap+0,
+ 0x1.ae89f995ad3adp+0, 0x1.b0e07298db666p+0, 0x1.b33a2b84f15fbp+0,
+ 0x1.b59728de5593ap+0, 0x1.b7f76f2fb5e47p+0, 0x1.ba5b030a1064ap+0,
+ 0x1.bcc1e904bc1d2p+0, 0x1.bf2c25bd71e09p+0, 0x1.c199bdd85529cp+0,
+ 0x1.c40ab5fffd07ap+0, 0x1.c67f12e57d14bp+0, 0x1.c8f6d9406e7b5p+0,
+ 0x1.cb720dcef9069p+0, 0x1.cdf0b555dc3fap+0, 0x1.d072d4a07897cp+0,
+ 0x1.d2f87080d89f2p+0, 0x1.d5818dcfba487p+0, 0x1.d80e316c98398p+0,
+ 0x1.da9e603db3285p+0, 0x1.dd321f301b46p+0, 0x1.dfc97337b9b5fp+0,
+ 0x1.e264614f5a129p+0, 0x1.e502ee78b3ff6p+0, 0x1.e7a51fbc74c83p+0,
+ 0x1.ea4afa2a490dap+0, 0x1.ecf482d8e67f1p+0, 0x1.efa1bee615a27p+0,
+ 0x1.f252b376bba97p+0, 0x1.f50765b6e454p+0, 0x1.f7bfdad9cbe14p+0,
+ 0x1.fa7c1819e90d8p+0, 0x1.fd3c22b8f71f1p+0
+ };
+
+float
+__erfcf (float xf)
+{
+ float axf = fabsf (xf);
+ double axd = axf;
+ double x2 = axd * axd;
+ uint32_t t = asuint (xf);
+ unsigned int at = t & (~0u >> 1);
+ unsigned int sgn = t >> 31;
+ int64_t i = at > 0x40051000;
+ /* for x < -0x1.ea8f94p+1, erfc(x) rounds to 2 (to nearest) */
+ if (__glibc_unlikely (t > 0xc07547ca))
+ { /* xf < -0x1.ea8f94p+1 */
+ if (__glibc_unlikely (t >= 0xff800000))
+ { /* -Inf or NaN */
+ if (t == 0xff800000)
+ return 2.0f; /* -Inf */
+ return xf + xf; /* NaN */
+ }
+ return 2.0f - 0x1p-25f; /* rounds to 2 or nextbelow(2) */
+ }
+ /* at is the absolute value of xf
+ for x >= 0x1.41bbf8p+3, erfc(x) < 2^-150, thus rounds to 0 or to 2^-149
+ depending on the rounding mode */
+ if (__glibc_unlikely (at >= 0x4120ddfc))
+ { /* |xf| >= 0x1.41bbf8p+3 */
+ if (__glibc_unlikely (at >= 0x7f800000))
+ { /* +Inf or NaN */
+ if (at == 0x7f800000)
+ return 0.0f; /* +Inf */
+ return xf + xf; /* NaN */
+ }
+ __set_errno (ERANGE);
+ /* 0x1p-149f * 0.25f rounds to 0 or 2^-149 depending on rounding */
+ return 0x1p-149f * 0.25f;
+ }
+ if (__glibc_unlikely (at <= 0x3db80000))
+ { /* |x| <= 0x1.7p-4 */
+ if (__glibc_unlikely (t == 0xb76c9f62))
+ return 0x1.00010ap+0f + 0x1p-25f; /* exceptional case */
+ /* for |x| <= 0x1.c5bf88p-26. erfc(x) rounds to 1 (to nearest) */
+ if (__glibc_unlikely (at <= 0x32e2dfc4))
+ { /* |x| <= 0x1.c5bf88p-26 */
+ if (__glibc_unlikely (at == 0))
+ return 1.0f;
+ static const float d[] = { -0x1p-26, 0x1p-25 };
+ return 1.0f + d[sgn];
+ }
+ /* around 0, erfc(x) behaves as 1 - (odd polynomial) */
+ static const double c[] =
+ {
+ 0x1.20dd750429b6dp+0, -0x1.812746b03610bp-2, 0x1.ce2f218831d2fp-4,
+ -0x1.b82c609607dcbp-6, 0x1.553af09b8008ep-8
+ };
+ double f0 = xf
+ * (c[0] + x2 * (c[1] + x2 * (c[2] + x2 * (c[3] + x2 * (c[4])))));
+ return 1.0 - f0;
+ }
+
+ /* now -0x1.ea8f94p+1 <= x <= 0x1.41bbf8p+3, with |x| > 0x1.7p-4 */
+ const double iln2 = 0x1.71547652b82fep+0;
+ const double ln2h = 0x1.62e42fefap-8;
+ const double ln2l = 0x1.cf79abd6f5dc8p-47;
+ uint64_t jt = asuint64 (fma (x2, iln2, -(1024 + 0x1p-8)));
+ int64_t j = (int64_t) (jt << 12) >> 48;
+ double S = asdouble (((j >> 7) + (0x3ff | sgn << 11)) << 52);
+ static const double ch[] =
+ {
+ -0x1.ffffffffff333p-2, 0x1.5555555556a14p-3, -0x1.55556666659b4p-5,
+ 0x1.1111074cc7b22p-7
+ };
+ double d = (x2 + ln2h * j) + ln2l * j;
+ double d2 = d * d;
+ double e0 = E[j & 127];
+ double f = d + d2 * ((ch[0] + d * ch[1]) + d2 * (ch[2] + d * ch[3]));
+ static const double ct[][16] =
+ {
+ {
+ 0x1.c162355429b28p-1, 0x1.d99999999999ap+1, 0x1.da951cece2b85p-2,
+ -0x1.70ef6cff4bcc4p+0, 0x1.3d7f7b3d617dep+1, -0x1.9d0aa47537c51p+1,
+ 0x1.9754ea9a3fcb1p+1, -0x1.27a5453fcc015p+1, 0x1.1ef2e0531aebap+0,
+ -0x1.eca090f5a1c06p-3, -0x1.7a3cd173a063cp-4, 0x1.30fa68a68fdddp-4,
+ 0x1.55ad9a326993ap-10, -0x1.07e7b0bb39fbfp-6, 0x1.2328706c0e95p-10,
+ 0x1.d6aa0b7b19cfep-9
+ },
+ {
+ 0x1.137c8983f8516p+2, 0x1.799999999999ap+1, 0x1.05b53aa241333p-3,
+ -0x1.a3f53872bf87p-3, 0x1.de4c30742c9d5p-4, -0x1.cb24bfa591986p-5,
+ 0x1.666aec059ca5fp-6, -0x1.a61250eb26b0bp-8, 0x1.2b28b7924b34dp-10,
+ 0x1.41b13a9d45013p-15, -0x1.6dd5e8a273613p-14, 0x1.09ce8ea5e8da5p-16,
+ 0x1.33923b4102981p-18, -0x1.1dfd161e3f984p-19, -0x1.c87618fcae3b3p-23,
+ 0x1.e8a6ffa0ba2c7p-23
+ }
+ };
+ double z = (axd - ct[i][0]) / (axd + ct[i][1]);
+ double z2 = z * z, z4 = z2 * z2;
+ double z8 = z4 * z4;
+ const double *c = ct[i] + 3;
+ double s = (((c[0] + z * c[1]) + z2 * (c[2] + z * c[3]))
+ + z4 * ((c[4] + z * c[5]) + z2 * (c[6] + z * c[7])))
+ + z8 * (((c[8] + z * c[9]) + z2 * (c[10] + z * c[11])) + z4 * (c[12]));
+ s = ct[i][2] + z * s;
+ static const double off[] = { 0, 2 };
+ double r = (S * (e0 - f * e0)) * s;
+ double y = off[sgn] + r;
+ return y;
+}
+libm_alias_float (__erfc, erfc)
diff --git a/sysdeps/ieee754/flt-32/s_erff.c b/sysdeps/ieee754/flt-32/s_erff.c
index ba29734..025c207 100644
--- a/sysdeps/ieee754/flt-32/s_erff.c
+++ b/sysdeps/ieee754/flt-32/s_erff.c
@@ -1,232 +1,256 @@
-/* s_erff.c -- float version of s_erf.c.
- */
+/* Correctly-rounded error function for binary32 value.
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+Copyright (c) 2022-2024 Alexei Sibidanov.
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: s_erff.c,v 1.4 1995/05/10 20:47:07 jtc Exp $";
-#endif
+This file is part of the CORE-MATH project
+project (file src/binary32/erf/erff.c revision bc385c2).
-#include <errno.h>
-#include <float.h>
-#include <math.h>
-#include <math-narrow-eval.h>
-#include <math_private.h>
-#include <math-underflow.h>
-#include <libm-alias-float.h>
-#include <fix-int-fp-convert-zero.h>
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-static const float
-tiny = 1e-30,
-half= 5.0000000000e-01, /* 0x3F000000 */
-one = 1.0000000000e+00, /* 0x3F800000 */
-two = 2.0000000000e+00, /* 0x40000000 */
- /* c = (subfloat)0.84506291151 */
-erx = 8.4506291151e-01, /* 0x3f58560b */
-/*
- * Coefficients for approximation to erf on [0,0.84375]
- */
-efx = 1.2837916613e-01, /* 0x3e0375d4 */
-pp0 = 1.2837916613e-01, /* 0x3e0375d4 */
-pp1 = -3.2504209876e-01, /* 0xbea66beb */
-pp2 = -2.8481749818e-02, /* 0xbce9528f */
-pp3 = -5.7702702470e-03, /* 0xbbbd1489 */
-pp4 = -2.3763017452e-05, /* 0xb7c756b1 */
-qq1 = 3.9791721106e-01, /* 0x3ecbbbce */
-qq2 = 6.5022252500e-02, /* 0x3d852a63 */
-qq3 = 5.0813062117e-03, /* 0x3ba68116 */
-qq4 = 1.3249473704e-04, /* 0x390aee49 */
-qq5 = -3.9602282413e-06, /* 0xb684e21a */
-/*
- * Coefficients for approximation to erf in [0.84375,1.25]
- */
-pa0 = -2.3621185683e-03, /* 0xbb1acdc6 */
-pa1 = 4.1485610604e-01, /* 0x3ed46805 */
-pa2 = -3.7220788002e-01, /* 0xbebe9208 */
-pa3 = 3.1834661961e-01, /* 0x3ea2fe54 */
-pa4 = -1.1089469492e-01, /* 0xbde31cc2 */
-pa5 = 3.5478305072e-02, /* 0x3d1151b3 */
-pa6 = -2.1663755178e-03, /* 0xbb0df9c0 */
-qa1 = 1.0642088205e-01, /* 0x3dd9f331 */
-qa2 = 5.4039794207e-01, /* 0x3f0a5785 */
-qa3 = 7.1828655899e-02, /* 0x3d931ae7 */
-qa4 = 1.2617121637e-01, /* 0x3e013307 */
-qa5 = 1.3637083583e-02, /* 0x3c5f6e13 */
-qa6 = 1.1984500103e-02, /* 0x3c445aa3 */
-/*
- * Coefficients for approximation to erfc in [1.25,1/0.35]
- */
-ra0 = -9.8649440333e-03, /* 0xbc21a093 */
-ra1 = -6.9385856390e-01, /* 0xbf31a0b7 */
-ra2 = -1.0558626175e+01, /* 0xc128f022 */
-ra3 = -6.2375331879e+01, /* 0xc2798057 */
-ra4 = -1.6239666748e+02, /* 0xc322658c */
-ra5 = -1.8460508728e+02, /* 0xc3389ae7 */
-ra6 = -8.1287437439e+01, /* 0xc2a2932b */
-ra7 = -9.8143291473e+00, /* 0xc11d077e */
-sa1 = 1.9651271820e+01, /* 0x419d35ce */
-sa2 = 1.3765776062e+02, /* 0x4309a863 */
-sa3 = 4.3456588745e+02, /* 0x43d9486f */
-sa4 = 6.4538726807e+02, /* 0x442158c9 */
-sa5 = 4.2900814819e+02, /* 0x43d6810b */
-sa6 = 1.0863500214e+02, /* 0x42d9451f */
-sa7 = 6.5702495575e+00, /* 0x40d23f7c */
-sa8 = -6.0424413532e-02, /* 0xbd777f97 */
-/*
- * Coefficients for approximation to erfc in [1/.35,28]
- */
-rb0 = -9.8649431020e-03, /* 0xbc21a092 */
-rb1 = -7.9928326607e-01, /* 0xbf4c9dd4 */
-rb2 = -1.7757955551e+01, /* 0xc18e104b */
-rb3 = -1.6063638306e+02, /* 0xc320a2ea */
-rb4 = -6.3756646729e+02, /* 0xc41f6441 */
-rb5 = -1.0250950928e+03, /* 0xc480230b */
-rb6 = -4.8351919556e+02, /* 0xc3f1c275 */
-sb1 = 3.0338060379e+01, /* 0x41f2b459 */
-sb2 = 3.2579251099e+02, /* 0x43a2e571 */
-sb3 = 1.5367296143e+03, /* 0x44c01759 */
-sb4 = 3.1998581543e+03, /* 0x4547fdbb */
-sb5 = 2.5530502930e+03, /* 0x451f90ce */
-sb6 = 4.7452853394e+02, /* 0x43ed43a7 */
-sb7 = -2.2440952301e+01; /* 0xc1b38712 */
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-float __erff(float x)
-{
- int32_t hx,ix,i;
- float R,S,P,Q,s,y,z,r;
- GET_FLOAT_WORD(hx,x);
- ix = hx&0x7fffffff;
- if(ix>=0x7f800000) { /* erf(nan)=nan */
- i = ((uint32_t)hx>>31)<<1;
- return (float)(1-i)+one/x; /* erf(+-inf)=+-1 */
- }
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
- if(ix < 0x3f580000) { /* |x|<0.84375 */
- if(ix < 0x31800000) { /* |x|<2**-28 */
- if (ix < 0x04000000)
- {
- /* Avoid spurious underflow. */
- float ret = 0.0625f * (16.0f * x + (16.0f * efx) * x);
- math_check_force_underflow (ret);
- return ret;
- }
- return x + efx*x;
- }
- z = x*x;
- r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
- s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
- y = r/s;
- return x + x*y;
- }
- if(ix < 0x3fa00000) { /* 0.84375 <= |x| < 1.25 */
- s = fabsf(x)-one;
- P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
- Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
- if(hx>=0) return erx + P/Q; else return -erx - P/Q;
- }
- if (ix >= 0x40c00000) { /* inf>|x|>=6 */
- if(hx>=0) return one-tiny; else return tiny-one;
- }
- x = fabsf(x);
- s = one/(x*x);
- if(ix< 0x4036DB6E) { /* |x| < 1/0.35 */
- R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(
- ra5+s*(ra6+s*ra7))))));
- S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(
- sa5+s*(sa6+s*(sa7+s*sa8)))))));
- } else { /* |x| >= 1/0.35 */
- R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(
- rb5+s*rb6)))));
- S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
- sb5+s*(sb6+s*sb7))))));
- }
- GET_FLOAT_WORD(ix,x);
- SET_FLOAT_WORD(z,ix&0xfffff000);
- r = __ieee754_expf(-z*z-(float)0.5625)*__ieee754_expf((z-x)*(z+x)+R/S);
- if(hx>=0) return one-r/x; else return r/x-one;
-}
-libm_alias_float (__erf, erf)
+#include <math.h>
+#include <stdint.h>
+#include <libm-alias-float.h>
+#include "math_config.h"
-float __erfcf(float x)
+float
+__erff (float x)
{
- int32_t hx,ix;
- float R,S,P,Q,s,y,z,r;
- GET_FLOAT_WORD(hx,x);
- ix = hx&0x7fffffff;
- if(ix>=0x7f800000) { /* erfc(nan)=nan */
- /* erfc(+-inf)=0,2 */
- float ret = (float)(((uint32_t)hx>>31)<<1)+one/x;
- if (FIX_INT_FP_CONVERT_ZERO && ret == 0.0f)
- return 0.0f;
- return ret;
- }
-
- if(ix < 0x3f580000) { /* |x|<0.84375 */
- if(ix < 0x32800000) /* |x|<2**-26 */
- return one-x;
- z = x*x;
- r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
- s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
- y = r/s;
- if(hx < 0x3e800000) { /* x<1/4 */
- return one-(x+x*y);
- } else {
- r = x*y;
- r += (x-half);
- return half - r ;
- }
- }
- if(ix < 0x3fa00000) { /* 0.84375 <= |x| < 1.25 */
- s = fabsf(x)-one;
- P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
- Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
- if(hx>=0) {
- z = one-erx; return z - P/Q;
- } else {
- z = erx+P/Q; return one+z;
- }
- }
- if (ix < 0x41e00000) { /* |x|<28 */
- x = fabsf(x);
- s = one/(x*x);
- if(ix< 0x4036DB6D) { /* |x| < 1/.35 ~ 2.857143*/
- R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(
- ra5+s*(ra6+s*ra7))))));
- S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(
- sa5+s*(sa6+s*(sa7+s*sa8)))))));
- } else { /* |x| >= 1/.35 ~ 2.857143 */
- if(hx<0&&ix>=0x40c00000) return two-tiny;/* x < -6 */
- R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(
- rb5+s*rb6)))));
- S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
- sb5+s*(sb6+s*sb7))))));
- }
- GET_FLOAT_WORD(ix,x);
- SET_FLOAT_WORD(z,ix&0xffffe000);
- r = __ieee754_expf(-z*z-(float)0.5625)*
- __ieee754_expf((z-x)*(z+x)+R/S);
- if(hx>0) {
- float ret = math_narrow_eval (r/x);
- if (ret == 0)
- __set_errno (ERANGE);
- return ret;
- } else
- return two-r/x;
- } else {
- if(hx>0) {
- __set_errno (ERANGE);
- return tiny*tiny;
- } else
- return two-tiny;
- }
+ /* for 7 <= i < 63, C[i-7] is a degree-7 polynomial approximation of
+ erf(i/16+1/32+x) for -1/32 <= x <= 1/32 */
+ static const double C[56][8] = {
+ { 0x1.f86faa9428f9cp-2, 0x1.cfc41e36c7dfap-1, -0x1.b2c7dc53508b9p-2,
+ -0x1.5a9de93fa556ep-3, 0x1.731793dbb01b5p-3, 0x1.133e06426cf18p-6,
+ -0x1.a12a6289cafd8p-5, 0x1.717d6f1d6f557p-9 },
+ { 0x1.1855a5fd3dd50p-1, 0x1.b3aafcc27502fp-1, -0x1.cee5ac8e92bb2p-2,
+ -0x1.fa02983ca2d79p-4, 0x1.77cd746cb1922p-3, -0x1.fa6f277886487p-10,
+ -0x1.8de75458db416p-5, 0x1.00899c98551c9p-7 },
+ { 0x1.32a54cb8db67ap-1, 0x1.96164fafd8de5p-1, -0x1.e23a7ea0c9ad3p-2,
+ -0x1.3f5ee15671cf4p-4, 0x1.70e468a3d72d9p-3, -0x1.3da68037cfc99p-6,
+ -0x1.69ed9ba1f9839p-5, 0x1.8cab9244a4ff4p-7 },
+ { 0x1.4b13713ad3513p-1, 0x1.7791b886e7405p-1, -0x1.ecef423109bf5p-2,
+ -0x1.15c3c5cec6847p-5, 0x1.5f688fc931ba6p-3, -0x1.1da63ed190037p-5,
+ -0x1.38427ca63cca4p-5, 0x1.fa00e52525e17p-7 },
+ { 0x1.61955607dd15dp-1, 0x1.58a445da7c74ep-1, -0x1.ef6c246a0f66cp-2,
+ 0x1.e83e0d9d61330p-8, 0x1.44cc65535bc9fp-3, -0x1.87d3c4860435dp-5,
+ -0x1.f90b10501169bp-6, 0x1.22295856d427ap-6 },
+ { 0x1.762870f720c6fp-1, 0x1.39ccc1b136d5cp-1, -0x1.ea4feea4e4744p-2,
+ 0x1.715e5952ebfbap-5, 0x1.22cdbd83c75c4p-3, -0x1.da50aa1d925b6p-5,
+ -0x1.754dc0a29b4ddp-6, 0x1.350b6bef9392cp-6 },
+ { 0x1.88d1cd474a2e0p-1, 0x1.1b7e98fe26219p-1, -0x1.de65a22ce1419p-2,
+ 0x1.40686a3f16400p-4, 0x1.f6b0cbb216b2bp-4, -0x1.09c7c903edd57p-4,
+ -0x1.da7529fde641p-7, 0x1.362a7a0588eabp-6 },
+ { 0x1.999d4192a5717p-1, 0x1.fc3ee5d1524b3p-2, -0x1.cc990045b55c8p-2,
+ 0x1.b37338e68b37dp-4, 0x1.a0d120c872ea7p-4, -0x1.19bb2b07ecff6p-4,
+ -0x1.a110f5f593aafp-8, 0x1.272c15a57720ep-6 },
+ { 0x1.a89c850b7d54dp-1, 0x1.c40b0729ed54ap-2, -0x1.b5eaaef0a2346p-2,
+ 0x1.0847c7dacbae1p-3, 0x1.47de0ba6d18fbp-4, -0x1.1d9de77a4b648p-4,
+ 0x1.30ffbe56f0726p-10, 0x1.0a9cb99feea01p-6 },
+ { 0x1.b5e62fce16096p-1, 0x1.8eed36b886d95p-2, -0x1.9b64a06e50705p-2,
+ 0x1.2bb6e2c744df5p-3, 0x1.dee3261ca61bcp-5, -0x1.16996004f7da5p-4,
+ 0x1.fdff37bae983ep-8, 0x1.c750083e65f9ap-7 },
+ { 0x1.c194b1d49a184p-1, 0x1.5d4fd33729015p-2, -0x1.7e0f4f045addbp-2,
+ 0x1.444bc66c31a1bp-3, 0x1.356dbf16ec8f1p-5, -0x1.0643de0906cd8p-4,
+ 0x1.b281af7bd3a2cp-7, 0x1.6b97eaa2c6abdp-7 },
+ { 0x1.cbc54b476248ep-1, 0x1.2f7cc3fe6f423p-2, -0x1.5ee8429e36de8p-2,
+ 0x1.52a8395f96177p-3, 0x1.313761ba257dcp-6, -0x1.dcf844d5fed8fp-5,
+ 0x1.1e1420f475fa9p-6, 0x1.091c7dc1e18b2p-7 },
+ { 0x1.d4970f9ce00d9p-1, 0x1.059f59af7a905p-2, -0x1.3eda354de36c3p-2,
+ 0x1.57b85ad439779p-3, 0x1.8e913b9778136p-10, -0x1.a2893bd3435f4p-5,
+ 0x1.4d3a90e37164ap-6, 0x1.4ce7f6e19a902p-8 },
+ { 0x1.dc29fb60715b0p-1, 0x1.bf8e1b1ca2277p-3, -0x1.1eb7095e5d6d2p-2,
+ 0x1.549ea6f7a64f4p-3, -0x1.b10f12f3877a3p-7, -0x1.61420c8f7156ap-5,
+ 0x1.674f1f92a8812p-6, 0x1.25543ffd74d52p-9 },
+ { 0x1.e29e22a89d767p-1, 0x1.7bd5c7df3fe99p-3, -0x1.fe674494077bfp-3,
+ 0x1.4a9feacf86578p-3, -0x1.a008269076644p-6, -0x1.1cf0e8fb4f1cbp-5,
+ 0x1.6e0d2ef105fb3p-6, -0x1.367205fbd7876p-12 },
+ { 0x1.e812fc64db36ap-1, 0x1.3fda6bc016991p-3, -0x1.c1cb278627920p-3,
+ 0x1.3b10512314f1ep-3, -0x1.1e6457bb1b9a9p-5, -0x1.b1f6474e2388cp-6,
+ 0x1.640a5345f7ec7p-6, -0x1.3dae5a997fdbp-9 },
+ { 0x1.eca6ccd709544p-1, 0x1.0b3f52ce8c380p-3, -0x1.8885019f63c6dp-3,
+ 0x1.274275fc91a05p-3, -0x1.57f73699a8372p-5, -0x1.3076a305fc7cep-6,
+ 0x1.4c6ae04843a41p-6, -0x1.0be5fcf5ecc91p-8 },
+ { 0x1.f0762fde45ee7p-1, 0x1.bb1c972f23e4ap-4, -0x1.5341e3c01b58dp-3,
+ 0x1.107929f6f0b60p-3, -0x1.7e1b34f976c02p-5, -0x1.73b62589c234ap-7,
+ 0x1.2a97ee1876486p-6, -0x1.595f40a3150fep-8 },
+ { 0x1.f39bc242e43e6p-1, 0x1.6c7e64e7281c5p-4, -0x1.2274b86835fd3p-3,
+ 0x1.efb890e5c770dp-4, -0x1.92c7db16847e0p-5, -0x1.45477db5e2dd4p-8,
+ 0x1.01fc6165fc866p-6, -0x1.8845509030c2cp-8 },
+ { 0x1.f62fe80272419p-1, 0x1.297db960e4f5dp-4, -0x1.ecb83b087c04fp-4,
+ 0x1.bce18363ca3d1p-4, -0x1.985aaf776482cp-5, 0x1.cd953efdae886p-12,
+ 0x1.ab9a0b89b54ffp-7, -0x1.9b5e576ccc31cp-8 },
+ { 0x1.f848acb544e95p-1, 0x1.e1d4cf1e24501p-5, -0x1.9e12e1fde5552p-4,
+ 0x1.8a27806df3d1bp-4, -0x1.91674e5eb3319p-5, 0x1.3bc75595b2db8p-8,
+ 0x1.51bc537ac61afp-7, -0x1.96b23b19ea04dp-8 },
+ { 0x1.f9f9ba8d3c733p-1, 0x1.83298d7172108p-5, -0x1.58d101f905a75p-4,
+ 0x1.58f1456f8639bp-4, -0x1.808d1850b8231p-5, 0x1.0c1bd99c348a7p-7,
+ 0x1.f61e9d7bc48cap-8, -0x1.7f07c13441774p-8 },
+ { 0x1.fb54641aebbc9p-1, 0x1.34ac36ad8dafap-5, -0x1.1c8ec267f9405p-4,
+ 0x1.2a52c5d841848p-4, -0x1.68541c02b3b6bp-5, 0x1.5afe400196379p-7,
+ 0x1.565b2d6eda3d6p-8, -0x1.596aaff29e739p-8 },
+ { 0x1.fc67bcf2d7b8fp-1, 0x1.e85c449e377efp-6, -0x1.d177f166c07c6p-5,
+ 0x1.fe23b7584b504p-5, -0x1.4b12109613313p-5, 0x1.8d9905c0acf7dp-7,
+ 0x1.9265032a669dap-9, -0x1.2ac4a6dbcbf3ep-8 },
+ { 0x1.fd40bd6d7a785p-1, 0x1.7f5188610ddc7p-6, -0x1.7954423f7c998p-5,
+ 0x1.af5baae33887fp-5, -0x1.2ad77c7cbc474p-5, 0x1.a7b8c47ec2a51p-7,
+ 0x1.46646ee094bccp-10, -0x1.ef19d8db8673p-9 },
+ { 0x1.fdea6e062d0c9p-1, 0x1.2a875b5ffab58p-6, -0x1.2f3178cd6dcd5p-5,
+ 0x1.68d1c45b94182p-5, -0x1.09648ed3aeaefp-5, 0x1.ad8b150d38164p-7,
+ -0x1.e9a6023d9429fp-13, -0x1.8722d19ee2e8ep-9 },
+ { 0x1.fe6e1742f7cf5p-1, 0x1.cd5ec93c1243ap-7, -0x1.e2ff3aaacb386p-6,
+ 0x1.2aa4e5823cc89p-5, -0x1.d049842dbe399p-6, 0x1.a34edb21ab302p-7,
+ -0x1.676e5996c7f9bp-10, -0x1.23b01a35140bfp-9 },
+ { 0x1.fed37386190fbp-1, 0x1.61beae53b72c2p-7, -0x1.7d6193f22c3c1p-6,
+ 0x1.e947279e3bb7dp-6, -0x1.906031b97ca97p-6, 0x1.8d14d62561755p-7,
+ -0x1.1f245e7178882p-9, -0x1.9257d4eb47685p-10 },
+ { 0x1.ff20e0a7ba8c2p-1, 0x1.0d1d69569b839p-7, -0x1.2a8ca0dc02752p-6,
+ 0x1.8cc071b709751p-6, -0x1.54a149f1b070cp-6, 0x1.6e9137b13412cp-7,
+ -0x1.6577ed3d8e83bp-9, -0x1.e9c1a5178a289p-11 },
+ { 0x1.ff5b8fb26f5f6p-1, 0x1.9646f35a7663cp-8, -0x1.cf68ed9311b0bp-7,
+ 0x1.3e8735b5a694fp-6, -0x1.1e1612d026fdfp-6, 0x1.4afd8e6ca636dp-7,
+ -0x1.8c375170ccb22p-9, -0x1.c799443c4fd3bp-12 },
+ { 0x1.ff87b1913e853p-1, 0x1.30499b5039596p-8, -0x1.64964201ec8bap-7,
+ 0x1.fa73d7eafba98p-7, -0x1.daa3022141fbbp-7, 0x1.2509444c063b7p-7,
+ -0x1.99482a2f8a0a1p-9, -0x1.403d1f76c9454p-15 },
+ { 0x1.ffa89fe5b3625p-1, 0x1.c4412bf4b8f35p-9, -0x1.100f347126cf0p-7,
+ 0x1.8ebda07671d40p-7, -0x1.850c6a31c98c1p-7, 0x1.fdac860c67d21p-8,
+ -0x1.927d03d2ba12cp-9, 0x1.0ff620b4190fep-12 },
+ { 0x1.ffc10194fcb64p-1, 0x1.4d78bba8ca621p-9, -0x1.9ba107a443e02p-8,
+ 0x1.36f273fbc04ccp-7, -0x1.3b38716ac7e6fp-7, 0x1.b3fe0181914acp-8,
+ -0x1.7d3fe7de98c5cp-9, 0x1.ea31f8e5317f7p-12 },
+ { 0x1.ffd2eae369a07p-1, 0x1.e7f232d9e266cp-10, -0x1.34c7442dd48d9p-8,
+ 0x1.e066bed070a0bp-8, -0x1.f914f3c42fc0dp-8, 0x1.6f4664ed2260fp-8,
+ -0x1.5e59910761d24p-9, 0x1.39cbb6e84c126p-11 },
+ { 0x1.ffdff92db56e5p-1, 0x1.6235fbd7a4373p-10, -0x1.cb5e029b9e56ap-9,
+ 0x1.6fa4c7ef274dap-8, -0x1.903a089a835f3p-8, 0x1.30f12e0ca1901p-8,
+ -0x1.39d21b6957f99p-9, 0x1.5d3f8495a703cp-11 },
+ { 0x1.ffe96a78a04a9p-1, 0x1.fe41cd9bb4f2cp-11, -0x1.52d7b28966c0cp-9,
+ 0x1.16c192d86a1a7p-8, -0x1.39bfce951100cp-8, 0x1.f376a7869f9e3p-9,
+ -0x1.12e6cef999c4fp-9, 0x1.66acd4d667b5p-11 },
+ { 0x1.fff0312b010b5p-1, 0x1.6caa0d3583018p-11, -0x1.efb729f4cf75bp-10,
+ 0x1.a2da7cebe12acp-9, -0x1.e6c27a24bc759p-9, 0x1.93b1f4d8ea65p-9,
+ -0x1.d82050aa94a08p-10, 0x1.5cd7dc75d6cbap-11 },
+ { 0x1.fff50456dab8cp-1, 0x1.0295ef6591865p-11, -0x1.679880e95a4dap-10,
+ 0x1.37d38e3a5c8ebp-9, -0x1.75b3708aebb8fp-9, 0x1.4231c4b4b0296p-9,
+ -0x1.8e26476489318p-10, 0x1.45c3b570dd924p-11 },
+ { 0x1.fff86cfd3e657p-1, 0x1.6be02102b353dp-12, -0x1.02b157780d6aep-10,
+ 0x1.cc1d886861133p-10, -0x1.1bff6f12ec9abp-9, 0x1.fc0f77bd9c736p-10,
+ -0x1.4a3320bd0959dp-10, 0x1.267f8b4f95d2p-11 },
+ { 0x1.fffad0b901755p-1, 0x1.fc0d55470cf5ep-13, -0x1.7121aff5e820ep-11,
+ 0x1.506d6992f7de5p-10, -0x1.ab595d3ecd0d6p-10, 0x1.8bdd79daaf754p-10,
+ -0x1.0d9b090f997c1p-10, 0x1.031ab9fd1c7dap-11 },
+ { 0x1.fffc7a37857d2p-1, 0x1.5feada379d8a5p-13, -0x1.05304df58f3aap-11,
+ 0x1.e79c081b8600fp-11, -0x1.3e5dbe33232e0p-10, 0x1.30eb208200729p-10,
+ -0x1.b1d493b147945p-11, 0x1.bd587bbc071bep-12 },
+ { 0x1.fffd9fdeabccep-1, 0x1.e3bcf436a1a49p-14, -0x1.6e953111ef0a1p-12,
+ 0x1.5e3edf6768654p-11, -0x1.d5be67c0547a4p-11, 0x1.d07d9ffa1d435p-11,
+ -0x1.58328f5f358cap-11, 0x1.76d42d95c42c4p-12 },
+ { 0x1.fffe68f4fa777p-1, 0x1.49e17724f4cddp-14, -0x1.fe48c44e229c1p-13,
+ 0x1.f2bd95d76f188p-12, -0x1.57388cb12d011p-11, 0x1.5decc25c5c079p-11,
+ -0x1.0d7499d1b0d2dp-11, 0x1.359332c94ecdcp-12 },
+ { 0x1.fffef1960d85dp-1, 0x1.be6abbb10a4cdp-15, -0x1.6040381a8c313p-13,
+ 0x1.5fff1dde9ee9dp-12, -0x1.f0c933efa9971p-12, 0x1.04cbf4a5cd760p-11,
+ -0x1.a07f150af6dadp-12, 0x1.f68dd183426bap-13 },
+ { 0x1.ffff4db27f146p-1, 0x1.2bb5cc22e5cd8p-15, -0x1.e25894899f526p-14,
+ 0x1.ec8a8e5a72757p-13, -0x1.64256ae0a3cf9p-12, 0x1.80a836c18c46cp-12,
+ -0x1.3dea401af6775p-12, 0x1.915ddff3fe0d1p-13 },
+ { 0x1.ffff8b500e77cp-1, 0x1.8f4ccca7fc769p-16, -0x1.478cffe305946p-14,
+ 0x1.559f04adde504p-13, -0x1.f9e1577d6961dp-13, 0x1.18bda53c14716p-12,
+ -0x1.df8634c35541cp-13, 0x1.3bb5c6b616337p-13 },
+ { 0x1.ffffb43555b5fp-1, 0x1.07ebd2a2d26c8p-16, -0x1.b93e442a37f2bp-15,
+ 0x1.d5cf15159ce28p-14, -0x1.63f5e1469c006p-13, 0x1.95a03acebac18p-13,
+ -0x1.656e5e2a1f8e2p-13, 0x1.e98c437189bdep-14 },
+ { 0x1.ffffcf23ff5fcp-1, 0x1.5a2adfa0b492cp-17, -0x1.26c88270759f0p-15,
+ 0x1.40473572b99a8p-14, -0x1.f057cbde578a5p-14, 0x1.22178d1c3c948p-13,
+ -0x1.0765b61a0d859p-13, 0x1.765b3ea03ddbep-14 },
+ { 0x1.ffffe0bd3e852p-1, 0x1.c282cd3957a72p-18, -0x1.86ad6dfa44faap-16,
+ 0x1.b0f313f03a029p-15, -0x1.56e44abecd255p-14, 0x1.9ad1ecfe34a89p-14,
+ -0x1.7fe4033478618p-14, 0x1.1a8184e049fbfp-14 },
+ { 0x1.ffffec2641a9ep-1, 0x1.22df29821407ep-18, -0x1.00c902a6cfd98p-16,
+ 0x1.22234eb88671fp-15, -0x1.d57a181c9e6e1p-15, 0x1.200c283b54a90p-14,
+ -0x1.14b4c3295a7d0p-14, 0x1.a4f966f713bdep-15 },
+ { 0x1.fffff37d63a36p-1, 0x1.74adc8f405eecp-19, -0x1.4ed4228e44858p-17,
+ 0x1.81918baea92bap-16, -0x1.3e81b17a0009cp-15, 0x1.9004a36116436p-15,
+ -0x1.8aa1ba400e076p-15, 0x1.35cd4e2340a9ep-15 },
+ { 0x1.fffff82cdcf1bp-1, 0x1.d9c73698fa87dp-20, -0x1.b11017ec67115p-18,
+ 0x1.fc0dfadf653f8p-17, -0x1.ac4e03cd2dfc2p-16, 0x1.131806b5abbc5p-15,
+ -0x1.1672ef66fcaafp-15, 0x1.c2882c7debed7p-16 },
+ { 0x1.fffffb248c39dp-1, 0x1.2acee2f5ec66ap-20, -0x1.15cc570408a36p-18,
+ 0x1.4be757bbb75a3p-17, -0x1.1d6aa5f8d2940p-16, 0x1.76c5937d5105ep-16,
+ -0x1.84dffc3ca9302p-16, 0x1.43c8315f2c30ap-16 },
+ { 0x1.fffffd01f36afp-1, 0x1.75fa8dbc840bap-21, -0x1.6186da0133f5ap-19,
+ 0x1.ae023231e1af5p-18, -0x1.790812f7ca394p-17, 0x1.f9c25656d0ef2p-17,
+ -0x1.0cc66682e304cp-16, 0x1.cc170a75d6f9cp-17 },
+ { 0x1.fffffe2ba0ea5p-1, 0x1.d06ad6ecde88ep-22, -0x1.be46aa8edc9a1p-20,
+ 0x1.143860c7840b8p-18, -0x1.edaba78fb1260p-18, 0x1.52138a96ecee2p-17,
+ -0x1.6fca538c4e2eep-17, 0x1.434040640bcefp-17 },
+ { 0x1.fffffee3cc32cp-1, 0x1.1e1e857adb8ddp-22, -0x1.1769ce5f2a6e8p-20,
+ 0x1.5fe5d479b0543p-19, -0x1.405d865c94c2ap-18, 0x1.bfc94feb96afcp-18,
+ -0x1.f245d5f3e8358p-18, 0x1.c142456acf443p-18 },
+ };
+ float ax = fabsf (x);
+ uint32_t ux = asuint (ax);
+ double s = x;
+ double z = ax;
+ /* 0x407ad444 corresponds to x = 0x1.f5a888p+1 = 3.91921..., which is the
+ largest float such that erf(x) does not round to 1 (to nearest). */
+ if (__glibc_unlikely (ux > 0x407ad444u))
+ {
+ float os = copysignf (1.0f, x);
+ if (ux > (0xffu << 23))
+ return x + x; /* nan */
+ if (ux == (0xffu << 23))
+ return os; /* +-inf */
+ return os - 0x1p-25f * os;
+ }
+ double v = floor (16.0 * z);
+ uint32_t i = 16.0f * ax;
+ /* 0x3ee00000 corresponds to x = 0.4375, for smaller x we have i < 7. */
+ if (__glibc_unlikely (ux < 0x3ee00000u))
+ {
+ static const double c[] =
+ {
+ 0x1.20dd750429b6dp+0, -0x1.812746b0375fbp-2,
+ 0x1.ce2f219fd6f45p-4, -0x1.b82ce2cbf0838p-6,
+ 0x1.565bb655adb85p-8, -0x1.c025bfc879c94p-11,
+ 0x1.f81718f61309cp-14, -0x1.cc67bd88f5867p-17
+ };
+ double z2 = s * s, z4 = z2 * z2, z8 = z4 * z4;
+ double c0 = c[0] + z2 * c[1];
+ double c2 = c[2] + z2 * c[3];
+ double c4 = c[4] + z2 * c[5];
+ double c6 = c[6] + z2 * c[7];
+ c0 += z4 * c2;
+ c4 += z4 * c6;
+ c0 += z8 * c4;
+ return s * c0;
+ }
+ z = (z - 0.03125) - 0.0625 * v;
+ const double *c = C[i - 7];
+ double z2 = z * z, z4 = z2 * z2;
+ double c0 = c[0] + z * c[1];
+ double c2 = c[2] + z * c[3];
+ double c4 = c[4] + z * c[5];
+ double c6 = c[6] + z * c[7];
+ c0 += z2 * c2;
+ c4 += z2 * c6;
+ c0 += z4 * c4;
+ return copysign (c0, s);
}
-libm_alias_float (__erfc, erfc)
+libm_alias_float (__erf, erf)
diff --git a/sysdeps/ieee754/flt-32/s_expm1f.c b/sysdeps/ieee754/flt-32/s_expm1f.c
index edd7c9a..a36e578 100644
--- a/sysdeps/ieee754/flt-32/s_expm1f.c
+++ b/sysdeps/ieee754/flt-32/s_expm1f.c
@@ -95,7 +95,7 @@ __expm1f (float x)
return __math_oflowf (0);
}
double a = iln2 * z;
- double ia = roundeven (a);
+ double ia = roundeven_finite (a);
double h = a - ia;
double h2 = h * h;
uint64_t u = asuint64 (ia + big);
diff --git a/sysdeps/ieee754/flt-32/s_tanf.c b/sysdeps/ieee754/flt-32/s_tanf.c
index ae6600b..dfe56fc 100644
--- a/sysdeps/ieee754/flt-32/s_tanf.c
+++ b/sysdeps/ieee754/flt-32/s_tanf.c
@@ -1,76 +1,180 @@
-/* s_tanf.c -- float version of s_tan.c.
- */
+/* Correctly-rounded tangent of binary32 value.
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+Copyright (c) 2022-2024 Alexei Sibidanov.
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: s_tanf.c,v 1.4 1995/05/10 20:48:20 jtc Exp $";
-#endif
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/tan/tanf.c, revision 59d21d7).
-#include <errno.h>
-#include <math.h>
-#include <math_private.h>
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include <array_length.h>
+#include <stdint.h>
#include <libm-alias-float.h>
-#include "s_sincosf.h"
+#include "math_config.h"
+#include <math_uint128.h>
-/* Reduce range of X to a multiple of PI/2. The modulo result is between
- -PI/4 and PI/4 and returned as a high part y[0] and a low part y[1].
- The low bit in the return value indicates the first or 2nd half of tanf. */
-static inline int32_t
-rem_pio2f (float x, float *y)
+/* argument reduction
+ for |z| < 2^28, return r such that 2/pi*x = q + r */
+static inline double
+rltl (float z, int *q)
{
- double dx = x;
- int n;
- const sincos_t *p = &__sincosf_table[0];
+ double x = z;
+ double idl = -0x1.b1bbead603d8bp-32 * x;
+ double idh = 0x1.45f306ep-1 * x;
+ double id = roundeven_finite (idh);
+ *q = (int64_t) id;
+ return (idh - id) + idl;
+}
- if (__glibc_likely (abstop12 (x) < abstop12 (120.0f)))
- dx = reduce_fast (dx, p, &n);
- else
+/* argument reduction
+ same as rltl, but for |x| >= 2^28 */
+static double __attribute__ ((noinline))
+rbig (uint32_t u, int *q)
+{
+ static const uint64_t ipi[] =
{
- uint32_t xi = asuint (x);
- int sign = xi >> 31;
-
- dx = reduce_large (xi, &n);
- dx = sign ? -dx : dx;
+ 0xfe5163abdebbc562, 0xdb6295993c439041,
+ 0xfc2757d1f534ddc0, 0xa2f9836e4e441529
+ };
+ int e = (u >> 23) & 0xff, i;
+ uint64_t m = (u & (~0u >> 9)) | 1 << 23;
+ u128 p0 = u128_mul (u128_from_u64 (m), u128_from_u64 (ipi[0]));
+ u128 p1 = u128_mul (u128_from_u64 (m), u128_from_u64 (ipi[1]));
+ p1 = u128_add (p1, u128_rshift (p0, 64));
+ u128 p2 = u128_mul (u128_from_u64 (m), u128_from_u64 (ipi[2]));
+ p2 = u128_add (p2, u128_rshift (p1, 64));
+ u128 p3 = u128_mul (u128_from_u64 (m), u128_from_u64 (ipi[3]));
+ p3 = u128_add (p3, u128_rshift (p2, 64));
+ uint64_t p3h = u128_high (p3);
+ uint64_t p3l = u128_low (p3);
+ uint64_t p2l = u128_low (p2);
+ uint64_t p1l = u128_low (p1);
+ int64_t a;
+ int k = e - 127, s = k - 23;
+ /* in ctanf(), rbig() is called in the case 127+28 <= e < 0xff
+ thus 155 <= e <= 254, which yields 28 <= k <= 127 and 5 <= s <= 104 */
+ if (s < 64)
+ {
+ i = p3h << s | p3l >> (64 - s);
+ a = p3l << s | p2l >> (64 - s);
}
-
- y[0] = dx;
- y[1] = dx - y[0];
- return n;
+ else if (s == 64)
+ {
+ i = p3l;
+ a = p2l;
+ }
+ else
+ { /* s > 64 */
+ i = p3l << (s - 64) | p2l >> (128 - s);
+ a = p2l << (s - 64) | p1l >> (128 - s);
+ }
+ int sgn = u;
+ sgn >>= 31;
+ int64_t sm = a >> 63;
+ i -= sm;
+ double z = (a ^ sgn) * 0x1p-64;
+ i = (i ^ sgn) - sgn;
+ *q = i;
+ return z;
}
-float __tanf(float x)
+float
+__tanf (float x)
{
- float y[2],z=0.0;
- int32_t n, ix;
-
- GET_FLOAT_WORD(ix,x);
-
- /* |x| ~< pi/4 */
- ix &= 0x7fffffff;
- if(ix <= 0x3f490fda) return __kernel_tanf(x,z,1);
-
- /* tan(Inf or NaN) is NaN */
- else if (ix>=0x7f800000) {
- if (ix==0x7f800000)
- __set_errno (EDOM);
- return x-x; /* NaN */
+ uint32_t t = asuint (x);
+ int e = (t >> 23) & 0xff;
+ int i;
+ double z;
+ if (__glibc_likely (e < 127 + 28)) /* |x| < 2^28 */
+ {
+ if (__glibc_unlikely (e < 115))
+ {
+ if (__glibc_unlikely (e < 102))
+ return fmaf (x, fabsf (x), x);
+ float x2 = x * x;
+ return fmaf (x, 0x1.555556p-2f * x2, x);
}
-
- /* argument reduction needed */
- else {
- n = rem_pio2f(x,y);
- return __kernel_tanf(y[0],y[1],1-((n&1)<<1)); /* 1 -- n even
- -1 -- n odd */
+ z = rltl (x, &i);
+ }
+ else if (e < 0xff)
+ z = rbig (t, &i);
+ else
+ {
+ if (t << 9)
+ return x + x; /* nan */
+ return __math_invalidf (x);
+ }
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ static const double cn[] =
+ {
+ 0x1.921fb54442d18p+0, -0x1.fd226e573289fp-2,
+ 0x1.b7a60c8dac9f6p-6, -0x1.725beb40f33e5p-13
+ };
+ static const double cd[] =
+ {
+ 0x1p+0, -0x1.2395347fb829dp+0,
+ 0x1.2313660f29c36p-3, -0x1.9a707ab98d1c1p-9
+ };
+ static const double s[] = { 0, 1 };
+ double n = cn[0] + z2 * cn[1];
+ double n2 = cn[2] + z2 * cn[3];
+ n += z4 * n2;
+ double d = cd[0] + z2 * cd[1];
+ double d2 = cd[2] + z2 * cd[3];
+ d += z4 * d2;
+ n *= z;
+ double s0 = s[i & 1];
+ double s1 = s[1 - (i & 1)];
+ double r1 = (n * s1 - d * s0) / (n * s0 + d * s1);
+ uint64_t tail = (asuint64 (r1) + 7) & (~UINT64_C(0) >> 35);
+ if (__glibc_unlikely (tail <= 14))
+ {
+ static const struct
+ {
+ float arg;
+ float rh;
+ float rl;
+ } st[] = {
+ { 0x1.143ec4p+0f, 0x1.ddf9f6p+0f, -0x1.891d24p-52f },
+ { 0x1.ada6aap+27f, 0x1.e80304p-3f, 0x1.419f46p-58f },
+ { 0x1.af61dap+48f, 0x1.60d1c8p-2f, -0x1.2d6c3ap-55f },
+ { 0x1.0088bcp+52f, 0x1.ca1edp+0f, 0x1.f6053p-53f },
+ { 0x1.f90dfcp+72f, 0x1.597f9cp-1f, 0x1.925978p-53f },
+ { 0x1.cc4e22p+85f, -0x1.f33584p+1f, 0x1.d7254ap-51f },
+ { 0x1.a6ce12p+86f, -0x1.c5612ep-1f, -0x1.26c33ep-53f },
+ { 0x1.6a0b76p+102f, -0x1.e42a1ep+0f, -0x1.1dc906p-52f },
+ };
+ uint32_t ax = t & (~0u >> 1);
+ uint32_t sgn = t >> 31;
+ for (int j = 0; j < array_length (st); j++)
+ {
+ if (__glibc_unlikely (asfloat (st[j].arg) == ax))
+ {
+ if (sgn)
+ return -st[j].rh - st[j].rl;
+ else
+ return st[j].rh + st[j].rl;
+ }
}
+ }
+ return r1;
}
libm_alias_float (__tan, tan)
diff --git a/sysdeps/ieee754/ldbl-128/s_erfcl.c b/sysdeps/ieee754/ldbl-128/s_erfcl.c
new file mode 100644
index 0000000..95d17c8
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/s_erfcl.c
@@ -0,0 +1 @@
+/* Not required. */
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_erfcl.c b/sysdeps/ieee754/ldbl-128ibm/s_erfcl.c
new file mode 100644
index 0000000..95d17c8
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm/s_erfcl.c
@@ -0,0 +1 @@
+/* Not required. */
diff --git a/sysdeps/ieee754/ldbl-96/s_erfcl.c b/sysdeps/ieee754/ldbl-96/s_erfcl.c
new file mode 100644
index 0000000..95d17c8
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-96/s_erfcl.c
@@ -0,0 +1 @@
+/* Not required. */
diff --git a/sysdeps/loongarch/lp64/libm-test-ulps b/sysdeps/loongarch/lp64/libm-test-ulps
index 7c20711..03fa6a4 100644
--- a/sysdeps/loongarch/lp64/libm-test-ulps
+++ b/sysdeps/loongarch/lp64/libm-test-ulps
@@ -417,22 +417,18 @@ ldouble: 2
Function: "cbrt":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_downward":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
ldouble: 1
Function: "cbrt_upward":
double: 5
-float: 1
ldouble: 1
Function: Real part of "ccos":
@@ -914,42 +910,34 @@ ldouble: 5
Function: "erf":
double: 1
-float: 1
ldouble: 1
Function: "erf_downward":
double: 1
-float: 1
ldouble: 2
Function: "erf_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "erf_upward":
double: 1
-float: 1
ldouble: 2
Function: "erfc":
double: 5
-float: 3
ldouble: 4
Function: "erfc_downward":
double: 5
-float: 6
ldouble: 5
Function: "erfc_towardzero":
double: 3
-float: 4
ldouble: 4
Function: "erfc_upward":
double: 5
-float: 6
ldouble: 5
Function: "exp":
@@ -1152,22 +1140,18 @@ ldouble: 7
Function: "lgamma":
double: 4
-float: 7
ldouble: 5
Function: "lgamma_downward":
double: 5
-float: 7
ldouble: 8
Function: "lgamma_towardzero":
double: 5
-float: 6
ldouble: 5
Function: "lgamma_upward":
double: 5
-float: 6
ldouble: 8
Function: "log":
@@ -1365,22 +1349,18 @@ ldouble: 4
Function: "tan":
double: 1
-float: 1
ldouble: 1
Function: "tan_downward":
double: 1
-float: 2
ldouble: 1
Function: "tan_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "tan_upward":
double: 1
-float: 1
ldouble: 1
Function: "tanh":
diff --git a/sysdeps/loongarch/stackinfo.h b/sysdeps/loongarch/stackinfo.h
deleted file mode 100644
index 6ee5055..0000000
--- a/sysdeps/loongarch/stackinfo.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Stack environment definitions for LoongArch.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This file contains a bit of information about the stack allocation
- of the processor. */
-
-#ifndef _STACKINFO_H
-#define _STACKINFO_H 1
-
-#include <elf.h>
-
-/* On LoongArch the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-/* Default to a non-executable stack. */
-#define DEFAULT_STACK_PERMS (PF_R | PF_W)
-
-#endif /* stackinfo.h */
diff --git a/sysdeps/m68k/coldfire/fpu/libm-test-ulps b/sysdeps/m68k/coldfire/fpu/libm-test-ulps
index 8130d49..7e49468 100644
--- a/sysdeps/m68k/coldfire/fpu/libm-test-ulps
+++ b/sysdeps/m68k/coldfire/fpu/libm-test-ulps
@@ -125,7 +125,6 @@ float: 4
Function: "lgamma":
double: 1
-float: 2
Function: "log10":
double: 1
diff --git a/sysdeps/m68k/coldfire/nofpu/sfp-machine.h b/sysdeps/m68k/coldfire/nofpu/sfp-machine.h
index e4ad79e..95eefc1 100644
--- a/sysdeps/m68k/coldfire/nofpu/sfp-machine.h
+++ b/sysdeps/m68k/coldfire/nofpu/sfp-machine.h
@@ -1 +1,51 @@
-#include <sysdeps/nios2/sfp-machine.h>
+#define _FP_W_TYPE_SIZE 32
+#define _FP_W_TYPE unsigned long
+#define _FP_WS_TYPE signed long
+#define _FP_I_TYPE long
+
+#define _FP_MUL_MEAT_S(R,X,Y) \
+ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_D(R,X,Y) \
+ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_Q(R,X,Y) \
+ _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_MUL_MEAT_DW_S(R,X,Y) \
+ _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_DW_D(R,X,Y) \
+ _FP_MUL_MEAT_DW_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_DW_Q(R,X,Y) \
+ _FP_MUL_MEAT_DW_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
+#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
+#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
+
+#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
+#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
+#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
+#define _FP_NANSIGN_S 0
+#define _FP_NANSIGN_D 0
+#define _FP_NANSIGN_Q 0
+
+#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
+
+/* This is arbitrarily taken from the PowerPC version. */
+#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
+ do { \
+ if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
+ && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
+ { \
+ R##_s = Y##_s; \
+ _FP_FRAC_COPY_##wc(R,Y); \
+ } \
+ else \
+ { \
+ R##_s = X##_s; \
+ _FP_FRAC_COPY_##wc(R,X); \
+ } \
+ R##_c = FP_CLS_NAN; \
+ } while (0)
+
+#define _FP_TININESS_AFTER_ROUNDING 0
diff --git a/sysdeps/m68k/m680x0/fpu/libm-test-ulps b/sysdeps/m68k/m680x0/fpu/libm-test-ulps
index 3964b83..50080f4 100644
--- a/sysdeps/m68k/m680x0/fpu/libm-test-ulps
+++ b/sysdeps/m68k/m680x0/fpu/libm-test-ulps
@@ -379,22 +379,18 @@ ldouble: 1
Function: "cbrt":
double: 1
-float: 1
ldouble: 1
Function: "cbrt_downward":
double: 1
-float: 1
ldouble: 1
Function: "cbrt_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "cbrt_upward":
double: 1
-float: 1
ldouble: 1
Function: Real part of "ccos":
@@ -843,41 +839,33 @@ ldouble: 5
Function: "erf":
double: 1
-float: 1
ldouble: 1
Function: "erf_downward":
double: 1
-float: 1
Function: "erf_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "erf_upward":
double: 1
-float: 1
ldouble: 1
Function: "erfc":
double: 1
-float: 2
ldouble: 2
Function: "erfc_downward":
double: 1
-float: 4
ldouble: 4
Function: "erfc_towardzero":
double: 1
-float: 4
ldouble: 4
Function: "erfc_upward":
double: 1
-float: 3
ldouble: 3
Function: "exp10m1":
@@ -1029,22 +1017,18 @@ ldouble: 5
Function: "lgamma":
double: 3
-float: 7
ldouble: 2
Function: "lgamma_downward":
double: 3
-float: 7
ldouble: 3
Function: "lgamma_towardzero":
double: 4
-float: 6
ldouble: 3
Function: "lgamma_upward":
double: 4
-float: 6
ldouble: 2
Function: "log10_downward":
diff --git a/sysdeps/mach/hurd/bits/mman_ext.h b/sysdeps/mach/hurd/bits/mman_ext.h
index d5a371e..6baee1e 100644
--- a/sysdeps/mach/hurd/bits/mman_ext.h
+++ b/sysdeps/mach/hurd/bits/mman_ext.h
@@ -24,6 +24,7 @@
# define SHM_ANON ((const char *) 1)
# define MAP_32BIT 0x1000 /* Map in the lower 2 GB. */
+# define MAP_NORESERVE 0x2000 /* Don't check for reservations. */
# define MAP_EXCL 0x4000 /* With MAP_FIXED, don't replace existing mappings. */
# define MAP_TRYFIXED (MAP_FIXED | MAP_EXCL) /* BSD name. */
diff --git a/sysdeps/microblaze/libm-test-ulps b/sysdeps/microblaze/libm-test-ulps
index 328e315..c96652a 100644
--- a/sysdeps/microblaze/libm-test-ulps
+++ b/sysdeps/microblaze/libm-test-ulps
@@ -81,7 +81,6 @@ float: 1
Function: "cbrt":
double: 3
-float: 1
Function: Real part of "ccos":
double: 1
@@ -173,11 +172,9 @@ float: 2
Function: "erf":
double: 1
-float: 1
Function: "erfc":
double: 3
-float: 2
Function: "exp":
float: 1
@@ -213,7 +210,6 @@ float: 4
Function: "lgamma":
double: 4
-float: 4
Function: "log":
float: 1
@@ -245,9 +241,6 @@ Function: "sinh":
double: 2
float: 2
-Function: "tan":
-float: 1
-
Function: "tanh":
double: 2
float: 2
diff --git a/sysdeps/microblaze/sfp-machine.h b/sysdeps/microblaze/sfp-machine.h
index e4ad79e..95eefc1 100644
--- a/sysdeps/microblaze/sfp-machine.h
+++ b/sysdeps/microblaze/sfp-machine.h
@@ -1 +1,51 @@
-#include <sysdeps/nios2/sfp-machine.h>
+#define _FP_W_TYPE_SIZE 32
+#define _FP_W_TYPE unsigned long
+#define _FP_WS_TYPE signed long
+#define _FP_I_TYPE long
+
+#define _FP_MUL_MEAT_S(R,X,Y) \
+ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_D(R,X,Y) \
+ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_Q(R,X,Y) \
+ _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_MUL_MEAT_DW_S(R,X,Y) \
+ _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_DW_D(R,X,Y) \
+ _FP_MUL_MEAT_DW_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_DW_Q(R,X,Y) \
+ _FP_MUL_MEAT_DW_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
+#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
+#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
+
+#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
+#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
+#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
+#define _FP_NANSIGN_S 0
+#define _FP_NANSIGN_D 0
+#define _FP_NANSIGN_Q 0
+
+#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
+
+/* This is arbitrarily taken from the PowerPC version. */
+#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
+ do { \
+ if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
+ && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
+ { \
+ R##_s = Y##_s; \
+ _FP_FRAC_COPY_##wc(R,Y); \
+ } \
+ else \
+ { \
+ R##_s = X##_s; \
+ _FP_FRAC_COPY_##wc(R,X); \
+ } \
+ R##_c = FP_CLS_NAN; \
+ } while (0)
+
+#define _FP_TININESS_AFTER_ROUNDING 0
diff --git a/sysdeps/mips/mips32/libm-test-ulps b/sysdeps/mips/mips32/libm-test-ulps
index c319e06..17034d4 100644
--- a/sysdeps/mips/mips32/libm-test-ulps
+++ b/sysdeps/mips/mips32/libm-test-ulps
@@ -333,19 +333,15 @@ float: 1
Function: "cbrt":
double: 4
-float: 1
Function: "cbrt_downward":
double: 4
-float: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
Function: "cbrt_upward":
double: 5
-float: 1
Function: Real part of "ccos":
double: 1
@@ -727,35 +723,27 @@ float: 3
Function: "erf":
double: 1
-float: 1
Function: "erf_downward":
double: 1
-float: 1
Function: "erf_towardzero":
double: 1
-float: 1
Function: "erf_upward":
double: 1
-float: 1
Function: "erfc":
double: 5
-float: 3
Function: "erfc_downward":
double: 5
-float: 6
Function: "erfc_towardzero":
double: 3
-float: 4
Function: "erfc_upward":
double: 5
-float: 6
Function: "exp":
double: 1
@@ -920,19 +908,15 @@ float: 5
Function: "lgamma":
double: 4
-float: 7
Function: "lgamma_downward":
double: 5
-float: 7
Function: "lgamma_towardzero":
double: 5
-float: 6
Function: "lgamma_upward":
double: 5
-float: 6
Function: "log":
float: 1
@@ -1095,20 +1079,14 @@ Function: "sinh_upward":
double: 3
float: 3
-Function: "tan":
-float: 1
-
Function: "tan_downward":
double: 1
-float: 2
Function: "tan_towardzero":
double: 1
-float: 1
Function: "tan_upward":
double: 1
-float: 1
Function: "tanh":
double: 2
diff --git a/sysdeps/mips/mips64/libm-test-ulps b/sysdeps/mips/mips64/libm-test-ulps
index 365b860..a757f69 100644
--- a/sysdeps/mips/mips64/libm-test-ulps
+++ b/sysdeps/mips/mips64/libm-test-ulps
@@ -417,22 +417,18 @@ ldouble: 2
Function: "cbrt":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_downward":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
ldouble: 1
Function: "cbrt_upward":
double: 5
-float: 1
ldouble: 1
Function: Real part of "ccos":
@@ -913,42 +909,34 @@ ldouble: 5
Function: "erf":
double: 1
-float: 1
ldouble: 1
Function: "erf_downward":
double: 1
-float: 1
ldouble: 2
Function: "erf_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "erf_upward":
double: 1
-float: 1
ldouble: 2
Function: "erfc":
double: 5
-float: 3
ldouble: 4
Function: "erfc_downward":
double: 5
-float: 6
ldouble: 5
Function: "erfc_towardzero":
double: 3
-float: 4
ldouble: 4
Function: "erfc_upward":
double: 5
-float: 6
ldouble: 5
Function: "exp":
@@ -1155,22 +1143,18 @@ ldouble: 7
Function: "lgamma":
double: 4
-float: 7
ldouble: 5
Function: "lgamma_downward":
double: 5
-float: 7
ldouble: 8
Function: "lgamma_towardzero":
double: 5
-float: 6
ldouble: 5
Function: "lgamma_upward":
double: 5
-float: 6
ldouble: 8
Function: "log":
@@ -1376,22 +1360,18 @@ float: 3
ldouble: 4
Function: "tan":
-float: 1
ldouble: 1
Function: "tan_downward":
double: 1
-float: 2
ldouble: 1
Function: "tan_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "tan_upward":
double: 1
-float: 1
ldouble: 1
Function: "tanh":
diff --git a/sysdeps/nios2/Implies b/sysdeps/nios2/Implies
deleted file mode 100644
index 7d69983..0000000
--- a/sysdeps/nios2/Implies
+++ /dev/null
@@ -1,4 +0,0 @@
-wordsize-32
-ieee754/soft-fp
-ieee754/dbl-64
-ieee754/flt-32
diff --git a/sysdeps/nios2/Makefile b/sysdeps/nios2/Makefile
deleted file mode 100644
index bb6d330..0000000
--- a/sysdeps/nios2/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (C) 1993-2024 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library. If not, see
-# <https://www.gnu.org/licenses/>.
-
-pic-ccflag = -fpic
-
-# We don't support long doubles as a distinct type. We don't need to set
-# this variable; it's here mostly for documentational purposes.
-long-double-fcts = no
-
-ifeq ($(subdir),soft-fp)
-sysdep_routines += $(gcc-single-routines) $(gcc-double-routines)
-endif
diff --git a/sysdeps/nios2/Subdirs b/sysdeps/nios2/Subdirs
deleted file mode 100644
index 87eadf3..0000000
--- a/sysdeps/nios2/Subdirs
+++ /dev/null
@@ -1 +0,0 @@
-soft-fp
diff --git a/sysdeps/nios2/Versions b/sysdeps/nios2/Versions
deleted file mode 100644
index 48a2351..0000000
--- a/sysdeps/nios2/Versions
+++ /dev/null
@@ -1,12 +0,0 @@
-libc {
- GLIBC_2.21 {
- __adddf3; __addsf3; __divdf3; __divsf3; __eqdf2; __eqsf2; __extendsfdf2;
- __fixdfdi; __fixdfsi; __fixsfdi; __fixsfsi;
- __fixunsdfdi; __fixunsdfsi; __fixunssfdi; __fixunssfsi;
- __floatdidf; __floatdisf; __floatsidf; __floatsisf;
- __floatundidf; __floatundisf; __floatunsidf; __floatunsisf;
- __gedf2; __gesf2; __gtdf2; __gtsf2; __ledf2; __lesf2; __ltdf2; __ltsf2;
- __muldf3; __mulsf3; __nedf2; __nesf2; __negdf2; __negsf2;
- __subdf3; __subsf3; __truncdfsf2; __unorddf2; __unordsf2;
- }
-}
diff --git a/sysdeps/nios2/__longjmp.S b/sysdeps/nios2/__longjmp.S
deleted file mode 100644
index 66462cb..0000000
--- a/sysdeps/nios2/__longjmp.S
+++ /dev/null
@@ -1,81 +0,0 @@
-/* longjmp for Nios II.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <pointer_guard.h>
-#include <jmpbuf-offsets.h>
-
-/* __longjmp(jmpbuf, val) */
-
-ENTRY (__longjmp)
- mov r2, r5
- bne r5, zero, 1f
- movi r2, 1
-1:
-#ifdef PTR_DEMANGLE
- PTR_MANGLE_GUARD (r3)
- ldw r5, (JB_RA*4)(r4)
- ldw r6, (JB_SP*4)(r4)
- PTR_DEMANGLE (r5, r5, r3)
- PTR_DEMANGLE (r6, r6, r3)
-#endif
-
- cfi_def_cfa (r4, 0)
- cfi_offset (r16, JB_R16*4)
- cfi_offset (r17, JB_R17*4)
- cfi_offset (r18, JB_R18*4)
- cfi_offset (r19, JB_R19*4)
- cfi_offset (r20, JB_R20*4)
- cfi_offset (r21, JB_R21*4)
- cfi_offset (r22, JB_R22*4)
- cfi_offset (fp, JB_FP*4)
-#ifdef PTR_DEMANGLE
- cfi_register (ra, r5)
- cfi_register (sp, r7)
-#else
- cfi_offset (ra, JB_RA*4)
- cfi_offset (sp, JB_SP*4)
-#endif
- ldw r16, (JB_R16*4)(r4)
- ldw r17, (JB_R17*4)(r4)
- ldw r18, (JB_R18*4)(r4)
- ldw r19, (JB_R19*4)(r4)
- ldw r20, (JB_R20*4)(r4)
- ldw r21, (JB_R21*4)(r4)
- ldw r22, (JB_R22*4)(r4)
- ldw fp, (JB_FP*4)(r4)
-#ifdef PTR_DEMANGLE
- mov ra, r5
- mov sp, r6
-#else
- ldw ra, (JB_RA*4)(r4)
- ldw sp, (JB_SP*4)(r4)
-#endif
- cfi_same_value (r16)
- cfi_same_value (r17)
- cfi_same_value (r18)
- cfi_same_value (r19)
- cfi_same_value (r20)
- cfi_same_value (r21)
- cfi_same_value (r22)
- cfi_same_value (fp)
- cfi_same_value (ra)
- cfi_same_value (sp)
-
- ret
-END (__longjmp)
diff --git a/sysdeps/nios2/abort-instr.h b/sysdeps/nios2/abort-instr.h
deleted file mode 100644
index 17502e4..0000000
--- a/sysdeps/nios2/abort-instr.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* An instruction which should crash any program is an unused trap. */
-#define ABORT_INSTRUCTION asm ("trap 31")
diff --git a/sysdeps/nios2/bits/dl_find_object.h b/sysdeps/nios2/bits/dl_find_object.h
deleted file mode 100644
index 744aa85..0000000
--- a/sysdeps/nios2/bits/dl_find_object.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* nios2 definitions for finding objects.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _DLFCN_H
-# error "Never use <bits/dl_find_object.h> directly; include <dlfcn.h> instead."
-#endif
-
-#define DLFO_STRUCT_HAS_EH_DBASE 1
-#define DLFO_STRUCT_HAS_EH_COUNT 0
-#define DLFO_EH_SEGMENT_TYPE PT_GNU_EH_FRAME
diff --git a/sysdeps/nios2/bits/endianness.h b/sysdeps/nios2/bits/endianness.h
deleted file mode 100644
index 87e66eb..0000000
--- a/sysdeps/nios2/bits/endianness.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef _BITS_ENDIANNESS_H
-#define _BITS_ENDIANNESS_H 1
-
-#ifndef _BITS_ENDIAN_H
-# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
-#endif
-
-/* Nios II has selectable endianness. */
-#ifdef __nios2_big_endian__
-# define __BYTE_ORDER __BIG_ENDIAN
-#endif
-#ifdef __nios2_little_endian__
-# define __BYTE_ORDER __LITTLE_ENDIAN
-#endif
-
-#endif /* bits/endianness.h */
diff --git a/sysdeps/nios2/bits/fenv.h b/sysdeps/nios2/bits/fenv.h
deleted file mode 100644
index a8ec0cd..0000000
--- a/sysdeps/nios2/bits/fenv.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _FENV_H
-# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-#endif
-
-/* The Altera specified Nios II hardware FPU does not support exceptions,
- nor does the software floating-point support. */
-#define FE_ALL_EXCEPT 0
-
-/* Nios II supports only round-to-nearest. The software
- floating-point support also acts this way. */
-enum
- {
- __FE_UNDEFINED = 0,
-
- FE_TONEAREST =
-#define FE_TONEAREST 1
- FE_TONEAREST,
- };
-
-/* Type representing exception flags. */
-typedef unsigned int fexcept_t;
-
-/* Type representing floating-point environment. */
-typedef unsigned int fenv_t;
-
-/* If the default argument is used we use this value. */
-#define FE_DFL_ENV ((const fenv_t *) -1)
-
-#if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
-/* Type representing floating-point control modes. */
-typedef unsigned int femode_t;
-
-/* Default floating-point control modes. */
-# define FE_DFL_MODE ((const femode_t *) -1L)
-#endif
diff --git a/sysdeps/nios2/bits/link.h b/sysdeps/nios2/bits/link.h
deleted file mode 100644
index a911639..0000000
--- a/sysdeps/nios2/bits/link.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Machine-specific declarations for dynamic linker interface, Nios II version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _LINK_H
-# error "Never include <bits/link.h> directly; use <link.h> instead."
-#endif
-
-/* Registers for entry into PLT on Nios II. */
-typedef struct La_nios2_regs
-{
- uint32_t lr_reg[4]; /* r4 through r7 */
- uint32_t lr_ra;
- uint32_t lr_sp;
-} La_nios2_regs;
-
-/* Return values for calls from PLT on Nios II. */
-typedef struct La_nios2_retval
-{
- uint32_t lrv_r2;
- uint32_t lrv_r3;
-} La_nios2_retval;
-
-__BEGIN_DECLS
-
-extern Elf32_Addr la_nios2_gnu_pltenter (Elf32_Sym *__sym, unsigned int __ndx,
- uintptr_t *__refcook,
- uintptr_t *__defcook,
- La_nios2_regs *__regs,
- unsigned int *__flags,
- const char *__symname,
- long int *__framesizep);
-extern unsigned int la_nios2_gnu_pltexit (Elf32_Sym *__sym, unsigned int __ndx,
- uintptr_t *__refcook,
- uintptr_t *__defcook,
- const La_nios2_regs *__inregs,
- La_nios2_retval *__outregs,
- const char *symname);
-
-__END_DECLS
diff --git a/sysdeps/nios2/bits/setjmp.h b/sysdeps/nios2/bits/setjmp.h
deleted file mode 100644
index 7c2b7fd..0000000
--- a/sysdeps/nios2/bits/setjmp.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Define the machine-dependent type `jmp_buf'. Nios II version.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _NIOS2_BITS_SETJMP_H
-#define _NIOS2_BITS_SETJMP_H 1
-
-#if !defined(_SETJMP_H) && !defined(_PTHREAD_H)
-# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
-#endif
-
-/* Saves r16-r22 (callee-saved, including GOT pointer), fp (frame pointer),
- ra (return address), and sp (stack pointer). */
-typedef int __jmp_buf[10];
-
-#endif /* _NIOS2_BITS_SETJMP_H */
diff --git a/sysdeps/nios2/bits/wordsize.h b/sysdeps/nios2/bits/wordsize.h
deleted file mode 100644
index 6ecbfe7..0000000
--- a/sysdeps/nios2/bits/wordsize.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#define __WORDSIZE 32
-#define __WORDSIZE_TIME64_COMPAT32 1
-#define __WORDSIZE32_SIZE_ULONG 0
-#define __WORDSIZE32_PTRDIFF_LONG 0
diff --git a/sysdeps/nios2/bsd-_setjmp.S b/sysdeps/nios2/bsd-_setjmp.S
deleted file mode 100644
index 4e6a2da..0000000
--- a/sysdeps/nios2/bsd-_setjmp.S
+++ /dev/null
@@ -1 +0,0 @@
-/* _setjmp is in setjmp.S */
diff --git a/sysdeps/nios2/bsd-setjmp.S b/sysdeps/nios2/bsd-setjmp.S
deleted file mode 100644
index 1da848d..0000000
--- a/sysdeps/nios2/bsd-setjmp.S
+++ /dev/null
@@ -1 +0,0 @@
-/* setjmp is in setjmp.S */
diff --git a/sysdeps/nios2/configure b/sysdeps/nios2/configure
deleted file mode 100644
index d25684d..0000000
--- a/sysdeps/nios2/configure
+++ /dev/null
@@ -1,174 +0,0 @@
-# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
- # Local configure fragment for sysdeps/nios2.
-
-# Nios II big endian is not yet supported.
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5
-printf %s "checking for egrep -e... " >&6; }
-if test ${ac_cv_path_EGREP_TRADITIONAL+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) if test -z "$EGREP_TRADITIONAL"; then
- ac_path_EGREP_TRADITIONAL_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_prog in grep ggrep
- do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
-# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
- # Check for GNU $ac_path_EGREP_TRADITIONAL
-case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
-*GNU*)
- ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
-#(
-*)
- ac_count=0
- printf %s 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
- "$ac_path_EGREP_TRADITIONAL" -E 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
- ac_path_EGREP_TRADITIONAL_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_TRADITIONAL_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
- :
- fi
-else
- ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
-fi
-
- if test "$ac_cv_path_EGREP_TRADITIONAL"
-then :
- ac_cv_path_EGREP_TRADITIONAL="$ac_cv_path_EGREP_TRADITIONAL -E"
-else case e in #(
- e) if test -z "$EGREP_TRADITIONAL"; then
- ac_path_EGREP_TRADITIONAL_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_prog in egrep
- do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
-# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
- # Check for GNU $ac_path_EGREP_TRADITIONAL
-case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
-*GNU*)
- ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
-#(
-*)
- ac_count=0
- printf %s 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
- "$ac_path_EGREP_TRADITIONAL" 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
- ac_path_EGREP_TRADITIONAL_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_TRADITIONAL_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
-fi
- ;;
-esac
-fi ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP_TRADITIONAL" >&5
-printf "%s\n" "$ac_cv_path_EGREP_TRADITIONAL" >&6; }
- EGREP_TRADITIONAL=$ac_cv_path_EGREP_TRADITIONAL
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for big endian" >&5
-printf %s "checking for big endian... " >&6; }
-if test ${libc_cv_nios2_be+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __nios2_big_endian__
- yes
- #endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
-then :
- libc_cv_nios2_be=yes
-else case e in #(
- e) libc_cv_nios2_be=no ;;
-esac
-fi
-rm -rf conftest*
- ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_nios2_be" >&5
-printf "%s\n" "$libc_cv_nios2_be" >&6; }
-if test $libc_cv_nios2_be = yes; then
- as_fn_error $? "Big endian not supported for Nios II" "$LINENO" 5
-fi
-
-printf "%s\n" "#define HIDDEN_VAR_NEEDS_DYNAMIC_RELOC 1" >>confdefs.h
-
-
diff --git a/sysdeps/nios2/configure.ac b/sysdeps/nios2/configure.ac
deleted file mode 100644
index f738e9a..0000000
--- a/sysdeps/nios2/configure.ac
+++ /dev/null
@@ -1,15 +0,0 @@
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/nios2.
-
-# Nios II big endian is not yet supported.
-AC_CACHE_CHECK([for big endian],
- [libc_cv_nios2_be],
- [AC_EGREP_CPP(yes,[#ifdef __nios2_big_endian__
- yes
- #endif
- ], libc_cv_nios2_be=yes, libc_cv_nios2_be=no)])
-if test $libc_cv_nios2_be = yes; then
- AC_MSG_ERROR([Big endian not supported for Nios II])
-fi
-
-AC_DEFINE(HIDDEN_VAR_NEEDS_DYNAMIC_RELOC)
diff --git a/sysdeps/nios2/crti.S b/sysdeps/nios2/crti.S
deleted file mode 100644
index 85b5545..0000000
--- a/sysdeps/nios2/crti.S
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Special .init and .fini section support for Nios II.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* crti.S puts a function prologue at the beginning of the .init and
- .fini sections and defines global symbols for those addresses, so
- they can be called as functions. The symbols _init and _fini are
- magic and cause the linker to emit DT_INIT and DT_FINI. */
-
-#include <libc-symbols.h>
-
-#ifndef PREINIT_FUNCTION
-# define PREINIT_FUNCTION __gmon_start__
-#endif
-
-#ifndef PREINIT_FUNCTION_WEAK
-# define PREINIT_FUNCTION_WEAK 1
-#endif
-
-#if PREINIT_FUNCTION_WEAK
- weak_extern (PREINIT_FUNCTION)
-#else
- .hidden PREINIT_FUNCTION
-#endif
-
- .section .init,"ax",@progbits
- .align 2
- .global _init
- .hidden _init
- .type _init, @function
-_init:
- addi sp, sp, -8
- stw r22, 0(sp)
- nextpc r22
- 1:
- movhi r8, %hiadj(_gp_got - 1b)
- addi r8, r8, %lo(_gp_got - 1b)
- add r22, r22, r8
- stw ra, 4(sp)
-#if PREINIT_FUNCTION_WEAK
- movhi r2, %got_hiadj(PREINIT_FUNCTION)
- addi r2, r2, %got_lo(PREINIT_FUNCTION)
- add r2, r2, r22
- ldw r2, 0(r2)
- beq r2, zero, .L5
-#endif
- movhi r2, %call_hiadj(PREINIT_FUNCTION)
- addi r2, r2, %call_lo(PREINIT_FUNCTION)
- add r2, r2, r22
- ldw r2, 0(r2)
- callr r2
-.L5:
-
- .section .fini,"ax",@progbits
- .align 2
- .global _fini
- .hidden _fini
- .type _fini, @function
-_fini:
- addi sp, sp, -8
- stw r22, 0(sp)
- nextpc r22
- 1:
- movhi r8, %hiadj(_gp_got - 1b)
- addi r8, r8, %lo(_gp_got - 1b)
- stw ra, 4(sp)
- add r22, r22, r8
diff --git a/sysdeps/nios2/crtn.S b/sysdeps/nios2/crtn.S
deleted file mode 100644
index 6f0521a..0000000
--- a/sysdeps/nios2/crtn.S
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Special .init and .fini section support for Nios II.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* crtn.S puts function epilogues in the .init and .fini sections
- corresponding to the prologues in crti.S. */
-
- .section .init,"ax",@progbits
- ldw ra, 4(sp)
- ldw r22, 0(sp)
- addi sp, sp, 8
- ret
-
- .section .fini,"ax",@progbits
- ldw ra, 4(sp)
- ldw r22, 0(sp)
- addi sp, sp, 8
- ret
diff --git a/sysdeps/nios2/dl-init.c b/sysdeps/nios2/dl-init.c
deleted file mode 100644
index 1af2d4b..0000000
--- a/sysdeps/nios2/dl-init.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Nios II specific procedures for initializing code.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <elf/dl-init.c>
-
-unsigned int
-_dl_nios2_get_gp_value (struct link_map *main_map)
-{
- ElfW(Dyn) *dyn = main_map->l_ld;
- for (dyn = main_map->l_ld; dyn->d_tag != DT_NULL; ++dyn)
- if (dyn->d_tag == DT_NIOS2_GP)
- return (unsigned int)(dyn->d_un.d_ptr);
- return 0;
-}
diff --git a/sysdeps/nios2/dl-machine.h b/sysdeps/nios2/dl-machine.h
deleted file mode 100644
index 5ebc9a9..0000000
--- a/sysdeps/nios2/dl-machine.h
+++ /dev/null
@@ -1,307 +0,0 @@
-/* Machine-dependent ELF dynamic relocation inline functions. Nios II version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef dl_machine_h
-#define dl_machine_h
-
-#define ELF_MACHINE_NAME "nios2"
-
-#include <string.h>
-#include <link.h>
-#include <dl-tls.h>
-#include <dl-static-tls.h>
-#include <dl-machine-rel.h>
-
-/* Return nonzero iff ELF header is compatible with the running host. */
-static inline int
-elf_machine_matches_host (const Elf32_Ehdr *ehdr)
-{
- return ehdr->e_machine == EM_ALTERA_NIOS2;
-}
-
-
-/* Return the link-time address of _DYNAMIC. Conveniently, this is the
- first element of the GOT. */
-static inline Elf32_Addr
-elf_machine_dynamic (void)
-{
- Elf32_Addr *dynamic;
- int tmp;
- asm ("nextpc\t%0\n\t"
- "1: movhi\t%1, %%hiadj(_GLOBAL_OFFSET_TABLE_ - 1b)\n\t"
- "addi\t%1, %1, %%lo(_GLOBAL_OFFSET_TABLE_ - 1b)\n\t"
- "add\t%0, %0, %1\n"
- : "=r" (dynamic), "=r" (tmp));
- return *dynamic;
-}
-
-
-/* Return the run-time load address of the shared object. */
-static inline Elf32_Addr
-elf_machine_load_address (void)
-{
- Elf32_Addr result;
- int tmp;
- asm ("nextpc\t%0\n\t"
- "1: movhi\t%1, %%hiadj(1b)\n\t"
- "addi\t%1, %1, %%lo(1b)\n\t"
- "sub\t%0, %0, %1\n"
- : "=r" (result), "=r" (tmp));
- return result;
-}
-
-/* Set up the loaded object described by L so its unrelocated PLT
- entries will jump to the on-demand fixup code in dl-runtime.c. */
-
-static inline int __attribute__ ((always_inline))
-elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
- int lazy, int profile)
-{
- extern void _dl_runtime_resolve (Elf32_Word);
-
- if (l->l_info[DT_JMPREL] && lazy)
- {
- /* The GOT entries for functions in the PLT have not yet been filled
- in. Their initial contents will arrange when called to load r15 with
- an offset into the .got section, load r14 with
- _GLOBAL_OFFSET_TABLE_[1], and then jump to _GLOBAL_OFFSET_TABLE[2].
- */
- Elf32_Addr *got = (Elf32_Addr *) D_PTR (l, l_info[DT_PLTGOT]);
- got[1] = (Elf32_Addr) l; /* Identify this shared object. */
-
- /* This function will get called to fix up the GOT entry indicated by
- the offset on the stack, and then jump to the resolved address. */
- got[2] = (Elf32_Addr) &_dl_runtime_resolve;
- }
-
- return lazy;
-}
-
-/* Initial entry point code for the dynamic linker.
- The C function `_dl_start' is the real entry point;
- its return value is the user program's entry point. */
-
-#define RTLD_START asm ("\
-.text\n\
-.globl _start\n\
-.type _start, %function\n\
-_start:\n\
- /* At start time, all the args are on the stack. */\n\
- mov r4, sp\n\
-\n\
- /* Start the calculation of the GOT pointer. */\n\
- nextpc r22\n\
-1: movhi r8, %hiadj(_gp_got - 1b)\n\
- addi r8, r8, %lo(_gp_got - 1b)\n\
-\n\
- /* Figure out where _dl_start will need to return to. */\n\
- movhi ra, %hiadj(2f - 1b)\n\
- addi ra, ra, %lo(2f - 1b)\n\
- add ra, ra, r22\n\
-\n\
- /* Finish the calculation of the GOT pointer. */\n\
- add r22, r22, r8\n\
-\n\
- br _dl_start\n\
-\n\
- /* Save the returned user entry point. */\n\
-2: mov r16, r2\n\
-\n\
- /* Initialize gp. */\n\
- ldw r4, %got(_rtld_local)(r22)\n\
- ldw r4, 0(r4)\n\
- ldw r8, %call(_dl_nios2_get_gp_value)(r22)\n\
- callr r8\n\
- mov gp, r2\n\
-\n\
- /* Find the main_map from the GOT. */\n\
- ldw r4, %got(_rtld_local)(r22)\n\
- ldw r4, 0(r4)\n\
-\n\
- /* Load adjusted argc. */\n\
- ldw r2, %got(_dl_argc)(r22)\n\
- ldw r5, 0(r2)\n\
-\n\
- /* Load adjusted argv. */\n\
- ldw r2, %got(_dl_argv)(r22)\n\
- ldw r6, 0(r2)\n\
-\n\
- /* envp = argv + argc + 1 */\n\
- addi r7, r5, 1\n\
- slli r7, r7, 2\n\
- add r7, r7, r6\n\
-\n\
- /* Call _dl_init through the PLT. */\n\
- ldw r8, %call(_dl_init)(r22)\n\
- callr r8\n\
-\n\
- /* Find the finalization function. */\n\
- ldw r4, %got(_dl_fini)(r22)\n\
-\n\
- /* Jump to the user's entry point. */\n\
- jmp r16\n\
-");
-
-/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
- PLT entries should not be allowed to define the value.
- ELF_RTYPE_CLASS_COPY iff TYPE should not be allowed to resolve to one
- of the main executable's symbols, as for a COPY reloc. */
-#define elf_machine_type_class(type) \
- ((((type) == R_NIOS2_JUMP_SLOT \
- || (type) == R_NIOS2_TLS_DTPMOD \
- || (type) == R_NIOS2_TLS_DTPREL \
- || (type) == R_NIOS2_TLS_TPREL) * ELF_RTYPE_CLASS_PLT) \
- | (((type) == R_NIOS2_COPY) * ELF_RTYPE_CLASS_COPY))
-
-/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */
-#define ELF_MACHINE_JMP_SLOT R_NIOS2_JUMP_SLOT
-
-/* Fixup a PLT entry to bounce directly to the function at VALUE. */
-
-static inline Elf32_Addr
-elf_machine_fixup_plt (struct link_map *map, lookup_t t,
- const ElfW(Sym) *refsym, const ElfW(Sym) *sym,
- const Elf32_Rela *reloc,
- Elf32_Addr *reloc_addr, Elf32_Addr value)
-{
- return *reloc_addr = value;
-}
-
-/* Return the final value of a plt relocation. */
-static inline Elf32_Addr
-elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,
- Elf32_Addr value)
-{
- return value;
-}
-
-/* Names of the architecture-specific auditing callback functions. */
-#define ARCH_LA_PLTENTER nios2_gnu_pltenter
-#define ARCH_LA_PLTEXIT nios2_gnu_pltexit
-
-#endif /* dl_machine_h */
-
-#ifdef RESOLVE_MAP
-
-/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
- LOADADDR is the load address of the object; INFO is an array indexed
- by DT_* of the .dynamic section info. */
-
-static inline void __attribute__ ((always_inline))
-elf_machine_rela (struct link_map *map, struct r_scope_elem *scope[],
- const ElfW(Rela) *reloc, const ElfW(Sym) *sym,
- const struct r_found_version *version,
- void *const reloc_addr_arg, int skip_ifunc)
-{
- Elf32_Addr *const reloc_addr = reloc_addr_arg;
- const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
-
- if (__glibc_unlikely (r_type == R_NIOS2_RELATIVE))
- *reloc_addr = map->l_addr + reloc->r_addend;
- else if (__glibc_unlikely (r_type == R_NIOS2_NONE))
- return;
- else
- {
- const Elf32_Sym *const refsym = sym;
- struct link_map *sym_map = RESOLVE_MAP (map, scope, &sym, version,
- r_type);
- Elf32_Addr value = SYMBOL_ADDRESS (sym_map, sym, true);
-
- switch (r_type)
- {
- case R_NIOS2_COPY:
- if (sym == NULL)
- /* This can happen in trace mode if an object could not be
- found. */
- break;
- if (sym->st_size > refsym->st_size
- || (sym->st_size < refsym->st_size && GLRO(dl_verbose)))
- {
- const char *strtab;
-
- strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
- _dl_error_printf ("\
-%s: Symbol `%s' has different size in shared object, consider re-linking\n",
- rtld_progname ?: "<program name unknown>",
- strtab + refsym->st_name);
- }
- memcpy (reloc_addr_arg, (void *) value,
- MIN (sym->st_size, refsym->st_size));
- break;
- case R_NIOS2_GLOB_DAT:
- case R_NIOS2_JUMP_SLOT:
-# ifdef RTLD_BOOTSTRAP
- /* Fix weak undefined references. */
- if (sym != NULL && sym->st_value == 0)
- *reloc_addr = 0;
- else
-# endif
- *reloc_addr = value;
- break;
-#ifndef RTLD_BOOTSTRAP
- case R_NIOS2_TLS_DTPMOD:
- /* Get the information from the link map returned by the
- resolv function. */
- if (sym_map != NULL)
- *reloc_addr = sym_map->l_tls_modid;
- break;
-
- case R_NIOS2_TLS_DTPREL:
- *reloc_addr = reloc->r_addend + TLS_DTPREL_VALUE(sym);
- break;
-
- case R_NIOS2_TLS_TPREL:
- if (sym != NULL)
- {
- CHECK_STATIC_TLS (map, sym_map);
- *reloc_addr = reloc->r_addend + TLS_TPREL_VALUE(sym_map, sym);
- }
- break;
-#endif
- case R_NIOS2_BFD_RELOC_32:
- *reloc_addr = value + reloc->r_addend;
- break;
-
- default:
- _dl_reloc_bad_type (map, r_type, 0);
- break;
- }
- }
-}
-
-static inline void __attribute__((always_inline))
-elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
- void *const reloc_addr_arg)
-{
- Elf32_Addr *const reloc_addr = reloc_addr_arg;
- *reloc_addr = l_addr + reloc->r_addend;
-}
-
-static inline void __attribute__((always_inline))
-elf_machine_lazy_rel (struct link_map *map, struct r_scope_elem *scope[],
- ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
- int skip_ifunc)
-{
- Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset);
- if (ELF32_R_TYPE (reloc->r_info) == R_NIOS2_JUMP_SLOT)
- *reloc_addr += l_addr;
- else
- _dl_reloc_bad_type (map, ELF32_R_TYPE (reloc->r_info), 1);
-}
-
-#endif /* RESOLVE_MAP */
diff --git a/sysdeps/nios2/dl-tls.h b/sysdeps/nios2/dl-tls.h
deleted file mode 100644
index 18e3197..0000000
--- a/sysdeps/nios2/dl-tls.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Thread-local storage handling in the ELF dynamic linker. Nios II version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-
-/* Type used for the representation of TLS information in the GOT. */
-typedef struct
-{
- unsigned long int ti_module;
- unsigned long int ti_offset;
-} tls_index;
-
-/* The thread pointer points 0x7000 past the first static TLS block. */
-#define TLS_TP_OFFSET 0x7000
-
-/* Dynamic thread vector pointers point 0x8000 past the start of each
- TLS block. */
-#define TLS_DTV_OFFSET 0x8000
-
-/* Compute the value for a GOTTPREL reloc. */
-#define TLS_TPREL_VALUE(sym_map, sym) \
- ((sym_map)->l_tls_offset + (sym)->st_value - TLS_TP_OFFSET)
-
-/* Compute the value for a DTPREL reloc. */
-#define TLS_DTPREL_VALUE(sym) \
- ((sym)->st_value - TLS_DTV_OFFSET)
-
-extern void *__tls_get_addr (tls_index *ti);
-
-# define GET_ADDR_OFFSET (ti->ti_offset + TLS_DTV_OFFSET)
-# define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET)
diff --git a/sysdeps/nios2/dl-trampoline.S b/sysdeps/nios2/dl-trampoline.S
deleted file mode 100644
index c4bc27a..0000000
--- a/sysdeps/nios2/dl-trampoline.S
+++ /dev/null
@@ -1,79 +0,0 @@
-/* PLT trampolines. Nios II version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libc-symbols.h>
-
- .text
- .globl _dl_runtime_resolve
- cfi_startproc
-_dl_runtime_resolve:
-/* The runtime resolver receives the original function arguments in r4
- through r7, the shared library identifier from GOT[1]? in r14, and the
- relocation index times four in r15. It updates the corresponding PLT GOT
- entry so that the PLT entry will transfer control directly to the target
- in the future, and then transfers control to the target. */
- /* Save arguments and return address. */
- subi sp, sp, 28
- cfi_adjust_cfa_offset (28)
- stw r22, 24(sp)
- cfi_rel_offset (r22, 24)
- stw r8, 20(sp) /* save r8, because this might be a call to mcount */
- cfi_rel_offset (r8, 20)
- stw r7, 16(sp)
- cfi_rel_offset (r7, 16)
- stw r6, 12(sp)
- cfi_rel_offset (r6, 12)
- stw r5, 8(sp)
- cfi_rel_offset (r5, 8)
- stw r4, 4(sp)
- cfi_rel_offset (r4, 4)
- stw ra, 0(sp)
- cfi_rel_offset (ra, 0)
-
- /* Get pointer to linker struct. */
- mov r4, r14
-
- /* Get the relocation offset. We're given a multiple of 4 and
- need a multiple of 12, so multiply by 3. */
- slli r5, r15, 1
- add r5, r5, r15
-
- /* Call the fixup routine. */
- nextpc r22
-1: movhi r2, %hiadj(_gp_got - 1b)
- addi r2, r2, %lo(_gp_got - 1b)
- add r22, r22, r2
- ldw r2, %call(_dl_fixup)(r22)
- callr r2
-
- /* Restore the arguments and return address. */
- ldw ra, 0(sp)
- ldw r4, 4(sp)
- ldw r5, 8(sp)
- ldw r6, 12(sp)
- ldw r7, 16(sp)
- ldw r8, 20(sp)
- ldw r22, 24(sp)
- addi sp, sp, 28
- cfi_adjust_cfa_offset (-28)
-
- /* Jump to the newly found address. */
- jmp r2
-
- cfi_endproc
diff --git a/sysdeps/nios2/elf-initfini.h b/sysdeps/nios2/elf-initfini.h
deleted file mode 100644
index 511465c..0000000
--- a/sysdeps/nios2/elf-initfini.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Determine DT_INIT/DT_FINI support in the dynamic loader. nios2 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* Enable DT_INIT/DT_FINI support. */
-#define ELF_INITFINI 1
diff --git a/sysdeps/nios2/gccframe.h b/sysdeps/nios2/gccframe.h
deleted file mode 100644
index 4c4eb0b..0000000
--- a/sysdeps/nios2/gccframe.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Definition of object in frame unwind info. Nios II version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#define FIRST_PSEUDO_REGISTER 40
-
-#include <sysdeps/generic/gccframe.h>
diff --git a/sysdeps/nios2/jmpbuf-offsets.h b/sysdeps/nios2/jmpbuf-offsets.h
deleted file mode 100644
index 01bf0a9..0000000
--- a/sysdeps/nios2/jmpbuf-offsets.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Private macros for accessing __jmp_buf contents. Nios II version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* Save offsets within __jmp_buf. */
-#define JB_R16 0
-#define JB_R17 1
-#define JB_R18 2
-#define JB_R19 3
-#define JB_R20 4
-#define JB_R21 5
-#define JB_R22 6
-#define JB_FP 7
-#define JB_RA 8
-#define JB_SP 9
-
-#ifndef __ASSEMBLER__
-#include <setjmp.h>
-#include <stdint.h>
-#include <sysdep.h>
-#include <pointer_guard.h>
-
-static inline uintptr_t __attribute__ ((unused))
-_jmpbuf_sp (__jmp_buf jmpbuf)
-{
- uintptr_t sp = jmpbuf[JB_SP];
- PTR_DEMANGLE (sp);
- return sp;
-}
-#endif
-
-/* Helper for generic ____longjmp_chk(). */
-#define JB_FRAME_ADDRESS(buf) ((void *) _jmpbuf_sp (buf))
diff --git a/sysdeps/nios2/jmpbuf-unwind.h b/sysdeps/nios2/jmpbuf-unwind.h
deleted file mode 100644
index a194e2a..0000000
--- a/sysdeps/nios2/jmpbuf-unwind.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Examine __jmp_buf for unwinding frames. Nios II version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <setjmp.h>
-#include <jmpbuf-offsets.h>
-#include <stdint.h>
-#include <unwind.h>
-
-/* Test if longjmp to JMPBUF would unwind the frame
- containing a local variable at ADDRESS. */
-
-#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \
- ((void *) (address) < (void *) demangle (jmpbuf[JB_SP]))
-
-#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
- _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
-
-#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
- ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf_sp (_jmpbuf) - (_adj)))
-
-/* We use the normal longjmp for unwinding. */
-#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
diff --git a/sysdeps/nios2/ldbl-classify-compat.h b/sysdeps/nios2/ldbl-classify-compat.h
deleted file mode 100644
index a9614de..0000000
--- a/sysdeps/nios2/ldbl-classify-compat.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef NIOS2_LDBL_CLASSIFY_COMPAT_H
-#define NIOS2_LDBL_CLASSIFY_COMPAT_H 1
-
-/* Enable __finitel, __isinfl, and __isnanl for binary compatibility
- when built without long double support. */
-#define LDBL_CLASSIFY_COMPAT 1
-
-#endif
diff --git a/sysdeps/nios2/ldsodefs.h b/sysdeps/nios2/ldsodefs.h
deleted file mode 100644
index 2db2a44..0000000
--- a/sysdeps/nios2/ldsodefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _NIOS2_LDSODEFS_H
-#define _NIOS2_LDSODEFS_H 1
-
-#include <elf.h>
-
-struct La_nios2_regs;
-struct La_nios2_retval;
-
-#define ARCH_PLTENTER_MEMBERS \
- ElfW(Addr) (*nios2_gnu_pltenter) (ElfW(Sym) *, unsigned int, \
- uintptr_t *, uintptr_t *, \
- const struct La_nios2_regs *, \
- unsigned int *, const char *, \
- long int *);
-
-#define ARCH_PLTEXIT_MEMBERS \
- unsigned int (*nios2_gnu_pltexit) (ElfW(Sym) *, unsigned int, \
- uintptr_t *, uintptr_t *, \
- const struct La_nios2_regs *, \
- struct La_nios2_retval *, \
- const char *);
-
-#include_next <ldsodefs.h>
-
-#endif
diff --git a/sysdeps/nios2/libc-tls.c b/sysdeps/nios2/libc-tls.c
deleted file mode 100644
index 184878d..0000000
--- a/sysdeps/nios2/libc-tls.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Thread-local storage handling in the ELF dynamic linker. Nios II version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <csu/libc-tls.c>
-#include <dl-tls.h>
-
-/* On Nios II, linker optimizations are not required, so __tls_get_addr
- can be called even in statically linked binaries. In this case module
- must be always 1 and PT_TLS segment exist in the binary, otherwise it
- would not link. */
-
-void *
-__tls_get_addr (tls_index *ti)
-{
- dtv_t *dtv = THREAD_DTV ();
- return (char *) dtv[1].pointer.val + GET_ADDR_OFFSET;
-}
diff --git a/sysdeps/nios2/libm-test-ulps b/sysdeps/nios2/libm-test-ulps
deleted file mode 100644
index 5240767..0000000
--- a/sysdeps/nios2/libm-test-ulps
+++ /dev/null
@@ -1,279 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-
-Function: "acosh":
-double: 2
-float: 2
-
-Function: "asin":
-double: 1
-float: 1
-
-Function: "asinh":
-double: 2
-float: 2
-
-Function: "atan":
-double: 1
-float: 1
-
-Function: "atan2":
-float: 2
-
-Function: "atanh":
-double: 2
-float: 2
-
-Function: "cabs":
-double: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-
-Function: "carg":
-float: 1
-
-Function: Real part of "casin":
-double: 1
-float: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-
-Function: Real part of "catan":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-
-Function: "cbrt":
-double: 4
-float: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-
-Function: Real part of "clog":
-double: 3
-float: 3
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-
-Function: "cos":
-double: 1
-float: 1
-
-Function: "cosh":
-double: 2
-float: 2
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-
-Function: Imaginary part of "cpow":
-float: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-
-Function: Real part of "csinh":
-float: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-
-Function: "erf":
-double: 1
-float: 1
-
-Function: "erfc":
-double: 5
-float: 3
-
-Function: "exp":
-double: 1
-float: 1
-
-Function: "exp10":
-double: 2
-
-Function: "exp2":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-
-Function: "gamma":
-double: 4
-float: 7
-
-Function: "hypot":
-double: 1
-
-Function: "j0":
-double: 2
-float: 8
-
-Function: "j1":
-double: 2
-float: 9
-
-Function: "jn":
-double: 4
-float: 4
-
-Function: "lgamma":
-double: 4
-float: 7
-
-Function: "log":
-float: 1
-
-Function: "log10":
-double: 2
-float: 2
-
-Function: "log1p":
-double: 1
-
-Function: "log2":
-double: 2
-float: 1
-
-Function: "logp1":
-double: 1
-
-Function: "pow":
-double: 1
-float: 3
-
-Function: "sin":
-double: 1
-float: 1
-
-Function: "sincos":
-double: 1
-float: 1
-
-Function: "sinh":
-double: 2
-float: 2
-
-Function: "tan":
-float: 1
-
-Function: "tanh":
-double: 2
-float: 2
-
-Function: "tgamma":
-double: 9
-
-Function: "y0":
-double: 3
-float: 8
-
-Function: "y1":
-double: 3
-float: 2
-
-Function: "yn":
-double: 3
-float: 3
-
-# end of automatic generation
diff --git a/sysdeps/nios2/libm-test-ulps-name b/sysdeps/nios2/libm-test-ulps-name
deleted file mode 100644
index 4ee7692..0000000
--- a/sysdeps/nios2/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-Nios II
diff --git a/sysdeps/nios2/machine-gmon.h b/sysdeps/nios2/machine-gmon.h
deleted file mode 100644
index 5674af2..0000000
--- a/sysdeps/nios2/machine-gmon.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Machine-dependent definitions for profiling support. Nios II version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-#define _MCOUNT_DECL(frompc, selfpc) \
-static void __attribute_used__ __mcount_internal (u_long frompc, u_long selfpc)
-
-/* This macro/func MUST save r4, r5, r6, r7 and r8 because the compiler inserts
- blind calls to mcount(), ignoring the fact that mcount may clobber
- registers; therefore, mcount may NOT clobber registers. */
-
-#if defined(__PIC__) || defined(PIC)
-#define NIOS2_MCOUNT_CALL \
- "nextpc r3\n\t" \
- "1: movhi r2, %hiadj(_gp_got - 1b)\n\t" \
- "addi r2, r2, %lo(_gp_got - 1b)\n\t" \
- "add r2, r2, r3\n\t" \
- "ldw r2, %call(__mcount_internal)(r2)\n\t" \
- "callr r2\n\t"
-#else
-#define NIOS2_MCOUNT_CALL \
- "call\t__mcount_internal\n\t"
-#endif
-
-#define MCOUNT \
- asm (".globl _mcount\n\t" \
- ".type _mcount,@function\n\t" \
- "_mcount:\n\t" \
- "subi sp, sp, 24\n\t" \
- "stw ra, 20(sp)\n\t" \
- "stw r8, 16(sp)\n\t" \
- "stw r7, 12(sp)\n\t" \
- "stw r6, 8(sp)\n\t" \
- "stw r5, 4(sp)\n\t" \
- "stw r4, 0(sp)\n\t" \
- "mov r4, r8\n\t" \
- "mov r5, ra\n\t" \
- NIOS2_MCOUNT_CALL \
- "ldw ra, 20(sp)\n\t" \
- "ldw r8, 16(sp)\n\t" \
- "ldw r7, 12(sp)\n\t" \
- "ldw r6, 8(sp)\n\t" \
- "ldw r5, 4(sp)\n\t" \
- "ldw r4, 0(sp)\n\t" \
- "addi sp, sp, 24\n\t" \
- "ret\n\t" \
- ".size _mcount, . - _mcount\n\t" \
- );
diff --git a/sysdeps/nios2/nptl/Makefile b/sysdeps/nios2/nptl/Makefile
deleted file mode 100644
index d2be17f..0000000
--- a/sysdeps/nios2/nptl/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# NPTL makefile fragment for Nios II.
-# Copyright (C) 2005-2024 Free Software Foundation, Inc.
-#
-# This file is part of the GNU C Library.
-#
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library. If not, see
-# <https://www.gnu.org/licenses/>.
-
-ifeq ($(subdir),csu)
-gen-as-const-headers += tcb-offsets.sym
-endif
diff --git a/sysdeps/nios2/nptl/bits/pthreadtypes-arch.h b/sysdeps/nios2/nptl/bits/pthreadtypes-arch.h
deleted file mode 100644
index bd16aca..0000000
--- a/sysdeps/nios2/nptl/bits/pthreadtypes-arch.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Machine-specific pthread type layouts. Nios II version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_PTHREADTYPES_ARCH_H
-#define _BITS_PTHREADTYPES_ARCH_H 1
-
-#include <bits/endian.h>
-
-#define __SIZEOF_PTHREAD_ATTR_T 36
-#define __SIZEOF_PTHREAD_MUTEX_T 24
-#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-#define __SIZEOF_PTHREAD_COND_T 48
-#define __SIZEOF_PTHREAD_CONDATTR_T 4
-#define __SIZEOF_PTHREAD_RWLOCK_T 32
-#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-#define __SIZEOF_PTHREAD_BARRIER_T 20
-#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-
-#define __LOCK_ALIGNMENT
-#define __ONCE_ALIGNMENT
-
-#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/nios2/nptl/pthreaddef.h b/sysdeps/nios2/nptl/pthreaddef.h
deleted file mode 100644
index 9a716a9..0000000
--- a/sysdeps/nios2/nptl/pthreaddef.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* pthread machine parameter definitions, Nios II version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* Default stack size. */
-#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
-
-/* Minimum guard size. */
-#define ARCH_MIN_GUARD_SIZE 0
-
-/* Required stack pointer alignment at beginning. */
-#define STACK_ALIGN 4
-
-/* Minimal stack size after allocating thread descriptor and guard size. */
-#define MINIMAL_REST_STACK 2048
-
-/* Location of current stack frame. */
-#define CURRENT_STACK_FRAME __builtin_frame_address (0)
diff --git a/sysdeps/nios2/nptl/tcb-offsets.sym b/sysdeps/nios2/nptl/tcb-offsets.sym
deleted file mode 100644
index 3cd8d98..0000000
--- a/sysdeps/nios2/nptl/tcb-offsets.sym
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <sysdep.h>
-#include <tls.h>
-
---
-
--- Abuse tls.h macros to derive offsets relative to the thread register.
-# undef __thread_self
-# define __thread_self ((void *) 0)
-# define thread_offsetof(mem) ((ptrdiff_t) THREAD_SELF + offsetof (struct pthread, mem))
-
-MULTIPLE_THREADS_OFFSET thread_offsetof (header.multiple_threads)
-TID_OFFSET thread_offsetof (tid)
-POINTER_GUARD (offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
diff --git a/sysdeps/nios2/nptl/tls.h b/sysdeps/nios2/nptl/tls.h
deleted file mode 100644
index 4c6489a..0000000
--- a/sysdeps/nios2/nptl/tls.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Definition for thread-local data handling. NPTL/Nios II version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _TLS_H
-#define _TLS_H 1
-
-#include <dl-sysdep.h>
-
-#ifndef __ASSEMBLER__
-# include <stdbool.h>
-# include <stddef.h>
-# include <stdint.h>
-# include <dl-dtv.h>
-
-#else /* __ASSEMBLER__ */
-# include <tcb-offsets.h>
-#endif /* __ASSEMBLER__ */
-
-
-#ifndef __ASSEMBLER__
-
-/* Get system call information. */
-# include <sysdep.h>
-
-/* The TP points to the start of the thread blocks. */
-# define TLS_DTV_AT_TP 1
-# define TLS_TCB_AT_TP 0
-
-/* Get the thread descriptor definition. */
-# include <nptl/descr.h>
-
-typedef struct
-{
- dtv_t *dtv;
- uintptr_t pointer_guard;
- unsigned spare[6];
-} tcbhead_t;
-
-register struct pthread *__thread_self __asm__("r23");
-
-#define READ_THREAD_POINTER() ((void *) __thread_self)
-
-/* This is the size of the initial TCB. Because our TCB is before the thread
- pointer, we don't need this. */
-# define TLS_INIT_TCB_SIZE 0
-
-/* This is the size of the TCB. Because our TCB is before the thread
- pointer, we don't need this. */
-# define TLS_TCB_SIZE 0
-
-/* This is the size we need before TCB - actually, it includes the TCB. */
-# define TLS_PRE_TCB_SIZE \
- (sizeof (struct pthread) \
- + ((sizeof (tcbhead_t) + __alignof (struct pthread) - 1) \
- & ~(__alignof (struct pthread) - 1)))
-
-/* The thread pointer (in hardware register r23) points to the end of
- the TCB + 0x7000, as for PowerPC and MIPS. */
-# define TLS_TCB_OFFSET 0x7000
-
-/* Install the dtv pointer. The pointer passed is to the element with
- index -1 which contain the length. */
-# define INSTALL_DTV(tcbp, dtvp) \
- (((tcbhead_t *) (tcbp))[-1].dtv = (dtvp) + 1)
-
-/* Install new dtv for current thread. */
-# define INSTALL_NEW_DTV(dtv) \
- (THREAD_DTV() = (dtv))
-
-/* Return dtv of given thread descriptor. */
-# define GET_DTV(tcbp) \
- (((tcbhead_t *) (tcbp))[-1].dtv)
-
-/* Code to initially initialize the thread pointer. */
-# define TLS_INIT_TP(tcbp) \
- (__thread_self = (struct pthread *) ((char *) tcbp + TLS_TCB_OFFSET), true)
-
-/* Value passed to 'clone' for initialization of the thread register. */
-# define TLS_DEFINE_INIT_TP(tp, pd) \
- void *tp = (void *) (pd) + TLS_TCB_OFFSET + TLS_PRE_TCB_SIZE
-
-/* Return the address of the dtv for the current thread. */
-# define THREAD_DTV() \
- (((tcbhead_t *) (READ_THREAD_POINTER () - TLS_TCB_OFFSET))[-1].dtv)
-
-/* Return the thread descriptor for the current thread. */
-# define THREAD_SELF \
- ((struct pthread *) (READ_THREAD_POINTER () \
- - TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE))
-
-/* Magic for libthread_db to know how to do THREAD_SELF. */
-# define DB_THREAD_SELF \
- REGISTER (32, 32, 23 * 4, -TLS_PRE_TCB_SIZE - TLS_TCB_OFFSET)
-
-# include <tcb-access.h>
-
-# define THREAD_GET_POINTER_GUARD() \
- (((tcbhead_t *) (READ_THREAD_POINTER () \
- - TLS_TCB_OFFSET))[-1].pointer_guard)
-# define THREAD_SET_POINTER_GUARD(value) \
- (THREAD_GET_POINTER_GUARD () = (value))
-# define THREAD_COPY_POINTER_GUARD(descr) \
- (((tcbhead_t *) ((void *) (descr) \
- + TLS_PRE_TCB_SIZE))[-1].pointer_guard \
- = THREAD_GET_POINTER_GUARD())
-
-/* l_tls_offset == 0 is perfectly valid on Nios II, so we have to use some
- different value to mean unset l_tls_offset. */
-# define NO_TLS_OFFSET -1
-
-/* Get and set the global scope generation counter in struct pthread. */
-#define THREAD_GSCOPE_FLAG_UNUSED 0
-#define THREAD_GSCOPE_FLAG_USED 1
-#define THREAD_GSCOPE_FLAG_WAIT 2
-#define THREAD_GSCOPE_RESET_FLAG() \
- do \
- { int __res \
- = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \
- THREAD_GSCOPE_FLAG_UNUSED); \
- if (__res == THREAD_GSCOPE_FLAG_WAIT) \
- lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \
- } \
- while (0)
-#define THREAD_GSCOPE_SET_FLAG() \
- do \
- { \
- THREAD_SELF->header.gscope_flag = THREAD_GSCOPE_FLAG_USED; \
- atomic_write_barrier (); \
- } \
- while (0)
-
-#endif /* __ASSEMBLER__ */
-
-#endif /* tls.h */
diff --git a/sysdeps/nios2/preconfigure b/sysdeps/nios2/preconfigure
deleted file mode 100644
index 4b5bd49..0000000
--- a/sysdeps/nios2/preconfigure
+++ /dev/null
@@ -1,6 +0,0 @@
-case "$machine" in
-nios2*)
- base_machine=nios2
- machine=nios2
- ;;
-esac
diff --git a/sysdeps/nios2/setjmp.S b/sysdeps/nios2/setjmp.S
deleted file mode 100644
index 71624b2..0000000
--- a/sysdeps/nios2/setjmp.S
+++ /dev/null
@@ -1,74 +0,0 @@
-/* setjmp for Nios II.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <pointer_guard.h>
-#include <jmpbuf-offsets.h>
-
- .text
-ENTRY(setjmp)
- movi r5, 1
- br __sigsetjmp
-END(setjmp)
-
-ENTRY(_setjmp)
- mov r5, zero
- br __sigsetjmp
-END(_setjmp)
-libc_hidden_def (_setjmp)
-
-/* Save the current program position in ENV and return 0. */
-ENTRY(__sigsetjmp)
-#ifdef PTR_MANGLE
- PTR_MANGLE_GUARD (r9)
-#endif
- stw r16, (JB_R16*4)(r4)
- stw r17, (JB_R17*4)(r4)
- stw r18, (JB_R18*4)(r4)
- stw r19, (JB_R19*4)(r4)
- stw r20, (JB_R20*4)(r4)
- stw r21, (JB_R21*4)(r4)
- stw r22, (JB_R22*4)(r4)
- stw fp, (JB_FP*4)(r4)
-#ifdef PTR_MANGLE
- PTR_MANGLE (r6, ra, r9)
- PTR_MANGLE (r7, sp, r9)
- stw r6, (JB_RA*4)(r4)
- stw r7, (JB_SP*4)(r4)
-#else
- stw ra, (JB_RA*4)(r4)
- stw sp, (JB_SP*4)(r4)
-#endif
-#if IS_IN (rtld)
- /* In ld.so we never save the signal mask. */
- mov r2, zero
- ret
-#else
- /* Save the signal mask if requested. */
-#if defined(__PIC__) || defined(PIC)
- nextpc r2
-1: movhi r3, %hiadj(__sigjmp_save - 1b)
- addi r3, r3, %lo(__sigjmp_save - 1b)
- add r2, r2, r3
- jmp r2
-#else
- jmpi __sigjmp_save
-#endif
-#endif
-END (__sigsetjmp)
-libc_hidden_def (__sigsetjmp)
diff --git a/sysdeps/nios2/sfp-machine.h b/sysdeps/nios2/sfp-machine.h
deleted file mode 100644
index 95eefc1..0000000
--- a/sysdeps/nios2/sfp-machine.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#define _FP_W_TYPE_SIZE 32
-#define _FP_W_TYPE unsigned long
-#define _FP_WS_TYPE signed long
-#define _FP_I_TYPE long
-
-#define _FP_MUL_MEAT_S(R,X,Y) \
- _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_D(R,X,Y) \
- _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_Q(R,X,Y) \
- _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
-
-#define _FP_MUL_MEAT_DW_S(R,X,Y) \
- _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_DW_D(R,X,Y) \
- _FP_MUL_MEAT_DW_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_DW_Q(R,X,Y) \
- _FP_MUL_MEAT_DW_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
-
-#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
-#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
-#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
-
-#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
-#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
-#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
-#define _FP_NANSIGN_S 0
-#define _FP_NANSIGN_D 0
-#define _FP_NANSIGN_Q 0
-
-#define _FP_KEEPNANFRACP 1
-#define _FP_QNANNEGATEDP 0
-
-/* This is arbitrarily taken from the PowerPC version. */
-#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
- do { \
- if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
- && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
- { \
- R##_s = Y##_s; \
- _FP_FRAC_COPY_##wc(R,Y); \
- } \
- else \
- { \
- R##_s = X##_s; \
- _FP_FRAC_COPY_##wc(R,X); \
- } \
- R##_c = FP_CLS_NAN; \
- } while (0)
-
-#define _FP_TININESS_AFTER_ROUNDING 0
diff --git a/sysdeps/nios2/sotruss-lib.c b/sysdeps/nios2/sotruss-lib.c
deleted file mode 100644
index c3a5808..0000000
--- a/sysdeps/nios2/sotruss-lib.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Override generic sotruss-lib.c to define actual functions for Nios II.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
-
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#define HAVE_ARCH_PLTENTER
-#define HAVE_ARCH_PLTEXIT
-
-#include <elf/sotruss-lib.c>
-
-ElfW(Addr)
-la_nios2_gnu_pltenter (ElfW(Sym) *sym __attribute__ ((unused)),
- unsigned int ndx __attribute__ ((unused)),
- uintptr_t *refcook, uintptr_t *defcook,
- La_nios2_regs *regs, unsigned int *flags,
- const char *symname, long int *framesizep)
-{
- print_enter (refcook, defcook, symname,
- regs->lr_reg[0], regs->lr_reg[1], regs->lr_reg[2],
- *flags);
-
- /* No need to copy anything, we will not need the parameters in any case. */
- *framesizep = 0;
-
- return sym->st_value;
-}
-
-unsigned int
-la_nios2_gnu_pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
- uintptr_t *defcook,
- const struct La_nios2_regs *inregs,
- struct La_nios2_retval *outregs, const char *symname)
-{
- print_exit (refcook, defcook, symname, outregs->lrv_r2);
-
- return 0;
-}
diff --git a/sysdeps/nios2/stackguard-macros.h b/sysdeps/nios2/stackguard-macros.h
deleted file mode 100644
index 55a5771..0000000
--- a/sysdeps/nios2/stackguard-macros.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <stdint.h>
-
-extern uintptr_t __stack_chk_guard;
-#define STACK_CHK_GUARD __stack_chk_guard
-
-#define POINTER_CHK_GUARD THREAD_GET_POINTER_GUARD()
diff --git a/sysdeps/nios2/stackinfo.h b/sysdeps/nios2/stackinfo.h
deleted file mode 100644
index e67d53e..0000000
--- a/sysdeps/nios2/stackinfo.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Stack environment definitions for Nios II.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This file contains a bit of information about the stack allocation
- of the processor. */
-
-#ifndef _STACKINFO_H
-#define _STACKINFO_H 1
-
-#include <elf.h>
-
-/* On Nios II the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-/* Default to a non-executable stack. */
-#define DEFAULT_STACK_PERMS (PF_R|PF_W)
-
-#endif /* stackinfo.h */
diff --git a/sysdeps/nios2/start.S b/sysdeps/nios2/start.S
deleted file mode 100644
index 528046d..0000000
--- a/sysdeps/nios2/start.S
+++ /dev/null
@@ -1,139 +0,0 @@
-/* Startup code for Nios II
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This is the canonical entry point, usually the first thing in the text
- segment.
-
- Note that the code in the .init section has already been run.
- This includes _init and _libc_init
-
- The stack pointer, sp, will point to the argument count on the stack.
- The initial state of the stack when a userspace process is started is:
-
- Purpose Start Address Length
- Unspecified High Addresses
- Referenced strings, etc. Varies
- Unspecified
- Null auxiliary vector entry 4bytes
- Auxiliary vector entries 8bytes each
- NULL terminator for envp 4bytes
- Environment pointers sp+8+4*argc 4bytes each
- NULL terminator for argv sp+4+4*argc 4bytes
- Argument pointers sp+4 4bytes each
- Argument count sp 4bytes
- Unspecified Low Addresses
-
- If the application should register a destructor function with atexit,
- the pointer will be placed in r4. Otherwise r4 will be zero.
-
- The contents of all other registers are unspecified. User code should
- set fp to zero to mark the end of the frame chain.
-
- The auxiliary vector is a series of pairs of 32-bit tag and 32-bit
- value, terminated by an AT_NULL tag.
-*/
-
- .text
- .globl _start
- .type _start,%function
-_start:
- /* Set up the global pointer. */
- movhi gp, %hiadj(_gp)
- addi gp, gp, %lo(_gp)
-
- /* Save the stack pointer. */
- mov r2, sp
-
- /* Create room on the stack for the fini, rtld_fini and stack_end args
- to __libc_start_main. */
- subi sp, sp, 12
-
- /* Push stack_end */
- stw r2, 8(sp)
-
- /* Push rtld_fini */
- stw r4, 4(sp)
-
- /* Set up the GOT pointer. */
- nextpc r22
-1: movhi r2, %hiadj(_gp_got - 1b)
- addi r2, r2, %lo(_gp_got - 1b)
- add r22, r22, r2
-
- /* Used to be fini. */
- stw zero, 0(sp)
-
- /* Used to be init. */
- mov r7, zero
-
- /* r6 == argv */
- addi r6, sp, 16
-
- /* r5 == argc */
- ldw r5, 12(sp)
-
- /* r4 == main */
- movhi r4, %call_hiadj(main)
- addi r4, r4, %call_lo(main)
- add r4, r4, r22
- ldw r4, 0(r4)
-
- /* fp == 0 */
- mov fp, zero
-
- /* __libc_start_main (main, argc, argv, init, fini, rtld_fini,
- stack_end) */
-
- /* Let the libc call main and exit with its return code. */
- movhi r2, %call_hiadj(__libc_start_main)
- addi r2, r2, %call_lo(__libc_start_main)
- add r2, r2, r22
- ldw r2, 0(r2)
- callr r2
-
- /* should never get here....*/
- movhi r2, %call_hiadj(abort)
- addi r2, r2, %call_lo(abort)
- add r2, r2, r22
- ldw r2, 0(r2)
- callr r2
-
-/* Define a symbol for the first piece of initialized data. */
- .data
- .globl __data_start
-__data_start:
- .long 0
- .weak data_start
- data_start = __data_start
diff --git a/sysdeps/nios2/sysdep.h b/sysdeps/nios2/sysdep.h
deleted file mode 100644
index 67c6219..0000000
--- a/sysdeps/nios2/sysdep.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Assembler macros for Nios II.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdeps/generic/sysdep.h>
-
-#ifdef __ASSEMBLER__
-
-/* Syntactic details of assembler. */
-
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
-
-#define ENTRY(name) \
- .globl C_SYMBOL_NAME(name); \
- .type C_SYMBOL_NAME(name),%function; \
- C_LABEL(name) \
- cfi_startproc; \
- CALL_MCOUNT;
-
-#undef END
-#define END(name) \
- cfi_endproc; \
- ASM_SIZE_DIRECTIVE(name)
-
-#ifdef PROF
-
-# ifdef __PIC__
-# define CALL_MCOUNT \
- mov r8, ra; \
- nextpc r2; \
-1: \
- movhi r3, %hiadj(_gp_got - 1b); \
- addi r3, r3, %lo(_gp_got - 1b); \
- add r2, r2, r3; \
- ldw r2, %call(_mcount)(r2); \
- callr r2; \
- mov ra, r8; \
- ret;
-# else
-# define CALL_MCOUNT \
- mov r8, ra; \
- call _mount; \
- mov ra, r8; \
- ret;
-# endif
-
-#else
-# define CALL_MCOUNT /* Do nothing. */
-#endif
-
-#endif /* __ASSEMBLER__ */
diff --git a/sysdeps/nios2/tst-audit.h b/sysdeps/nios2/tst-audit.h
deleted file mode 100644
index 8449387..0000000
--- a/sysdeps/nios2/tst-audit.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Definitions for testing PLT entry/exit auditing. Nios II version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#define pltenter la_nios2_gnu_pltenter
-#define pltexit la_nios2_gnu_pltexit
-#define La_regs La_nios2_regs
-#define La_retval La_nios2_retval
-#define int_retval lrv_r2
diff --git a/sysdeps/nios2/tst-file-align.h b/sysdeps/nios2/tst-file-align.h
deleted file mode 100644
index 8189328..0000000
--- a/sysdeps/nios2/tst-file-align.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Check file alignment. Nios II version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This should cover all possible alignments we currently support. */
-#define ALIGN 0x8000
diff --git a/sysdeps/nios2/utmp-size.h b/sysdeps/nios2/utmp-size.h
deleted file mode 100644
index 8f21ebe..0000000
--- a/sysdeps/nios2/utmp-size.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define UTMP_SIZE 384
-#define LASTLOG_SIZE 292
diff --git a/sysdeps/or1k/fpu/libm-test-ulps b/sysdeps/or1k/fpu/libm-test-ulps
index 9ced4b0..115a73e 100644
--- a/sysdeps/or1k/fpu/libm-test-ulps
+++ b/sysdeps/or1k/fpu/libm-test-ulps
@@ -333,19 +333,15 @@ float: 1
Function: "cbrt":
double: 4
-float: 1
Function: "cbrt_downward":
double: 4
-float: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
Function: "cbrt_upward":
double: 5
-float: 1
Function: Real part of "ccos":
double: 1
@@ -727,35 +723,27 @@ float: 3
Function: "erf":
double: 1
-float: 1
Function: "erf_downward":
double: 1
-float: 1
Function: "erf_towardzero":
double: 1
-float: 1
Function: "erf_upward":
double: 1
-float: 1
Function: "erfc":
double: 5
-float: 3
Function: "erfc_downward":
double: 5
-float: 6
Function: "erfc_towardzero":
double: 3
-float: 4
Function: "erfc_upward":
double: 5
-float: 6
Function: "exp":
double: 1
@@ -893,19 +881,15 @@ float: 9
Function: "lgamma":
double: 4
-float: 7
Function: "lgamma_downward":
double: 7
-float: 7
Function: "lgamma_towardzero":
double: 7
-float: 7
Function: "lgamma_upward":
double: 5
-float: 6
Function: "log10":
double: 2
@@ -1029,20 +1013,14 @@ Function: "sinh_upward":
double: 3
float: 3
-Function: "tan":
-float: 1
-
Function: "tan_downward":
double: 1
-float: 2
Function: "tan_towardzero":
double: 1
-float: 1
Function: "tan_upward":
double: 1
-float: 1
Function: "tanh":
double: 2
diff --git a/sysdeps/or1k/nofpu/libm-test-ulps b/sysdeps/or1k/nofpu/libm-test-ulps
index c7ae0f0..e130fd8 100644
--- a/sysdeps/or1k/nofpu/libm-test-ulps
+++ b/sysdeps/or1k/nofpu/libm-test-ulps
@@ -333,19 +333,15 @@ float: 1
Function: "cbrt":
double: 4
-float: 1
Function: "cbrt_downward":
double: 4
-float: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
Function: "cbrt_upward":
double: 5
-float: 1
Function: Real part of "ccos":
double: 1
@@ -727,35 +723,27 @@ float: 3
Function: "erf":
double: 1
-float: 1
Function: "erf_downward":
double: 1
-float: 1
Function: "erf_towardzero":
double: 1
-float: 1
Function: "erf_upward":
double: 1
-float: 1
Function: "erfc":
double: 5
-float: 3
Function: "erfc_downward":
double: 5
-float: 6
Function: "erfc_towardzero":
double: 3
-float: 4
Function: "erfc_upward":
double: 5
-float: 6
Function: "exp":
double: 1
@@ -891,19 +879,15 @@ float: 9
Function: "lgamma":
double: 4
-float: 7
Function: "lgamma_downward":
double: 7
-float: 7
Function: "lgamma_towardzero":
double: 7
-float: 7
Function: "lgamma_upward":
double: 5
-float: 6
Function: "log10":
double: 2
@@ -1019,20 +1003,14 @@ Function: "sinh_upward":
double: 3
float: 3
-Function: "tan":
-float: 1
-
Function: "tan_downward":
double: 1
-float: 2
Function: "tan_towardzero":
double: 1
-float: 1
Function: "tan_upward":
double: 1
-float: 1
Function: "tanh":
double: 2
diff --git a/sysdeps/posix/system.c b/sysdeps/posix/system.c
index 01e8bc4..be32704 100644
--- a/sysdeps/posix/system.c
+++ b/sysdeps/posix/system.c
@@ -144,7 +144,7 @@ do_system (const char *line)
__posix_spawnattr_setflags (&spawn_attr,
POSIX_SPAWN_SETSIGDEF | POSIX_SPAWN_SETSIGMASK);
- ret = __posix_spawn (&pid, SHELL_PATH, 0, &spawn_attr,
+ ret = __posix_spawn (&pid, SHELL_PATH, NULL, &spawn_attr,
(char *const[]){ (char *) SHELL_NAME,
(char *) "-c",
(char *) "--",
diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps
index 8d0c18e..adaa10f 100644
--- a/sysdeps/powerpc/fpu/libm-test-ulps
+++ b/sysdeps/powerpc/fpu/libm-test-ulps
@@ -506,25 +506,21 @@ ldouble: 6
Function: "cbrt":
double: 4
-float: 1
float128: 1
ldouble: 1
Function: "cbrt_downward":
double: 4
-float: 1
float128: 1
ldouble: 5
Function: "cbrt_towardzero":
double: 3
-float: 1
float128: 1
ldouble: 3
Function: "cbrt_upward":
double: 5
-float: 1
float128: 2
ldouble: 2
@@ -1109,49 +1105,41 @@ double: 1
Function: "erf":
double: 1
-float: 1
float128: 1
ldouble: 1
Function: "erf_downward":
double: 1
-float: 1
float128: 2
ldouble: 2
Function: "erf_towardzero":
double: 1
-float: 1
float128: 1
ldouble: 2
Function: "erf_upward":
double: 1
-float: 1
float128: 2
ldouble: 3
Function: "erfc":
double: 2
-float: 2
float128: 4
ldouble: 3
Function: "erfc_downward":
double: 4
-float: 4
float128: 5
ldouble: 10
Function: "erfc_towardzero":
double: 3
-float: 3
float128: 4
ldouble: 11
Function: "erfc_upward":
double: 4
-float: 4
float128: 5
ldouble: 7
@@ -1443,25 +1431,21 @@ ldouble: 5
Function: "lgamma":
double: 3
-float: 4
float128: 5
ldouble: 3
Function: "lgamma_downward":
double: 4
-float: 4
float128: 8
ldouble: 15
Function: "lgamma_towardzero":
double: 4
-float: 3
float128: 5
ldouble: 16
Function: "lgamma_upward":
double: 4
-float: 5
float128: 8
ldouble: 11
@@ -1753,25 +1737,21 @@ double: 1
float: 1
Function: "tan":
-float: 3
float128: 1
ldouble: 2
Function: "tan_downward":
double: 1
-float: 3
float128: 1
ldouble: 3
Function: "tan_towardzero":
double: 1
-float: 3
float128: 1
ldouble: 2
Function: "tan_upward":
double: 1
-float: 3
float128: 1
ldouble: 3
diff --git a/sysdeps/powerpc/fpu/math_private.h b/sysdeps/powerpc/fpu/math_private.h
index 9ef35b2..b22f53d 100644
--- a/sysdeps/powerpc/fpu/math_private.h
+++ b/sysdeps/powerpc/fpu/math_private.h
@@ -59,4 +59,9 @@ __ieee754_sqrtf128 (_Float128 __x)
#define _GL_HAS_BUILTIN_ILOGB 0
#endif
+#ifdef _ARCH_PWR6
+/* ISA 2.03 provides frin/round() and cntlzw/ctznll(). */
+# define ROUNDEVEN_INTRINSICS 0
+#endif
+
#endif /* _PPC_MATH_PRIVATE_H_ */
diff --git a/sysdeps/powerpc/nofpu/libm-test-ulps b/sysdeps/powerpc/nofpu/libm-test-ulps
index 20036c7..2c44e39 100644
--- a/sysdeps/powerpc/nofpu/libm-test-ulps
+++ b/sysdeps/powerpc/nofpu/libm-test-ulps
@@ -421,22 +421,18 @@ ldouble: 6
Function: "cbrt":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_downward":
double: 4
-float: 1
ldouble: 5
Function: "cbrt_towardzero":
double: 3
-float: 1
ldouble: 3
Function: "cbrt_upward":
double: 5
-float: 1
ldouble: 2
Function: Real part of "ccos":
@@ -923,42 +919,34 @@ double: 1
Function: "erf":
double: 1
-float: 1
ldouble: 1
Function: "erf_downward":
double: 1
-float: 1
ldouble: 2
Function: "erf_towardzero":
double: 1
-float: 1
ldouble: 2
Function: "erf_upward":
double: 1
-float: 1
ldouble: 2
Function: "erfc":
double: 5
-float: 3
ldouble: 3
Function: "erfc_downward":
double: 5
-float: 6
ldouble: 10
Function: "erfc_towardzero":
double: 3
-float: 4
ldouble: 11
Function: "erfc_upward":
double: 5
-float: 6
ldouble: 7
Function: "exp":
@@ -1213,22 +1201,18 @@ ldouble: 1
Function: "lgamma":
double: 4
-float: 7
ldouble: 3
Function: "lgamma_downward":
double: 5
-float: 7
ldouble: 15
Function: "lgamma_towardzero":
double: 5
-float: 6
ldouble: 16
Function: "lgamma_upward":
double: 5
-float: 6
ldouble: 11
Function: "log":
@@ -1492,22 +1476,18 @@ double: 1
float: 1
Function: "tan":
-float: 1
ldouble: 2
Function: "tan_downward":
double: 1
-float: 2
ldouble: 3
Function: "tan_towardzero":
double: 1
-float: 1
ldouble: 2
Function: "tan_upward":
double: 1
-float: 1
ldouble: 3
Function: "tanh":
diff --git a/sysdeps/powerpc/stackinfo.h b/sysdeps/powerpc/powerpc32/stackinfo.h
index 410689b..2ca3600 100644
--- a/sysdeps/powerpc/stackinfo.h
+++ b/sysdeps/powerpc/powerpc32/stackinfo.h
@@ -26,13 +26,7 @@
/* On PPC the stack grows down. */
#define _STACK_GROWS_DOWN 1
-#if __WORDSIZE == 64
-/* PPC64 doesn't need an executable stack and doesn't need PT_GNU_STACK
- * to make the stack nonexecutable. */
-# define DEFAULT_STACK_PERMS (PF_R|PF_W)
-#else
/* PF_X can be overridden if PT_GNU_STACK is present but is presumed absent. */
-# define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X)
-#endif
+#define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X)
#endif /* stackinfo.h */
diff --git a/sysdeps/powerpc/powerpc64/crti.S b/sysdeps/powerpc/powerpc64/crti.S
index 71bdddf..e977bc4 100644
--- a/sysdeps/powerpc/powerpc64/crti.S
+++ b/sysdeps/powerpc/powerpc64/crti.S
@@ -68,6 +68,9 @@ BODY_LABEL (_init):
LOCALENTRY(_init)
mflr 0
std 0, FRAME_LR_SAVE(r1)
+#ifdef __ROP_PROTECT__
+ hashst 0, FRAME_ROP_SAVE(r1)
+#endif
stdu r1, -FRAME_MIN_SIZE_PARM(r1)
#if PREINIT_FUNCTION_WEAK
addis r9, r2, .LC0@toc@ha
@@ -87,4 +90,7 @@ BODY_LABEL (_fini):
LOCALENTRY(_fini)
mflr 0
std 0, FRAME_LR_SAVE(r1)
+#ifdef __ROP_PROTECT__
+ hashst 0, FRAME_ROP_SAVE(r1)
+#endif
stdu r1, -FRAME_MIN_SIZE_PARM(r1)
diff --git a/sysdeps/powerpc/powerpc64/crtn.S b/sysdeps/powerpc/powerpc64/crtn.S
index 4e91231..a37e159 100644
--- a/sysdeps/powerpc/powerpc64/crtn.S
+++ b/sysdeps/powerpc/powerpc64/crtn.S
@@ -42,10 +42,16 @@
addi r1, r1, FRAME_MIN_SIZE_PARM
ld r0, FRAME_LR_SAVE(r1)
mtlr r0
+#ifdef __ROP_PROTECT__
+ hashchk 0, FRAME_ROP_SAVE(r1)
+#endif
blr
.section .fini,"ax",@progbits
addi r1, r1, FRAME_MIN_SIZE_PARM
ld r0, FRAME_LR_SAVE(r1)
mtlr r0
+#ifdef __ROP_PROTECT__
+ hashchk 0, FRAME_ROP_SAVE(r1)
+#endif
blr
diff --git a/sysdeps/powerpc/powerpc64/le/power9/strncpy.S b/sysdeps/powerpc/powerpc64/le/power9/strncpy.S
index 58139ad..a3c3220 100644
--- a/sysdeps/powerpc/powerpc64/le/power9/strncpy.S
+++ b/sysdeps/powerpc/powerpc64/le/power9/strncpy.S
@@ -365,8 +365,8 @@ L(zero_padding_end):
.align 4
L(zero_padding_memset):
- std r30,-8(r1) /* Save r30 on the stack. */
- cfi_offset(r30, -8)
+ std r30,-16(r1) /* Save r30 on the stack. */
+ cfi_offset(r30, -16)
mr r30,r3 /* Save the return value of strncpy. */
/* Prepare the call to memset. */
mr r3,r11 /* Pointer to the area to be zero-filled. */
@@ -380,6 +380,9 @@ L(zero_padding_memset):
mflr r0
std r0,16(r1)
+#ifdef __ROP_PROTECT__
+ hashst 0,FRAME_ROP_SAVE(r1)
+#endif
/* Create the stack frame. */
stdu r1,-FRAMESIZE(r1)
cfi_adjust_cfa_offset(FRAMESIZE)
@@ -395,13 +398,16 @@ L(zero_padding_memset):
mr r3,r30 /* Restore the return value of strncpy, i.e.:
dest. For stpncpy, the return value is the
same as return value of memset. */
- ld r30,FRAMESIZE-8(r1) /* Restore r30. */
+ ld r30,FRAMESIZE-16(r1) /* Restore r30. */
/* Restore the stack frame. */
addi r1,r1,FRAMESIZE
cfi_adjust_cfa_offset(-FRAMESIZE)
/* Restore the link register. */
mtlr r0
cfi_restore(lr)
+#ifdef __ROP_PROTECT__
+ hashchk 0,FRAME_ROP_SAVE(r1)
+#endif
blr
END (FUNC_NAME)
diff --git a/sysdeps/powerpc/powerpc64/power8/strncpy.S b/sysdeps/powerpc/powerpc64/power8/strncpy.S
index e68453b..110c530 100644
--- a/sysdeps/powerpc/powerpc64/power8/strncpy.S
+++ b/sysdeps/powerpc/powerpc64/power8/strncpy.S
@@ -81,26 +81,26 @@ ENTRY (FUNC_NAME, 4)
rlwinm r9,r4,0,19,19
/* Save some non-volatile registers on the stack. */
- std r26,-48(r1)
- std r27,-40(r1)
+ std r26,-56(r1)
+ std r27,-48(r1)
rlwinm r8,r10,0,19,19
- std r28,-32(r1)
- std r29,-24(r1)
+ std r28,-40(r1)
+ std r29,-32(r1)
cmpld cr7,r9,r8
- std r30,-16(r1)
- std r31,-8(r1)
+ std r30,-24(r1)
+ std r31,-16(r1)
/* Update CFI. */
- cfi_offset(r26, -48)
- cfi_offset(r27, -40)
- cfi_offset(r28, -32)
- cfi_offset(r29, -24)
- cfi_offset(r30, -16)
- cfi_offset(r31, -8)
+ cfi_offset(r26, -56)
+ cfi_offset(r27, -48)
+ cfi_offset(r28, -40)
+ cfi_offset(r29, -32)
+ cfi_offset(r30, -24)
+ cfi_offset(r31, -16)
beq cr7,L(unaligned_lt_16)
rldicl r9,r4,0,61
@@ -205,12 +205,12 @@ L(short_path_loop_end_1):
#endif
L(short_path_loop_end):
/* Restore non-volatile registers. */
- ld r26,-48(r1)
- ld r27,-40(r1)
- ld r28,-32(r1)
- ld r29,-24(r1)
- ld r30,-16(r1)
- ld r31,-8(r1)
+ ld r26,-56(r1)
+ ld r27,-48(r1)
+ ld r28,-40(r1)
+ ld r29,-32(r1)
+ ld r30,-24(r1)
+ ld r31,-16(r1)
blr
/* This code pads the remainder of dest with NULL bytes. The algorithm
@@ -242,6 +242,9 @@ L(zero_pad_start_1):
mflr r0
std r0,16(r1)
+#ifdef __ROP_PROTECT__
+ hashst 0,FRAME_ROP_SAVE(r1)
+#endif
/* Create the stack frame. */
stdu r1,-FRAMESIZE(r1)
cfi_adjust_cfa_offset(FRAMESIZE)
@@ -261,18 +264,21 @@ L(zero_pad_start_1):
#endif
/* Restore non-volatile registers and return. */
- ld r26,FRAMESIZE-48(r1)
- ld r27,FRAMESIZE-40(r1)
- ld r28,FRAMESIZE-32(r1)
- ld r29,FRAMESIZE-24(r1)
- ld r30,FRAMESIZE-16(r1)
- ld r31,FRAMESIZE-8(r1)
+ ld r26,FRAMESIZE-56(r1)
+ ld r27,FRAMESIZE-48(r1)
+ ld r28,FRAMESIZE-40(r1)
+ ld r29,FRAMESIZE-32(r1)
+ ld r30,FRAMESIZE-24(r1)
+ ld r31,FRAMESIZE-16(r1)
/* Restore the stack frame. */
addi r1,r1,FRAMESIZE
cfi_adjust_cfa_offset(-FRAMESIZE)
/* Restore the link register. */
mtlr r0
cfi_restore(lr)
+#ifdef __ROP_PROTECT__
+ hashchk 0,FRAME_ROP_SAVE(r1)
+#endif
blr
/* The common case where [src]+16 will not cross a 4K page boundary.
diff --git a/sysdeps/powerpc/powerpc64/ppc-mcount.S b/sysdeps/powerpc/powerpc64/ppc-mcount.S
index 7296d6a..91e422d 100644
--- a/sysdeps/powerpc/powerpc64/ppc-mcount.S
+++ b/sysdeps/powerpc/powerpc64/ppc-mcount.S
@@ -25,6 +25,9 @@ ENTRY(_mcount)
mflr r4
ld r11, 0(r1)
std r4, FRAME_LR_SAVE(r1)
+#ifdef __ROP_PROTECT__
+ hashst r4, FRAME_ROP_SAVE(r1)
+#endif
stdu r1,-FRAME_MIN_SIZE(r1)
cfi_adjust_cfa_offset (FRAME_MIN_SIZE)
cfi_offset (lr, FRAME_LR_SAVE)
@@ -36,5 +39,8 @@ ENTRY(_mcount)
ld r0, FRAME_MIN_SIZE+FRAME_LR_SAVE(r1)
mtlr r0
addi r1,r1,FRAME_MIN_SIZE
+#ifdef __ROP_PROTECT__
+ hashchk 0, FRAME_ROP_SAVE(r1)
+#endif
blr
END(_mcount)
diff --git a/sysdeps/powerpc/powerpc64/sysdep.h b/sysdeps/powerpc/powerpc64/sysdep.h
index c439b06..a15d858 100644
--- a/sysdeps/powerpc/powerpc64/sysdep.h
+++ b/sysdeps/powerpc/powerpc64/sysdep.h
@@ -31,8 +31,9 @@
#define FRAME_TOC_SAVE 40
#define FRAME_PARM_SAVE 48
#else
-#define FRAME_MIN_SIZE 32
-#define FRAME_MIN_SIZE_PARM 96
+#define FRAME_ROP_SAVE -8
+#define FRAME_MIN_SIZE 48 /* Includes space for the ROP save slot */
+#define FRAME_MIN_SIZE_PARM 112 /* Includes space for the ROP save slot */
#define FRAME_TOC_SAVE 24
#define FRAME_PARM_SAVE 32
#endif
diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
index 1a9f255..f2c2053 100644
--- a/sysdeps/pthread/Makefile
+++ b/sysdeps/pthread/Makefile
@@ -257,6 +257,7 @@ tests += \
tst-sem15 \
tst-sem16 \
tst-sem18 \
+ tst-sem19 \
tst-setuid3 \
tst-signal1 \
tst-signal2 \
@@ -268,6 +269,7 @@ tests += \
tst-spin2 \
tst-spin3 \
tst-spin4 \
+ tst-spin5 \
tst-stack1 \
tst-stdio1 \
tst-stdio2 \
diff --git a/sysdeps/pthread/tst-sem19.c b/sysdeps/pthread/tst-sem19.c
new file mode 100644
index 0000000..9ef461e
--- /dev/null
+++ b/sysdeps/pthread/tst-sem19.c
@@ -0,0 +1,77 @@
+/* Test sem_trywait with threads.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <pthread.h>
+#include <semaphore.h>
+#include <support/check.h>
+#include <support/xthread.h>
+
+/* The test uses two threads, the main thread and a newly created
+ thread to test the operation of sem_trywait in a threaded scenario.
+ The intent is to test sem_trywait when it would return EAGAIN, and
+ then again after the critical section in the new thread has posted
+ to the semaphore and the main thread succeeds in calling
+ sem_trywait. It is possible this test fails with a timeout if the
+ second thread takes longer than the test timeout to acquire the
+ lock, and post. */
+
+static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
+static sem_t sem;
+
+static void *
+tf (void *arg)
+{
+ xpthread_mutex_lock (&lock);
+ sem_post (&sem);
+ xpthread_mutex_unlock (&lock);
+ return NULL;
+}
+
+static int
+do_test (void)
+{
+ int ret;
+
+ ret = sem_init (&sem, 0, 0);
+ TEST_VERIFY_EXIT (ret == 0);
+ xpthread_mutex_lock (&lock);
+ pthread_t th = xpthread_create (NULL, tf, NULL);
+ errno = 0;
+ /* The other thread is waiting on the lock before it calls sem_post,
+ so sem_trywait should fail. */
+ ret = sem_trywait (&sem);
+ TEST_COMPARE (ret, -1);
+ TEST_COMPARE (errno, EAGAIN);
+ xpthread_mutex_unlock (&lock);
+ /* The other thread now takes the lock, calls sem_post and releases
+ the lock. */
+ for (;;)
+ {
+ errno = 0;
+ ret = sem_trywait (&sem);
+ if (ret == 0)
+ break;
+ TEST_COMPARE (errno, EAGAIN);
+ }
+ xpthread_join (th);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/pthread/tst-spin5.c b/sysdeps/pthread/tst-spin5.c
new file mode 100644
index 0000000..5c23bd4
--- /dev/null
+++ b/sysdeps/pthread/tst-spin5.c
@@ -0,0 +1,82 @@
+/* Threaded test the pthread_spin_trylock function.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <errno.h>
+#include <support/check.h>
+#include <support/support.h>
+#include <support/xunistd.h>
+#include <support/xthread.h>
+
+pthread_spinlock_t lock;
+
+void *
+thread (void *arg)
+{
+ int ret;
+ int thr_id = *(int *) arg;
+
+ ret = pthread_spin_trylock (&lock);
+ if (thr_id == 1)
+ /* thread with already acquired lock. */
+ {
+ if (ret != EBUSY)
+ {
+ FAIL_EXIT1 ("pthread_spin_trylock should fail with EBUSY");
+ }
+ }
+ else if (thr_id == 2)
+ /* thread with released spin lock. */
+ {
+ if (ret != 0)
+ {
+ FAIL_EXIT1 ("pthread_spin_trylock should be able to acquire lock");
+ }
+ }
+ return NULL;
+}
+
+static int
+do_test (void)
+{
+ pthread_t thr1, thr2;
+ int ret;
+ int thr1_id = 1, thr2_id = 2;
+
+ pthread_spin_init (&lock, PTHREAD_PROCESS_PRIVATE);
+ /* lock spin in main thread. */
+ ret = pthread_spin_trylock (&lock);
+ if (ret != 0)
+ {
+ FAIL_EXIT1 ("Main thread should be able to acquire spin lock");
+ }
+
+ /* create first thread to try locking already acquired spin lock. */
+ thr1 = xpthread_create (NULL, thread, &thr1_id);
+ xpthread_join (thr1);
+
+ /* release spin lock and create thread to acquire released spin lock. */
+ pthread_spin_unlock (&lock);
+ thr2 = xpthread_create (NULL, thread, &thr2_id);
+ xpthread_join (thr2);
+
+ pthread_spin_destroy (&lock);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/riscv/nofpu/libm-test-ulps b/sysdeps/riscv/nofpu/libm-test-ulps
index cccc864..84b9e15 100644
--- a/sysdeps/riscv/nofpu/libm-test-ulps
+++ b/sysdeps/riscv/nofpu/libm-test-ulps
@@ -417,22 +417,18 @@ ldouble: 2
Function: "cbrt":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_downward":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
ldouble: 1
Function: "cbrt_upward":
double: 5
-float: 1
ldouble: 1
Function: Real part of "ccos":
@@ -910,42 +906,34 @@ ldouble: 5
Function: "erf":
double: 1
-float: 1
ldouble: 1
Function: "erf_downward":
double: 1
-float: 1
ldouble: 2
Function: "erf_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "erf_upward":
double: 1
-float: 1
ldouble: 2
Function: "erfc":
double: 5
-float: 3
ldouble: 4
Function: "erfc_downward":
double: 3
-float: 4
ldouble: 5
Function: "erfc_towardzero":
double: 3
-float: 3
ldouble: 4
Function: "erfc_upward":
double: 3
-float: 4
ldouble: 5
Function: "exp":
@@ -1124,22 +1112,18 @@ ldouble: 7
Function: "lgamma":
double: 4
-float: 7
ldouble: 5
Function: "lgamma_downward":
double: 4
-float: 4
ldouble: 8
Function: "lgamma_towardzero":
double: 4
-float: 3
ldouble: 5
Function: "lgamma_upward":
double: 4
-float: 5
ldouble: 8
Function: "log":
@@ -1305,22 +1289,18 @@ float: 3
ldouble: 4
Function: "tan":
-float: 1
ldouble: 1
Function: "tan_downward":
double: 1
-float: 2
ldouble: 1
Function: "tan_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "tan_upward":
double: 1
-float: 1
ldouble: 1
Function: "tanh":
diff --git a/sysdeps/riscv/rvd/libm-test-ulps b/sysdeps/riscv/rvd/libm-test-ulps
index 14fc763..b9446e5 100644
--- a/sysdeps/riscv/rvd/libm-test-ulps
+++ b/sysdeps/riscv/rvd/libm-test-ulps
@@ -417,22 +417,18 @@ ldouble: 2
Function: "cbrt":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_downward":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
ldouble: 1
Function: "cbrt_upward":
double: 5
-float: 1
ldouble: 1
Function: Real part of "ccos":
@@ -913,42 +909,34 @@ ldouble: 5
Function: "erf":
double: 1
-float: 1
ldouble: 1
Function: "erf_downward":
double: 1
-float: 1
ldouble: 2
Function: "erf_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "erf_upward":
double: 1
-float: 1
ldouble: 2
Function: "erfc":
double: 2
-float: 2
ldouble: 4
Function: "erfc_downward":
double: 4
-float: 4
ldouble: 5
Function: "erfc_towardzero":
double: 3
-float: 3
ldouble: 4
Function: "erfc_upward":
double: 4
-float: 4
ldouble: 5
Function: "exp":
@@ -1151,22 +1139,18 @@ ldouble: 7
Function: "lgamma":
double: 3
-float: 3
ldouble: 5
Function: "lgamma_downward":
double: 4
-float: 4
ldouble: 8
Function: "lgamma_towardzero":
double: 4
-float: 3
ldouble: 5
Function: "lgamma_upward":
double: 4
-float: 5
ldouble: 8
Function: "log":
@@ -1363,22 +1347,18 @@ float: 3
ldouble: 4
Function: "tan":
-float: 1
ldouble: 1
Function: "tan_downward":
double: 1
-float: 2
ldouble: 1
Function: "tan_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "tan_upward":
double: 1
-float: 1
ldouble: 1
Function: "tanh":
diff --git a/sysdeps/riscv/rvd/math-use-builtins-fma.h b/sysdeps/riscv/rvd/math-use-builtins-fma.h
new file mode 100644
index 0000000..eede75a
--- /dev/null
+++ b/sysdeps/riscv/rvd/math-use-builtins-fma.h
@@ -0,0 +1,4 @@
+#define USE_FMA_BUILTIN 1
+#define USE_FMAF_BUILTIN 1
+#define USE_FMAL_BUILTIN 0
+#define USE_FMAF128_BUILTIN 0
diff --git a/sysdeps/riscv/rvd/s_copysign.c b/sysdeps/riscv/rvd/s_copysign.c
deleted file mode 100644
index 6c0c946..0000000
--- a/sysdeps/riscv/rvd/s_copysign.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copy sign bit between floating-point values. RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-double.h>
-
-double
-__copysign (double x, double y)
-{
- asm ("fsgnj.d %0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
-}
-libm_alias_double (__copysign, copysign)
diff --git a/sysdeps/riscv/rvd/s_fma.c b/sysdeps/riscv/rvd/s_fma.c
deleted file mode 100644
index fb4b6fb..0000000
--- a/sysdeps/riscv/rvd/s_fma.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Double precision floating point fused multiply-add. RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#define dfmal __hide_dfmal
-#define f32xfmaf64 __hide_f32xfmaf64
-#include <math.h>
-#undef dfmal
-#undef f32xfmaf64
-#include <fenv.h>
-#include <ieee754.h>
-#include <libm-alias-double.h>
-#include <math-narrow-alias.h>
-
-double
-__fma (double x, double y, double z)
-{
- asm ("fmadd.d %0, %1, %2, %3" : "=f" (x) : "f" (x), "f" (y), "f" (z));
- return x;
-}
-libm_alias_double (__fma, fma)
-libm_alias_double_narrow (__fma, fma)
diff --git a/sysdeps/riscv/rvf/s_copysignf.c b/sysdeps/riscv/rvf/s_copysignf.c
deleted file mode 100644
index f34d37b..0000000
--- a/sysdeps/riscv/rvf/s_copysignf.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* copysignf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-float.h>
-
-float
-__copysignf (float x, float y)
-{
- asm ("fsgnj.s %0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
-}
-libm_alias_float (__copysign, copysign)
diff --git a/sysdeps/riscv/rvf/s_fmaf.c b/sysdeps/riscv/rvf/s_fmaf.c
deleted file mode 100644
index 1f1ad3f..0000000
--- a/sysdeps/riscv/rvf/s_fmaf.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* fmaf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <fenv.h>
-#include <ieee754.h>
-#include <libm-alias-float.h>
-
-float
-__fmaf (float x, float y, float z)
-{
- asm ("fmadd.s %0, %1, %2, %3" : "=f" (x) : "f" (x), "f" (y), "f" (z));
- return x;
-}
-libm_alias_float (__fma, fma)
diff --git a/sysdeps/riscv/stackinfo.h b/sysdeps/riscv/stackinfo.h
deleted file mode 100644
index a786d4f..0000000
--- a/sysdeps/riscv/stackinfo.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Stack environment definitions for RISC-V.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This file contains a bit of information about the stack allocation
- of the processor. */
-
-#ifndef _STACKINFO_H
-#define _STACKINFO_H 1
-
-#include <elf.h>
-
-/* On RISC-V the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-/* Default to a non-executable stack. */
-#define DEFAULT_STACK_PERMS (PF_R | PF_W)
-
-#endif /* stackinfo.h */
diff --git a/sysdeps/s390/fpu/libm-test-ulps b/sysdeps/s390/fpu/libm-test-ulps
index a25bb50..62d3f14 100644
--- a/sysdeps/s390/fpu/libm-test-ulps
+++ b/sysdeps/s390/fpu/libm-test-ulps
@@ -417,22 +417,18 @@ ldouble: 2
Function: "cbrt":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_downward":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
ldouble: 1
Function: "cbrt_upward":
double: 5
-float: 1
ldouble: 1
Function: Real part of "ccos":
@@ -914,42 +910,34 @@ ldouble: 5
Function: "erf":
double: 1
-float: 1
ldouble: 1
Function: "erf_downward":
double: 1
-float: 1
ldouble: 2
Function: "erf_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "erf_upward":
double: 1
-float: 1
ldouble: 2
Function: "erfc":
double: 2
-float: 2
ldouble: 4
Function: "erfc_downward":
double: 4
-float: 4
ldouble: 5
Function: "erfc_towardzero":
double: 3
-float: 3
ldouble: 4
Function: "erfc_upward":
double: 4
-float: 4
ldouble: 5
Function: "exp":
@@ -1153,22 +1141,18 @@ ldouble: 7
Function: "lgamma":
double: 3
-float: 3
ldouble: 5
Function: "lgamma_downward":
double: 4
-float: 4
ldouble: 8
Function: "lgamma_towardzero":
double: 4
-float: 3
ldouble: 5
Function: "lgamma_upward":
double: 4
-float: 5
ldouble: 8
Function: "log":
@@ -1362,22 +1346,18 @@ float: 3
ldouble: 4
Function: "tan":
-float: 1
ldouble: 1
Function: "tan_downward":
double: 1
-float: 2
ldouble: 1
Function: "tan_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "tan_upward":
double: 1
-float: 1
ldouble: 1
Function: "tanh":
diff --git a/sysdeps/sh/libm-test-ulps b/sysdeps/sh/libm-test-ulps
index 8562796..a6d271e 100644
--- a/sysdeps/sh/libm-test-ulps
+++ b/sysdeps/sh/libm-test-ulps
@@ -164,11 +164,9 @@ float: 2
Function: "cbrt":
double: 4
-float: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
Function: Real part of "ccos":
double: 1
@@ -357,19 +355,15 @@ float: 3
Function: "erf":
double: 1
-float: 1
Function: "erf_towardzero":
double: 1
-float: 1
Function: "erfc":
double: 5
-float: 2
Function: "erfc_towardzero":
double: 3
-float: 3
Function: "exp":
double: 1
@@ -441,11 +435,9 @@ float: 5
Function: "lgamma":
double: 4
-float: 3
Function: "lgamma_towardzero":
double: 5
-float: 3
Function: "log":
float: 1
@@ -509,12 +501,8 @@ Function: "sinh_towardzero":
double: 3
float: 2
-Function: "tan":
-float: 1
-
Function: "tan_towardzero":
double: 1
-float: 1
Function: "tanh":
double: 2
diff --git a/sysdeps/sparc/fpu/libm-test-ulps b/sysdeps/sparc/fpu/libm-test-ulps
index 6ea0205..9276ff9 100644
--- a/sysdeps/sparc/fpu/libm-test-ulps
+++ b/sysdeps/sparc/fpu/libm-test-ulps
@@ -417,22 +417,18 @@ ldouble: 2
Function: "cbrt":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_downward":
double: 4
-float: 1
ldouble: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
ldouble: 1
Function: "cbrt_upward":
double: 5
-float: 1
ldouble: 1
Function: Real part of "ccos":
@@ -913,42 +909,34 @@ ldouble: 5
Function: "erf":
double: 1
-float: 1
ldouble: 1
Function: "erf_downward":
double: 1
-float: 1
ldouble: 2
Function: "erf_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "erf_upward":
double: 1
-float: 1
ldouble: 2
Function: "erfc":
double: 5
-float: 3
ldouble: 4
Function: "erfc_downward":
double: 5
-float: 6
ldouble: 5
Function: "erfc_towardzero":
double: 3
-float: 4
ldouble: 4
Function: "erfc_upward":
double: 5
-float: 6
ldouble: 5
Function: "exp":
@@ -1155,22 +1143,18 @@ ldouble: 7
Function: "lgamma":
double: 4
-float: 7
ldouble: 5
Function: "lgamma_downward":
double: 5
-float: 7
ldouble: 8
Function: "lgamma_towardzero":
double: 5
-float: 6
ldouble: 5
Function: "lgamma_upward":
double: 5
-float: 6
ldouble: 8
Function: "log":
@@ -1376,22 +1360,18 @@ float: 3
ldouble: 4
Function: "tan":
-float: 1
ldouble: 1
Function: "tan_downward":
double: 1
-float: 2
ldouble: 1
Function: "tan_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "tan_upward":
double: 1
-float: 1
ldouble: 1
Function: "tanh":
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 527c7a5..eb9c697 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -668,6 +668,7 @@ ifeq ($(subdir),nptl)
tests += \
tst-align-clone \
tst-getpid1 \
+ tst-sem_getvalue-affinity \
# tests
# tst-rseq-nptl is an internal test because it requires a definition of
diff --git a/sysdeps/unix/sysv/linux/brk.c b/sysdeps/unix/sysv/linux/brk.c
index a0be43e..dbdb8dd 100644
--- a/sysdeps/unix/sysv/linux/brk.c
+++ b/sysdeps/unix/sysv/linux/brk.c
@@ -22,7 +22,7 @@
#include <brk_call.h>
/* This must be initialized data because commons can't have aliases. */
-void *__curbrk = 0;
+void *__curbrk = NULL;
#if HAVE_INTERNAL_BRK_ADDR_SYMBOL
/* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt
diff --git a/sysdeps/unix/sysv/linux/dl-early_allocate.c b/sysdeps/unix/sysv/linux/dl-early_allocate.c
index 4d98076..ce5c6b5 100644
--- a/sysdeps/unix/sysv/linux/dl-early_allocate.c
+++ b/sysdeps/unix/sysv/linux/dl-early_allocate.c
@@ -51,7 +51,7 @@ _dl_early_allocate (size_t size)
{
/* If brk has not been invoked, there is no need to update
__curbrk. The first call to brk will take care of that. */
- void *previous = __brk_call (0);
+ void *previous = __brk_call (NULL);
result = __brk_call (previous + size);
if (result == previous)
result = NULL;
diff --git a/sysdeps/unix/sysv/linux/dl-sysdep.c b/sysdeps/unix/sysv/linux/dl-sysdep.c
index a8ec2d7..d1170a1 100644
--- a/sysdeps/unix/sysv/linux/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/dl-sysdep.c
@@ -113,7 +113,7 @@ _dl_sysdep_start (void **start_argptr,
/* Initialize DSO sorting algorithm after tunables. */
_dl_sort_maps_init ();
- __brk (0); /* Initialize the break. */
+ __brk (NULL); /* Initialize the break. */
#ifdef DL_PLATFORM_INIT
DL_PLATFORM_INIT;
@@ -200,6 +200,8 @@ _dl_show_auxv (void)
[AT_HWCAP2 - 2] = { "HWCAP2: 0x", hex },
[AT_HWCAP3 - 2] = { "HWCAP3: 0x", hex },
[AT_HWCAP4 - 2] = { "HWCAP4: 0x", hex },
+ [AT_RSEQ_FEATURE_SIZE - 2] = { "RSEQ_FEATURE_SIZE: ", dec },
+ [AT_RSEQ_ALIGN - 2] = { "RSEQ_ALIGN: ", dec },
[AT_MINSIGSTKSZ - 2] = { "MINSIGSTKSZ: ", dec },
[AT_L1I_CACHESIZE - 2] = { "L1I_CACHESIZE: ", dec },
[AT_L1I_CACHEGEOMETRY - 2] = { "L1I_CACHEGEOMETRY: 0x", hex },
diff --git a/sysdeps/unix/sysv/linux/fstat64.c b/sysdeps/unix/sysv/linux/fstat64.c
index cc9f695..752a111 100644
--- a/sysdeps/unix/sysv/linux/fstat64.c
+++ b/sysdeps/unix/sysv/linux/fstat64.c
@@ -30,7 +30,7 @@ __fstat64_time64 (int fd, struct __stat64_t64 *buf)
{
#if !FSTATAT_USE_STATX
# if XSTAT_IS_XSTAT64
- /* The __NR_stat macro is defined for all ABIs that also define
+ /* The __NR_stat macro is defined for all ABIs that also define
XSTAT_IS_STAT64, so to correctly identify alpha and sparc check
__NR_newfstatat (similar to what fstatat64 does). */
# ifdef __NR_newfstatat
@@ -60,7 +60,7 @@ __fstat64_time64 (int fd, struct __stat64_t64 *buf)
# endif
#else /* !FSTATAT_USE_STATX */
/* All kABIs with non-LFS support and with old 32-bit time_t support
- e.g. arm, csky, i386, hppa, m68k, microblaze, nios2, sh, powerpc32,
+ e.g. arm, csky, i386, hppa, m68k, microblaze, sh, powerpc32,
and sparc32. */
if (fd < 0)
{
diff --git a/sysdeps/unix/sysv/linux/fstatat64.c b/sysdeps/unix/sysv/linux/fstatat64.c
index da49617..45bb1df 100644
--- a/sysdeps/unix/sysv/linux/fstatat64.c
+++ b/sysdeps/unix/sysv/linux/fstatat64.c
@@ -104,7 +104,7 @@ fstatat64_time64_stat (int fd, const char *file, struct __stat64_t64 *buf,
#else
# ifdef __NR_fstatat64
/* All kABIs with non-LFS support and with old 32-bit time_t support
- e.g. arm, csky, i386, hppa, m68k, microblaze, nios2, sh, powerpc32,
+ e.g. arm, csky, i386, hppa, m68k, microblaze, sh, powerpc32,
and sparc32. */
struct stat64 st64;
r = INTERNAL_SYSCALL_CALL (fstatat64, fd, file, &st64, flag);
diff --git a/sysdeps/unix/sysv/linux/fxstat.c b/sysdeps/unix/sysv/linux/fxstat.c
index 5254cce..b6a4d1a 100644
--- a/sysdeps/unix/sysv/linux/fxstat.c
+++ b/sysdeps/unix/sysv/linux/fxstat.c
@@ -38,7 +38,7 @@ __fxstat (int vers, int fd, struct stat *buf)
{
# if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI,
- e.g. csky, nios2 */
+ e.g. csky */
int r = INLINE_SYSCALL_CALL (fstat64, fd, buf);
return r ?: stat_overflow (buf);
# else
diff --git a/sysdeps/unix/sysv/linux/fxstat64.c b/sysdeps/unix/sysv/linux/fxstat64.c
index 230374c..f84be58 100644
--- a/sysdeps/unix/sysv/linux/fxstat64.c
+++ b/sysdeps/unix/sysv/linux/fxstat64.c
@@ -61,7 +61,7 @@ ___fxstat64 (int vers, int fd, struct stat64 *buf)
# endif
#else
/* All kABIs with non-LFS support, e.g. arm, csky, i386, hppa, m68k,
- microblaze, mips32, nios2, sh, powerpc32, and sparc32. */
+ microblaze, mips32, sh, powerpc32, and sparc32. */
return INLINE_SYSCALL_CALL (fstat64, fd, buf);
#endif /* XSTAT_IS_XSTAT64 */
}
diff --git a/sysdeps/unix/sysv/linux/fxstatat.c b/sysdeps/unix/sysv/linux/fxstatat.c
index 5cb92a1..7b5214c 100644
--- a/sysdeps/unix/sysv/linux/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/fxstatat.c
@@ -34,7 +34,7 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
{
#if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI, e.g.
- csky, nios2 */
+ csky. */
if (vers == _STAT_VER_KERNEL)
{
int r = INLINE_SYSCALL_CALL (fstatat64, fd, file, st, flag);
diff --git a/sysdeps/unix/sysv/linux/fxstatat64.c b/sysdeps/unix/sysv/linux/fxstatat64.c
index 5255ca0..de4303e 100644
--- a/sysdeps/unix/sysv/linux/fxstatat64.c
+++ b/sysdeps/unix/sysv/linux/fxstatat64.c
@@ -58,7 +58,7 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
# endif
#else
/* All kABIs with non-LFS support, e.g. arm, csky, i386, hppa, m68k,
- microblaze, mips32, nios2, sh, powerpc32, and sparc32. */
+ microblaze, mips32, sh, powerpc32, and sparc32. */
if (vers == _STAT_VER_LINUX)
return INLINE_SYSCALL_CALL (fstatat64, fd, file, st, flag);
#endif
diff --git a/sysdeps/unix/sysv/linux/gettimeofday.c b/sysdeps/unix/sysv/linux/gettimeofday.c
index 5ca8916..3c97da0 100644
--- a/sysdeps/unix/sysv/linux/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/gettimeofday.c
@@ -31,7 +31,7 @@
static int
__gettimeofday_syscall (struct timeval *restrict tv, void *restrict tz)
{
- if (__glibc_unlikely (tz != 0))
+ if (__glibc_unlikely (tz != NULL))
memset (tz, 0, sizeof *tz);
return INLINE_SYSCALL_CALL (gettimeofday, tv, tz);
}
@@ -47,7 +47,7 @@ libc_ifunc (__gettimeofday,
int
__gettimeofday (struct timeval *restrict tv, void *restrict tz)
{
- if (__glibc_unlikely (tz != 0))
+ if (__glibc_unlikely (tz != NULL))
memset (tz, 0, sizeof *tz);
return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
diff --git a/sysdeps/unix/sysv/linux/lxstat.c b/sysdeps/unix/sysv/linux/lxstat.c
index 7f8d5e1..806acee 100644
--- a/sysdeps/unix/sysv/linux/lxstat.c
+++ b/sysdeps/unix/sysv/linux/lxstat.c
@@ -38,7 +38,7 @@ __lxstat (int vers, const char *name, struct stat *buf)
{
# if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI,
- e.g. csky, nios2 */
+ e.g. csky. */
int r = INLINE_SYSCALL_CALL (fstatat64, AT_FDCWD, name, buf,
AT_SYMLINK_NOFOLLOW);
return r ?: stat_overflow (buf);
diff --git a/sysdeps/unix/sysv/linux/lxstat64.c b/sysdeps/unix/sysv/linux/lxstat64.c
index 16ad8b8..f2bbe02 100644
--- a/sysdeps/unix/sysv/linux/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/lxstat64.c
@@ -69,7 +69,7 @@ ___lxstat64 (int vers, const char *name, struct stat64 *buf)
#else
# if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI,
- e.g. csky, nios2 */
+ e.g. csky. */
if (vers == _STAT_VER_KERNEL)
return INLINE_SYSCALL_CALL (fstatat64, AT_FDCWD, name, buf,
AT_SYMLINK_NOFOLLOW);
diff --git a/sysdeps/unix/sysv/linux/nios2/Implies b/sysdeps/unix/sysv/linux/nios2/Implies
deleted file mode 100644
index e6c9be4..0000000
--- a/sysdeps/unix/sysv/linux/nios2/Implies
+++ /dev/null
@@ -1 +0,0 @@
-nios2/nptl
diff --git a/sysdeps/unix/sysv/linux/nios2/Makefile b/sysdeps/unix/sysv/linux/nios2/Makefile
deleted file mode 100644
index 9342e45..0000000
--- a/sysdeps/unix/sysv/linux/nios2/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-ifeq ($(subdir),stdlib)
-gen-as-const-headers += ucontext_i.sym
-endif
-
-ifeq ($(subdir),misc)
-# MIPS-style cacheflush routine
-sysdep_headers += sys/cachectl.h
-sysdep_routines += cacheflush
-endif
-
-ifeq ($(subdir),csu)
-# Work around an incorrect assumption that an object of variably
-# modified type, with a small fixed size but a large variable-sized
-# part (the static_slotinfo variable in libc-tls.c) is allocated in
-# the small data section, not the data section where it belongs based
-# on its size. See GCC PR 92499.
-CFLAGS-libc-tls.c += -mgpopt=none
-endif
diff --git a/sysdeps/unix/sysv/linux/nios2/Versions b/sysdeps/unix/sysv/linux/nios2/Versions
deleted file mode 100644
index e42c85f..0000000
--- a/sysdeps/unix/sysv/linux/nios2/Versions
+++ /dev/null
@@ -1,6 +0,0 @@
-libc {
- GLIBC_2.21 {
- _flush_cache;
- cacheflush;
- }
-}
diff --git a/sysdeps/unix/sysv/linux/nios2/arch-syscall.h b/sysdeps/unix/sysv/linux/nios2/arch-syscall.h
deleted file mode 100644
index b1d0fb6..0000000
--- a/sysdeps/unix/sysv/linux/nios2/arch-syscall.h
+++ /dev/null
@@ -1,339 +0,0 @@
-/* AUTOGENERATED by update-syscall-lists.py. */
-#define __NR_accept 202
-#define __NR_accept4 242
-#define __NR_acct 89
-#define __NR_add_key 217
-#define __NR_adjtimex 171
-#define __NR_bind 200
-#define __NR_bpf 280
-#define __NR_brk 214
-#define __NR_cacheflush 244
-#define __NR_cachestat 451
-#define __NR_capget 90
-#define __NR_capset 91
-#define __NR_chdir 49
-#define __NR_chroot 51
-#define __NR_clock_adjtime 266
-#define __NR_clock_adjtime64 405
-#define __NR_clock_getres 114
-#define __NR_clock_getres_time64 406
-#define __NR_clock_gettime 113
-#define __NR_clock_gettime64 403
-#define __NR_clock_nanosleep 115
-#define __NR_clock_nanosleep_time64 407
-#define __NR_clock_settime 112
-#define __NR_clock_settime64 404
-#define __NR_clone 220
-#define __NR_clone3 435
-#define __NR_close 57
-#define __NR_close_range 436
-#define __NR_connect 203
-#define __NR_copy_file_range 285
-#define __NR_delete_module 106
-#define __NR_dup 23
-#define __NR_dup3 24
-#define __NR_epoll_create1 20
-#define __NR_epoll_ctl 21
-#define __NR_epoll_pwait 22
-#define __NR_epoll_pwait2 441
-#define __NR_eventfd2 19
-#define __NR_execve 221
-#define __NR_execveat 281
-#define __NR_exit 93
-#define __NR_exit_group 94
-#define __NR_faccessat 48
-#define __NR_faccessat2 439
-#define __NR_fadvise64_64 223
-#define __NR_fallocate 47
-#define __NR_fanotify_init 262
-#define __NR_fanotify_mark 263
-#define __NR_fchdir 50
-#define __NR_fchmod 52
-#define __NR_fchmodat 53
-#define __NR_fchmodat2 452
-#define __NR_fchown 55
-#define __NR_fchownat 54
-#define __NR_fcntl64 25
-#define __NR_fdatasync 83
-#define __NR_fgetxattr 10
-#define __NR_finit_module 273
-#define __NR_flistxattr 13
-#define __NR_flock 32
-#define __NR_fremovexattr 16
-#define __NR_fsconfig 431
-#define __NR_fsetxattr 7
-#define __NR_fsmount 432
-#define __NR_fsopen 430
-#define __NR_fspick 433
-#define __NR_fstat64 80
-#define __NR_fstatat64 79
-#define __NR_fstatfs64 44
-#define __NR_fsync 82
-#define __NR_ftruncate64 46
-#define __NR_futex 98
-#define __NR_futex_requeue 456
-#define __NR_futex_time64 422
-#define __NR_futex_wait 455
-#define __NR_futex_waitv 449
-#define __NR_futex_wake 454
-#define __NR_get_mempolicy 236
-#define __NR_get_robust_list 100
-#define __NR_getcpu 168
-#define __NR_getcwd 17
-#define __NR_getdents64 61
-#define __NR_getegid 177
-#define __NR_geteuid 175
-#define __NR_getgid 176
-#define __NR_getgroups 158
-#define __NR_getitimer 102
-#define __NR_getpeername 205
-#define __NR_getpgid 155
-#define __NR_getpid 172
-#define __NR_getppid 173
-#define __NR_getpriority 141
-#define __NR_getrandom 278
-#define __NR_getresgid 150
-#define __NR_getresuid 148
-#define __NR_getrlimit 163
-#define __NR_getrusage 165
-#define __NR_getsid 156
-#define __NR_getsockname 204
-#define __NR_getsockopt 209
-#define __NR_gettid 178
-#define __NR_gettimeofday 169
-#define __NR_getuid 174
-#define __NR_getxattr 8
-#define __NR_init_module 105
-#define __NR_inotify_add_watch 27
-#define __NR_inotify_init1 26
-#define __NR_inotify_rm_watch 28
-#define __NR_io_cancel 3
-#define __NR_io_destroy 1
-#define __NR_io_getevents 4
-#define __NR_io_pgetevents 292
-#define __NR_io_pgetevents_time64 416
-#define __NR_io_setup 0
-#define __NR_io_submit 2
-#define __NR_io_uring_enter 426
-#define __NR_io_uring_register 427
-#define __NR_io_uring_setup 425
-#define __NR_ioctl 29
-#define __NR_ioprio_get 31
-#define __NR_ioprio_set 30
-#define __NR_kcmp 272
-#define __NR_kexec_file_load 294
-#define __NR_kexec_load 104
-#define __NR_keyctl 219
-#define __NR_kill 129
-#define __NR_landlock_add_rule 445
-#define __NR_landlock_create_ruleset 444
-#define __NR_landlock_restrict_self 446
-#define __NR_lgetxattr 9
-#define __NR_linkat 37
-#define __NR_listen 201
-#define __NR_listmount 458
-#define __NR_listxattr 11
-#define __NR_llistxattr 12
-#define __NR_llseek 62
-#define __NR_lookup_dcookie 18
-#define __NR_lremovexattr 15
-#define __NR_lsetxattr 6
-#define __NR_lsm_get_self_attr 459
-#define __NR_lsm_list_modules 461
-#define __NR_lsm_set_self_attr 460
-#define __NR_madvise 233
-#define __NR_map_shadow_stack 453
-#define __NR_mbind 235
-#define __NR_membarrier 283
-#define __NR_memfd_create 279
-#define __NR_migrate_pages 238
-#define __NR_mincore 232
-#define __NR_mkdirat 34
-#define __NR_mknodat 33
-#define __NR_mlock 228
-#define __NR_mlock2 284
-#define __NR_mlockall 230
-#define __NR_mmap2 222
-#define __NR_mount 40
-#define __NR_mount_setattr 442
-#define __NR_move_mount 429
-#define __NR_move_pages 239
-#define __NR_mprotect 226
-#define __NR_mq_getsetattr 185
-#define __NR_mq_notify 184
-#define __NR_mq_open 180
-#define __NR_mq_timedreceive 183
-#define __NR_mq_timedreceive_time64 419
-#define __NR_mq_timedsend 182
-#define __NR_mq_timedsend_time64 418
-#define __NR_mq_unlink 181
-#define __NR_mremap 216
-#define __NR_mseal 462
-#define __NR_msgctl 187
-#define __NR_msgget 186
-#define __NR_msgrcv 188
-#define __NR_msgsnd 189
-#define __NR_msync 227
-#define __NR_munlock 229
-#define __NR_munlockall 231
-#define __NR_munmap 215
-#define __NR_name_to_handle_at 264
-#define __NR_nanosleep 101
-#define __NR_nfsservctl 42
-#define __NR_open_by_handle_at 265
-#define __NR_open_tree 428
-#define __NR_openat 56
-#define __NR_openat2 437
-#define __NR_perf_event_open 241
-#define __NR_personality 92
-#define __NR_pidfd_getfd 438
-#define __NR_pidfd_open 434
-#define __NR_pidfd_send_signal 424
-#define __NR_pipe2 59
-#define __NR_pivot_root 41
-#define __NR_pkey_alloc 289
-#define __NR_pkey_free 290
-#define __NR_pkey_mprotect 288
-#define __NR_ppoll 73
-#define __NR_ppoll_time64 414
-#define __NR_prctl 167
-#define __NR_pread64 67
-#define __NR_preadv 69
-#define __NR_preadv2 286
-#define __NR_prlimit64 261
-#define __NR_process_madvise 440
-#define __NR_process_mrelease 448
-#define __NR_process_vm_readv 270
-#define __NR_process_vm_writev 271
-#define __NR_pselect6 72
-#define __NR_pselect6_time64 413
-#define __NR_ptrace 117
-#define __NR_pwrite64 68
-#define __NR_pwritev 70
-#define __NR_pwritev2 287
-#define __NR_quotactl 60
-#define __NR_quotactl_fd 443
-#define __NR_read 63
-#define __NR_readahead 213
-#define __NR_readlinkat 78
-#define __NR_readv 65
-#define __NR_reboot 142
-#define __NR_recvfrom 207
-#define __NR_recvmmsg 243
-#define __NR_recvmmsg_time64 417
-#define __NR_recvmsg 212
-#define __NR_remap_file_pages 234
-#define __NR_removexattr 14
-#define __NR_renameat 38
-#define __NR_renameat2 276
-#define __NR_request_key 218
-#define __NR_restart_syscall 128
-#define __NR_rseq 293
-#define __NR_rt_sigaction 134
-#define __NR_rt_sigpending 136
-#define __NR_rt_sigprocmask 135
-#define __NR_rt_sigqueueinfo 138
-#define __NR_rt_sigreturn 139
-#define __NR_rt_sigsuspend 133
-#define __NR_rt_sigtimedwait 137
-#define __NR_rt_sigtimedwait_time64 421
-#define __NR_rt_tgsigqueueinfo 240
-#define __NR_sched_get_priority_max 125
-#define __NR_sched_get_priority_min 126
-#define __NR_sched_getaffinity 123
-#define __NR_sched_getattr 275
-#define __NR_sched_getparam 121
-#define __NR_sched_getscheduler 120
-#define __NR_sched_rr_get_interval 127
-#define __NR_sched_rr_get_interval_time64 423
-#define __NR_sched_setaffinity 122
-#define __NR_sched_setattr 274
-#define __NR_sched_setparam 118
-#define __NR_sched_setscheduler 119
-#define __NR_sched_yield 124
-#define __NR_seccomp 277
-#define __NR_semctl 191
-#define __NR_semget 190
-#define __NR_semop 193
-#define __NR_semtimedop 192
-#define __NR_semtimedop_time64 420
-#define __NR_sendfile64 71
-#define __NR_sendmmsg 269
-#define __NR_sendmsg 211
-#define __NR_sendto 206
-#define __NR_set_mempolicy 237
-#define __NR_set_mempolicy_home_node 450
-#define __NR_set_robust_list 99
-#define __NR_set_tid_address 96
-#define __NR_setdomainname 162
-#define __NR_setfsgid 152
-#define __NR_setfsuid 151
-#define __NR_setgid 144
-#define __NR_setgroups 159
-#define __NR_sethostname 161
-#define __NR_setitimer 103
-#define __NR_setns 268
-#define __NR_setpgid 154
-#define __NR_setpriority 140
-#define __NR_setregid 143
-#define __NR_setresgid 149
-#define __NR_setresuid 147
-#define __NR_setreuid 145
-#define __NR_setrlimit 164
-#define __NR_setsid 157
-#define __NR_setsockopt 208
-#define __NR_settimeofday 170
-#define __NR_setuid 146
-#define __NR_setxattr 5
-#define __NR_shmat 196
-#define __NR_shmctl 195
-#define __NR_shmdt 197
-#define __NR_shmget 194
-#define __NR_shutdown 210
-#define __NR_sigaltstack 132
-#define __NR_signalfd4 74
-#define __NR_socket 198
-#define __NR_socketpair 199
-#define __NR_splice 76
-#define __NR_statfs64 43
-#define __NR_statmount 457
-#define __NR_statx 291
-#define __NR_swapoff 225
-#define __NR_swapon 224
-#define __NR_symlinkat 36
-#define __NR_sync 81
-#define __NR_sync_file_range 84
-#define __NR_syncfs 267
-#define __NR_sysinfo 179
-#define __NR_syslog 116
-#define __NR_tee 77
-#define __NR_tgkill 131
-#define __NR_timer_create 107
-#define __NR_timer_delete 111
-#define __NR_timer_getoverrun 109
-#define __NR_timer_gettime 108
-#define __NR_timer_gettime64 408
-#define __NR_timer_settime 110
-#define __NR_timer_settime64 409
-#define __NR_timerfd_create 85
-#define __NR_timerfd_gettime 87
-#define __NR_timerfd_gettime64 410
-#define __NR_timerfd_settime 86
-#define __NR_timerfd_settime64 411
-#define __NR_times 153
-#define __NR_tkill 130
-#define __NR_truncate64 45
-#define __NR_umask 166
-#define __NR_umount2 39
-#define __NR_uname 160
-#define __NR_unlinkat 35
-#define __NR_unshare 97
-#define __NR_userfaultfd 282
-#define __NR_utimensat 88
-#define __NR_utimensat_time64 412
-#define __NR_vhangup 58
-#define __NR_vmsplice 75
-#define __NR_wait4 260
-#define __NR_waitid 95
-#define __NR_write 64
-#define __NR_writev 66
diff --git a/sysdeps/unix/sysv/linux/nios2/atomic-machine.h b/sysdeps/unix/sysv/linux/nios2/atomic-machine.h
deleted file mode 100644
index 91033fa..0000000
--- a/sysdeps/unix/sysv/linux/nios2/atomic-machine.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Low-level functions for atomic operations. Nios II version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _NIOS2_ATOMIC_MACHINE_H
-#define _NIOS2_ATOMIC_MACHINE_H 1
-
-#define __HAVE_64B_ATOMICS 0
-#define USE_ATOMIC_COMPILER_BUILTINS 0
-
-/* XXX Is this actually correct? */
-#define ATOMIC_EXCHANGE_USES_CAS 1
-
-#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
- (abort (), (__typeof (*mem)) 0)
-#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
- (abort (), (__typeof (*mem)) 0)
-#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
- (abort (), (__typeof (*mem)) 0)
-
-#define __arch_compare_and_exchange_bool_8_acq(mem, newval, oldval) \
- (abort (), 0)
-#define __arch_compare_and_exchange_bool_16_acq(mem, newval, oldval) \
- (abort (), 0)
-#define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
- (abort (), 0)
-
-#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
- ({ \
- register int r2 asm ("r2"); \
- register int* r4 asm ("r4") = (int*)(mem); \
- register int r5 asm ("r5"); \
- register int r6 asm ("r6") = (int)(newval); \
- int retval, orig_oldval = (int)(oldval); \
- long kernel_cmpxchg = 0x1004; \
- while (1) \
- { \
- r5 = *r4; \
- if (r5 != orig_oldval) \
- { \
- retval = r5; \
- break; \
- } \
- asm volatile ("callr %1\n" \
- : "=r" (r2) \
- : "r" (kernel_cmpxchg), "r" (r4), "r" (r5), "r" (r6) \
- : "ra", "memory"); \
- if (!r2) { retval = orig_oldval; break; } \
- } \
- (__typeof (*(mem))) retval; \
- })
-
-#define __arch_compare_and_exchange_bool_32_acq(mem, newval, oldval) \
- ({ \
- register int r2 asm ("r2"); \
- register int *r4 asm ("r4") = (int*)(mem); \
- register int r5 asm ("r5") = (int)(oldval); \
- register int r6 asm ("r6") = (int)(newval); \
- long kernel_cmpxchg = 0x1004; \
- asm volatile ("callr %1\n" \
- : "=r" (r2) \
- : "r" (kernel_cmpxchg), "r" (r4), "r" (r5), "r" (r6) \
- : "ra", "memory"); \
- r2; \
- })
-
-#define atomic_full_barrier() ({ asm volatile ("sync"); })
-
-#endif /* _NIOS2_ATOMIC_MACHINE_H */
diff --git a/sysdeps/unix/sysv/linux/nios2/bits/procfs.h b/sysdeps/unix/sysv/linux/nios2/bits/procfs.h
deleted file mode 100644
index 98ccb07..0000000
--- a/sysdeps/unix/sysv/linux/nios2/bits/procfs.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Types for registers for sys/procfs.h. Nios II version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
-#endif
-
-/* Type for a general-purpose register. */
-typedef unsigned long elf_greg_t;
-
-/* And the whole bunch of them. We could have used `struct
- user_regs' directly in the typedef, but tradition says that
- the register set is an array, which does have some peculiar
- semantics, so leave it that way. */
-#define ELF_NGREG (sizeof (struct user_regs) / sizeof (elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-/* Register set for the floating-point registers. */
-typedef struct user_fpregs elf_fpregset_t;
diff --git a/sysdeps/unix/sysv/linux/nios2/bits/statfs.h b/sysdeps/unix/sysv/linux/nios2/bits/statfs.h
deleted file mode 100644
index f9f3c64..0000000
--- a/sysdeps/unix/sysv/linux/nios2/bits/statfs.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_STATFS_H
-# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
-#endif
-
-#include <bits/endian.h>
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-#if defined __USE_FILE_OFFSET64
-# define __field64(type, type64, name) type64 name
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
-# define __field64(type, type64, name) \
- type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad
-#else
-# define __field64(type, type64, name) \
- int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name
-#endif
-
-struct statfs
- {
- __SWORD_TYPE f_type;
- __SWORD_TYPE f_bsize;
- __field64(__fsblkcnt_t, __fsblkcnt64_t, f_blocks);
- __field64(__fsblkcnt_t, __fsblkcnt64_t, f_bfree);
- __field64(__fsblkcnt_t, __fsblkcnt64_t, f_bavail);
- __field64(__fsfilcnt_t, __fsfilcnt64_t, f_files);
- __field64(__fsfilcnt_t, __fsfilcnt64_t, f_ffree);
- __fsid_t f_fsid;
- __SWORD_TYPE f_namelen;
- __SWORD_TYPE f_frsize;
- __SWORD_TYPE f_flags;
- __SWORD_TYPE f_spare[4];
- };
-
-#undef __field64
-
-#ifdef __USE_LARGEFILE64
-struct statfs64
- {
- __SWORD_TYPE f_type;
- __SWORD_TYPE f_bsize;
- __fsblkcnt64_t f_blocks;
- __fsblkcnt64_t f_bfree;
- __fsblkcnt64_t f_bavail;
- __fsfilcnt64_t f_files;
- __fsfilcnt64_t f_ffree;
- __fsid_t f_fsid;
- __SWORD_TYPE f_namelen;
- __SWORD_TYPE f_frsize;
- __SWORD_TYPE f_flags;
- __SWORD_TYPE f_spare[4];
- };
-#endif
-
-/* Tell code we have these members. */
-#define _STATFS_F_NAMELEN
-#define _STATFS_F_FRSIZE
-#define _STATFS_F_FLAGS
diff --git a/sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h b/sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h
deleted file mode 100644
index dab466d..0000000
--- a/sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Definition for struct stat. Linux/nios2 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#if !defined _SYS_STAT_H && !defined _FCNTL_H
-# error "Never include <bits/struct_stat.h> directly; use <sys/stat.h> instead."
-#endif
-
-#ifndef _BITS_STRUCT_STAT_H
-#define _BITS_STRUCT_STAT_H 1
-
-#include <bits/endian.h>
-#include <bits/wordsize.h>
-
-#if defined __USE_FILE_OFFSET64
-# define __field64(type, type64, name) type64 name
-#elif __WORDSIZE == 64 || defined __INO_T_MATCHES_INO64_T
-# if defined __INO_T_MATCHES_INO64_T && !defined __OFF_T_MATCHES_OFF64_T
-# error "ino_t and off_t must both be the same type"
-# endif
-# define __field64(type, type64, name) type name
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
-# define __field64(type, type64, name) \
- type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad
-#else
-# define __field64(type, type64, name) \
- int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name
-#endif
-
-struct stat
- {
-#ifdef __USE_TIME64_REDIRECTS
-# include <bits/struct_stat_time64_helper.h>
-#else
- __dev_t st_dev; /* Device. */
- __field64(__ino_t, __ino64_t, st_ino); /* File serial number. */
- __mode_t st_mode; /* File mode. */
- __nlink_t st_nlink; /* Link count. */
- __uid_t st_uid; /* User ID of the file's owner. */
- __gid_t st_gid; /* Group ID of the file's group.*/
- __dev_t st_rdev; /* Device number, if device. */
- __dev_t __pad1;
- __field64(__off_t, __off64_t, st_size); /* Size of file, in bytes. */
- __blksize_t st_blksize; /* Optimal block size for I/O. */
- int __pad2;
- __field64(__blkcnt_t, __blkcnt64_t, st_blocks); /* 512-byte blocks */
-# ifdef __USE_XOPEN2K8
- /* Nanosecond resolution timestamps are stored in a format
- equivalent to 'struct timespec'. This is the type used
- whenever possible but the Unix namespace rules do not allow the
- identifier 'timespec' to appear in the <sys/stat.h> header.
- Therefore we have to handle the use of this header in strictly
- standard-compliant sources special. */
- struct timespec st_atim; /* Time of last access. */
- struct timespec st_mtim; /* Time of last modification. */
- struct timespec st_ctim; /* Time of last status change. */
-# define st_atime st_atim.tv_sec /* Backward compatibility. */
-# define st_mtime st_mtim.tv_sec
-# define st_ctime st_ctim.tv_sec
-# else
- __time_t st_atime; /* Time of last access. */
- unsigned long int st_atimensec; /* Nscecs of last access. */
- __time_t st_mtime; /* Time of last modification. */
- unsigned long int st_mtimensec; /* Nsecs of last modification. */
- __time_t st_ctime; /* Time of last status change. */
- unsigned long int st_ctimensec; /* Nsecs of last status change. */
-# endif
- int __glibc_reserved[2];
-#endif
- };
-
-#undef __field64
-
-#ifdef __USE_LARGEFILE64
-struct stat64
- {
-# ifdef __USE_TIME64_REDIRECTS
-# include <bits/struct_stat_time64_helper.h>
-# else
- __dev_t st_dev; /* Device. */
- __ino64_t st_ino; /* File serial number. */
- __mode_t st_mode; /* File mode. */
- __nlink_t st_nlink; /* Link count. */
- __uid_t st_uid; /* User ID of the file's owner. */
- __gid_t st_gid; /* Group ID of the file's group.*/
- __dev_t st_rdev; /* Device number, if device. */
- __dev_t __pad1;
- __off64_t st_size; /* Size of file, in bytes. */
- __blksize_t st_blksize; /* Optimal block size for I/O. */
- int __pad2;
- __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
-# ifdef __USE_XOPEN2K8
- /* Nanosecond resolution timestamps are stored in a format
- equivalent to 'struct timespec'. This is the type used
- whenever possible but the Unix namespace rules do not allow the
- identifier 'timespec' to appear in the <sys/stat.h> header.
- Therefore we have to handle the use of this header in strictly
- standard-compliant sources special. */
- struct timespec st_atim; /* Time of last access. */
- struct timespec st_mtim; /* Time of last modification. */
- struct timespec st_ctim; /* Time of last status change. */
-# else
- __time_t st_atime; /* Time of last access. */
- unsigned long int st_atimensec; /* Nscecs of last access. */
- __time_t st_mtime; /* Time of last modification. */
- unsigned long int st_mtimensec; /* Nsecs of last modification. */
- __time_t st_ctime; /* Time of last status change. */
- unsigned long int st_ctimensec; /* Nsecs of last status change. */
-# endif
- int __glibc_reserved[2];
-# endif
- };
-#endif
-
-/* Tell code we have these members. */
-#define _STATBUF_ST_BLKSIZE
-#define _STATBUF_ST_RDEV
-/* Nanosecond resolution time values are supported. */
-#define _STATBUF_ST_NSEC
-
-#endif /* _BITS_STRUCT_STAT_H */
diff --git a/sysdeps/unix/sysv/linux/nios2/bits/timesize.h b/sysdeps/unix/sysv/linux/nios2/bits/timesize.h
deleted file mode 100644
index 6f11fde..0000000
--- a/sysdeps/unix/sysv/linux/nios2/bits/timesize.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Bit size of the time_t type at glibc build time, Linux/NIOS2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* Size in bits of the 'time_t' type of the default ABI. */
-#define __TIMESIZE 32
diff --git a/sysdeps/unix/sysv/linux/nios2/c++-types.data b/sysdeps/unix/sysv/linux/nios2/c++-types.data
deleted file mode 100644
index 303f457..0000000
--- a/sysdeps/unix/sysv/linux/nios2/c++-types.data
+++ /dev/null
@@ -1,67 +0,0 @@
-blkcnt64_t:x
-blkcnt_t:l
-blksize_t:i
-caddr_t:Pc
-clockid_t:i
-clock_t:l
-daddr_t:i
-dev_t:y
-fd_mask:l
-fsblkcnt64_t:y
-fsblkcnt_t:m
-fsfilcnt64_t:y
-fsfilcnt_t:m
-fsid_t:8__fsid_t
-gid_t:j
-id_t:j
-ino64_t:y
-ino_t:m
-int16_t:s
-int32_t:i
-int64_t:x
-int8_t:a
-intptr_t:i
-key_t:i
-loff_t:x
-mode_t:j
-nlink_t:j
-off64_t:x
-off_t:l
-pid_t:i
-pthread_attr_t:14pthread_attr_t
-pthread_barrier_t:17pthread_barrier_t
-pthread_barrierattr_t:21pthread_barrierattr_t
-pthread_cond_t:14pthread_cond_t
-pthread_condattr_t:18pthread_condattr_t
-pthread_key_t:j
-pthread_mutex_t:15pthread_mutex_t
-pthread_mutexattr_t:19pthread_mutexattr_t
-pthread_once_t:i
-pthread_rwlock_t:16pthread_rwlock_t
-pthread_rwlockattr_t:20pthread_rwlockattr_t
-pthread_spinlock_t:i
-pthread_t:m
-quad_t:x
-register_t:i
-rlim64_t:y
-rlim_t:m
-sigset_t:10__sigset_t
-size_t:j
-socklen_t:j
-ssize_t:i
-suseconds_t:l
-time_t:l
-u_char:h
-uid_t:j
-uint:j
-u_int:j
-u_int16_t:t
-u_int32_t:j
-u_int64_t:y
-u_int8_t:h
-ulong:m
-u_long:m
-u_quad_t:y
-useconds_t:j
-ushort:t
-u_short:t
diff --git a/sysdeps/unix/sysv/linux/nios2/cacheflush.c b/sysdeps/unix/sysv/linux/nios2/cacheflush.c
deleted file mode 100644
index 9c426aa..0000000
--- a/sysdeps/unix/sysv/linux/nios2/cacheflush.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* cacheflush system call for Nios II Linux.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <stddef.h>
-#include <unistd.h>
-
-/* Flush cache(s). */
-int
-_flush_cache (char *addr, const int nbytes, const int op)
-{
- return INLINE_SYSCALL (cacheflush, 3, addr, nbytes, op);
-}
-weak_alias (_flush_cache, cacheflush)
diff --git a/sysdeps/unix/sysv/linux/nios2/clone.S b/sysdeps/unix/sysv/linux/nios2/clone.S
deleted file mode 100644
index c234f45..0000000
--- a/sysdeps/unix/sysv/linux/nios2/clone.S
+++ /dev/null
@@ -1,83 +0,0 @@
-/* clone() implementation for Nios II.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after its all over. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-#include <tcb-offsets.h>
-
-/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
- void *parent_tidptr, void *tls, void *child_tidptr) */
-
- .text
-ENTRY(__clone)
- /* Sanity check arguments. */
- movi r2, EINVAL
- /* No NULL function pointers. */
- beq r4, zero, SYSCALL_ERROR_LABEL
- /* No NULL stack pointers. */
- beq r5, zero, SYSCALL_ERROR_LABEL
-
- subi r5, r5, 8 /* Reserve argument save space. */
- stw r4, 4(r5) /* Save function pointer. */
- stw r7, 0(r5) /* Save argument pointer. */
-
- /* Load arguments. */
- mov r4, r6
- ldw r6, 0(sp)
- ldw r7, 8(sp)
- ldw r8, 4(sp)
-
- /* Do the system call. */
- movi r2, SYS_ify (clone)
-
- /* End FDE now, because in the child the unwind info will be
- wrong. */
- cfi_endproc
- trap
-
- /* Check for errors. */
- bne r7, zero, SYSCALL_ERROR_LABEL
- /* See if we're on the newly created thread. */
- beq r2, zero, thread_start
- /* Successful return from the parent */
- ret
-
-thread_start:
- cfi_startproc
- cfi_undefined (ra)
-
- ldw r5, 4(sp) /* Function pointer. */
- ldw r4, 0(sp) /* Argument pointer. */
- addi sp, sp, 8
-
- /* Call the user's function. */
- callr r5
-
- /* exit with the result. */
- movi r2, SYS_ify (exit)
- trap
- cfi_endproc
-
- cfi_startproc
-PSEUDO_END (__clone)
-libc_hidden_def (__clone)
-weak_alias (__clone, clone)
diff --git a/sysdeps/unix/sysv/linux/nios2/configure b/sysdeps/unix/sysv/linux/nios2/configure
deleted file mode 100644
index 8d80166..0000000
--- a/sysdeps/unix/sysv/linux/nios2/configure
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
- # Local configure fragment for sysdeps/unix/sysv/linux/nios2.
-
-arch_minimum_kernel=3.19.0
-
diff --git a/sysdeps/unix/sysv/linux/nios2/configure.ac b/sysdeps/unix/sysv/linux/nios2/configure.ac
deleted file mode 100644
index a8ccc17..0000000
--- a/sysdeps/unix/sysv/linux/nios2/configure.ac
+++ /dev/null
@@ -1,4 +0,0 @@
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/unix/sysv/linux/nios2.
-
-arch_minimum_kernel=3.19.0
diff --git a/sysdeps/unix/sysv/linux/nios2/getcontext.S b/sysdeps/unix/sysv/linux/nios2/getcontext.S
deleted file mode 100644
index 627c89d..0000000
--- a/sysdeps/unix/sysv/linux/nios2/getcontext.S
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Save current context.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include "ucontext_i.h"
-
-/* int getcontext (ucontext_t *ucp)
-
- Returns 0 on success -1 and errno on failure.
- */
- .text
-ENTRY(__getcontext)
- stw r16, (UCONTEXT_MCONTEXT + 16*4)(r4)
- stw r17, (UCONTEXT_MCONTEXT + 17*4)(r4)
- stw r18, (UCONTEXT_MCONTEXT + 18*4)(r4)
- stw r19, (UCONTEXT_MCONTEXT + 19*4)(r4)
- stw r20, (UCONTEXT_MCONTEXT + 20*4)(r4)
- stw r21, (UCONTEXT_MCONTEXT + 21*4)(r4)
- stw r22, (UCONTEXT_MCONTEXT + 22*4)(r4)
- stw ra, (UCONTEXT_MCONTEXT + 24*4)(r4)
- stw fp, (UCONTEXT_MCONTEXT + 25*4)(r4)
- stw gp, (UCONTEXT_MCONTEXT + 26*4)(r4)
- /* Store return address at place for EA. */
- stw ra, (UCONTEXT_MCONTEXT + 28*4)(r4)
- stw sp, (UCONTEXT_MCONTEXT + 29*4)(r4)
- /* Store zero for return success. */
- stw zero, (UCONTEXT_MCONTEXT + 2*4)(r4)
-
- /* Store value "1" at uc_flags to recognize as getcontext created. */
- movi r2, 1
- stw r2, UCONTEXT_FLAGS(r4)
-
- /* Store MCONTEXT_VERSION at first word of mcontext_t. */
- movi r2, MCONTEXT_VERSION
- stw r2, UCONTEXT_MCONTEXT(r4)
-
- /* Get signal mask. */
- /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
- movi r7, _NSIG8
- addi r6, r4, UCONTEXT_SIGMASK
- mov r5, zero
- movi r4, SIG_BLOCK
- movi r2, SYS_ify (rt_sigprocmask)
- trap
- bne r7, zero, SYSCALL_ERROR_LABEL
-
- mov r2, zero
- ret
-
-PSEUDO_END(__getcontext)
-weak_alias(__getcontext, getcontext)
diff --git a/sysdeps/unix/sysv/linux/nios2/kernel-features.h b/sysdeps/unix/sysv/linux/nios2/kernel-features.h
deleted file mode 100644
index 9b16a95..0000000
--- a/sysdeps/unix/sysv/linux/nios2/kernel-features.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Set flags signalling availability of kernel features based on given
- kernel version number. NIOS2 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include_next <kernel-features.h>
-
-/* nios2 does not provide clone3. */
-#undef __ASSUME_CLONE3
-#define __ASSUME_CLONE3 0
diff --git a/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h b/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h
deleted file mode 100644
index 7dcf478..0000000
--- a/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Linux kernel struct rt_sigframe declaration for Nios II.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This structure must have the same shape as the Linux kernel
- equivalent. */
-
-struct kernel_rt_sigframe
-{
- siginfo_t info;
- ucontext_t uc;
-};
diff --git a/sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h b/sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h
deleted file mode 100644
index 89f9bce..0000000
--- a/sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/* NIOS2 uses the generic Linux UAPI but defines SA_RESTORER. */
-#define SA_RESTORER 0x04000000
-
-#define SET_SA_RESTORER(kact, act) \
- (kact)->sa_restorer = (act)->sa_restorer
-#define RESET_SA_RESTORER(act, kact) \
- (act)->sa_restorer = (kact)->sa_restorer
-
-#include <sysdeps/unix/sysv/linux/kernel_sigaction.h>
diff --git a/sysdeps/unix/sysv/linux/nios2/kernel_stat.h b/sysdeps/unix/sysv/linux/nios2/kernel_stat.h
deleted file mode 100644
index d92b5fe..0000000
--- a/sysdeps/unix/sysv/linux/nios2/kernel_stat.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Internal definitions for stat functions. Linux/nios2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#define STAT_IS_KERNEL_STAT 1
-#define XSTAT_IS_XSTAT64 0
-#define STATFS_IS_STATFS64 0
diff --git a/sysdeps/unix/sysv/linux/nios2/ld.abilist b/sysdeps/unix/sysv/linux/nios2/ld.abilist
deleted file mode 100644
index 811ae9d..0000000
--- a/sysdeps/unix/sysv/linux/nios2/ld.abilist
+++ /dev/null
@@ -1,9 +0,0 @@
-GLIBC_2.21 __libc_stack_end D 0x4
-GLIBC_2.21 __stack_chk_guard D 0x4
-GLIBC_2.21 __tls_get_addr F
-GLIBC_2.21 _dl_mcount F
-GLIBC_2.21 _r_debug D 0x14
-GLIBC_2.34 __rtld_version_placeholder F
-GLIBC_2.35 __rseq_flags D 0x4
-GLIBC_2.35 __rseq_offset D 0x4
-GLIBC_2.35 __rseq_size D 0x4
diff --git a/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist
deleted file mode 100644
index f0210af..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist
+++ /dev/null
@@ -1 +0,0 @@
-GLIBC_2.21 __ctype_get_mb_cur_max F
diff --git a/sysdeps/unix/sysv/linux/nios2/libanl.abilist b/sysdeps/unix/sysv/linux/nios2/libanl.abilist
deleted file mode 100644
index 68f340f..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libanl.abilist
+++ /dev/null
@@ -1 +0,0 @@
-GLIBC_2.21 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
deleted file mode 100644
index 773d4c5..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ /dev/null
@@ -1,2877 +0,0 @@
-GLIBC_2.21 _Exit F
-GLIBC_2.21 _IO_2_1_stderr_ D 0x98
-GLIBC_2.21 _IO_2_1_stdin_ D 0x98
-GLIBC_2.21 _IO_2_1_stdout_ D 0x98
-GLIBC_2.21 _IO_adjust_column F
-GLIBC_2.21 _IO_adjust_wcolumn F
-GLIBC_2.21 _IO_default_doallocate F
-GLIBC_2.21 _IO_default_finish F
-GLIBC_2.21 _IO_default_pbackfail F
-GLIBC_2.21 _IO_default_uflow F
-GLIBC_2.21 _IO_default_xsgetn F
-GLIBC_2.21 _IO_default_xsputn F
-GLIBC_2.21 _IO_do_write F
-GLIBC_2.21 _IO_doallocbuf F
-GLIBC_2.21 _IO_fclose F
-GLIBC_2.21 _IO_fdopen F
-GLIBC_2.21 _IO_feof F
-GLIBC_2.21 _IO_ferror F
-GLIBC_2.21 _IO_fflush F
-GLIBC_2.21 _IO_fgetpos F
-GLIBC_2.21 _IO_fgetpos64 F
-GLIBC_2.21 _IO_fgets F
-GLIBC_2.21 _IO_file_attach F
-GLIBC_2.21 _IO_file_close F
-GLIBC_2.21 _IO_file_close_it F
-GLIBC_2.21 _IO_file_doallocate F
-GLIBC_2.21 _IO_file_finish F
-GLIBC_2.21 _IO_file_fopen F
-GLIBC_2.21 _IO_file_init F
-GLIBC_2.21 _IO_file_jumps D 0x54
-GLIBC_2.21 _IO_file_open F
-GLIBC_2.21 _IO_file_overflow F
-GLIBC_2.21 _IO_file_read F
-GLIBC_2.21 _IO_file_seek F
-GLIBC_2.21 _IO_file_seekoff F
-GLIBC_2.21 _IO_file_setbuf F
-GLIBC_2.21 _IO_file_stat F
-GLIBC_2.21 _IO_file_sync F
-GLIBC_2.21 _IO_file_underflow F
-GLIBC_2.21 _IO_file_write F
-GLIBC_2.21 _IO_file_xsputn F
-GLIBC_2.21 _IO_flockfile F
-GLIBC_2.21 _IO_flush_all F
-GLIBC_2.21 _IO_flush_all_linebuffered F
-GLIBC_2.21 _IO_fopen F
-GLIBC_2.21 _IO_fprintf F
-GLIBC_2.21 _IO_fputs F
-GLIBC_2.21 _IO_fread F
-GLIBC_2.21 _IO_free_backup_area F
-GLIBC_2.21 _IO_free_wbackup_area F
-GLIBC_2.21 _IO_fsetpos F
-GLIBC_2.21 _IO_fsetpos64 F
-GLIBC_2.21 _IO_ftell F
-GLIBC_2.21 _IO_ftrylockfile F
-GLIBC_2.21 _IO_funlockfile F
-GLIBC_2.21 _IO_fwrite F
-GLIBC_2.21 _IO_getc F
-GLIBC_2.21 _IO_getline F
-GLIBC_2.21 _IO_getline_info F
-GLIBC_2.21 _IO_gets F
-GLIBC_2.21 _IO_init F
-GLIBC_2.21 _IO_init_marker F
-GLIBC_2.21 _IO_init_wmarker F
-GLIBC_2.21 _IO_iter_begin F
-GLIBC_2.21 _IO_iter_end F
-GLIBC_2.21 _IO_iter_file F
-GLIBC_2.21 _IO_iter_next F
-GLIBC_2.21 _IO_least_wmarker F
-GLIBC_2.21 _IO_link_in F
-GLIBC_2.21 _IO_list_all D 0x4
-GLIBC_2.21 _IO_list_lock F
-GLIBC_2.21 _IO_list_resetlock F
-GLIBC_2.21 _IO_list_unlock F
-GLIBC_2.21 _IO_marker_delta F
-GLIBC_2.21 _IO_marker_difference F
-GLIBC_2.21 _IO_padn F
-GLIBC_2.21 _IO_peekc_locked F
-GLIBC_2.21 _IO_popen F
-GLIBC_2.21 _IO_printf F
-GLIBC_2.21 _IO_proc_close F
-GLIBC_2.21 _IO_proc_open F
-GLIBC_2.21 _IO_putc F
-GLIBC_2.21 _IO_puts F
-GLIBC_2.21 _IO_remove_marker F
-GLIBC_2.21 _IO_seekmark F
-GLIBC_2.21 _IO_seekoff F
-GLIBC_2.21 _IO_seekpos F
-GLIBC_2.21 _IO_seekwmark F
-GLIBC_2.21 _IO_setb F
-GLIBC_2.21 _IO_setbuffer F
-GLIBC_2.21 _IO_setvbuf F
-GLIBC_2.21 _IO_sgetn F
-GLIBC_2.21 _IO_sprintf F
-GLIBC_2.21 _IO_sputbackc F
-GLIBC_2.21 _IO_sputbackwc F
-GLIBC_2.21 _IO_sscanf F
-GLIBC_2.21 _IO_str_init_readonly F
-GLIBC_2.21 _IO_str_init_static F
-GLIBC_2.21 _IO_str_overflow F
-GLIBC_2.21 _IO_str_pbackfail F
-GLIBC_2.21 _IO_str_seekoff F
-GLIBC_2.21 _IO_str_underflow F
-GLIBC_2.21 _IO_sungetc F
-GLIBC_2.21 _IO_sungetwc F
-GLIBC_2.21 _IO_switch_to_get_mode F
-GLIBC_2.21 _IO_switch_to_main_wget_area F
-GLIBC_2.21 _IO_switch_to_wbackup_area F
-GLIBC_2.21 _IO_switch_to_wget_mode F
-GLIBC_2.21 _IO_un_link F
-GLIBC_2.21 _IO_ungetc F
-GLIBC_2.21 _IO_unsave_markers F
-GLIBC_2.21 _IO_unsave_wmarkers F
-GLIBC_2.21 _IO_vfprintf F
-GLIBC_2.21 _IO_vfscanf F
-GLIBC_2.21 _IO_vsprintf F
-GLIBC_2.21 _IO_wdefault_doallocate F
-GLIBC_2.21 _IO_wdefault_finish F
-GLIBC_2.21 _IO_wdefault_pbackfail F
-GLIBC_2.21 _IO_wdefault_uflow F
-GLIBC_2.21 _IO_wdefault_xsgetn F
-GLIBC_2.21 _IO_wdefault_xsputn F
-GLIBC_2.21 _IO_wdo_write F
-GLIBC_2.21 _IO_wdoallocbuf F
-GLIBC_2.21 _IO_wfile_jumps D 0x54
-GLIBC_2.21 _IO_wfile_overflow F
-GLIBC_2.21 _IO_wfile_seekoff F
-GLIBC_2.21 _IO_wfile_sync F
-GLIBC_2.21 _IO_wfile_underflow F
-GLIBC_2.21 _IO_wfile_xsputn F
-GLIBC_2.21 _IO_wmarker_delta F
-GLIBC_2.21 _IO_wsetb F
-GLIBC_2.21 ___brk_addr D 0x4
-GLIBC_2.21 __adddf3 F
-GLIBC_2.21 __addsf3 F
-GLIBC_2.21 __adjtimex F
-GLIBC_2.21 __after_morecore_hook D 0x4
-GLIBC_2.21 __argz_count F
-GLIBC_2.21 __argz_next F
-GLIBC_2.21 __argz_stringify F
-GLIBC_2.21 __asprintf F
-GLIBC_2.21 __asprintf_chk F
-GLIBC_2.21 __assert F
-GLIBC_2.21 __assert_fail F
-GLIBC_2.21 __assert_perror_fail F
-GLIBC_2.21 __backtrace F
-GLIBC_2.21 __backtrace_symbols F
-GLIBC_2.21 __backtrace_symbols_fd F
-GLIBC_2.21 __bsd_getpgrp F
-GLIBC_2.21 __bzero F
-GLIBC_2.21 __check_rhosts_file D 0x4
-GLIBC_2.21 __chk_fail F
-GLIBC_2.21 __clone F
-GLIBC_2.21 __close F
-GLIBC_2.21 __cmsg_nxthdr F
-GLIBC_2.21 __confstr_chk F
-GLIBC_2.21 __connect F
-GLIBC_2.21 __ctype_b_loc F
-GLIBC_2.21 __ctype_get_mb_cur_max F
-GLIBC_2.21 __ctype_tolower_loc F
-GLIBC_2.21 __ctype_toupper_loc F
-GLIBC_2.21 __curbrk D 0x4
-GLIBC_2.21 __cxa_at_quick_exit F
-GLIBC_2.21 __cxa_atexit F
-GLIBC_2.21 __cxa_finalize F
-GLIBC_2.21 __cxa_thread_atexit_impl F
-GLIBC_2.21 __cyg_profile_func_enter F
-GLIBC_2.21 __cyg_profile_func_exit F
-GLIBC_2.21 __daylight D 0x4
-GLIBC_2.21 __dcgettext F
-GLIBC_2.21 __default_morecore F
-GLIBC_2.21 __dgettext F
-GLIBC_2.21 __divdf3 F
-GLIBC_2.21 __divsf3 F
-GLIBC_2.21 __dn_comp F
-GLIBC_2.21 __dn_expand F
-GLIBC_2.21 __dn_skipname F
-GLIBC_2.21 __dprintf_chk F
-GLIBC_2.21 __dup2 F
-GLIBC_2.21 __duplocale F
-GLIBC_2.21 __endmntent F
-GLIBC_2.21 __environ D 0x4
-GLIBC_2.21 __eqdf2 F
-GLIBC_2.21 __eqsf2 F
-GLIBC_2.21 __errno_location F
-GLIBC_2.21 __extendsfdf2 F
-GLIBC_2.21 __fbufsize F
-GLIBC_2.21 __fcntl F
-GLIBC_2.21 __fdelt_chk F
-GLIBC_2.21 __fdelt_warn F
-GLIBC_2.21 __ffs F
-GLIBC_2.21 __fgets_chk F
-GLIBC_2.21 __fgets_unlocked_chk F
-GLIBC_2.21 __fgetws_chk F
-GLIBC_2.21 __fgetws_unlocked_chk F
-GLIBC_2.21 __finite F
-GLIBC_2.21 __finitef F
-GLIBC_2.21 __finitel F
-GLIBC_2.21 __fixdfdi F
-GLIBC_2.21 __fixdfsi F
-GLIBC_2.21 __fixsfdi F
-GLIBC_2.21 __fixsfsi F
-GLIBC_2.21 __fixunsdfdi F
-GLIBC_2.21 __fixunsdfsi F
-GLIBC_2.21 __fixunssfdi F
-GLIBC_2.21 __fixunssfsi F
-GLIBC_2.21 __flbf F
-GLIBC_2.21 __floatdidf F
-GLIBC_2.21 __floatdisf F
-GLIBC_2.21 __floatsidf F
-GLIBC_2.21 __floatsisf F
-GLIBC_2.21 __floatundidf F
-GLIBC_2.21 __floatundisf F
-GLIBC_2.21 __floatunsidf F
-GLIBC_2.21 __floatunsisf F
-GLIBC_2.21 __fork F
-GLIBC_2.21 __fpending F
-GLIBC_2.21 __fprintf_chk F
-GLIBC_2.21 __fpu_control D 0x4
-GLIBC_2.21 __fpurge F
-GLIBC_2.21 __fread_chk F
-GLIBC_2.21 __fread_unlocked_chk F
-GLIBC_2.21 __freadable F
-GLIBC_2.21 __freading F
-GLIBC_2.21 __free_hook D 0x4
-GLIBC_2.21 __freelocale F
-GLIBC_2.21 __fsetlocking F
-GLIBC_2.21 __fwprintf_chk F
-GLIBC_2.21 __fwritable F
-GLIBC_2.21 __fwriting F
-GLIBC_2.21 __fxstat F
-GLIBC_2.21 __fxstat64 F
-GLIBC_2.21 __fxstatat F
-GLIBC_2.21 __fxstatat64 F
-GLIBC_2.21 __gedf2 F
-GLIBC_2.21 __gesf2 F
-GLIBC_2.21 __getauxval F
-GLIBC_2.21 __getcwd_chk F
-GLIBC_2.21 __getdelim F
-GLIBC_2.21 __getdomainname_chk F
-GLIBC_2.21 __getgroups_chk F
-GLIBC_2.21 __gethostname_chk F
-GLIBC_2.21 __getlogin_r_chk F
-GLIBC_2.21 __getmntent_r F
-GLIBC_2.21 __getpagesize F
-GLIBC_2.21 __getpgid F
-GLIBC_2.21 __getpid F
-GLIBC_2.21 __gets_chk F
-GLIBC_2.21 __gettimeofday F
-GLIBC_2.21 __getwd_chk F
-GLIBC_2.21 __gmtime_r F
-GLIBC_2.21 __gtdf2 F
-GLIBC_2.21 __gtsf2 F
-GLIBC_2.21 __h_errno_location F
-GLIBC_2.21 __isalnum_l F
-GLIBC_2.21 __isalpha_l F
-GLIBC_2.21 __isascii_l F
-GLIBC_2.21 __isblank_l F
-GLIBC_2.21 __iscntrl_l F
-GLIBC_2.21 __isctype F
-GLIBC_2.21 __isdigit_l F
-GLIBC_2.21 __isgraph_l F
-GLIBC_2.21 __isinf F
-GLIBC_2.21 __isinff F
-GLIBC_2.21 __isinfl F
-GLIBC_2.21 __islower_l F
-GLIBC_2.21 __isnan F
-GLIBC_2.21 __isnanf F
-GLIBC_2.21 __isnanl F
-GLIBC_2.21 __isoc99_fscanf F
-GLIBC_2.21 __isoc99_fwscanf F
-GLIBC_2.21 __isoc99_scanf F
-GLIBC_2.21 __isoc99_sscanf F
-GLIBC_2.21 __isoc99_swscanf F
-GLIBC_2.21 __isoc99_vfscanf F
-GLIBC_2.21 __isoc99_vfwscanf F
-GLIBC_2.21 __isoc99_vscanf F
-GLIBC_2.21 __isoc99_vsscanf F
-GLIBC_2.21 __isoc99_vswscanf F
-GLIBC_2.21 __isoc99_vwscanf F
-GLIBC_2.21 __isoc99_wscanf F
-GLIBC_2.21 __isprint_l F
-GLIBC_2.21 __ispunct_l F
-GLIBC_2.21 __isspace_l F
-GLIBC_2.21 __isupper_l F
-GLIBC_2.21 __iswalnum_l F
-GLIBC_2.21 __iswalpha_l F
-GLIBC_2.21 __iswblank_l F
-GLIBC_2.21 __iswcntrl_l F
-GLIBC_2.21 __iswctype F
-GLIBC_2.21 __iswctype_l F
-GLIBC_2.21 __iswdigit_l F
-GLIBC_2.21 __iswgraph_l F
-GLIBC_2.21 __iswlower_l F
-GLIBC_2.21 __iswprint_l F
-GLIBC_2.21 __iswpunct_l F
-GLIBC_2.21 __iswspace_l F
-GLIBC_2.21 __iswupper_l F
-GLIBC_2.21 __iswxdigit_l F
-GLIBC_2.21 __isxdigit_l F
-GLIBC_2.21 __ivaliduser F
-GLIBC_2.21 __key_decryptsession_pk_LOCAL D 0x4
-GLIBC_2.21 __key_encryptsession_pk_LOCAL D 0x4
-GLIBC_2.21 __key_gendes_LOCAL D 0x4
-GLIBC_2.21 __ledf2 F
-GLIBC_2.21 __lesf2 F
-GLIBC_2.21 __libc_allocate_rtsig F
-GLIBC_2.21 __libc_calloc F
-GLIBC_2.21 __libc_current_sigrtmax F
-GLIBC_2.21 __libc_current_sigrtmin F
-GLIBC_2.21 __libc_free F
-GLIBC_2.21 __libc_freeres F
-GLIBC_2.21 __libc_init_first F
-GLIBC_2.21 __libc_mallinfo F
-GLIBC_2.21 __libc_malloc F
-GLIBC_2.21 __libc_mallopt F
-GLIBC_2.21 __libc_memalign F
-GLIBC_2.21 __libc_pvalloc F
-GLIBC_2.21 __libc_realloc F
-GLIBC_2.21 __libc_sa_len F
-GLIBC_2.21 __libc_start_main F
-GLIBC_2.21 __libc_valloc F
-GLIBC_2.21 __longjmp_chk F
-GLIBC_2.21 __lseek F
-GLIBC_2.21 __ltdf2 F
-GLIBC_2.21 __ltsf2 F
-GLIBC_2.21 __lxstat F
-GLIBC_2.21 __lxstat64 F
-GLIBC_2.21 __malloc_hook D 0x4
-GLIBC_2.21 __malloc_initialize_hook D 0x4
-GLIBC_2.21 __mbrlen F
-GLIBC_2.21 __mbrtowc F
-GLIBC_2.21 __mbsnrtowcs_chk F
-GLIBC_2.21 __mbsrtowcs_chk F
-GLIBC_2.21 __mbstowcs_chk F
-GLIBC_2.21 __memalign_hook D 0x4
-GLIBC_2.21 __memcpy_chk F
-GLIBC_2.21 __memmove_chk F
-GLIBC_2.21 __mempcpy F
-GLIBC_2.21 __mempcpy_chk F
-GLIBC_2.21 __mempcpy_small F
-GLIBC_2.21 __memset_chk F
-GLIBC_2.21 __monstartup F
-GLIBC_2.21 __morecore D 0x4
-GLIBC_2.21 __mq_open_2 F
-GLIBC_2.21 __muldf3 F
-GLIBC_2.21 __mulsf3 F
-GLIBC_2.21 __nanosleep F
-GLIBC_2.21 __nedf2 F
-GLIBC_2.21 __negdf2 F
-GLIBC_2.21 __negsf2 F
-GLIBC_2.21 __nesf2 F
-GLIBC_2.21 __newlocale F
-GLIBC_2.21 __nl_langinfo_l F
-GLIBC_2.21 __nss_configure_lookup F
-GLIBC_2.21 __nss_database_lookup F
-GLIBC_2.21 __nss_group_lookup F
-GLIBC_2.21 __nss_hostname_digits_dots F
-GLIBC_2.21 __nss_hosts_lookup F
-GLIBC_2.21 __nss_next F
-GLIBC_2.21 __nss_passwd_lookup F
-GLIBC_2.21 __obstack_printf_chk F
-GLIBC_2.21 __obstack_vprintf_chk F
-GLIBC_2.21 __open F
-GLIBC_2.21 __open64 F
-GLIBC_2.21 __open64_2 F
-GLIBC_2.21 __open_2 F
-GLIBC_2.21 __openat64_2 F
-GLIBC_2.21 __openat_2 F
-GLIBC_2.21 __overflow F
-GLIBC_2.21 __pipe F
-GLIBC_2.21 __poll F
-GLIBC_2.21 __poll_chk F
-GLIBC_2.21 __posix_getopt F
-GLIBC_2.21 __ppoll_chk F
-GLIBC_2.21 __pread64 F
-GLIBC_2.21 __pread64_chk F
-GLIBC_2.21 __pread_chk F
-GLIBC_2.21 __printf_chk F
-GLIBC_2.21 __printf_fp F
-GLIBC_2.21 __profile_frequency F
-GLIBC_2.21 __progname D 0x4
-GLIBC_2.21 __progname_full D 0x4
-GLIBC_2.21 __pthread_cleanup_routine F
-GLIBC_2.21 __pthread_getspecific F
-GLIBC_2.21 __pthread_key_create F
-GLIBC_2.21 __pthread_mutex_destroy F
-GLIBC_2.21 __pthread_mutex_init F
-GLIBC_2.21 __pthread_mutex_lock F
-GLIBC_2.21 __pthread_mutex_trylock F
-GLIBC_2.21 __pthread_mutex_unlock F
-GLIBC_2.21 __pthread_mutexattr_destroy F
-GLIBC_2.21 __pthread_mutexattr_init F
-GLIBC_2.21 __pthread_mutexattr_settype F
-GLIBC_2.21 __pthread_once F
-GLIBC_2.21 __pthread_register_cancel F
-GLIBC_2.21 __pthread_register_cancel_defer F
-GLIBC_2.21 __pthread_rwlock_destroy F
-GLIBC_2.21 __pthread_rwlock_init F
-GLIBC_2.21 __pthread_rwlock_rdlock F
-GLIBC_2.21 __pthread_rwlock_tryrdlock F
-GLIBC_2.21 __pthread_rwlock_trywrlock F
-GLIBC_2.21 __pthread_rwlock_unlock F
-GLIBC_2.21 __pthread_rwlock_wrlock F
-GLIBC_2.21 __pthread_setspecific F
-GLIBC_2.21 __pthread_unregister_cancel F
-GLIBC_2.21 __pthread_unregister_cancel_restore F
-GLIBC_2.21 __pthread_unwind_next F
-GLIBC_2.21 __ptsname_r_chk F
-GLIBC_2.21 __pwrite64 F
-GLIBC_2.21 __rawmemchr F
-GLIBC_2.21 __rcmd_errstr D 0x4
-GLIBC_2.21 __read F
-GLIBC_2.21 __read_chk F
-GLIBC_2.21 __readlink_chk F
-GLIBC_2.21 __readlinkat_chk F
-GLIBC_2.21 __realloc_hook D 0x4
-GLIBC_2.21 __realpath_chk F
-GLIBC_2.21 __recv_chk F
-GLIBC_2.21 __recvfrom_chk F
-GLIBC_2.21 __register_atfork F
-GLIBC_2.21 __res_dnok F
-GLIBC_2.21 __res_hnok F
-GLIBC_2.21 __res_init F
-GLIBC_2.21 __res_mailok F
-GLIBC_2.21 __res_mkquery F
-GLIBC_2.21 __res_nclose F
-GLIBC_2.21 __res_ninit F
-GLIBC_2.21 __res_nmkquery F
-GLIBC_2.21 __res_nquery F
-GLIBC_2.21 __res_nquerydomain F
-GLIBC_2.21 __res_nsearch F
-GLIBC_2.21 __res_nsend F
-GLIBC_2.21 __res_ownok F
-GLIBC_2.21 __res_query F
-GLIBC_2.21 __res_querydomain F
-GLIBC_2.21 __res_randomid F
-GLIBC_2.21 __res_search F
-GLIBC_2.21 __res_send F
-GLIBC_2.21 __res_state F
-GLIBC_2.21 __rpc_thread_createerr F
-GLIBC_2.21 __rpc_thread_svc_fdset F
-GLIBC_2.21 __rpc_thread_svc_max_pollfd F
-GLIBC_2.21 __rpc_thread_svc_pollfd F
-GLIBC_2.21 __sbrk F
-GLIBC_2.21 __sched_cpualloc F
-GLIBC_2.21 __sched_cpucount F
-GLIBC_2.21 __sched_cpufree F
-GLIBC_2.21 __sched_get_priority_max F
-GLIBC_2.21 __sched_get_priority_min F
-GLIBC_2.21 __sched_getparam F
-GLIBC_2.21 __sched_getscheduler F
-GLIBC_2.21 __sched_setscheduler F
-GLIBC_2.21 __sched_yield F
-GLIBC_2.21 __select F
-GLIBC_2.21 __send F
-GLIBC_2.21 __setmntent F
-GLIBC_2.21 __setpgid F
-GLIBC_2.21 __sigaction F
-GLIBC_2.21 __sigaddset F
-GLIBC_2.21 __sigdelset F
-GLIBC_2.21 __sigismember F
-GLIBC_2.21 __signbit F
-GLIBC_2.21 __signbitf F
-GLIBC_2.21 __sigpause F
-GLIBC_2.21 __sigsetjmp F
-GLIBC_2.21 __sigsuspend F
-GLIBC_2.21 __snprintf_chk F
-GLIBC_2.21 __sprintf_chk F
-GLIBC_2.21 __stack_chk_fail F
-GLIBC_2.21 __statfs F
-GLIBC_2.21 __stpcpy F
-GLIBC_2.21 __stpcpy_chk F
-GLIBC_2.21 __stpcpy_small F
-GLIBC_2.21 __stpncpy F
-GLIBC_2.21 __stpncpy_chk F
-GLIBC_2.21 __strcasecmp F
-GLIBC_2.21 __strcasecmp_l F
-GLIBC_2.21 __strcasestr F
-GLIBC_2.21 __strcat_chk F
-GLIBC_2.21 __strcoll_l F
-GLIBC_2.21 __strcpy_chk F
-GLIBC_2.21 __strcpy_small F
-GLIBC_2.21 __strcspn_c1 F
-GLIBC_2.21 __strcspn_c2 F
-GLIBC_2.21 __strcspn_c3 F
-GLIBC_2.21 __strdup F
-GLIBC_2.21 __strerror_r F
-GLIBC_2.21 __strfmon_l F
-GLIBC_2.21 __strftime_l F
-GLIBC_2.21 __strncasecmp_l F
-GLIBC_2.21 __strncat_chk F
-GLIBC_2.21 __strncpy_chk F
-GLIBC_2.21 __strndup F
-GLIBC_2.21 __strpbrk_c2 F
-GLIBC_2.21 __strpbrk_c3 F
-GLIBC_2.21 __strsep_1c F
-GLIBC_2.21 __strsep_2c F
-GLIBC_2.21 __strsep_3c F
-GLIBC_2.21 __strsep_g F
-GLIBC_2.21 __strspn_c1 F
-GLIBC_2.21 __strspn_c2 F
-GLIBC_2.21 __strspn_c3 F
-GLIBC_2.21 __strtod_internal F
-GLIBC_2.21 __strtod_l F
-GLIBC_2.21 __strtof_internal F
-GLIBC_2.21 __strtof_l F
-GLIBC_2.21 __strtok_r F
-GLIBC_2.21 __strtok_r_1c F
-GLIBC_2.21 __strtol_internal F
-GLIBC_2.21 __strtol_l F
-GLIBC_2.21 __strtold_internal F
-GLIBC_2.21 __strtold_l F
-GLIBC_2.21 __strtoll_internal F
-GLIBC_2.21 __strtoll_l F
-GLIBC_2.21 __strtoul_internal F
-GLIBC_2.21 __strtoul_l F
-GLIBC_2.21 __strtoull_internal F
-GLIBC_2.21 __strtoull_l F
-GLIBC_2.21 __strverscmp F
-GLIBC_2.21 __strxfrm_l F
-GLIBC_2.21 __subdf3 F
-GLIBC_2.21 __subsf3 F
-GLIBC_2.21 __swprintf_chk F
-GLIBC_2.21 __sysconf F
-GLIBC_2.21 __syslog_chk F
-GLIBC_2.21 __sysv_signal F
-GLIBC_2.21 __timezone D 0x4
-GLIBC_2.21 __toascii_l F
-GLIBC_2.21 __tolower_l F
-GLIBC_2.21 __toupper_l F
-GLIBC_2.21 __towctrans F
-GLIBC_2.21 __towctrans_l F
-GLIBC_2.21 __towlower_l F
-GLIBC_2.21 __towupper_l F
-GLIBC_2.21 __truncdfsf2 F
-GLIBC_2.21 __ttyname_r_chk F
-GLIBC_2.21 __tzname D 0x8
-GLIBC_2.21 __uflow F
-GLIBC_2.21 __underflow F
-GLIBC_2.21 __unorddf2 F
-GLIBC_2.21 __unordsf2 F
-GLIBC_2.21 __uselocale F
-GLIBC_2.21 __vasprintf_chk F
-GLIBC_2.21 __vdprintf_chk F
-GLIBC_2.21 __vfork F
-GLIBC_2.21 __vfprintf_chk F
-GLIBC_2.21 __vfscanf F
-GLIBC_2.21 __vfwprintf_chk F
-GLIBC_2.21 __vprintf_chk F
-GLIBC_2.21 __vsnprintf F
-GLIBC_2.21 __vsnprintf_chk F
-GLIBC_2.21 __vsprintf_chk F
-GLIBC_2.21 __vsscanf F
-GLIBC_2.21 __vswprintf_chk F
-GLIBC_2.21 __vsyslog_chk F
-GLIBC_2.21 __vwprintf_chk F
-GLIBC_2.21 __wait F
-GLIBC_2.21 __waitpid F
-GLIBC_2.21 __wcpcpy_chk F
-GLIBC_2.21 __wcpncpy_chk F
-GLIBC_2.21 __wcrtomb_chk F
-GLIBC_2.21 __wcscasecmp_l F
-GLIBC_2.21 __wcscat_chk F
-GLIBC_2.21 __wcscoll_l F
-GLIBC_2.21 __wcscpy_chk F
-GLIBC_2.21 __wcsftime_l F
-GLIBC_2.21 __wcsncasecmp_l F
-GLIBC_2.21 __wcsncat_chk F
-GLIBC_2.21 __wcsncpy_chk F
-GLIBC_2.21 __wcsnrtombs_chk F
-GLIBC_2.21 __wcsrtombs_chk F
-GLIBC_2.21 __wcstod_internal F
-GLIBC_2.21 __wcstod_l F
-GLIBC_2.21 __wcstof_internal F
-GLIBC_2.21 __wcstof_l F
-GLIBC_2.21 __wcstol_internal F
-GLIBC_2.21 __wcstol_l F
-GLIBC_2.21 __wcstold_internal F
-GLIBC_2.21 __wcstold_l F
-GLIBC_2.21 __wcstoll_internal F
-GLIBC_2.21 __wcstoll_l F
-GLIBC_2.21 __wcstombs_chk F
-GLIBC_2.21 __wcstoul_internal F
-GLIBC_2.21 __wcstoul_l F
-GLIBC_2.21 __wcstoull_internal F
-GLIBC_2.21 __wcstoull_l F
-GLIBC_2.21 __wcsxfrm_l F
-GLIBC_2.21 __wctomb_chk F
-GLIBC_2.21 __wctrans_l F
-GLIBC_2.21 __wctype_l F
-GLIBC_2.21 __wmemcpy_chk F
-GLIBC_2.21 __wmemmove_chk F
-GLIBC_2.21 __wmempcpy_chk F
-GLIBC_2.21 __wmemset_chk F
-GLIBC_2.21 __woverflow F
-GLIBC_2.21 __wprintf_chk F
-GLIBC_2.21 __write F
-GLIBC_2.21 __wuflow F
-GLIBC_2.21 __wunderflow F
-GLIBC_2.21 __xmknod F
-GLIBC_2.21 __xmknodat F
-GLIBC_2.21 __xpg_basename F
-GLIBC_2.21 __xpg_sigpause F
-GLIBC_2.21 __xpg_strerror_r F
-GLIBC_2.21 __xstat F
-GLIBC_2.21 __xstat64 F
-GLIBC_2.21 _authenticate F
-GLIBC_2.21 _dl_mcount_wrapper F
-GLIBC_2.21 _dl_mcount_wrapper_check F
-GLIBC_2.21 _environ D 0x4
-GLIBC_2.21 _exit F
-GLIBC_2.21 _flush_cache F
-GLIBC_2.21 _flushlbf F
-GLIBC_2.21 _libc_intl_domainname D 0x5
-GLIBC_2.21 _longjmp F
-GLIBC_2.21 _mcleanup F
-GLIBC_2.21 _mcount F
-GLIBC_2.21 _nl_default_dirname D 0x12
-GLIBC_2.21 _nl_domain_bindings D 0x4
-GLIBC_2.21 _nl_msg_cat_cntr D 0x4
-GLIBC_2.21 _null_auth D 0xc
-GLIBC_2.21 _obstack_allocated_p F
-GLIBC_2.21 _obstack_begin F
-GLIBC_2.21 _obstack_begin_1 F
-GLIBC_2.21 _obstack_free F
-GLIBC_2.21 _obstack_memory_used F
-GLIBC_2.21 _obstack_newchunk F
-GLIBC_2.21 _pthread_cleanup_pop F
-GLIBC_2.21 _pthread_cleanup_pop_restore F
-GLIBC_2.21 _pthread_cleanup_push F
-GLIBC_2.21 _pthread_cleanup_push_defer F
-GLIBC_2.21 _res D 0x200
-GLIBC_2.21 _res_hconf D 0x30
-GLIBC_2.21 _rpc_dtablesize F
-GLIBC_2.21 _seterr_reply F
-GLIBC_2.21 _setjmp F
-GLIBC_2.21 _sys_errlist D 0x21c
-GLIBC_2.21 _sys_nerr D 0x4
-GLIBC_2.21 _sys_siglist D 0x104
-GLIBC_2.21 _tolower F
-GLIBC_2.21 _toupper F
-GLIBC_2.21 a64l F
-GLIBC_2.21 abort F
-GLIBC_2.21 abs F
-GLIBC_2.21 accept F
-GLIBC_2.21 accept4 F
-GLIBC_2.21 access F
-GLIBC_2.21 acct F
-GLIBC_2.21 addmntent F
-GLIBC_2.21 addseverity F
-GLIBC_2.21 adjtime F
-GLIBC_2.21 adjtimex F
-GLIBC_2.21 advance F
-GLIBC_2.21 aio_cancel F
-GLIBC_2.21 aio_cancel64 F
-GLIBC_2.21 aio_error F
-GLIBC_2.21 aio_error64 F
-GLIBC_2.21 aio_fsync F
-GLIBC_2.21 aio_fsync64 F
-GLIBC_2.21 aio_init F
-GLIBC_2.21 aio_read F
-GLIBC_2.21 aio_read64 F
-GLIBC_2.21 aio_return F
-GLIBC_2.21 aio_return64 F
-GLIBC_2.21 aio_suspend F
-GLIBC_2.21 aio_suspend64 F
-GLIBC_2.21 aio_write F
-GLIBC_2.21 aio_write64 F
-GLIBC_2.21 alarm F
-GLIBC_2.21 aligned_alloc F
-GLIBC_2.21 alphasort F
-GLIBC_2.21 alphasort64 F
-GLIBC_2.21 argp_err_exit_status D 0x4
-GLIBC_2.21 argp_error F
-GLIBC_2.21 argp_failure F
-GLIBC_2.21 argp_help F
-GLIBC_2.21 argp_parse F
-GLIBC_2.21 argp_program_bug_address D 0x4
-GLIBC_2.21 argp_program_version D 0x4
-GLIBC_2.21 argp_program_version_hook D 0x4
-GLIBC_2.21 argp_state_help F
-GLIBC_2.21 argp_usage F
-GLIBC_2.21 argz_add F
-GLIBC_2.21 argz_add_sep F
-GLIBC_2.21 argz_append F
-GLIBC_2.21 argz_count F
-GLIBC_2.21 argz_create F
-GLIBC_2.21 argz_create_sep F
-GLIBC_2.21 argz_delete F
-GLIBC_2.21 argz_extract F
-GLIBC_2.21 argz_insert F
-GLIBC_2.21 argz_next F
-GLIBC_2.21 argz_replace F
-GLIBC_2.21 argz_stringify F
-GLIBC_2.21 asctime F
-GLIBC_2.21 asctime_r F
-GLIBC_2.21 asprintf F
-GLIBC_2.21 atof F
-GLIBC_2.21 atoi F
-GLIBC_2.21 atol F
-GLIBC_2.21 atoll F
-GLIBC_2.21 authdes_create F
-GLIBC_2.21 authdes_getucred F
-GLIBC_2.21 authdes_pk_create F
-GLIBC_2.21 authnone_create F
-GLIBC_2.21 authunix_create F
-GLIBC_2.21 authunix_create_default F
-GLIBC_2.21 backtrace F
-GLIBC_2.21 backtrace_symbols F
-GLIBC_2.21 backtrace_symbols_fd F
-GLIBC_2.21 basename F
-GLIBC_2.21 bcmp F
-GLIBC_2.21 bcopy F
-GLIBC_2.21 bdflush F
-GLIBC_2.21 bind F
-GLIBC_2.21 bind_textdomain_codeset F
-GLIBC_2.21 bindresvport F
-GLIBC_2.21 bindtextdomain F
-GLIBC_2.21 brk F
-GLIBC_2.21 bsd_signal F
-GLIBC_2.21 bsearch F
-GLIBC_2.21 btowc F
-GLIBC_2.21 bzero F
-GLIBC_2.21 c16rtomb F
-GLIBC_2.21 c32rtomb F
-GLIBC_2.21 cacheflush F
-GLIBC_2.21 calloc F
-GLIBC_2.21 callrpc F
-GLIBC_2.21 canonicalize_file_name F
-GLIBC_2.21 capget F
-GLIBC_2.21 capset F
-GLIBC_2.21 catclose F
-GLIBC_2.21 catgets F
-GLIBC_2.21 catopen F
-GLIBC_2.21 cbc_crypt F
-GLIBC_2.21 cfgetispeed F
-GLIBC_2.21 cfgetospeed F
-GLIBC_2.21 cfmakeraw F
-GLIBC_2.21 cfree F
-GLIBC_2.21 cfsetispeed F
-GLIBC_2.21 cfsetospeed F
-GLIBC_2.21 cfsetspeed F
-GLIBC_2.21 chdir F
-GLIBC_2.21 chflags F
-GLIBC_2.21 chmod F
-GLIBC_2.21 chown F
-GLIBC_2.21 chroot F
-GLIBC_2.21 clearenv F
-GLIBC_2.21 clearerr F
-GLIBC_2.21 clearerr_unlocked F
-GLIBC_2.21 clnt_broadcast F
-GLIBC_2.21 clnt_create F
-GLIBC_2.21 clnt_pcreateerror F
-GLIBC_2.21 clnt_perrno F
-GLIBC_2.21 clnt_perror F
-GLIBC_2.21 clnt_spcreateerror F
-GLIBC_2.21 clnt_sperrno F
-GLIBC_2.21 clnt_sperror F
-GLIBC_2.21 clntraw_create F
-GLIBC_2.21 clnttcp_create F
-GLIBC_2.21 clntudp_bufcreate F
-GLIBC_2.21 clntudp_create F
-GLIBC_2.21 clntunix_create F
-GLIBC_2.21 clock F
-GLIBC_2.21 clock_adjtime F
-GLIBC_2.21 clock_getcpuclockid F
-GLIBC_2.21 clock_getres F
-GLIBC_2.21 clock_gettime F
-GLIBC_2.21 clock_nanosleep F
-GLIBC_2.21 clock_settime F
-GLIBC_2.21 clone F
-GLIBC_2.21 close F
-GLIBC_2.21 closedir F
-GLIBC_2.21 closelog F
-GLIBC_2.21 confstr F
-GLIBC_2.21 connect F
-GLIBC_2.21 copysign F
-GLIBC_2.21 copysignf F
-GLIBC_2.21 copysignl F
-GLIBC_2.21 creat F
-GLIBC_2.21 creat64 F
-GLIBC_2.21 create_module F
-GLIBC_2.21 ctermid F
-GLIBC_2.21 ctime F
-GLIBC_2.21 ctime_r F
-GLIBC_2.21 cuserid F
-GLIBC_2.21 daemon F
-GLIBC_2.21 daylight D 0x4
-GLIBC_2.21 dcgettext F
-GLIBC_2.21 dcngettext F
-GLIBC_2.21 delete_module F
-GLIBC_2.21 des_setparity F
-GLIBC_2.21 dgettext F
-GLIBC_2.21 difftime F
-GLIBC_2.21 dirfd F
-GLIBC_2.21 dirname F
-GLIBC_2.21 div F
-GLIBC_2.21 dl_iterate_phdr F
-GLIBC_2.21 dladdr F
-GLIBC_2.21 dladdr1 F
-GLIBC_2.21 dlclose F
-GLIBC_2.21 dlerror F
-GLIBC_2.21 dlinfo F
-GLIBC_2.21 dlmopen F
-GLIBC_2.21 dlopen F
-GLIBC_2.21 dlsym F
-GLIBC_2.21 dlvsym F
-GLIBC_2.21 dngettext F
-GLIBC_2.21 dprintf F
-GLIBC_2.21 drand48 F
-GLIBC_2.21 drand48_r F
-GLIBC_2.21 dup F
-GLIBC_2.21 dup2 F
-GLIBC_2.21 dup3 F
-GLIBC_2.21 duplocale F
-GLIBC_2.21 dysize F
-GLIBC_2.21 eaccess F
-GLIBC_2.21 ecb_crypt F
-GLIBC_2.21 ecvt F
-GLIBC_2.21 ecvt_r F
-GLIBC_2.21 endaliasent F
-GLIBC_2.21 endfsent F
-GLIBC_2.21 endgrent F
-GLIBC_2.21 endhostent F
-GLIBC_2.21 endmntent F
-GLIBC_2.21 endnetent F
-GLIBC_2.21 endnetgrent F
-GLIBC_2.21 endprotoent F
-GLIBC_2.21 endpwent F
-GLIBC_2.21 endrpcent F
-GLIBC_2.21 endservent F
-GLIBC_2.21 endsgent F
-GLIBC_2.21 endspent F
-GLIBC_2.21 endttyent F
-GLIBC_2.21 endusershell F
-GLIBC_2.21 endutent F
-GLIBC_2.21 endutxent F
-GLIBC_2.21 environ D 0x4
-GLIBC_2.21 envz_add F
-GLIBC_2.21 envz_entry F
-GLIBC_2.21 envz_get F
-GLIBC_2.21 envz_merge F
-GLIBC_2.21 envz_remove F
-GLIBC_2.21 envz_strip F
-GLIBC_2.21 epoll_create F
-GLIBC_2.21 epoll_create1 F
-GLIBC_2.21 epoll_ctl F
-GLIBC_2.21 epoll_pwait F
-GLIBC_2.21 epoll_wait F
-GLIBC_2.21 erand48 F
-GLIBC_2.21 erand48_r F
-GLIBC_2.21 err F
-GLIBC_2.21 error F
-GLIBC_2.21 error_at_line F
-GLIBC_2.21 error_message_count D 0x4
-GLIBC_2.21 error_one_per_line D 0x4
-GLIBC_2.21 error_print_progname D 0x4
-GLIBC_2.21 errx F
-GLIBC_2.21 ether_aton F
-GLIBC_2.21 ether_aton_r F
-GLIBC_2.21 ether_hostton F
-GLIBC_2.21 ether_line F
-GLIBC_2.21 ether_ntoa F
-GLIBC_2.21 ether_ntoa_r F
-GLIBC_2.21 ether_ntohost F
-GLIBC_2.21 euidaccess F
-GLIBC_2.21 eventfd F
-GLIBC_2.21 eventfd_read F
-GLIBC_2.21 eventfd_write F
-GLIBC_2.21 execl F
-GLIBC_2.21 execle F
-GLIBC_2.21 execlp F
-GLIBC_2.21 execv F
-GLIBC_2.21 execve F
-GLIBC_2.21 execvp F
-GLIBC_2.21 execvpe F
-GLIBC_2.21 exit F
-GLIBC_2.21 faccessat F
-GLIBC_2.21 fallocate F
-GLIBC_2.21 fallocate64 F
-GLIBC_2.21 fanotify_init F
-GLIBC_2.21 fanotify_mark F
-GLIBC_2.21 fattach F
-GLIBC_2.21 fchdir F
-GLIBC_2.21 fchflags F
-GLIBC_2.21 fchmod F
-GLIBC_2.21 fchmodat F
-GLIBC_2.21 fchown F
-GLIBC_2.21 fchownat F
-GLIBC_2.21 fclose F
-GLIBC_2.21 fcloseall F
-GLIBC_2.21 fcntl F
-GLIBC_2.21 fcvt F
-GLIBC_2.21 fcvt_r F
-GLIBC_2.21 fdatasync F
-GLIBC_2.21 fdetach F
-GLIBC_2.21 fdopen F
-GLIBC_2.21 fdopendir F
-GLIBC_2.21 feof F
-GLIBC_2.21 feof_unlocked F
-GLIBC_2.21 ferror F
-GLIBC_2.21 ferror_unlocked F
-GLIBC_2.21 fexecve F
-GLIBC_2.21 fflush F
-GLIBC_2.21 fflush_unlocked F
-GLIBC_2.21 ffs F
-GLIBC_2.21 ffsl F
-GLIBC_2.21 ffsll F
-GLIBC_2.21 fgetc F
-GLIBC_2.21 fgetc_unlocked F
-GLIBC_2.21 fgetgrent F
-GLIBC_2.21 fgetgrent_r F
-GLIBC_2.21 fgetpos F
-GLIBC_2.21 fgetpos64 F
-GLIBC_2.21 fgetpwent F
-GLIBC_2.21 fgetpwent_r F
-GLIBC_2.21 fgets F
-GLIBC_2.21 fgets_unlocked F
-GLIBC_2.21 fgetsgent F
-GLIBC_2.21 fgetsgent_r F
-GLIBC_2.21 fgetspent F
-GLIBC_2.21 fgetspent_r F
-GLIBC_2.21 fgetwc F
-GLIBC_2.21 fgetwc_unlocked F
-GLIBC_2.21 fgetws F
-GLIBC_2.21 fgetws_unlocked F
-GLIBC_2.21 fgetxattr F
-GLIBC_2.21 fileno F
-GLIBC_2.21 fileno_unlocked F
-GLIBC_2.21 finite F
-GLIBC_2.21 finitef F
-GLIBC_2.21 finitel F
-GLIBC_2.21 flistxattr F
-GLIBC_2.21 flock F
-GLIBC_2.21 flockfile F
-GLIBC_2.21 fmemopen F
-GLIBC_2.21 fmtmsg F
-GLIBC_2.21 fnmatch F
-GLIBC_2.21 fopen F
-GLIBC_2.21 fopen64 F
-GLIBC_2.21 fopencookie F
-GLIBC_2.21 fork F
-GLIBC_2.21 forkpty F
-GLIBC_2.21 fpathconf F
-GLIBC_2.21 fprintf F
-GLIBC_2.21 fputc F
-GLIBC_2.21 fputc_unlocked F
-GLIBC_2.21 fputs F
-GLIBC_2.21 fputs_unlocked F
-GLIBC_2.21 fputwc F
-GLIBC_2.21 fputwc_unlocked F
-GLIBC_2.21 fputws F
-GLIBC_2.21 fputws_unlocked F
-GLIBC_2.21 fread F
-GLIBC_2.21 fread_unlocked F
-GLIBC_2.21 free F
-GLIBC_2.21 freeaddrinfo F
-GLIBC_2.21 freeifaddrs F
-GLIBC_2.21 freelocale F
-GLIBC_2.21 fremovexattr F
-GLIBC_2.21 freopen F
-GLIBC_2.21 freopen64 F
-GLIBC_2.21 frexp F
-GLIBC_2.21 frexpf F
-GLIBC_2.21 frexpl F
-GLIBC_2.21 fscanf F
-GLIBC_2.21 fseek F
-GLIBC_2.21 fseeko F
-GLIBC_2.21 fseeko64 F
-GLIBC_2.21 fsetpos F
-GLIBC_2.21 fsetpos64 F
-GLIBC_2.21 fsetxattr F
-GLIBC_2.21 fstatfs F
-GLIBC_2.21 fstatfs64 F
-GLIBC_2.21 fstatvfs F
-GLIBC_2.21 fstatvfs64 F
-GLIBC_2.21 fsync F
-GLIBC_2.21 ftell F
-GLIBC_2.21 ftello F
-GLIBC_2.21 ftello64 F
-GLIBC_2.21 ftime F
-GLIBC_2.21 ftok F
-GLIBC_2.21 ftruncate F
-GLIBC_2.21 ftruncate64 F
-GLIBC_2.21 ftrylockfile F
-GLIBC_2.21 fts_children F
-GLIBC_2.21 fts_close F
-GLIBC_2.21 fts_open F
-GLIBC_2.21 fts_read F
-GLIBC_2.21 fts_set F
-GLIBC_2.21 ftw F
-GLIBC_2.21 ftw64 F
-GLIBC_2.21 funlockfile F
-GLIBC_2.21 futimens F
-GLIBC_2.21 futimes F
-GLIBC_2.21 futimesat F
-GLIBC_2.21 fwide F
-GLIBC_2.21 fwprintf F
-GLIBC_2.21 fwrite F
-GLIBC_2.21 fwrite_unlocked F
-GLIBC_2.21 fwscanf F
-GLIBC_2.21 gai_cancel F
-GLIBC_2.21 gai_error F
-GLIBC_2.21 gai_strerror F
-GLIBC_2.21 gai_suspend F
-GLIBC_2.21 gcvt F
-GLIBC_2.21 get_avphys_pages F
-GLIBC_2.21 get_current_dir_name F
-GLIBC_2.21 get_kernel_syms F
-GLIBC_2.21 get_myaddress F
-GLIBC_2.21 get_nprocs F
-GLIBC_2.21 get_nprocs_conf F
-GLIBC_2.21 get_phys_pages F
-GLIBC_2.21 getaddrinfo F
-GLIBC_2.21 getaddrinfo_a F
-GLIBC_2.21 getaliasbyname F
-GLIBC_2.21 getaliasbyname_r F
-GLIBC_2.21 getaliasent F
-GLIBC_2.21 getaliasent_r F
-GLIBC_2.21 getauxval F
-GLIBC_2.21 getc F
-GLIBC_2.21 getc_unlocked F
-GLIBC_2.21 getchar F
-GLIBC_2.21 getchar_unlocked F
-GLIBC_2.21 getcontext F
-GLIBC_2.21 getcwd F
-GLIBC_2.21 getdate F
-GLIBC_2.21 getdate_err D 0x4
-GLIBC_2.21 getdate_r F
-GLIBC_2.21 getdelim F
-GLIBC_2.21 getdirentries F
-GLIBC_2.21 getdirentries64 F
-GLIBC_2.21 getdomainname F
-GLIBC_2.21 getdtablesize F
-GLIBC_2.21 getegid F
-GLIBC_2.21 getenv F
-GLIBC_2.21 geteuid F
-GLIBC_2.21 getfsent F
-GLIBC_2.21 getfsfile F
-GLIBC_2.21 getfsspec F
-GLIBC_2.21 getgid F
-GLIBC_2.21 getgrent F
-GLIBC_2.21 getgrent_r F
-GLIBC_2.21 getgrgid F
-GLIBC_2.21 getgrgid_r F
-GLIBC_2.21 getgrnam F
-GLIBC_2.21 getgrnam_r F
-GLIBC_2.21 getgrouplist F
-GLIBC_2.21 getgroups F
-GLIBC_2.21 gethostbyaddr F
-GLIBC_2.21 gethostbyaddr_r F
-GLIBC_2.21 gethostbyname F
-GLIBC_2.21 gethostbyname2 F
-GLIBC_2.21 gethostbyname2_r F
-GLIBC_2.21 gethostbyname_r F
-GLIBC_2.21 gethostent F
-GLIBC_2.21 gethostent_r F
-GLIBC_2.21 gethostid F
-GLIBC_2.21 gethostname F
-GLIBC_2.21 getifaddrs F
-GLIBC_2.21 getipv4sourcefilter F
-GLIBC_2.21 getitimer F
-GLIBC_2.21 getline F
-GLIBC_2.21 getloadavg F
-GLIBC_2.21 getlogin F
-GLIBC_2.21 getlogin_r F
-GLIBC_2.21 getmntent F
-GLIBC_2.21 getmntent_r F
-GLIBC_2.21 getmsg F
-GLIBC_2.21 getnameinfo F
-GLIBC_2.21 getnetbyaddr F
-GLIBC_2.21 getnetbyaddr_r F
-GLIBC_2.21 getnetbyname F
-GLIBC_2.21 getnetbyname_r F
-GLIBC_2.21 getnetent F
-GLIBC_2.21 getnetent_r F
-GLIBC_2.21 getnetgrent F
-GLIBC_2.21 getnetgrent_r F
-GLIBC_2.21 getnetname F
-GLIBC_2.21 getopt F
-GLIBC_2.21 getopt_long F
-GLIBC_2.21 getopt_long_only F
-GLIBC_2.21 getpagesize F
-GLIBC_2.21 getpass F
-GLIBC_2.21 getpeername F
-GLIBC_2.21 getpgid F
-GLIBC_2.21 getpgrp F
-GLIBC_2.21 getpid F
-GLIBC_2.21 getpmsg F
-GLIBC_2.21 getppid F
-GLIBC_2.21 getpriority F
-GLIBC_2.21 getprotobyname F
-GLIBC_2.21 getprotobyname_r F
-GLIBC_2.21 getprotobynumber F
-GLIBC_2.21 getprotobynumber_r F
-GLIBC_2.21 getprotoent F
-GLIBC_2.21 getprotoent_r F
-GLIBC_2.21 getpt F
-GLIBC_2.21 getpublickey F
-GLIBC_2.21 getpw F
-GLIBC_2.21 getpwent F
-GLIBC_2.21 getpwent_r F
-GLIBC_2.21 getpwnam F
-GLIBC_2.21 getpwnam_r F
-GLIBC_2.21 getpwuid F
-GLIBC_2.21 getpwuid_r F
-GLIBC_2.21 getresgid F
-GLIBC_2.21 getresuid F
-GLIBC_2.21 getrlimit F
-GLIBC_2.21 getrlimit64 F
-GLIBC_2.21 getrpcbyname F
-GLIBC_2.21 getrpcbyname_r F
-GLIBC_2.21 getrpcbynumber F
-GLIBC_2.21 getrpcbynumber_r F
-GLIBC_2.21 getrpcent F
-GLIBC_2.21 getrpcent_r F
-GLIBC_2.21 getrpcport F
-GLIBC_2.21 getrusage F
-GLIBC_2.21 gets F
-GLIBC_2.21 getsecretkey F
-GLIBC_2.21 getservbyname F
-GLIBC_2.21 getservbyname_r F
-GLIBC_2.21 getservbyport F
-GLIBC_2.21 getservbyport_r F
-GLIBC_2.21 getservent F
-GLIBC_2.21 getservent_r F
-GLIBC_2.21 getsgent F
-GLIBC_2.21 getsgent_r F
-GLIBC_2.21 getsgnam F
-GLIBC_2.21 getsgnam_r F
-GLIBC_2.21 getsid F
-GLIBC_2.21 getsockname F
-GLIBC_2.21 getsockopt F
-GLIBC_2.21 getsourcefilter F
-GLIBC_2.21 getspent F
-GLIBC_2.21 getspent_r F
-GLIBC_2.21 getspnam F
-GLIBC_2.21 getspnam_r F
-GLIBC_2.21 getsubopt F
-GLIBC_2.21 gettext F
-GLIBC_2.21 gettimeofday F
-GLIBC_2.21 getttyent F
-GLIBC_2.21 getttynam F
-GLIBC_2.21 getuid F
-GLIBC_2.21 getusershell F
-GLIBC_2.21 getutent F
-GLIBC_2.21 getutent_r F
-GLIBC_2.21 getutid F
-GLIBC_2.21 getutid_r F
-GLIBC_2.21 getutline F
-GLIBC_2.21 getutline_r F
-GLIBC_2.21 getutmp F
-GLIBC_2.21 getutmpx F
-GLIBC_2.21 getutxent F
-GLIBC_2.21 getutxid F
-GLIBC_2.21 getutxline F
-GLIBC_2.21 getw F
-GLIBC_2.21 getwc F
-GLIBC_2.21 getwc_unlocked F
-GLIBC_2.21 getwchar F
-GLIBC_2.21 getwchar_unlocked F
-GLIBC_2.21 getwd F
-GLIBC_2.21 getxattr F
-GLIBC_2.21 glob F
-GLIBC_2.21 glob64 F
-GLIBC_2.21 glob_pattern_p F
-GLIBC_2.21 globfree F
-GLIBC_2.21 globfree64 F
-GLIBC_2.21 gmtime F
-GLIBC_2.21 gmtime_r F
-GLIBC_2.21 gnu_dev_major F
-GLIBC_2.21 gnu_dev_makedev F
-GLIBC_2.21 gnu_dev_minor F
-GLIBC_2.21 gnu_get_libc_release F
-GLIBC_2.21 gnu_get_libc_version F
-GLIBC_2.21 grantpt F
-GLIBC_2.21 group_member F
-GLIBC_2.21 gsignal F
-GLIBC_2.21 gtty F
-GLIBC_2.21 h_errlist D 0x14
-GLIBC_2.21 h_nerr D 0x4
-GLIBC_2.21 hasmntopt F
-GLIBC_2.21 hcreate F
-GLIBC_2.21 hcreate_r F
-GLIBC_2.21 hdestroy F
-GLIBC_2.21 hdestroy_r F
-GLIBC_2.21 herror F
-GLIBC_2.21 host2netname F
-GLIBC_2.21 hsearch F
-GLIBC_2.21 hsearch_r F
-GLIBC_2.21 hstrerror F
-GLIBC_2.21 htonl F
-GLIBC_2.21 htons F
-GLIBC_2.21 iconv F
-GLIBC_2.21 iconv_close F
-GLIBC_2.21 iconv_open F
-GLIBC_2.21 if_freenameindex F
-GLIBC_2.21 if_indextoname F
-GLIBC_2.21 if_nameindex F
-GLIBC_2.21 if_nametoindex F
-GLIBC_2.21 imaxabs F
-GLIBC_2.21 imaxdiv F
-GLIBC_2.21 in6addr_any D 0x10
-GLIBC_2.21 in6addr_loopback D 0x10
-GLIBC_2.21 index F
-GLIBC_2.21 inet6_opt_append F
-GLIBC_2.21 inet6_opt_find F
-GLIBC_2.21 inet6_opt_finish F
-GLIBC_2.21 inet6_opt_get_val F
-GLIBC_2.21 inet6_opt_init F
-GLIBC_2.21 inet6_opt_next F
-GLIBC_2.21 inet6_opt_set_val F
-GLIBC_2.21 inet6_option_alloc F
-GLIBC_2.21 inet6_option_append F
-GLIBC_2.21 inet6_option_find F
-GLIBC_2.21 inet6_option_init F
-GLIBC_2.21 inet6_option_next F
-GLIBC_2.21 inet6_option_space F
-GLIBC_2.21 inet6_rth_add F
-GLIBC_2.21 inet6_rth_getaddr F
-GLIBC_2.21 inet6_rth_init F
-GLIBC_2.21 inet6_rth_reverse F
-GLIBC_2.21 inet6_rth_segments F
-GLIBC_2.21 inet6_rth_space F
-GLIBC_2.21 inet_addr F
-GLIBC_2.21 inet_aton F
-GLIBC_2.21 inet_lnaof F
-GLIBC_2.21 inet_makeaddr F
-GLIBC_2.21 inet_netof F
-GLIBC_2.21 inet_network F
-GLIBC_2.21 inet_nsap_addr F
-GLIBC_2.21 inet_nsap_ntoa F
-GLIBC_2.21 inet_ntoa F
-GLIBC_2.21 inet_ntop F
-GLIBC_2.21 inet_pton F
-GLIBC_2.21 init_module F
-GLIBC_2.21 initgroups F
-GLIBC_2.21 initstate F
-GLIBC_2.21 initstate_r F
-GLIBC_2.21 innetgr F
-GLIBC_2.21 inotify_add_watch F
-GLIBC_2.21 inotify_init F
-GLIBC_2.21 inotify_init1 F
-GLIBC_2.21 inotify_rm_watch F
-GLIBC_2.21 insque F
-GLIBC_2.21 ioctl F
-GLIBC_2.21 iruserok F
-GLIBC_2.21 iruserok_af F
-GLIBC_2.21 isalnum F
-GLIBC_2.21 isalnum_l F
-GLIBC_2.21 isalpha F
-GLIBC_2.21 isalpha_l F
-GLIBC_2.21 isascii F
-GLIBC_2.21 isastream F
-GLIBC_2.21 isatty F
-GLIBC_2.21 isblank F
-GLIBC_2.21 isblank_l F
-GLIBC_2.21 iscntrl F
-GLIBC_2.21 iscntrl_l F
-GLIBC_2.21 isctype F
-GLIBC_2.21 isdigit F
-GLIBC_2.21 isdigit_l F
-GLIBC_2.21 isfdtype F
-GLIBC_2.21 isgraph F
-GLIBC_2.21 isgraph_l F
-GLIBC_2.21 isinf F
-GLIBC_2.21 isinff F
-GLIBC_2.21 isinfl F
-GLIBC_2.21 islower F
-GLIBC_2.21 islower_l F
-GLIBC_2.21 isnan F
-GLIBC_2.21 isnanf F
-GLIBC_2.21 isnanl F
-GLIBC_2.21 isprint F
-GLIBC_2.21 isprint_l F
-GLIBC_2.21 ispunct F
-GLIBC_2.21 ispunct_l F
-GLIBC_2.21 isspace F
-GLIBC_2.21 isspace_l F
-GLIBC_2.21 isupper F
-GLIBC_2.21 isupper_l F
-GLIBC_2.21 iswalnum F
-GLIBC_2.21 iswalnum_l F
-GLIBC_2.21 iswalpha F
-GLIBC_2.21 iswalpha_l F
-GLIBC_2.21 iswblank F
-GLIBC_2.21 iswblank_l F
-GLIBC_2.21 iswcntrl F
-GLIBC_2.21 iswcntrl_l F
-GLIBC_2.21 iswctype F
-GLIBC_2.21 iswctype_l F
-GLIBC_2.21 iswdigit F
-GLIBC_2.21 iswdigit_l F
-GLIBC_2.21 iswgraph F
-GLIBC_2.21 iswgraph_l F
-GLIBC_2.21 iswlower F
-GLIBC_2.21 iswlower_l F
-GLIBC_2.21 iswprint F
-GLIBC_2.21 iswprint_l F
-GLIBC_2.21 iswpunct F
-GLIBC_2.21 iswpunct_l F
-GLIBC_2.21 iswspace F
-GLIBC_2.21 iswspace_l F
-GLIBC_2.21 iswupper F
-GLIBC_2.21 iswupper_l F
-GLIBC_2.21 iswxdigit F
-GLIBC_2.21 iswxdigit_l F
-GLIBC_2.21 isxdigit F
-GLIBC_2.21 isxdigit_l F
-GLIBC_2.21 jrand48 F
-GLIBC_2.21 jrand48_r F
-GLIBC_2.21 key_decryptsession F
-GLIBC_2.21 key_decryptsession_pk F
-GLIBC_2.21 key_encryptsession F
-GLIBC_2.21 key_encryptsession_pk F
-GLIBC_2.21 key_gendes F
-GLIBC_2.21 key_get_conv F
-GLIBC_2.21 key_secretkey_is_set F
-GLIBC_2.21 key_setnet F
-GLIBC_2.21 key_setsecret F
-GLIBC_2.21 kill F
-GLIBC_2.21 killpg F
-GLIBC_2.21 klogctl F
-GLIBC_2.21 l64a F
-GLIBC_2.21 labs F
-GLIBC_2.21 lchmod F
-GLIBC_2.21 lchown F
-GLIBC_2.21 lckpwdf F
-GLIBC_2.21 lcong48 F
-GLIBC_2.21 lcong48_r F
-GLIBC_2.21 ldexp F
-GLIBC_2.21 ldexpf F
-GLIBC_2.21 ldexpl F
-GLIBC_2.21 ldiv F
-GLIBC_2.21 lfind F
-GLIBC_2.21 lgetxattr F
-GLIBC_2.21 link F
-GLIBC_2.21 linkat F
-GLIBC_2.21 lio_listio F
-GLIBC_2.21 lio_listio64 F
-GLIBC_2.21 listen F
-GLIBC_2.21 listxattr F
-GLIBC_2.21 llabs F
-GLIBC_2.21 lldiv F
-GLIBC_2.21 llistxattr F
-GLIBC_2.21 llseek F
-GLIBC_2.21 loc1 D 0x4
-GLIBC_2.21 loc2 D 0x4
-GLIBC_2.21 localeconv F
-GLIBC_2.21 localtime F
-GLIBC_2.21 localtime_r F
-GLIBC_2.21 lockf F
-GLIBC_2.21 lockf64 F
-GLIBC_2.21 locs D 0x4
-GLIBC_2.21 login F
-GLIBC_2.21 login_tty F
-GLIBC_2.21 logout F
-GLIBC_2.21 logwtmp F
-GLIBC_2.21 longjmp F
-GLIBC_2.21 lrand48 F
-GLIBC_2.21 lrand48_r F
-GLIBC_2.21 lremovexattr F
-GLIBC_2.21 lsearch F
-GLIBC_2.21 lseek F
-GLIBC_2.21 lseek64 F
-GLIBC_2.21 lsetxattr F
-GLIBC_2.21 lutimes F
-GLIBC_2.21 madvise F
-GLIBC_2.21 makecontext F
-GLIBC_2.21 mallinfo F
-GLIBC_2.21 malloc F
-GLIBC_2.21 malloc_info F
-GLIBC_2.21 malloc_stats F
-GLIBC_2.21 malloc_trim F
-GLIBC_2.21 malloc_usable_size F
-GLIBC_2.21 mallopt F
-GLIBC_2.21 mallwatch D 0x4
-GLIBC_2.21 mblen F
-GLIBC_2.21 mbrlen F
-GLIBC_2.21 mbrtoc16 F
-GLIBC_2.21 mbrtoc32 F
-GLIBC_2.21 mbrtowc F
-GLIBC_2.21 mbsinit F
-GLIBC_2.21 mbsnrtowcs F
-GLIBC_2.21 mbsrtowcs F
-GLIBC_2.21 mbstowcs F
-GLIBC_2.21 mbtowc F
-GLIBC_2.21 mcheck F
-GLIBC_2.21 mcheck_check_all F
-GLIBC_2.21 mcheck_pedantic F
-GLIBC_2.21 memalign F
-GLIBC_2.21 memccpy F
-GLIBC_2.21 memchr F
-GLIBC_2.21 memcmp F
-GLIBC_2.21 memcpy F
-GLIBC_2.21 memfrob F
-GLIBC_2.21 memmem F
-GLIBC_2.21 memmove F
-GLIBC_2.21 mempcpy F
-GLIBC_2.21 memrchr F
-GLIBC_2.21 memset F
-GLIBC_2.21 mincore F
-GLIBC_2.21 mkdir F
-GLIBC_2.21 mkdirat F
-GLIBC_2.21 mkdtemp F
-GLIBC_2.21 mkfifo F
-GLIBC_2.21 mkfifoat F
-GLIBC_2.21 mkostemp F
-GLIBC_2.21 mkostemp64 F
-GLIBC_2.21 mkostemps F
-GLIBC_2.21 mkostemps64 F
-GLIBC_2.21 mkstemp F
-GLIBC_2.21 mkstemp64 F
-GLIBC_2.21 mkstemps F
-GLIBC_2.21 mkstemps64 F
-GLIBC_2.21 mktemp F
-GLIBC_2.21 mktime F
-GLIBC_2.21 mlock F
-GLIBC_2.21 mlockall F
-GLIBC_2.21 mmap F
-GLIBC_2.21 mmap64 F
-GLIBC_2.21 modf F
-GLIBC_2.21 modff F
-GLIBC_2.21 modfl F
-GLIBC_2.21 moncontrol F
-GLIBC_2.21 monstartup F
-GLIBC_2.21 mount F
-GLIBC_2.21 mprobe F
-GLIBC_2.21 mprotect F
-GLIBC_2.21 mq_close F
-GLIBC_2.21 mq_getattr F
-GLIBC_2.21 mq_notify F
-GLIBC_2.21 mq_open F
-GLIBC_2.21 mq_receive F
-GLIBC_2.21 mq_send F
-GLIBC_2.21 mq_setattr F
-GLIBC_2.21 mq_timedreceive F
-GLIBC_2.21 mq_timedsend F
-GLIBC_2.21 mq_unlink F
-GLIBC_2.21 mrand48 F
-GLIBC_2.21 mrand48_r F
-GLIBC_2.21 mremap F
-GLIBC_2.21 msgctl F
-GLIBC_2.21 msgget F
-GLIBC_2.21 msgrcv F
-GLIBC_2.21 msgsnd F
-GLIBC_2.21 msync F
-GLIBC_2.21 mtrace F
-GLIBC_2.21 munlock F
-GLIBC_2.21 munlockall F
-GLIBC_2.21 munmap F
-GLIBC_2.21 muntrace F
-GLIBC_2.21 name_to_handle_at F
-GLIBC_2.21 nanosleep F
-GLIBC_2.21 netname2host F
-GLIBC_2.21 netname2user F
-GLIBC_2.21 newlocale F
-GLIBC_2.21 nfsservctl F
-GLIBC_2.21 nftw F
-GLIBC_2.21 nftw64 F
-GLIBC_2.21 ngettext F
-GLIBC_2.21 nice F
-GLIBC_2.21 nl_langinfo F
-GLIBC_2.21 nl_langinfo_l F
-GLIBC_2.21 nrand48 F
-GLIBC_2.21 nrand48_r F
-GLIBC_2.21 ns_name_compress F
-GLIBC_2.21 ns_name_ntop F
-GLIBC_2.21 ns_name_pack F
-GLIBC_2.21 ns_name_pton F
-GLIBC_2.21 ns_name_skip F
-GLIBC_2.21 ns_name_uncompress F
-GLIBC_2.21 ns_name_unpack F
-GLIBC_2.21 ntohl F
-GLIBC_2.21 ntohs F
-GLIBC_2.21 ntp_adjtime F
-GLIBC_2.21 ntp_gettime F
-GLIBC_2.21 ntp_gettimex F
-GLIBC_2.21 obstack_alloc_failed_handler D 0x4
-GLIBC_2.21 obstack_exit_failure D 0x4
-GLIBC_2.21 obstack_free F
-GLIBC_2.21 obstack_printf F
-GLIBC_2.21 obstack_vprintf F
-GLIBC_2.21 on_exit F
-GLIBC_2.21 open F
-GLIBC_2.21 open64 F
-GLIBC_2.21 open_by_handle_at F
-GLIBC_2.21 open_memstream F
-GLIBC_2.21 open_wmemstream F
-GLIBC_2.21 openat F
-GLIBC_2.21 openat64 F
-GLIBC_2.21 opendir F
-GLIBC_2.21 openlog F
-GLIBC_2.21 openpty F
-GLIBC_2.21 optarg D 0x4
-GLIBC_2.21 opterr D 0x4
-GLIBC_2.21 optind D 0x4
-GLIBC_2.21 optopt D 0x4
-GLIBC_2.21 parse_printf_format F
-GLIBC_2.21 passwd2des F
-GLIBC_2.21 pathconf F
-GLIBC_2.21 pause F
-GLIBC_2.21 pclose F
-GLIBC_2.21 perror F
-GLIBC_2.21 personality F
-GLIBC_2.21 pipe F
-GLIBC_2.21 pipe2 F
-GLIBC_2.21 pivot_root F
-GLIBC_2.21 pmap_getmaps F
-GLIBC_2.21 pmap_getport F
-GLIBC_2.21 pmap_rmtcall F
-GLIBC_2.21 pmap_set F
-GLIBC_2.21 pmap_unset F
-GLIBC_2.21 poll F
-GLIBC_2.21 popen F
-GLIBC_2.21 posix_fadvise F
-GLIBC_2.21 posix_fadvise64 F
-GLIBC_2.21 posix_fallocate F
-GLIBC_2.21 posix_fallocate64 F
-GLIBC_2.21 posix_madvise F
-GLIBC_2.21 posix_memalign F
-GLIBC_2.21 posix_openpt F
-GLIBC_2.21 posix_spawn F
-GLIBC_2.21 posix_spawn_file_actions_addclose F
-GLIBC_2.21 posix_spawn_file_actions_adddup2 F
-GLIBC_2.21 posix_spawn_file_actions_addopen F
-GLIBC_2.21 posix_spawn_file_actions_destroy F
-GLIBC_2.21 posix_spawn_file_actions_init F
-GLIBC_2.21 posix_spawnattr_destroy F
-GLIBC_2.21 posix_spawnattr_getflags F
-GLIBC_2.21 posix_spawnattr_getpgroup F
-GLIBC_2.21 posix_spawnattr_getschedparam F
-GLIBC_2.21 posix_spawnattr_getschedpolicy F
-GLIBC_2.21 posix_spawnattr_getsigdefault F
-GLIBC_2.21 posix_spawnattr_getsigmask F
-GLIBC_2.21 posix_spawnattr_init F
-GLIBC_2.21 posix_spawnattr_setflags F
-GLIBC_2.21 posix_spawnattr_setpgroup F
-GLIBC_2.21 posix_spawnattr_setschedparam F
-GLIBC_2.21 posix_spawnattr_setschedpolicy F
-GLIBC_2.21 posix_spawnattr_setsigdefault F
-GLIBC_2.21 posix_spawnattr_setsigmask F
-GLIBC_2.21 posix_spawnp F
-GLIBC_2.21 ppoll F
-GLIBC_2.21 prctl F
-GLIBC_2.21 pread F
-GLIBC_2.21 pread64 F
-GLIBC_2.21 preadv F
-GLIBC_2.21 preadv64 F
-GLIBC_2.21 printf F
-GLIBC_2.21 printf_size F
-GLIBC_2.21 printf_size_info F
-GLIBC_2.21 prlimit F
-GLIBC_2.21 prlimit64 F
-GLIBC_2.21 process_vm_readv F
-GLIBC_2.21 process_vm_writev F
-GLIBC_2.21 profil F
-GLIBC_2.21 program_invocation_name D 0x4
-GLIBC_2.21 program_invocation_short_name D 0x4
-GLIBC_2.21 pselect F
-GLIBC_2.21 psiginfo F
-GLIBC_2.21 psignal F
-GLIBC_2.21 pthread_attr_destroy F
-GLIBC_2.21 pthread_attr_getaffinity_np F
-GLIBC_2.21 pthread_attr_getdetachstate F
-GLIBC_2.21 pthread_attr_getguardsize F
-GLIBC_2.21 pthread_attr_getinheritsched F
-GLIBC_2.21 pthread_attr_getschedparam F
-GLIBC_2.21 pthread_attr_getschedpolicy F
-GLIBC_2.21 pthread_attr_getscope F
-GLIBC_2.21 pthread_attr_getstack F
-GLIBC_2.21 pthread_attr_getstackaddr F
-GLIBC_2.21 pthread_attr_getstacksize F
-GLIBC_2.21 pthread_attr_init F
-GLIBC_2.21 pthread_attr_setaffinity_np F
-GLIBC_2.21 pthread_attr_setdetachstate F
-GLIBC_2.21 pthread_attr_setguardsize F
-GLIBC_2.21 pthread_attr_setinheritsched F
-GLIBC_2.21 pthread_attr_setschedparam F
-GLIBC_2.21 pthread_attr_setschedpolicy F
-GLIBC_2.21 pthread_attr_setscope F
-GLIBC_2.21 pthread_attr_setstack F
-GLIBC_2.21 pthread_attr_setstackaddr F
-GLIBC_2.21 pthread_attr_setstacksize F
-GLIBC_2.21 pthread_barrier_destroy F
-GLIBC_2.21 pthread_barrier_init F
-GLIBC_2.21 pthread_barrier_wait F
-GLIBC_2.21 pthread_barrierattr_destroy F
-GLIBC_2.21 pthread_barrierattr_getpshared F
-GLIBC_2.21 pthread_barrierattr_init F
-GLIBC_2.21 pthread_barrierattr_setpshared F
-GLIBC_2.21 pthread_cancel F
-GLIBC_2.21 pthread_cond_broadcast F
-GLIBC_2.21 pthread_cond_destroy F
-GLIBC_2.21 pthread_cond_init F
-GLIBC_2.21 pthread_cond_signal F
-GLIBC_2.21 pthread_cond_timedwait F
-GLIBC_2.21 pthread_cond_wait F
-GLIBC_2.21 pthread_condattr_destroy F
-GLIBC_2.21 pthread_condattr_getclock F
-GLIBC_2.21 pthread_condattr_getpshared F
-GLIBC_2.21 pthread_condattr_init F
-GLIBC_2.21 pthread_condattr_setclock F
-GLIBC_2.21 pthread_condattr_setpshared F
-GLIBC_2.21 pthread_create F
-GLIBC_2.21 pthread_detach F
-GLIBC_2.21 pthread_equal F
-GLIBC_2.21 pthread_exit F
-GLIBC_2.21 pthread_getaffinity_np F
-GLIBC_2.21 pthread_getattr_default_np F
-GLIBC_2.21 pthread_getattr_np F
-GLIBC_2.21 pthread_getconcurrency F
-GLIBC_2.21 pthread_getcpuclockid F
-GLIBC_2.21 pthread_getname_np F
-GLIBC_2.21 pthread_getschedparam F
-GLIBC_2.21 pthread_getspecific F
-GLIBC_2.21 pthread_join F
-GLIBC_2.21 pthread_key_create F
-GLIBC_2.21 pthread_key_delete F
-GLIBC_2.21 pthread_kill F
-GLIBC_2.21 pthread_kill_other_threads_np F
-GLIBC_2.21 pthread_mutex_consistent F
-GLIBC_2.21 pthread_mutex_consistent_np F
-GLIBC_2.21 pthread_mutex_destroy F
-GLIBC_2.21 pthread_mutex_getprioceiling F
-GLIBC_2.21 pthread_mutex_init F
-GLIBC_2.21 pthread_mutex_lock F
-GLIBC_2.21 pthread_mutex_setprioceiling F
-GLIBC_2.21 pthread_mutex_timedlock F
-GLIBC_2.21 pthread_mutex_trylock F
-GLIBC_2.21 pthread_mutex_unlock F
-GLIBC_2.21 pthread_mutexattr_destroy F
-GLIBC_2.21 pthread_mutexattr_getkind_np F
-GLIBC_2.21 pthread_mutexattr_getprioceiling F
-GLIBC_2.21 pthread_mutexattr_getprotocol F
-GLIBC_2.21 pthread_mutexattr_getpshared F
-GLIBC_2.21 pthread_mutexattr_getrobust F
-GLIBC_2.21 pthread_mutexattr_getrobust_np F
-GLIBC_2.21 pthread_mutexattr_gettype F
-GLIBC_2.21 pthread_mutexattr_init F
-GLIBC_2.21 pthread_mutexattr_setkind_np F
-GLIBC_2.21 pthread_mutexattr_setprioceiling F
-GLIBC_2.21 pthread_mutexattr_setprotocol F
-GLIBC_2.21 pthread_mutexattr_setpshared F
-GLIBC_2.21 pthread_mutexattr_setrobust F
-GLIBC_2.21 pthread_mutexattr_setrobust_np F
-GLIBC_2.21 pthread_mutexattr_settype F
-GLIBC_2.21 pthread_once F
-GLIBC_2.21 pthread_rwlock_destroy F
-GLIBC_2.21 pthread_rwlock_init F
-GLIBC_2.21 pthread_rwlock_rdlock F
-GLIBC_2.21 pthread_rwlock_timedrdlock F
-GLIBC_2.21 pthread_rwlock_timedwrlock F
-GLIBC_2.21 pthread_rwlock_tryrdlock F
-GLIBC_2.21 pthread_rwlock_trywrlock F
-GLIBC_2.21 pthread_rwlock_unlock F
-GLIBC_2.21 pthread_rwlock_wrlock F
-GLIBC_2.21 pthread_rwlockattr_destroy F
-GLIBC_2.21 pthread_rwlockattr_getkind_np F
-GLIBC_2.21 pthread_rwlockattr_getpshared F
-GLIBC_2.21 pthread_rwlockattr_init F
-GLIBC_2.21 pthread_rwlockattr_setkind_np F
-GLIBC_2.21 pthread_rwlockattr_setpshared F
-GLIBC_2.21 pthread_self F
-GLIBC_2.21 pthread_setaffinity_np F
-GLIBC_2.21 pthread_setattr_default_np F
-GLIBC_2.21 pthread_setcancelstate F
-GLIBC_2.21 pthread_setcanceltype F
-GLIBC_2.21 pthread_setconcurrency F
-GLIBC_2.21 pthread_setname_np F
-GLIBC_2.21 pthread_setschedparam F
-GLIBC_2.21 pthread_setschedprio F
-GLIBC_2.21 pthread_setspecific F
-GLIBC_2.21 pthread_sigmask F
-GLIBC_2.21 pthread_sigqueue F
-GLIBC_2.21 pthread_spin_destroy F
-GLIBC_2.21 pthread_spin_init F
-GLIBC_2.21 pthread_spin_lock F
-GLIBC_2.21 pthread_spin_trylock F
-GLIBC_2.21 pthread_spin_unlock F
-GLIBC_2.21 pthread_testcancel F
-GLIBC_2.21 pthread_timedjoin_np F
-GLIBC_2.21 pthread_tryjoin_np F
-GLIBC_2.21 pthread_yield F
-GLIBC_2.21 ptrace F
-GLIBC_2.21 ptsname F
-GLIBC_2.21 ptsname_r F
-GLIBC_2.21 putc F
-GLIBC_2.21 putc_unlocked F
-GLIBC_2.21 putchar F
-GLIBC_2.21 putchar_unlocked F
-GLIBC_2.21 putenv F
-GLIBC_2.21 putgrent F
-GLIBC_2.21 putmsg F
-GLIBC_2.21 putpmsg F
-GLIBC_2.21 putpwent F
-GLIBC_2.21 puts F
-GLIBC_2.21 putsgent F
-GLIBC_2.21 putspent F
-GLIBC_2.21 pututline F
-GLIBC_2.21 pututxline F
-GLIBC_2.21 putw F
-GLIBC_2.21 putwc F
-GLIBC_2.21 putwc_unlocked F
-GLIBC_2.21 putwchar F
-GLIBC_2.21 putwchar_unlocked F
-GLIBC_2.21 pvalloc F
-GLIBC_2.21 pwrite F
-GLIBC_2.21 pwrite64 F
-GLIBC_2.21 pwritev F
-GLIBC_2.21 pwritev64 F
-GLIBC_2.21 qecvt F
-GLIBC_2.21 qecvt_r F
-GLIBC_2.21 qfcvt F
-GLIBC_2.21 qfcvt_r F
-GLIBC_2.21 qgcvt F
-GLIBC_2.21 qsort F
-GLIBC_2.21 qsort_r F
-GLIBC_2.21 query_module F
-GLIBC_2.21 quick_exit F
-GLIBC_2.21 quotactl F
-GLIBC_2.21 raise F
-GLIBC_2.21 rand F
-GLIBC_2.21 rand_r F
-GLIBC_2.21 random F
-GLIBC_2.21 random_r F
-GLIBC_2.21 rawmemchr F
-GLIBC_2.21 rcmd F
-GLIBC_2.21 rcmd_af F
-GLIBC_2.21 re_comp F
-GLIBC_2.21 re_compile_fastmap F
-GLIBC_2.21 re_compile_pattern F
-GLIBC_2.21 re_exec F
-GLIBC_2.21 re_match F
-GLIBC_2.21 re_match_2 F
-GLIBC_2.21 re_search F
-GLIBC_2.21 re_search_2 F
-GLIBC_2.21 re_set_registers F
-GLIBC_2.21 re_set_syntax F
-GLIBC_2.21 re_syntax_options D 0x4
-GLIBC_2.21 read F
-GLIBC_2.21 readahead F
-GLIBC_2.21 readdir F
-GLIBC_2.21 readdir64 F
-GLIBC_2.21 readdir64_r F
-GLIBC_2.21 readdir_r F
-GLIBC_2.21 readlink F
-GLIBC_2.21 readlinkat F
-GLIBC_2.21 readv F
-GLIBC_2.21 realloc F
-GLIBC_2.21 realpath F
-GLIBC_2.21 reboot F
-GLIBC_2.21 recv F
-GLIBC_2.21 recvfrom F
-GLIBC_2.21 recvmmsg F
-GLIBC_2.21 recvmsg F
-GLIBC_2.21 regcomp F
-GLIBC_2.21 regerror F
-GLIBC_2.21 regexec F
-GLIBC_2.21 regfree F
-GLIBC_2.21 register_printf_function F
-GLIBC_2.21 register_printf_modifier F
-GLIBC_2.21 register_printf_specifier F
-GLIBC_2.21 register_printf_type F
-GLIBC_2.21 registerrpc F
-GLIBC_2.21 remap_file_pages F
-GLIBC_2.21 remove F
-GLIBC_2.21 removexattr F
-GLIBC_2.21 remque F
-GLIBC_2.21 rename F
-GLIBC_2.21 renameat F
-GLIBC_2.21 revoke F
-GLIBC_2.21 rewind F
-GLIBC_2.21 rewinddir F
-GLIBC_2.21 rexec F
-GLIBC_2.21 rexec_af F
-GLIBC_2.21 rexecoptions D 0x4
-GLIBC_2.21 rindex F
-GLIBC_2.21 rmdir F
-GLIBC_2.21 rpc_createerr D 0x10
-GLIBC_2.21 rpmatch F
-GLIBC_2.21 rresvport F
-GLIBC_2.21 rresvport_af F
-GLIBC_2.21 rtime F
-GLIBC_2.21 ruserok F
-GLIBC_2.21 ruserok_af F
-GLIBC_2.21 ruserpass F
-GLIBC_2.21 sbrk F
-GLIBC_2.21 scalbn F
-GLIBC_2.21 scalbnf F
-GLIBC_2.21 scalbnl F
-GLIBC_2.21 scandir F
-GLIBC_2.21 scandir64 F
-GLIBC_2.21 scandirat F
-GLIBC_2.21 scandirat64 F
-GLIBC_2.21 scanf F
-GLIBC_2.21 sched_get_priority_max F
-GLIBC_2.21 sched_get_priority_min F
-GLIBC_2.21 sched_getaffinity F
-GLIBC_2.21 sched_getcpu F
-GLIBC_2.21 sched_getparam F
-GLIBC_2.21 sched_getscheduler F
-GLIBC_2.21 sched_rr_get_interval F
-GLIBC_2.21 sched_setaffinity F
-GLIBC_2.21 sched_setparam F
-GLIBC_2.21 sched_setscheduler F
-GLIBC_2.21 sched_yield F
-GLIBC_2.21 secure_getenv F
-GLIBC_2.21 seed48 F
-GLIBC_2.21 seed48_r F
-GLIBC_2.21 seekdir F
-GLIBC_2.21 select F
-GLIBC_2.21 sem_close F
-GLIBC_2.21 sem_destroy F
-GLIBC_2.21 sem_getvalue F
-GLIBC_2.21 sem_init F
-GLIBC_2.21 sem_open F
-GLIBC_2.21 sem_post F
-GLIBC_2.21 sem_timedwait F
-GLIBC_2.21 sem_trywait F
-GLIBC_2.21 sem_unlink F
-GLIBC_2.21 sem_wait F
-GLIBC_2.21 semctl F
-GLIBC_2.21 semget F
-GLIBC_2.21 semop F
-GLIBC_2.21 semtimedop F
-GLIBC_2.21 send F
-GLIBC_2.21 sendfile F
-GLIBC_2.21 sendfile64 F
-GLIBC_2.21 sendmmsg F
-GLIBC_2.21 sendmsg F
-GLIBC_2.21 sendto F
-GLIBC_2.21 setaliasent F
-GLIBC_2.21 setbuf F
-GLIBC_2.21 setbuffer F
-GLIBC_2.21 setcontext F
-GLIBC_2.21 setdomainname F
-GLIBC_2.21 setegid F
-GLIBC_2.21 setenv F
-GLIBC_2.21 seteuid F
-GLIBC_2.21 setfsent F
-GLIBC_2.21 setfsgid F
-GLIBC_2.21 setfsuid F
-GLIBC_2.21 setgid F
-GLIBC_2.21 setgrent F
-GLIBC_2.21 setgroups F
-GLIBC_2.21 sethostent F
-GLIBC_2.21 sethostid F
-GLIBC_2.21 sethostname F
-GLIBC_2.21 setipv4sourcefilter F
-GLIBC_2.21 setitimer F
-GLIBC_2.21 setjmp F
-GLIBC_2.21 setlinebuf F
-GLIBC_2.21 setlocale F
-GLIBC_2.21 setlogin F
-GLIBC_2.21 setlogmask F
-GLIBC_2.21 setmntent F
-GLIBC_2.21 setnetent F
-GLIBC_2.21 setnetgrent F
-GLIBC_2.21 setns F
-GLIBC_2.21 setpgid F
-GLIBC_2.21 setpgrp F
-GLIBC_2.21 setpriority F
-GLIBC_2.21 setprotoent F
-GLIBC_2.21 setpwent F
-GLIBC_2.21 setregid F
-GLIBC_2.21 setresgid F
-GLIBC_2.21 setresuid F
-GLIBC_2.21 setreuid F
-GLIBC_2.21 setrlimit F
-GLIBC_2.21 setrlimit64 F
-GLIBC_2.21 setrpcent F
-GLIBC_2.21 setservent F
-GLIBC_2.21 setsgent F
-GLIBC_2.21 setsid F
-GLIBC_2.21 setsockopt F
-GLIBC_2.21 setsourcefilter F
-GLIBC_2.21 setspent F
-GLIBC_2.21 setstate F
-GLIBC_2.21 setstate_r F
-GLIBC_2.21 settimeofday F
-GLIBC_2.21 setttyent F
-GLIBC_2.21 setuid F
-GLIBC_2.21 setusershell F
-GLIBC_2.21 setutent F
-GLIBC_2.21 setutxent F
-GLIBC_2.21 setvbuf F
-GLIBC_2.21 setxattr F
-GLIBC_2.21 sgetsgent F
-GLIBC_2.21 sgetsgent_r F
-GLIBC_2.21 sgetspent F
-GLIBC_2.21 sgetspent_r F
-GLIBC_2.21 shm_open F
-GLIBC_2.21 shm_unlink F
-GLIBC_2.21 shmat F
-GLIBC_2.21 shmctl F
-GLIBC_2.21 shmdt F
-GLIBC_2.21 shmget F
-GLIBC_2.21 shutdown F
-GLIBC_2.21 sigaction F
-GLIBC_2.21 sigaddset F
-GLIBC_2.21 sigaltstack F
-GLIBC_2.21 sigandset F
-GLIBC_2.21 sigblock F
-GLIBC_2.21 sigdelset F
-GLIBC_2.21 sigemptyset F
-GLIBC_2.21 sigfillset F
-GLIBC_2.21 siggetmask F
-GLIBC_2.21 sighold F
-GLIBC_2.21 sigignore F
-GLIBC_2.21 siginterrupt F
-GLIBC_2.21 sigisemptyset F
-GLIBC_2.21 sigismember F
-GLIBC_2.21 siglongjmp F
-GLIBC_2.21 signal F
-GLIBC_2.21 signalfd F
-GLIBC_2.21 sigorset F
-GLIBC_2.21 sigpause F
-GLIBC_2.21 sigpending F
-GLIBC_2.21 sigprocmask F
-GLIBC_2.21 sigqueue F
-GLIBC_2.21 sigrelse F
-GLIBC_2.21 sigreturn F
-GLIBC_2.21 sigset F
-GLIBC_2.21 sigsetmask F
-GLIBC_2.21 sigstack F
-GLIBC_2.21 sigsuspend F
-GLIBC_2.21 sigtimedwait F
-GLIBC_2.21 sigwait F
-GLIBC_2.21 sigwaitinfo F
-GLIBC_2.21 sleep F
-GLIBC_2.21 snprintf F
-GLIBC_2.21 sockatmark F
-GLIBC_2.21 socket F
-GLIBC_2.21 socketpair F
-GLIBC_2.21 splice F
-GLIBC_2.21 sprintf F
-GLIBC_2.21 sprofil F
-GLIBC_2.21 srand F
-GLIBC_2.21 srand48 F
-GLIBC_2.21 srand48_r F
-GLIBC_2.21 srandom F
-GLIBC_2.21 srandom_r F
-GLIBC_2.21 sscanf F
-GLIBC_2.21 ssignal F
-GLIBC_2.21 sstk F
-GLIBC_2.21 statfs F
-GLIBC_2.21 statfs64 F
-GLIBC_2.21 statvfs F
-GLIBC_2.21 statvfs64 F
-GLIBC_2.21 stderr D 0x4
-GLIBC_2.21 stdin D 0x4
-GLIBC_2.21 stdout D 0x4
-GLIBC_2.21 step F
-GLIBC_2.21 stime F
-GLIBC_2.21 stpcpy F
-GLIBC_2.21 stpncpy F
-GLIBC_2.21 strcasecmp F
-GLIBC_2.21 strcasecmp_l F
-GLIBC_2.21 strcasestr F
-GLIBC_2.21 strcat F
-GLIBC_2.21 strchr F
-GLIBC_2.21 strchrnul F
-GLIBC_2.21 strcmp F
-GLIBC_2.21 strcoll F
-GLIBC_2.21 strcoll_l F
-GLIBC_2.21 strcpy F
-GLIBC_2.21 strcspn F
-GLIBC_2.21 strdup F
-GLIBC_2.21 strerror F
-GLIBC_2.21 strerror_l F
-GLIBC_2.21 strerror_r F
-GLIBC_2.21 strfmon F
-GLIBC_2.21 strfmon_l F
-GLIBC_2.21 strfry F
-GLIBC_2.21 strftime F
-GLIBC_2.21 strftime_l F
-GLIBC_2.21 strlen F
-GLIBC_2.21 strncasecmp F
-GLIBC_2.21 strncasecmp_l F
-GLIBC_2.21 strncat F
-GLIBC_2.21 strncmp F
-GLIBC_2.21 strncpy F
-GLIBC_2.21 strndup F
-GLIBC_2.21 strnlen F
-GLIBC_2.21 strpbrk F
-GLIBC_2.21 strptime F
-GLIBC_2.21 strptime_l F
-GLIBC_2.21 strrchr F
-GLIBC_2.21 strsep F
-GLIBC_2.21 strsignal F
-GLIBC_2.21 strspn F
-GLIBC_2.21 strstr F
-GLIBC_2.21 strtod F
-GLIBC_2.21 strtod_l F
-GLIBC_2.21 strtof F
-GLIBC_2.21 strtof_l F
-GLIBC_2.21 strtoimax F
-GLIBC_2.21 strtok F
-GLIBC_2.21 strtok_r F
-GLIBC_2.21 strtol F
-GLIBC_2.21 strtol_l F
-GLIBC_2.21 strtold F
-GLIBC_2.21 strtold_l F
-GLIBC_2.21 strtoll F
-GLIBC_2.21 strtoll_l F
-GLIBC_2.21 strtoq F
-GLIBC_2.21 strtoul F
-GLIBC_2.21 strtoul_l F
-GLIBC_2.21 strtoull F
-GLIBC_2.21 strtoull_l F
-GLIBC_2.21 strtoumax F
-GLIBC_2.21 strtouq F
-GLIBC_2.21 strverscmp F
-GLIBC_2.21 strxfrm F
-GLIBC_2.21 strxfrm_l F
-GLIBC_2.21 stty F
-GLIBC_2.21 svc_exit F
-GLIBC_2.21 svc_fdset D 0x80
-GLIBC_2.21 svc_getreq F
-GLIBC_2.21 svc_getreq_common F
-GLIBC_2.21 svc_getreq_poll F
-GLIBC_2.21 svc_getreqset F
-GLIBC_2.21 svc_max_pollfd D 0x4
-GLIBC_2.21 svc_pollfd D 0x4
-GLIBC_2.21 svc_register F
-GLIBC_2.21 svc_run F
-GLIBC_2.21 svc_sendreply F
-GLIBC_2.21 svc_unregister F
-GLIBC_2.21 svcauthdes_stats D 0xc
-GLIBC_2.21 svcerr_auth F
-GLIBC_2.21 svcerr_decode F
-GLIBC_2.21 svcerr_noproc F
-GLIBC_2.21 svcerr_noprog F
-GLIBC_2.21 svcerr_progvers F
-GLIBC_2.21 svcerr_systemerr F
-GLIBC_2.21 svcerr_weakauth F
-GLIBC_2.21 svcfd_create F
-GLIBC_2.21 svcraw_create F
-GLIBC_2.21 svctcp_create F
-GLIBC_2.21 svcudp_bufcreate F
-GLIBC_2.21 svcudp_create F
-GLIBC_2.21 svcudp_enablecache F
-GLIBC_2.21 svcunix_create F
-GLIBC_2.21 svcunixfd_create F
-GLIBC_2.21 swab F
-GLIBC_2.21 swapcontext F
-GLIBC_2.21 swapoff F
-GLIBC_2.21 swapon F
-GLIBC_2.21 swprintf F
-GLIBC_2.21 swscanf F
-GLIBC_2.21 symlink F
-GLIBC_2.21 symlinkat F
-GLIBC_2.21 sync F
-GLIBC_2.21 sync_file_range F
-GLIBC_2.21 syncfs F
-GLIBC_2.21 sys_errlist D 0x21c
-GLIBC_2.21 sys_nerr D 0x4
-GLIBC_2.21 sys_sigabbrev D 0x104
-GLIBC_2.21 sys_siglist D 0x104
-GLIBC_2.21 syscall F
-GLIBC_2.21 sysconf F
-GLIBC_2.21 sysctl F
-GLIBC_2.21 sysinfo F
-GLIBC_2.21 syslog F
-GLIBC_2.21 system F
-GLIBC_2.21 sysv_signal F
-GLIBC_2.21 tcdrain F
-GLIBC_2.21 tcflow F
-GLIBC_2.21 tcflush F
-GLIBC_2.21 tcgetattr F
-GLIBC_2.21 tcgetpgrp F
-GLIBC_2.21 tcgetsid F
-GLIBC_2.21 tcsendbreak F
-GLIBC_2.21 tcsetattr F
-GLIBC_2.21 tcsetpgrp F
-GLIBC_2.21 tdelete F
-GLIBC_2.21 tdestroy F
-GLIBC_2.21 tee F
-GLIBC_2.21 telldir F
-GLIBC_2.21 tempnam F
-GLIBC_2.21 textdomain F
-GLIBC_2.21 tfind F
-GLIBC_2.21 time F
-GLIBC_2.21 timegm F
-GLIBC_2.21 timelocal F
-GLIBC_2.21 timer_create F
-GLIBC_2.21 timer_delete F
-GLIBC_2.21 timer_getoverrun F
-GLIBC_2.21 timer_gettime F
-GLIBC_2.21 timer_settime F
-GLIBC_2.21 timerfd_create F
-GLIBC_2.21 timerfd_gettime F
-GLIBC_2.21 timerfd_settime F
-GLIBC_2.21 times F
-GLIBC_2.21 timespec_get F
-GLIBC_2.21 timezone D 0x4
-GLIBC_2.21 tmpfile F
-GLIBC_2.21 tmpfile64 F
-GLIBC_2.21 tmpnam F
-GLIBC_2.21 tmpnam_r F
-GLIBC_2.21 toascii F
-GLIBC_2.21 tolower F
-GLIBC_2.21 tolower_l F
-GLIBC_2.21 toupper F
-GLIBC_2.21 toupper_l F
-GLIBC_2.21 towctrans F
-GLIBC_2.21 towctrans_l F
-GLIBC_2.21 towlower F
-GLIBC_2.21 towlower_l F
-GLIBC_2.21 towupper F
-GLIBC_2.21 towupper_l F
-GLIBC_2.21 tr_break F
-GLIBC_2.21 truncate F
-GLIBC_2.21 truncate64 F
-GLIBC_2.21 tsearch F
-GLIBC_2.21 ttyname F
-GLIBC_2.21 ttyname_r F
-GLIBC_2.21 ttyslot F
-GLIBC_2.21 twalk F
-GLIBC_2.21 tzname D 0x8
-GLIBC_2.21 tzset F
-GLIBC_2.21 ualarm F
-GLIBC_2.21 ulckpwdf F
-GLIBC_2.21 ulimit F
-GLIBC_2.21 umask F
-GLIBC_2.21 umount F
-GLIBC_2.21 umount2 F
-GLIBC_2.21 uname F
-GLIBC_2.21 ungetc F
-GLIBC_2.21 ungetwc F
-GLIBC_2.21 unlink F
-GLIBC_2.21 unlinkat F
-GLIBC_2.21 unlockpt F
-GLIBC_2.21 unsetenv F
-GLIBC_2.21 unshare F
-GLIBC_2.21 updwtmp F
-GLIBC_2.21 updwtmpx F
-GLIBC_2.21 uselib F
-GLIBC_2.21 uselocale F
-GLIBC_2.21 user2netname F
-GLIBC_2.21 usleep F
-GLIBC_2.21 ustat F
-GLIBC_2.21 utime F
-GLIBC_2.21 utimensat F
-GLIBC_2.21 utimes F
-GLIBC_2.21 utmpname F
-GLIBC_2.21 utmpxname F
-GLIBC_2.21 valloc F
-GLIBC_2.21 vasprintf F
-GLIBC_2.21 vdprintf F
-GLIBC_2.21 verr F
-GLIBC_2.21 verrx F
-GLIBC_2.21 versionsort F
-GLIBC_2.21 versionsort64 F
-GLIBC_2.21 vfork F
-GLIBC_2.21 vfprintf F
-GLIBC_2.21 vfscanf F
-GLIBC_2.21 vfwprintf F
-GLIBC_2.21 vfwscanf F
-GLIBC_2.21 vhangup F
-GLIBC_2.21 vlimit F
-GLIBC_2.21 vmsplice F
-GLIBC_2.21 vprintf F
-GLIBC_2.21 vscanf F
-GLIBC_2.21 vsnprintf F
-GLIBC_2.21 vsprintf F
-GLIBC_2.21 vsscanf F
-GLIBC_2.21 vswprintf F
-GLIBC_2.21 vswscanf F
-GLIBC_2.21 vsyslog F
-GLIBC_2.21 vtimes F
-GLIBC_2.21 vwarn F
-GLIBC_2.21 vwarnx F
-GLIBC_2.21 vwprintf F
-GLIBC_2.21 vwscanf F
-GLIBC_2.21 wait F
-GLIBC_2.21 wait3 F
-GLIBC_2.21 wait4 F
-GLIBC_2.21 waitid F
-GLIBC_2.21 waitpid F
-GLIBC_2.21 warn F
-GLIBC_2.21 warnx F
-GLIBC_2.21 wcpcpy F
-GLIBC_2.21 wcpncpy F
-GLIBC_2.21 wcrtomb F
-GLIBC_2.21 wcscasecmp F
-GLIBC_2.21 wcscasecmp_l F
-GLIBC_2.21 wcscat F
-GLIBC_2.21 wcschr F
-GLIBC_2.21 wcschrnul F
-GLIBC_2.21 wcscmp F
-GLIBC_2.21 wcscoll F
-GLIBC_2.21 wcscoll_l F
-GLIBC_2.21 wcscpy F
-GLIBC_2.21 wcscspn F
-GLIBC_2.21 wcsdup F
-GLIBC_2.21 wcsftime F
-GLIBC_2.21 wcsftime_l F
-GLIBC_2.21 wcslen F
-GLIBC_2.21 wcsncasecmp F
-GLIBC_2.21 wcsncasecmp_l F
-GLIBC_2.21 wcsncat F
-GLIBC_2.21 wcsncmp F
-GLIBC_2.21 wcsncpy F
-GLIBC_2.21 wcsnlen F
-GLIBC_2.21 wcsnrtombs F
-GLIBC_2.21 wcspbrk F
-GLIBC_2.21 wcsrchr F
-GLIBC_2.21 wcsrtombs F
-GLIBC_2.21 wcsspn F
-GLIBC_2.21 wcsstr F
-GLIBC_2.21 wcstod F
-GLIBC_2.21 wcstod_l F
-GLIBC_2.21 wcstof F
-GLIBC_2.21 wcstof_l F
-GLIBC_2.21 wcstoimax F
-GLIBC_2.21 wcstok F
-GLIBC_2.21 wcstol F
-GLIBC_2.21 wcstol_l F
-GLIBC_2.21 wcstold F
-GLIBC_2.21 wcstold_l F
-GLIBC_2.21 wcstoll F
-GLIBC_2.21 wcstoll_l F
-GLIBC_2.21 wcstombs F
-GLIBC_2.21 wcstoq F
-GLIBC_2.21 wcstoul F
-GLIBC_2.21 wcstoul_l F
-GLIBC_2.21 wcstoull F
-GLIBC_2.21 wcstoull_l F
-GLIBC_2.21 wcstoumax F
-GLIBC_2.21 wcstouq F
-GLIBC_2.21 wcswcs F
-GLIBC_2.21 wcswidth F
-GLIBC_2.21 wcsxfrm F
-GLIBC_2.21 wcsxfrm_l F
-GLIBC_2.21 wctob F
-GLIBC_2.21 wctomb F
-GLIBC_2.21 wctrans F
-GLIBC_2.21 wctrans_l F
-GLIBC_2.21 wctype F
-GLIBC_2.21 wctype_l F
-GLIBC_2.21 wcwidth F
-GLIBC_2.21 wmemchr F
-GLIBC_2.21 wmemcmp F
-GLIBC_2.21 wmemcpy F
-GLIBC_2.21 wmemmove F
-GLIBC_2.21 wmempcpy F
-GLIBC_2.21 wmemset F
-GLIBC_2.21 wordexp F
-GLIBC_2.21 wordfree F
-GLIBC_2.21 wprintf F
-GLIBC_2.21 write F
-GLIBC_2.21 writev F
-GLIBC_2.21 wscanf F
-GLIBC_2.21 xdecrypt F
-GLIBC_2.21 xdr_accepted_reply F
-GLIBC_2.21 xdr_array F
-GLIBC_2.21 xdr_authdes_cred F
-GLIBC_2.21 xdr_authdes_verf F
-GLIBC_2.21 xdr_authunix_parms F
-GLIBC_2.21 xdr_bool F
-GLIBC_2.21 xdr_bytes F
-GLIBC_2.21 xdr_callhdr F
-GLIBC_2.21 xdr_callmsg F
-GLIBC_2.21 xdr_char F
-GLIBC_2.21 xdr_cryptkeyarg F
-GLIBC_2.21 xdr_cryptkeyarg2 F
-GLIBC_2.21 xdr_cryptkeyres F
-GLIBC_2.21 xdr_des_block F
-GLIBC_2.21 xdr_double F
-GLIBC_2.21 xdr_enum F
-GLIBC_2.21 xdr_float F
-GLIBC_2.21 xdr_free F
-GLIBC_2.21 xdr_getcredres F
-GLIBC_2.21 xdr_hyper F
-GLIBC_2.21 xdr_int F
-GLIBC_2.21 xdr_int16_t F
-GLIBC_2.21 xdr_int32_t F
-GLIBC_2.21 xdr_int64_t F
-GLIBC_2.21 xdr_int8_t F
-GLIBC_2.21 xdr_key_netstarg F
-GLIBC_2.21 xdr_key_netstres F
-GLIBC_2.21 xdr_keybuf F
-GLIBC_2.21 xdr_keystatus F
-GLIBC_2.21 xdr_long F
-GLIBC_2.21 xdr_longlong_t F
-GLIBC_2.21 xdr_netnamestr F
-GLIBC_2.21 xdr_netobj F
-GLIBC_2.21 xdr_opaque F
-GLIBC_2.21 xdr_opaque_auth F
-GLIBC_2.21 xdr_pmap F
-GLIBC_2.21 xdr_pmaplist F
-GLIBC_2.21 xdr_pointer F
-GLIBC_2.21 xdr_quad_t F
-GLIBC_2.21 xdr_reference F
-GLIBC_2.21 xdr_rejected_reply F
-GLIBC_2.21 xdr_replymsg F
-GLIBC_2.21 xdr_rmtcall_args F
-GLIBC_2.21 xdr_rmtcallres F
-GLIBC_2.21 xdr_short F
-GLIBC_2.21 xdr_sizeof F
-GLIBC_2.21 xdr_string F
-GLIBC_2.21 xdr_u_char F
-GLIBC_2.21 xdr_u_hyper F
-GLIBC_2.21 xdr_u_int F
-GLIBC_2.21 xdr_u_long F
-GLIBC_2.21 xdr_u_longlong_t F
-GLIBC_2.21 xdr_u_quad_t F
-GLIBC_2.21 xdr_u_short F
-GLIBC_2.21 xdr_uint16_t F
-GLIBC_2.21 xdr_uint32_t F
-GLIBC_2.21 xdr_uint64_t F
-GLIBC_2.21 xdr_uint8_t F
-GLIBC_2.21 xdr_union F
-GLIBC_2.21 xdr_unixcred F
-GLIBC_2.21 xdr_vector F
-GLIBC_2.21 xdr_void F
-GLIBC_2.21 xdr_wrapstring F
-GLIBC_2.21 xdrmem_create F
-GLIBC_2.21 xdrrec_create F
-GLIBC_2.21 xdrrec_endofrecord F
-GLIBC_2.21 xdrrec_eof F
-GLIBC_2.21 xdrrec_skiprecord F
-GLIBC_2.21 xdrstdio_create F
-GLIBC_2.21 xencrypt F
-GLIBC_2.21 xprt_register F
-GLIBC_2.21 xprt_unregister F
-GLIBC_2.22 fmemopen F
-GLIBC_2.23 fts64_children F
-GLIBC_2.23 fts64_close F
-GLIBC_2.23 fts64_open F
-GLIBC_2.23 fts64_read F
-GLIBC_2.23 fts64_set F
-GLIBC_2.24 quick_exit F
-GLIBC_2.25 __explicit_bzero_chk F
-GLIBC_2.25 explicit_bzero F
-GLIBC_2.25 getentropy F
-GLIBC_2.25 getrandom F
-GLIBC_2.25 strfromd F
-GLIBC_2.25 strfromf F
-GLIBC_2.25 strfroml F
-GLIBC_2.26 preadv2 F
-GLIBC_2.26 preadv64v2 F
-GLIBC_2.26 pwritev2 F
-GLIBC_2.26 pwritev64v2 F
-GLIBC_2.26 reallocarray F
-GLIBC_2.27 copy_file_range F
-GLIBC_2.27 glob F
-GLIBC_2.27 glob64 F
-GLIBC_2.27 memfd_create F
-GLIBC_2.27 mlock2 F
-GLIBC_2.27 pkey_alloc F
-GLIBC_2.27 pkey_free F
-GLIBC_2.27 pkey_get F
-GLIBC_2.27 pkey_mprotect F
-GLIBC_2.27 pkey_set F
-GLIBC_2.27 strfromf32 F
-GLIBC_2.27 strfromf32x F
-GLIBC_2.27 strfromf64 F
-GLIBC_2.27 strtof32 F
-GLIBC_2.27 strtof32_l F
-GLIBC_2.27 strtof32x F
-GLIBC_2.27 strtof32x_l F
-GLIBC_2.27 strtof64 F
-GLIBC_2.27 strtof64_l F
-GLIBC_2.27 wcstof32 F
-GLIBC_2.27 wcstof32_l F
-GLIBC_2.27 wcstof32x F
-GLIBC_2.27 wcstof32x_l F
-GLIBC_2.27 wcstof64 F
-GLIBC_2.27 wcstof64_l F
-GLIBC_2.28 call_once F
-GLIBC_2.28 cnd_broadcast F
-GLIBC_2.28 cnd_destroy F
-GLIBC_2.28 cnd_init F
-GLIBC_2.28 cnd_signal F
-GLIBC_2.28 cnd_timedwait F
-GLIBC_2.28 cnd_wait F
-GLIBC_2.28 fcntl F
-GLIBC_2.28 fcntl64 F
-GLIBC_2.28 mtx_destroy F
-GLIBC_2.28 mtx_init F
-GLIBC_2.28 mtx_lock F
-GLIBC_2.28 mtx_timedlock F
-GLIBC_2.28 mtx_trylock F
-GLIBC_2.28 mtx_unlock F
-GLIBC_2.28 renameat2 F
-GLIBC_2.28 statx F
-GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_current F
-GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_equal F
-GLIBC_2.28 thrd_exit F
-GLIBC_2.28 thrd_join F
-GLIBC_2.28 thrd_sleep F
-GLIBC_2.28 thrd_yield F
-GLIBC_2.28 tss_create F
-GLIBC_2.28 tss_delete F
-GLIBC_2.28 tss_get F
-GLIBC_2.28 tss_set F
-GLIBC_2.29 getcpu F
-GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
-GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
-GLIBC_2.30 getdents64 F
-GLIBC_2.30 gettid F
-GLIBC_2.30 pthread_cond_clockwait F
-GLIBC_2.30 pthread_mutex_clocklock F
-GLIBC_2.30 pthread_rwlock_clockrdlock F
-GLIBC_2.30 pthread_rwlock_clockwrlock F
-GLIBC_2.30 sem_clockwait F
-GLIBC_2.30 tgkill F
-GLIBC_2.30 twalk_r F
-GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.32 __libc_single_threaded D 0x1
-GLIBC_2.32 pthread_attr_getsigmask_np F
-GLIBC_2.32 pthread_attr_setaffinity_np F
-GLIBC_2.32 pthread_attr_setsigmask_np F
-GLIBC_2.32 pthread_getaffinity_np F
-GLIBC_2.32 pthread_getattr_np F
-GLIBC_2.32 pthread_sigmask F
-GLIBC_2.32 sigabbrev_np F
-GLIBC_2.32 sigdescr_np F
-GLIBC_2.32 strerrordesc_np F
-GLIBC_2.32 strerrorname_np F
-GLIBC_2.33 fstat F
-GLIBC_2.33 fstat64 F
-GLIBC_2.33 fstatat F
-GLIBC_2.33 fstatat64 F
-GLIBC_2.33 lstat F
-GLIBC_2.33 lstat64 F
-GLIBC_2.33 mallinfo2 F
-GLIBC_2.33 mknod F
-GLIBC_2.33 mknodat F
-GLIBC_2.33 stat F
-GLIBC_2.33 stat64 F
-GLIBC_2.34 _Fork F
-GLIBC_2.34 ___adjtimex64 F
-GLIBC_2.34 __adjtime64 F
-GLIBC_2.34 __aio_suspend_time64 F
-GLIBC_2.34 __clock_adjtime64 F
-GLIBC_2.34 __clock_getres64 F
-GLIBC_2.34 __clock_gettime64 F
-GLIBC_2.34 __clock_nanosleep_time64 F
-GLIBC_2.34 __clock_settime64 F
-GLIBC_2.34 __cnd_timedwait64 F
-GLIBC_2.34 __ctime64 F
-GLIBC_2.34 __ctime64_r F
-GLIBC_2.34 __difftime64 F
-GLIBC_2.34 __fcntl_time64 F
-GLIBC_2.34 __fstat64_time64 F
-GLIBC_2.34 __fstatat64_time64 F
-GLIBC_2.34 __fts64_children_time64 F
-GLIBC_2.34 __fts64_close_time64 F
-GLIBC_2.34 __fts64_open_time64 F
-GLIBC_2.34 __fts64_read_time64 F
-GLIBC_2.34 __fts64_set_time64 F
-GLIBC_2.34 __ftw64_time64 F
-GLIBC_2.34 __futimens64 F
-GLIBC_2.34 __futimes64 F
-GLIBC_2.34 __futimesat64 F
-GLIBC_2.34 __gai_suspend_time64 F
-GLIBC_2.34 __getitimer64 F
-GLIBC_2.34 __getrusage64 F
-GLIBC_2.34 __getsockopt64 F
-GLIBC_2.34 __gettimeofday64 F
-GLIBC_2.34 __glob64_time64 F
-GLIBC_2.34 __globfree64_time64 F
-GLIBC_2.34 __gmtime64 F
-GLIBC_2.34 __gmtime64_r F
-GLIBC_2.34 __ioctl_time64 F
-GLIBC_2.34 __libc_start_main F
-GLIBC_2.34 __localtime64 F
-GLIBC_2.34 __localtime64_r F
-GLIBC_2.34 __lstat64_time64 F
-GLIBC_2.34 __lutimes64 F
-GLIBC_2.34 __mktime64 F
-GLIBC_2.34 __mq_open_2 F
-GLIBC_2.34 __mq_timedreceive_time64 F
-GLIBC_2.34 __mq_timedsend_time64 F
-GLIBC_2.34 __msgctl64 F
-GLIBC_2.34 __mtx_timedlock64 F
-GLIBC_2.34 __nanosleep64 F
-GLIBC_2.34 __nftw64_time64 F
-GLIBC_2.34 __ntp_gettime64 F
-GLIBC_2.34 __ntp_gettimex64 F
-GLIBC_2.34 __ppoll64 F
-GLIBC_2.34 __prctl_time64 F
-GLIBC_2.34 __pselect64 F
-GLIBC_2.34 __pthread_cleanup_routine F
-GLIBC_2.34 __pthread_clockjoin_np64 F
-GLIBC_2.34 __pthread_cond_clockwait64 F
-GLIBC_2.34 __pthread_cond_timedwait64 F
-GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_register_cancel F
-GLIBC_2.34 __pthread_register_cancel_defer F
-GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
-GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
-GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
-GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
-GLIBC_2.34 __pthread_timedjoin_np64 F
-GLIBC_2.34 __pthread_unregister_cancel F
-GLIBC_2.34 __pthread_unregister_cancel_restore F
-GLIBC_2.34 __pthread_unwind_next F
-GLIBC_2.34 __recvmmsg64 F
-GLIBC_2.34 __recvmsg64 F
-GLIBC_2.34 __sched_rr_get_interval64 F
-GLIBC_2.34 __select64 F
-GLIBC_2.34 __sem_clockwait64 F
-GLIBC_2.34 __sem_timedwait64 F
-GLIBC_2.34 __semctl64 F
-GLIBC_2.34 __semtimedop64 F
-GLIBC_2.34 __sendmmsg64 F
-GLIBC_2.34 __sendmsg64 F
-GLIBC_2.34 __setitimer64 F
-GLIBC_2.34 __setsockopt64 F
-GLIBC_2.34 __settimeofday64 F
-GLIBC_2.34 __shmctl64 F
-GLIBC_2.34 __sigtimedwait64 F
-GLIBC_2.34 __stat64_time64 F
-GLIBC_2.34 __thrd_sleep64 F
-GLIBC_2.34 __time64 F
-GLIBC_2.34 __timegm64 F
-GLIBC_2.34 __timer_gettime64 F
-GLIBC_2.34 __timer_settime64 F
-GLIBC_2.34 __timerfd_gettime64 F
-GLIBC_2.34 __timerfd_settime64 F
-GLIBC_2.34 __timespec_get64 F
-GLIBC_2.34 __timespec_getres64 F
-GLIBC_2.34 __utime64 F
-GLIBC_2.34 __utimensat64 F
-GLIBC_2.34 __utimes64 F
-GLIBC_2.34 __wait3_time64 F
-GLIBC_2.34 __wait4_time64 F
-GLIBC_2.34 _pthread_cleanup_pop F
-GLIBC_2.34 _pthread_cleanup_push F
-GLIBC_2.34 aio_cancel F
-GLIBC_2.34 aio_cancel64 F
-GLIBC_2.34 aio_error F
-GLIBC_2.34 aio_error64 F
-GLIBC_2.34 aio_fsync F
-GLIBC_2.34 aio_fsync64 F
-GLIBC_2.34 aio_init F
-GLIBC_2.34 aio_read F
-GLIBC_2.34 aio_read64 F
-GLIBC_2.34 aio_return F
-GLIBC_2.34 aio_return64 F
-GLIBC_2.34 aio_suspend F
-GLIBC_2.34 aio_suspend64 F
-GLIBC_2.34 aio_write F
-GLIBC_2.34 aio_write64 F
-GLIBC_2.34 call_once F
-GLIBC_2.34 close_range F
-GLIBC_2.34 closefrom F
-GLIBC_2.34 cnd_broadcast F
-GLIBC_2.34 cnd_destroy F
-GLIBC_2.34 cnd_init F
-GLIBC_2.34 cnd_signal F
-GLIBC_2.34 cnd_timedwait F
-GLIBC_2.34 cnd_wait F
-GLIBC_2.34 dladdr F
-GLIBC_2.34 dladdr1 F
-GLIBC_2.34 dlclose F
-GLIBC_2.34 dlerror F
-GLIBC_2.34 dlinfo F
-GLIBC_2.34 dlmopen F
-GLIBC_2.34 dlopen F
-GLIBC_2.34 dlsym F
-GLIBC_2.34 dlvsym F
-GLIBC_2.34 dn_comp F
-GLIBC_2.34 dn_expand F
-GLIBC_2.34 dn_skipname F
-GLIBC_2.34 execveat F
-GLIBC_2.34 forkpty F
-GLIBC_2.34 gai_cancel F
-GLIBC_2.34 gai_error F
-GLIBC_2.34 gai_suspend F
-GLIBC_2.34 getaddrinfo_a F
-GLIBC_2.34 lio_listio F
-GLIBC_2.34 lio_listio64 F
-GLIBC_2.34 login F
-GLIBC_2.34 login_tty F
-GLIBC_2.34 logout F
-GLIBC_2.34 logwtmp F
-GLIBC_2.34 mq_close F
-GLIBC_2.34 mq_getattr F
-GLIBC_2.34 mq_notify F
-GLIBC_2.34 mq_open F
-GLIBC_2.34 mq_receive F
-GLIBC_2.34 mq_send F
-GLIBC_2.34 mq_setattr F
-GLIBC_2.34 mq_timedreceive F
-GLIBC_2.34 mq_timedsend F
-GLIBC_2.34 mq_unlink F
-GLIBC_2.34 mtx_destroy F
-GLIBC_2.34 mtx_init F
-GLIBC_2.34 mtx_lock F
-GLIBC_2.34 mtx_timedlock F
-GLIBC_2.34 mtx_trylock F
-GLIBC_2.34 mtx_unlock F
-GLIBC_2.34 ns_name_compress F
-GLIBC_2.34 ns_name_ntop F
-GLIBC_2.34 ns_name_pack F
-GLIBC_2.34 ns_name_pton F
-GLIBC_2.34 ns_name_skip F
-GLIBC_2.34 ns_name_uncompress F
-GLIBC_2.34 ns_name_unpack F
-GLIBC_2.34 openpty F
-GLIBC_2.34 posix_spawn_file_actions_addclosefrom_np F
-GLIBC_2.34 pthread_attr_getaffinity_np F
-GLIBC_2.34 pthread_attr_getguardsize F
-GLIBC_2.34 pthread_attr_getstack F
-GLIBC_2.34 pthread_attr_getstackaddr F
-GLIBC_2.34 pthread_attr_getstacksize F
-GLIBC_2.34 pthread_attr_setguardsize F
-GLIBC_2.34 pthread_attr_setstack F
-GLIBC_2.34 pthread_attr_setstackaddr F
-GLIBC_2.34 pthread_attr_setstacksize F
-GLIBC_2.34 pthread_barrier_destroy F
-GLIBC_2.34 pthread_barrier_init F
-GLIBC_2.34 pthread_barrier_wait F
-GLIBC_2.34 pthread_barrierattr_destroy F
-GLIBC_2.34 pthread_barrierattr_getpshared F
-GLIBC_2.34 pthread_barrierattr_init F
-GLIBC_2.34 pthread_barrierattr_setpshared F
-GLIBC_2.34 pthread_cancel F
-GLIBC_2.34 pthread_clockjoin_np F
-GLIBC_2.34 pthread_cond_clockwait F
-GLIBC_2.34 pthread_condattr_getclock F
-GLIBC_2.34 pthread_condattr_getpshared F
-GLIBC_2.34 pthread_condattr_setclock F
-GLIBC_2.34 pthread_condattr_setpshared F
-GLIBC_2.34 pthread_create F
-GLIBC_2.34 pthread_detach F
-GLIBC_2.34 pthread_getattr_default_np F
-GLIBC_2.34 pthread_getconcurrency F
-GLIBC_2.34 pthread_getcpuclockid F
-GLIBC_2.34 pthread_getname_np F
-GLIBC_2.34 pthread_getspecific F
-GLIBC_2.34 pthread_join F
-GLIBC_2.34 pthread_key_create F
-GLIBC_2.34 pthread_key_delete F
-GLIBC_2.34 pthread_kill F
-GLIBC_2.34 pthread_mutex_clocklock F
-GLIBC_2.34 pthread_mutex_consistent F
-GLIBC_2.34 pthread_mutex_getprioceiling F
-GLIBC_2.34 pthread_mutex_setprioceiling F
-GLIBC_2.34 pthread_mutex_timedlock F
-GLIBC_2.34 pthread_mutex_trylock F
-GLIBC_2.34 pthread_mutexattr_destroy F
-GLIBC_2.34 pthread_mutexattr_getprioceiling F
-GLIBC_2.34 pthread_mutexattr_getprotocol F
-GLIBC_2.34 pthread_mutexattr_getpshared F
-GLIBC_2.34 pthread_mutexattr_getrobust F
-GLIBC_2.34 pthread_mutexattr_gettype F
-GLIBC_2.34 pthread_mutexattr_init F
-GLIBC_2.34 pthread_mutexattr_setprioceiling F
-GLIBC_2.34 pthread_mutexattr_setprotocol F
-GLIBC_2.34 pthread_mutexattr_setpshared F
-GLIBC_2.34 pthread_mutexattr_setrobust F
-GLIBC_2.34 pthread_mutexattr_settype F
-GLIBC_2.34 pthread_once F
-GLIBC_2.34 pthread_rwlock_clockrdlock F
-GLIBC_2.34 pthread_rwlock_clockwrlock F
-GLIBC_2.34 pthread_rwlock_destroy F
-GLIBC_2.34 pthread_rwlock_init F
-GLIBC_2.34 pthread_rwlock_rdlock F
-GLIBC_2.34 pthread_rwlock_timedrdlock F
-GLIBC_2.34 pthread_rwlock_timedwrlock F
-GLIBC_2.34 pthread_rwlock_tryrdlock F
-GLIBC_2.34 pthread_rwlock_trywrlock F
-GLIBC_2.34 pthread_rwlock_unlock F
-GLIBC_2.34 pthread_rwlock_wrlock F
-GLIBC_2.34 pthread_rwlockattr_destroy F
-GLIBC_2.34 pthread_rwlockattr_getkind_np F
-GLIBC_2.34 pthread_rwlockattr_getpshared F
-GLIBC_2.34 pthread_rwlockattr_init F
-GLIBC_2.34 pthread_rwlockattr_setkind_np F
-GLIBC_2.34 pthread_rwlockattr_setpshared F
-GLIBC_2.34 pthread_setaffinity_np F
-GLIBC_2.34 pthread_setattr_default_np F
-GLIBC_2.34 pthread_setconcurrency F
-GLIBC_2.34 pthread_setname_np F
-GLIBC_2.34 pthread_setschedprio F
-GLIBC_2.34 pthread_setspecific F
-GLIBC_2.34 pthread_sigqueue F
-GLIBC_2.34 pthread_spin_destroy F
-GLIBC_2.34 pthread_spin_init F
-GLIBC_2.34 pthread_spin_lock F
-GLIBC_2.34 pthread_spin_trylock F
-GLIBC_2.34 pthread_spin_unlock F
-GLIBC_2.34 pthread_testcancel F
-GLIBC_2.34 pthread_timedjoin_np F
-GLIBC_2.34 pthread_tryjoin_np F
-GLIBC_2.34 res_dnok F
-GLIBC_2.34 res_hnok F
-GLIBC_2.34 res_mailok F
-GLIBC_2.34 res_mkquery F
-GLIBC_2.34 res_nmkquery F
-GLIBC_2.34 res_nquery F
-GLIBC_2.34 res_nquerydomain F
-GLIBC_2.34 res_nsearch F
-GLIBC_2.34 res_nsend F
-GLIBC_2.34 res_ownok F
-GLIBC_2.34 res_query F
-GLIBC_2.34 res_querydomain F
-GLIBC_2.34 res_search F
-GLIBC_2.34 res_send F
-GLIBC_2.34 sem_clockwait F
-GLIBC_2.34 sem_close F
-GLIBC_2.34 sem_destroy F
-GLIBC_2.34 sem_getvalue F
-GLIBC_2.34 sem_init F
-GLIBC_2.34 sem_open F
-GLIBC_2.34 sem_post F
-GLIBC_2.34 sem_timedwait F
-GLIBC_2.34 sem_trywait F
-GLIBC_2.34 sem_unlink F
-GLIBC_2.34 sem_wait F
-GLIBC_2.34 shm_open F
-GLIBC_2.34 shm_unlink F
-GLIBC_2.34 thrd_create F
-GLIBC_2.34 thrd_detach F
-GLIBC_2.34 thrd_exit F
-GLIBC_2.34 thrd_join F
-GLIBC_2.34 timer_create F
-GLIBC_2.34 timer_delete F
-GLIBC_2.34 timer_getoverrun F
-GLIBC_2.34 timer_gettime F
-GLIBC_2.34 timer_settime F
-GLIBC_2.34 timespec_getres F
-GLIBC_2.34 tss_create F
-GLIBC_2.34 tss_delete F
-GLIBC_2.34 tss_get F
-GLIBC_2.34 tss_set F
-GLIBC_2.35 __epoll_pwait2_time64 F
-GLIBC_2.35 __memcmpeq F
-GLIBC_2.35 _dl_find_object F
-GLIBC_2.35 epoll_pwait2 F
-GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
-GLIBC_2.36 arc4random F
-GLIBC_2.36 arc4random_buf F
-GLIBC_2.36 arc4random_uniform F
-GLIBC_2.36 c8rtomb F
-GLIBC_2.36 fsconfig F
-GLIBC_2.36 fsmount F
-GLIBC_2.36 fsopen F
-GLIBC_2.36 fspick F
-GLIBC_2.36 mbrtoc8 F
-GLIBC_2.36 mount_setattr F
-GLIBC_2.36 move_mount F
-GLIBC_2.36 open_tree F
-GLIBC_2.36 pidfd_getfd F
-GLIBC_2.36 pidfd_open F
-GLIBC_2.36 pidfd_send_signal F
-GLIBC_2.36 process_madvise F
-GLIBC_2.36 process_mrelease F
-GLIBC_2.37 __ppoll64_chk F
-GLIBC_2.38 __isoc23_fscanf F
-GLIBC_2.38 __isoc23_fwscanf F
-GLIBC_2.38 __isoc23_scanf F
-GLIBC_2.38 __isoc23_sscanf F
-GLIBC_2.38 __isoc23_strtoimax F
-GLIBC_2.38 __isoc23_strtol F
-GLIBC_2.38 __isoc23_strtol_l F
-GLIBC_2.38 __isoc23_strtoll F
-GLIBC_2.38 __isoc23_strtoll_l F
-GLIBC_2.38 __isoc23_strtoul F
-GLIBC_2.38 __isoc23_strtoul_l F
-GLIBC_2.38 __isoc23_strtoull F
-GLIBC_2.38 __isoc23_strtoull_l F
-GLIBC_2.38 __isoc23_strtoumax F
-GLIBC_2.38 __isoc23_swscanf F
-GLIBC_2.38 __isoc23_vfscanf F
-GLIBC_2.38 __isoc23_vfwscanf F
-GLIBC_2.38 __isoc23_vscanf F
-GLIBC_2.38 __isoc23_vsscanf F
-GLIBC_2.38 __isoc23_vswscanf F
-GLIBC_2.38 __isoc23_vwscanf F
-GLIBC_2.38 __isoc23_wcstoimax F
-GLIBC_2.38 __isoc23_wcstol F
-GLIBC_2.38 __isoc23_wcstol_l F
-GLIBC_2.38 __isoc23_wcstoll F
-GLIBC_2.38 __isoc23_wcstoll_l F
-GLIBC_2.38 __isoc23_wcstoul F
-GLIBC_2.38 __isoc23_wcstoul_l F
-GLIBC_2.38 __isoc23_wcstoull F
-GLIBC_2.38 __isoc23_wcstoull_l F
-GLIBC_2.38 __isoc23_wcstoumax F
-GLIBC_2.38 __isoc23_wscanf F
-GLIBC_2.38 __strlcat_chk F
-GLIBC_2.38 __strlcpy_chk F
-GLIBC_2.38 __wcslcat_chk F
-GLIBC_2.38 __wcslcpy_chk F
-GLIBC_2.38 strlcat F
-GLIBC_2.38 strlcpy F
-GLIBC_2.38 wcslcat F
-GLIBC_2.38 wcslcpy F
-GLIBC_2.39 pidfd_getpid F
-GLIBC_2.39 pidfd_spawn F
-GLIBC_2.39 pidfd_spawnp F
-GLIBC_2.39 posix_spawnattr_getcgroup_np F
-GLIBC_2.39 posix_spawnattr_setcgroup_np F
-GLIBC_2.39 stdc_bit_ceil_uc F
-GLIBC_2.39 stdc_bit_ceil_ui F
-GLIBC_2.39 stdc_bit_ceil_ul F
-GLIBC_2.39 stdc_bit_ceil_ull F
-GLIBC_2.39 stdc_bit_ceil_us F
-GLIBC_2.39 stdc_bit_floor_uc F
-GLIBC_2.39 stdc_bit_floor_ui F
-GLIBC_2.39 stdc_bit_floor_ul F
-GLIBC_2.39 stdc_bit_floor_ull F
-GLIBC_2.39 stdc_bit_floor_us F
-GLIBC_2.39 stdc_bit_width_uc F
-GLIBC_2.39 stdc_bit_width_ui F
-GLIBC_2.39 stdc_bit_width_ul F
-GLIBC_2.39 stdc_bit_width_ull F
-GLIBC_2.39 stdc_bit_width_us F
-GLIBC_2.39 stdc_count_ones_uc F
-GLIBC_2.39 stdc_count_ones_ui F
-GLIBC_2.39 stdc_count_ones_ul F
-GLIBC_2.39 stdc_count_ones_ull F
-GLIBC_2.39 stdc_count_ones_us F
-GLIBC_2.39 stdc_count_zeros_uc F
-GLIBC_2.39 stdc_count_zeros_ui F
-GLIBC_2.39 stdc_count_zeros_ul F
-GLIBC_2.39 stdc_count_zeros_ull F
-GLIBC_2.39 stdc_count_zeros_us F
-GLIBC_2.39 stdc_first_leading_one_uc F
-GLIBC_2.39 stdc_first_leading_one_ui F
-GLIBC_2.39 stdc_first_leading_one_ul F
-GLIBC_2.39 stdc_first_leading_one_ull F
-GLIBC_2.39 stdc_first_leading_one_us F
-GLIBC_2.39 stdc_first_leading_zero_uc F
-GLIBC_2.39 stdc_first_leading_zero_ui F
-GLIBC_2.39 stdc_first_leading_zero_ul F
-GLIBC_2.39 stdc_first_leading_zero_ull F
-GLIBC_2.39 stdc_first_leading_zero_us F
-GLIBC_2.39 stdc_first_trailing_one_uc F
-GLIBC_2.39 stdc_first_trailing_one_ui F
-GLIBC_2.39 stdc_first_trailing_one_ul F
-GLIBC_2.39 stdc_first_trailing_one_ull F
-GLIBC_2.39 stdc_first_trailing_one_us F
-GLIBC_2.39 stdc_first_trailing_zero_uc F
-GLIBC_2.39 stdc_first_trailing_zero_ui F
-GLIBC_2.39 stdc_first_trailing_zero_ul F
-GLIBC_2.39 stdc_first_trailing_zero_ull F
-GLIBC_2.39 stdc_first_trailing_zero_us F
-GLIBC_2.39 stdc_has_single_bit_uc F
-GLIBC_2.39 stdc_has_single_bit_ui F
-GLIBC_2.39 stdc_has_single_bit_ul F
-GLIBC_2.39 stdc_has_single_bit_ull F
-GLIBC_2.39 stdc_has_single_bit_us F
-GLIBC_2.39 stdc_leading_ones_uc F
-GLIBC_2.39 stdc_leading_ones_ui F
-GLIBC_2.39 stdc_leading_ones_ul F
-GLIBC_2.39 stdc_leading_ones_ull F
-GLIBC_2.39 stdc_leading_ones_us F
-GLIBC_2.39 stdc_leading_zeros_uc F
-GLIBC_2.39 stdc_leading_zeros_ui F
-GLIBC_2.39 stdc_leading_zeros_ul F
-GLIBC_2.39 stdc_leading_zeros_ull F
-GLIBC_2.39 stdc_leading_zeros_us F
-GLIBC_2.39 stdc_trailing_ones_uc F
-GLIBC_2.39 stdc_trailing_ones_ui F
-GLIBC_2.39 stdc_trailing_ones_ul F
-GLIBC_2.39 stdc_trailing_ones_ull F
-GLIBC_2.39 stdc_trailing_ones_us F
-GLIBC_2.39 stdc_trailing_zeros_uc F
-GLIBC_2.39 stdc_trailing_zeros_ui F
-GLIBC_2.39 stdc_trailing_zeros_ul F
-GLIBC_2.39 stdc_trailing_zeros_ull F
-GLIBC_2.39 stdc_trailing_zeros_us F
-GLIBC_2.41 sched_getattr F
-GLIBC_2.41 sched_setattr F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist
deleted file mode 100644
index de9a79a..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist
+++ /dev/null
@@ -1,28 +0,0 @@
-GLIBC_2.21 __free_hook D 0x4
-GLIBC_2.21 __malloc_hook D 0x4
-GLIBC_2.21 __memalign_hook D 0x4
-GLIBC_2.21 __realloc_hook D 0x4
-GLIBC_2.21 aligned_alloc F
-GLIBC_2.21 calloc F
-GLIBC_2.21 free F
-GLIBC_2.21 mallinfo F
-GLIBC_2.21 malloc F
-GLIBC_2.21 malloc_get_state F
-GLIBC_2.21 malloc_info F
-GLIBC_2.21 malloc_set_state F
-GLIBC_2.21 malloc_stats F
-GLIBC_2.21 malloc_trim F
-GLIBC_2.21 malloc_usable_size F
-GLIBC_2.21 mallopt F
-GLIBC_2.21 mcheck F
-GLIBC_2.21 mcheck_check_all F
-GLIBC_2.21 mcheck_pedantic F
-GLIBC_2.21 memalign F
-GLIBC_2.21 mprobe F
-GLIBC_2.21 mtrace F
-GLIBC_2.21 muntrace F
-GLIBC_2.21 posix_memalign F
-GLIBC_2.21 pvalloc F
-GLIBC_2.21 realloc F
-GLIBC_2.21 valloc F
-GLIBC_2.33 mallinfo2 F
diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
deleted file mode 100644
index 70efb87..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
+++ /dev/null
@@ -1 +0,0 @@
-GLIBC_2.21 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist
deleted file mode 100644
index c0df77f..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libm.abilist
+++ /dev/null
@@ -1,880 +0,0 @@
-GLIBC_2.21 _LIB_VERSION D 0x4
-GLIBC_2.21 __acos_finite F
-GLIBC_2.21 __acosf_finite F
-GLIBC_2.21 __acosh_finite F
-GLIBC_2.21 __acoshf_finite F
-GLIBC_2.21 __asin_finite F
-GLIBC_2.21 __asinf_finite F
-GLIBC_2.21 __atan2_finite F
-GLIBC_2.21 __atan2f_finite F
-GLIBC_2.21 __atanh_finite F
-GLIBC_2.21 __atanhf_finite F
-GLIBC_2.21 __clog10 F
-GLIBC_2.21 __clog10f F
-GLIBC_2.21 __clog10l F
-GLIBC_2.21 __cosh_finite F
-GLIBC_2.21 __coshf_finite F
-GLIBC_2.21 __exp10_finite F
-GLIBC_2.21 __exp10f_finite F
-GLIBC_2.21 __exp2_finite F
-GLIBC_2.21 __exp2f_finite F
-GLIBC_2.21 __exp_finite F
-GLIBC_2.21 __expf_finite F
-GLIBC_2.21 __finite F
-GLIBC_2.21 __finitef F
-GLIBC_2.21 __finitel F
-GLIBC_2.21 __fmod_finite F
-GLIBC_2.21 __fmodf_finite F
-GLIBC_2.21 __fpclassify F
-GLIBC_2.21 __fpclassifyf F
-GLIBC_2.21 __gamma_r_finite F
-GLIBC_2.21 __gammaf_r_finite F
-GLIBC_2.21 __hypot_finite F
-GLIBC_2.21 __hypotf_finite F
-GLIBC_2.21 __issignaling F
-GLIBC_2.21 __issignalingf F
-GLIBC_2.21 __j0_finite F
-GLIBC_2.21 __j0f_finite F
-GLIBC_2.21 __j1_finite F
-GLIBC_2.21 __j1f_finite F
-GLIBC_2.21 __jn_finite F
-GLIBC_2.21 __jnf_finite F
-GLIBC_2.21 __lgamma_r_finite F
-GLIBC_2.21 __lgammaf_r_finite F
-GLIBC_2.21 __log10_finite F
-GLIBC_2.21 __log10f_finite F
-GLIBC_2.21 __log2_finite F
-GLIBC_2.21 __log2f_finite F
-GLIBC_2.21 __log_finite F
-GLIBC_2.21 __logf_finite F
-GLIBC_2.21 __pow_finite F
-GLIBC_2.21 __powf_finite F
-GLIBC_2.21 __remainder_finite F
-GLIBC_2.21 __remainderf_finite F
-GLIBC_2.21 __scalb_finite F
-GLIBC_2.21 __scalbf_finite F
-GLIBC_2.21 __signbit F
-GLIBC_2.21 __signbitf F
-GLIBC_2.21 __sinh_finite F
-GLIBC_2.21 __sinhf_finite F
-GLIBC_2.21 __sqrt_finite F
-GLIBC_2.21 __sqrtf_finite F
-GLIBC_2.21 __y0_finite F
-GLIBC_2.21 __y0f_finite F
-GLIBC_2.21 __y1_finite F
-GLIBC_2.21 __y1f_finite F
-GLIBC_2.21 __yn_finite F
-GLIBC_2.21 __ynf_finite F
-GLIBC_2.21 acos F
-GLIBC_2.21 acosf F
-GLIBC_2.21 acosh F
-GLIBC_2.21 acoshf F
-GLIBC_2.21 acoshl F
-GLIBC_2.21 acosl F
-GLIBC_2.21 asin F
-GLIBC_2.21 asinf F
-GLIBC_2.21 asinh F
-GLIBC_2.21 asinhf F
-GLIBC_2.21 asinhl F
-GLIBC_2.21 asinl F
-GLIBC_2.21 atan F
-GLIBC_2.21 atan2 F
-GLIBC_2.21 atan2f F
-GLIBC_2.21 atan2l F
-GLIBC_2.21 atanf F
-GLIBC_2.21 atanh F
-GLIBC_2.21 atanhf F
-GLIBC_2.21 atanhl F
-GLIBC_2.21 atanl F
-GLIBC_2.21 cabs F
-GLIBC_2.21 cabsf F
-GLIBC_2.21 cabsl F
-GLIBC_2.21 cacos F
-GLIBC_2.21 cacosf F
-GLIBC_2.21 cacosh F
-GLIBC_2.21 cacoshf F
-GLIBC_2.21 cacoshl F
-GLIBC_2.21 cacosl F
-GLIBC_2.21 carg F
-GLIBC_2.21 cargf F
-GLIBC_2.21 cargl F
-GLIBC_2.21 casin F
-GLIBC_2.21 casinf F
-GLIBC_2.21 casinh F
-GLIBC_2.21 casinhf F
-GLIBC_2.21 casinhl F
-GLIBC_2.21 casinl F
-GLIBC_2.21 catan F
-GLIBC_2.21 catanf F
-GLIBC_2.21 catanh F
-GLIBC_2.21 catanhf F
-GLIBC_2.21 catanhl F
-GLIBC_2.21 catanl F
-GLIBC_2.21 cbrt F
-GLIBC_2.21 cbrtf F
-GLIBC_2.21 cbrtl F
-GLIBC_2.21 ccos F
-GLIBC_2.21 ccosf F
-GLIBC_2.21 ccosh F
-GLIBC_2.21 ccoshf F
-GLIBC_2.21 ccoshl F
-GLIBC_2.21 ccosl F
-GLIBC_2.21 ceil F
-GLIBC_2.21 ceilf F
-GLIBC_2.21 ceill F
-GLIBC_2.21 cexp F
-GLIBC_2.21 cexpf F
-GLIBC_2.21 cexpl F
-GLIBC_2.21 cimag F
-GLIBC_2.21 cimagf F
-GLIBC_2.21 cimagl F
-GLIBC_2.21 clog F
-GLIBC_2.21 clog10 F
-GLIBC_2.21 clog10f F
-GLIBC_2.21 clog10l F
-GLIBC_2.21 clogf F
-GLIBC_2.21 clogl F
-GLIBC_2.21 conj F
-GLIBC_2.21 conjf F
-GLIBC_2.21 conjl F
-GLIBC_2.21 copysign F
-GLIBC_2.21 copysignf F
-GLIBC_2.21 copysignl F
-GLIBC_2.21 cos F
-GLIBC_2.21 cosf F
-GLIBC_2.21 cosh F
-GLIBC_2.21 coshf F
-GLIBC_2.21 coshl F
-GLIBC_2.21 cosl F
-GLIBC_2.21 cpow F
-GLIBC_2.21 cpowf F
-GLIBC_2.21 cpowl F
-GLIBC_2.21 cproj F
-GLIBC_2.21 cprojf F
-GLIBC_2.21 cprojl F
-GLIBC_2.21 creal F
-GLIBC_2.21 crealf F
-GLIBC_2.21 creall F
-GLIBC_2.21 csin F
-GLIBC_2.21 csinf F
-GLIBC_2.21 csinh F
-GLIBC_2.21 csinhf F
-GLIBC_2.21 csinhl F
-GLIBC_2.21 csinl F
-GLIBC_2.21 csqrt F
-GLIBC_2.21 csqrtf F
-GLIBC_2.21 csqrtl F
-GLIBC_2.21 ctan F
-GLIBC_2.21 ctanf F
-GLIBC_2.21 ctanh F
-GLIBC_2.21 ctanhf F
-GLIBC_2.21 ctanhl F
-GLIBC_2.21 ctanl F
-GLIBC_2.21 drem F
-GLIBC_2.21 dremf F
-GLIBC_2.21 dreml F
-GLIBC_2.21 erf F
-GLIBC_2.21 erfc F
-GLIBC_2.21 erfcf F
-GLIBC_2.21 erfcl F
-GLIBC_2.21 erff F
-GLIBC_2.21 erfl F
-GLIBC_2.21 exp F
-GLIBC_2.21 exp10 F
-GLIBC_2.21 exp10f F
-GLIBC_2.21 exp10l F
-GLIBC_2.21 exp2 F
-GLIBC_2.21 exp2f F
-GLIBC_2.21 exp2l F
-GLIBC_2.21 expf F
-GLIBC_2.21 expl F
-GLIBC_2.21 expm1 F
-GLIBC_2.21 expm1f F
-GLIBC_2.21 expm1l F
-GLIBC_2.21 fabs F
-GLIBC_2.21 fabsf F
-GLIBC_2.21 fabsl F
-GLIBC_2.21 fdim F
-GLIBC_2.21 fdimf F
-GLIBC_2.21 fdiml F
-GLIBC_2.21 feclearexcept F
-GLIBC_2.21 fedisableexcept F
-GLIBC_2.21 feenableexcept F
-GLIBC_2.21 fegetenv F
-GLIBC_2.21 fegetexcept F
-GLIBC_2.21 fegetexceptflag F
-GLIBC_2.21 fegetround F
-GLIBC_2.21 feholdexcept F
-GLIBC_2.21 feraiseexcept F
-GLIBC_2.21 fesetenv F
-GLIBC_2.21 fesetexceptflag F
-GLIBC_2.21 fesetround F
-GLIBC_2.21 fetestexcept F
-GLIBC_2.21 feupdateenv F
-GLIBC_2.21 finite F
-GLIBC_2.21 finitef F
-GLIBC_2.21 finitel F
-GLIBC_2.21 floor F
-GLIBC_2.21 floorf F
-GLIBC_2.21 floorl F
-GLIBC_2.21 fma F
-GLIBC_2.21 fmaf F
-GLIBC_2.21 fmal F
-GLIBC_2.21 fmax F
-GLIBC_2.21 fmaxf F
-GLIBC_2.21 fmaxl F
-GLIBC_2.21 fmin F
-GLIBC_2.21 fminf F
-GLIBC_2.21 fminl F
-GLIBC_2.21 fmod F
-GLIBC_2.21 fmodf F
-GLIBC_2.21 fmodl F
-GLIBC_2.21 frexp F
-GLIBC_2.21 frexpf F
-GLIBC_2.21 frexpl F
-GLIBC_2.21 gamma F
-GLIBC_2.21 gammaf F
-GLIBC_2.21 gammal F
-GLIBC_2.21 hypot F
-GLIBC_2.21 hypotf F
-GLIBC_2.21 hypotl F
-GLIBC_2.21 ilogb F
-GLIBC_2.21 ilogbf F
-GLIBC_2.21 ilogbl F
-GLIBC_2.21 j0 F
-GLIBC_2.21 j0f F
-GLIBC_2.21 j0l F
-GLIBC_2.21 j1 F
-GLIBC_2.21 j1f F
-GLIBC_2.21 j1l F
-GLIBC_2.21 jn F
-GLIBC_2.21 jnf F
-GLIBC_2.21 jnl F
-GLIBC_2.21 ldexp F
-GLIBC_2.21 ldexpf F
-GLIBC_2.21 ldexpl F
-GLIBC_2.21 lgamma F
-GLIBC_2.21 lgamma_r F
-GLIBC_2.21 lgammaf F
-GLIBC_2.21 lgammaf_r F
-GLIBC_2.21 lgammal F
-GLIBC_2.21 lgammal_r F
-GLIBC_2.21 llrint F
-GLIBC_2.21 llrintf F
-GLIBC_2.21 llrintl F
-GLIBC_2.21 llround F
-GLIBC_2.21 llroundf F
-GLIBC_2.21 llroundl F
-GLIBC_2.21 log F
-GLIBC_2.21 log10 F
-GLIBC_2.21 log10f F
-GLIBC_2.21 log10l F
-GLIBC_2.21 log1p F
-GLIBC_2.21 log1pf F
-GLIBC_2.21 log1pl F
-GLIBC_2.21 log2 F
-GLIBC_2.21 log2f F
-GLIBC_2.21 log2l F
-GLIBC_2.21 logb F
-GLIBC_2.21 logbf F
-GLIBC_2.21 logbl F
-GLIBC_2.21 logf F
-GLIBC_2.21 logl F
-GLIBC_2.21 lrint F
-GLIBC_2.21 lrintf F
-GLIBC_2.21 lrintl F
-GLIBC_2.21 lround F
-GLIBC_2.21 lroundf F
-GLIBC_2.21 lroundl F
-GLIBC_2.21 matherr F
-GLIBC_2.21 modf F
-GLIBC_2.21 modff F
-GLIBC_2.21 modfl F
-GLIBC_2.21 nan F
-GLIBC_2.21 nanf F
-GLIBC_2.21 nanl F
-GLIBC_2.21 nearbyint F
-GLIBC_2.21 nearbyintf F
-GLIBC_2.21 nearbyintl F
-GLIBC_2.21 nextafter F
-GLIBC_2.21 nextafterf F
-GLIBC_2.21 nextafterl F
-GLIBC_2.21 nexttoward F
-GLIBC_2.21 nexttowardf F
-GLIBC_2.21 nexttowardl F
-GLIBC_2.21 pow F
-GLIBC_2.21 pow10 F
-GLIBC_2.21 pow10f F
-GLIBC_2.21 pow10l F
-GLIBC_2.21 powf F
-GLIBC_2.21 powl F
-GLIBC_2.21 remainder F
-GLIBC_2.21 remainderf F
-GLIBC_2.21 remainderl F
-GLIBC_2.21 remquo F
-GLIBC_2.21 remquof F
-GLIBC_2.21 remquol F
-GLIBC_2.21 rint F
-GLIBC_2.21 rintf F
-GLIBC_2.21 rintl F
-GLIBC_2.21 round F
-GLIBC_2.21 roundf F
-GLIBC_2.21 roundl F
-GLIBC_2.21 scalb F
-GLIBC_2.21 scalbf F
-GLIBC_2.21 scalbl F
-GLIBC_2.21 scalbln F
-GLIBC_2.21 scalblnf F
-GLIBC_2.21 scalblnl F
-GLIBC_2.21 scalbn F
-GLIBC_2.21 scalbnf F
-GLIBC_2.21 scalbnl F
-GLIBC_2.21 signgam D 0x4
-GLIBC_2.21 significand F
-GLIBC_2.21 significandf F
-GLIBC_2.21 significandl F
-GLIBC_2.21 sin F
-GLIBC_2.21 sincos F
-GLIBC_2.21 sincosf F
-GLIBC_2.21 sincosl F
-GLIBC_2.21 sinf F
-GLIBC_2.21 sinh F
-GLIBC_2.21 sinhf F
-GLIBC_2.21 sinhl F
-GLIBC_2.21 sinl F
-GLIBC_2.21 sqrt F
-GLIBC_2.21 sqrtf F
-GLIBC_2.21 sqrtl F
-GLIBC_2.21 tan F
-GLIBC_2.21 tanf F
-GLIBC_2.21 tanh F
-GLIBC_2.21 tanhf F
-GLIBC_2.21 tanhl F
-GLIBC_2.21 tanl F
-GLIBC_2.21 tgamma F
-GLIBC_2.21 tgammaf F
-GLIBC_2.21 tgammal F
-GLIBC_2.21 trunc F
-GLIBC_2.21 truncf F
-GLIBC_2.21 truncl F
-GLIBC_2.21 y0 F
-GLIBC_2.21 y0f F
-GLIBC_2.21 y0l F
-GLIBC_2.21 y1 F
-GLIBC_2.21 y1f F
-GLIBC_2.21 y1l F
-GLIBC_2.21 yn F
-GLIBC_2.21 ynf F
-GLIBC_2.21 ynl F
-GLIBC_2.23 __signgam D 0x4
-GLIBC_2.23 lgamma F
-GLIBC_2.23 lgammaf F
-GLIBC_2.23 lgammal F
-GLIBC_2.24 nextdown F
-GLIBC_2.24 nextdownf F
-GLIBC_2.24 nextdownl F
-GLIBC_2.24 nextup F
-GLIBC_2.24 nextupf F
-GLIBC_2.24 nextupl F
-GLIBC_2.25 __iseqsig F
-GLIBC_2.25 __iseqsigf F
-GLIBC_2.25 canonicalize F
-GLIBC_2.25 canonicalizef F
-GLIBC_2.25 canonicalizel F
-GLIBC_2.25 fegetmode F
-GLIBC_2.25 fesetexcept F
-GLIBC_2.25 fesetmode F
-GLIBC_2.25 fetestexceptflag F
-GLIBC_2.25 fmaxmag F
-GLIBC_2.25 fmaxmagf F
-GLIBC_2.25 fmaxmagl F
-GLIBC_2.25 fminmag F
-GLIBC_2.25 fminmagf F
-GLIBC_2.25 fminmagl F
-GLIBC_2.25 fromfp F
-GLIBC_2.25 fromfpf F
-GLIBC_2.25 fromfpl F
-GLIBC_2.25 fromfpx F
-GLIBC_2.25 fromfpxf F
-GLIBC_2.25 fromfpxl F
-GLIBC_2.25 getpayload F
-GLIBC_2.25 getpayloadf F
-GLIBC_2.25 getpayloadl F
-GLIBC_2.25 llogb F
-GLIBC_2.25 llogbf F
-GLIBC_2.25 llogbl F
-GLIBC_2.25 roundeven F
-GLIBC_2.25 roundevenf F
-GLIBC_2.25 roundevenl F
-GLIBC_2.25 setpayload F
-GLIBC_2.25 setpayloadf F
-GLIBC_2.25 setpayloadl F
-GLIBC_2.25 setpayloadsig F
-GLIBC_2.25 setpayloadsigf F
-GLIBC_2.25 setpayloadsigl F
-GLIBC_2.25 totalorder F
-GLIBC_2.25 totalorderf F
-GLIBC_2.25 totalorderl F
-GLIBC_2.25 totalordermag F
-GLIBC_2.25 totalordermagf F
-GLIBC_2.25 totalordermagl F
-GLIBC_2.25 ufromfp F
-GLIBC_2.25 ufromfpf F
-GLIBC_2.25 ufromfpl F
-GLIBC_2.25 ufromfpx F
-GLIBC_2.25 ufromfpxf F
-GLIBC_2.25 ufromfpxl F
-GLIBC_2.27 acosf32 F
-GLIBC_2.27 acosf32x F
-GLIBC_2.27 acosf64 F
-GLIBC_2.27 acoshf32 F
-GLIBC_2.27 acoshf32x F
-GLIBC_2.27 acoshf64 F
-GLIBC_2.27 asinf32 F
-GLIBC_2.27 asinf32x F
-GLIBC_2.27 asinf64 F
-GLIBC_2.27 asinhf32 F
-GLIBC_2.27 asinhf32x F
-GLIBC_2.27 asinhf64 F
-GLIBC_2.27 atan2f32 F
-GLIBC_2.27 atan2f32x F
-GLIBC_2.27 atan2f64 F
-GLIBC_2.27 atanf32 F
-GLIBC_2.27 atanf32x F
-GLIBC_2.27 atanf64 F
-GLIBC_2.27 atanhf32 F
-GLIBC_2.27 atanhf32x F
-GLIBC_2.27 atanhf64 F
-GLIBC_2.27 cabsf32 F
-GLIBC_2.27 cabsf32x F
-GLIBC_2.27 cabsf64 F
-GLIBC_2.27 cacosf32 F
-GLIBC_2.27 cacosf32x F
-GLIBC_2.27 cacosf64 F
-GLIBC_2.27 cacoshf32 F
-GLIBC_2.27 cacoshf32x F
-GLIBC_2.27 cacoshf64 F
-GLIBC_2.27 canonicalizef32 F
-GLIBC_2.27 canonicalizef32x F
-GLIBC_2.27 canonicalizef64 F
-GLIBC_2.27 cargf32 F
-GLIBC_2.27 cargf32x F
-GLIBC_2.27 cargf64 F
-GLIBC_2.27 casinf32 F
-GLIBC_2.27 casinf32x F
-GLIBC_2.27 casinf64 F
-GLIBC_2.27 casinhf32 F
-GLIBC_2.27 casinhf32x F
-GLIBC_2.27 casinhf64 F
-GLIBC_2.27 catanf32 F
-GLIBC_2.27 catanf32x F
-GLIBC_2.27 catanf64 F
-GLIBC_2.27 catanhf32 F
-GLIBC_2.27 catanhf32x F
-GLIBC_2.27 catanhf64 F
-GLIBC_2.27 cbrtf32 F
-GLIBC_2.27 cbrtf32x F
-GLIBC_2.27 cbrtf64 F
-GLIBC_2.27 ccosf32 F
-GLIBC_2.27 ccosf32x F
-GLIBC_2.27 ccosf64 F
-GLIBC_2.27 ccoshf32 F
-GLIBC_2.27 ccoshf32x F
-GLIBC_2.27 ccoshf64 F
-GLIBC_2.27 ceilf32 F
-GLIBC_2.27 ceilf32x F
-GLIBC_2.27 ceilf64 F
-GLIBC_2.27 cexpf32 F
-GLIBC_2.27 cexpf32x F
-GLIBC_2.27 cexpf64 F
-GLIBC_2.27 cimagf32 F
-GLIBC_2.27 cimagf32x F
-GLIBC_2.27 cimagf64 F
-GLIBC_2.27 clog10f32 F
-GLIBC_2.27 clog10f32x F
-GLIBC_2.27 clog10f64 F
-GLIBC_2.27 clogf32 F
-GLIBC_2.27 clogf32x F
-GLIBC_2.27 clogf64 F
-GLIBC_2.27 conjf32 F
-GLIBC_2.27 conjf32x F
-GLIBC_2.27 conjf64 F
-GLIBC_2.27 copysignf32 F
-GLIBC_2.27 copysignf32x F
-GLIBC_2.27 copysignf64 F
-GLIBC_2.27 cosf32 F
-GLIBC_2.27 cosf32x F
-GLIBC_2.27 cosf64 F
-GLIBC_2.27 coshf32 F
-GLIBC_2.27 coshf32x F
-GLIBC_2.27 coshf64 F
-GLIBC_2.27 cpowf32 F
-GLIBC_2.27 cpowf32x F
-GLIBC_2.27 cpowf64 F
-GLIBC_2.27 cprojf32 F
-GLIBC_2.27 cprojf32x F
-GLIBC_2.27 cprojf64 F
-GLIBC_2.27 crealf32 F
-GLIBC_2.27 crealf32x F
-GLIBC_2.27 crealf64 F
-GLIBC_2.27 csinf32 F
-GLIBC_2.27 csinf32x F
-GLIBC_2.27 csinf64 F
-GLIBC_2.27 csinhf32 F
-GLIBC_2.27 csinhf32x F
-GLIBC_2.27 csinhf64 F
-GLIBC_2.27 csqrtf32 F
-GLIBC_2.27 csqrtf32x F
-GLIBC_2.27 csqrtf64 F
-GLIBC_2.27 ctanf32 F
-GLIBC_2.27 ctanf32x F
-GLIBC_2.27 ctanf64 F
-GLIBC_2.27 ctanhf32 F
-GLIBC_2.27 ctanhf32x F
-GLIBC_2.27 ctanhf64 F
-GLIBC_2.27 erfcf32 F
-GLIBC_2.27 erfcf32x F
-GLIBC_2.27 erfcf64 F
-GLIBC_2.27 erff32 F
-GLIBC_2.27 erff32x F
-GLIBC_2.27 erff64 F
-GLIBC_2.27 exp10f32 F
-GLIBC_2.27 exp10f32x F
-GLIBC_2.27 exp10f64 F
-GLIBC_2.27 exp2f F
-GLIBC_2.27 exp2f32 F
-GLIBC_2.27 exp2f32x F
-GLIBC_2.27 exp2f64 F
-GLIBC_2.27 expf F
-GLIBC_2.27 expf32 F
-GLIBC_2.27 expf32x F
-GLIBC_2.27 expf64 F
-GLIBC_2.27 expm1f32 F
-GLIBC_2.27 expm1f32x F
-GLIBC_2.27 expm1f64 F
-GLIBC_2.27 fabsf32 F
-GLIBC_2.27 fabsf32x F
-GLIBC_2.27 fabsf64 F
-GLIBC_2.27 fdimf32 F
-GLIBC_2.27 fdimf32x F
-GLIBC_2.27 fdimf64 F
-GLIBC_2.27 floorf32 F
-GLIBC_2.27 floorf32x F
-GLIBC_2.27 floorf64 F
-GLIBC_2.27 fmaf32 F
-GLIBC_2.27 fmaf32x F
-GLIBC_2.27 fmaf64 F
-GLIBC_2.27 fmaxf32 F
-GLIBC_2.27 fmaxf32x F
-GLIBC_2.27 fmaxf64 F
-GLIBC_2.27 fmaxmagf32 F
-GLIBC_2.27 fmaxmagf32x F
-GLIBC_2.27 fmaxmagf64 F
-GLIBC_2.27 fminf32 F
-GLIBC_2.27 fminf32x F
-GLIBC_2.27 fminf64 F
-GLIBC_2.27 fminmagf32 F
-GLIBC_2.27 fminmagf32x F
-GLIBC_2.27 fminmagf64 F
-GLIBC_2.27 fmodf32 F
-GLIBC_2.27 fmodf32x F
-GLIBC_2.27 fmodf64 F
-GLIBC_2.27 frexpf32 F
-GLIBC_2.27 frexpf32x F
-GLIBC_2.27 frexpf64 F
-GLIBC_2.27 fromfpf32 F
-GLIBC_2.27 fromfpf32x F
-GLIBC_2.27 fromfpf64 F
-GLIBC_2.27 fromfpxf32 F
-GLIBC_2.27 fromfpxf32x F
-GLIBC_2.27 fromfpxf64 F
-GLIBC_2.27 getpayloadf32 F
-GLIBC_2.27 getpayloadf32x F
-GLIBC_2.27 getpayloadf64 F
-GLIBC_2.27 hypotf32 F
-GLIBC_2.27 hypotf32x F
-GLIBC_2.27 hypotf64 F
-GLIBC_2.27 ilogbf32 F
-GLIBC_2.27 ilogbf32x F
-GLIBC_2.27 ilogbf64 F
-GLIBC_2.27 j0f32 F
-GLIBC_2.27 j0f32x F
-GLIBC_2.27 j0f64 F
-GLIBC_2.27 j1f32 F
-GLIBC_2.27 j1f32x F
-GLIBC_2.27 j1f64 F
-GLIBC_2.27 jnf32 F
-GLIBC_2.27 jnf32x F
-GLIBC_2.27 jnf64 F
-GLIBC_2.27 ldexpf32 F
-GLIBC_2.27 ldexpf32x F
-GLIBC_2.27 ldexpf64 F
-GLIBC_2.27 lgammaf32 F
-GLIBC_2.27 lgammaf32_r F
-GLIBC_2.27 lgammaf32x F
-GLIBC_2.27 lgammaf32x_r F
-GLIBC_2.27 lgammaf64 F
-GLIBC_2.27 lgammaf64_r F
-GLIBC_2.27 llogbf32 F
-GLIBC_2.27 llogbf32x F
-GLIBC_2.27 llogbf64 F
-GLIBC_2.27 llrintf32 F
-GLIBC_2.27 llrintf32x F
-GLIBC_2.27 llrintf64 F
-GLIBC_2.27 llroundf32 F
-GLIBC_2.27 llroundf32x F
-GLIBC_2.27 llroundf64 F
-GLIBC_2.27 log10f32 F
-GLIBC_2.27 log10f32x F
-GLIBC_2.27 log10f64 F
-GLIBC_2.27 log1pf32 F
-GLIBC_2.27 log1pf32x F
-GLIBC_2.27 log1pf64 F
-GLIBC_2.27 log2f F
-GLIBC_2.27 log2f32 F
-GLIBC_2.27 log2f32x F
-GLIBC_2.27 log2f64 F
-GLIBC_2.27 logbf32 F
-GLIBC_2.27 logbf32x F
-GLIBC_2.27 logbf64 F
-GLIBC_2.27 logf F
-GLIBC_2.27 logf32 F
-GLIBC_2.27 logf32x F
-GLIBC_2.27 logf64 F
-GLIBC_2.27 lrintf32 F
-GLIBC_2.27 lrintf32x F
-GLIBC_2.27 lrintf64 F
-GLIBC_2.27 lroundf32 F
-GLIBC_2.27 lroundf32x F
-GLIBC_2.27 lroundf64 F
-GLIBC_2.27 modff32 F
-GLIBC_2.27 modff32x F
-GLIBC_2.27 modff64 F
-GLIBC_2.27 nanf32 F
-GLIBC_2.27 nanf32x F
-GLIBC_2.27 nanf64 F
-GLIBC_2.27 nearbyintf32 F
-GLIBC_2.27 nearbyintf32x F
-GLIBC_2.27 nearbyintf64 F
-GLIBC_2.27 nextafterf32 F
-GLIBC_2.27 nextafterf32x F
-GLIBC_2.27 nextafterf64 F
-GLIBC_2.27 nextdownf32 F
-GLIBC_2.27 nextdownf32x F
-GLIBC_2.27 nextdownf64 F
-GLIBC_2.27 nextupf32 F
-GLIBC_2.27 nextupf32x F
-GLIBC_2.27 nextupf64 F
-GLIBC_2.27 powf F
-GLIBC_2.27 powf32 F
-GLIBC_2.27 powf32x F
-GLIBC_2.27 powf64 F
-GLIBC_2.27 remainderf32 F
-GLIBC_2.27 remainderf32x F
-GLIBC_2.27 remainderf64 F
-GLIBC_2.27 remquof32 F
-GLIBC_2.27 remquof32x F
-GLIBC_2.27 remquof64 F
-GLIBC_2.27 rintf32 F
-GLIBC_2.27 rintf32x F
-GLIBC_2.27 rintf64 F
-GLIBC_2.27 roundevenf32 F
-GLIBC_2.27 roundevenf32x F
-GLIBC_2.27 roundevenf64 F
-GLIBC_2.27 roundf32 F
-GLIBC_2.27 roundf32x F
-GLIBC_2.27 roundf64 F
-GLIBC_2.27 scalblnf32 F
-GLIBC_2.27 scalblnf32x F
-GLIBC_2.27 scalblnf64 F
-GLIBC_2.27 scalbnf32 F
-GLIBC_2.27 scalbnf32x F
-GLIBC_2.27 scalbnf64 F
-GLIBC_2.27 setpayloadf32 F
-GLIBC_2.27 setpayloadf32x F
-GLIBC_2.27 setpayloadf64 F
-GLIBC_2.27 setpayloadsigf32 F
-GLIBC_2.27 setpayloadsigf32x F
-GLIBC_2.27 setpayloadsigf64 F
-GLIBC_2.27 sincosf32 F
-GLIBC_2.27 sincosf32x F
-GLIBC_2.27 sincosf64 F
-GLIBC_2.27 sinf32 F
-GLIBC_2.27 sinf32x F
-GLIBC_2.27 sinf64 F
-GLIBC_2.27 sinhf32 F
-GLIBC_2.27 sinhf32x F
-GLIBC_2.27 sinhf64 F
-GLIBC_2.27 sqrtf32 F
-GLIBC_2.27 sqrtf32x F
-GLIBC_2.27 sqrtf64 F
-GLIBC_2.27 tanf32 F
-GLIBC_2.27 tanf32x F
-GLIBC_2.27 tanf64 F
-GLIBC_2.27 tanhf32 F
-GLIBC_2.27 tanhf32x F
-GLIBC_2.27 tanhf64 F
-GLIBC_2.27 tgammaf32 F
-GLIBC_2.27 tgammaf32x F
-GLIBC_2.27 tgammaf64 F
-GLIBC_2.27 totalorderf32 F
-GLIBC_2.27 totalorderf32x F
-GLIBC_2.27 totalorderf64 F
-GLIBC_2.27 totalordermagf32 F
-GLIBC_2.27 totalordermagf32x F
-GLIBC_2.27 totalordermagf64 F
-GLIBC_2.27 truncf32 F
-GLIBC_2.27 truncf32x F
-GLIBC_2.27 truncf64 F
-GLIBC_2.27 ufromfpf32 F
-GLIBC_2.27 ufromfpf32x F
-GLIBC_2.27 ufromfpf64 F
-GLIBC_2.27 ufromfpxf32 F
-GLIBC_2.27 ufromfpxf32x F
-GLIBC_2.27 ufromfpxf64 F
-GLIBC_2.27 y0f32 F
-GLIBC_2.27 y0f32x F
-GLIBC_2.27 y0f64 F
-GLIBC_2.27 y1f32 F
-GLIBC_2.27 y1f32x F
-GLIBC_2.27 y1f64 F
-GLIBC_2.27 ynf32 F
-GLIBC_2.27 ynf32x F
-GLIBC_2.27 ynf64 F
-GLIBC_2.28 daddl F
-GLIBC_2.28 ddivl F
-GLIBC_2.28 dmull F
-GLIBC_2.28 dsubl F
-GLIBC_2.28 f32addf32x F
-GLIBC_2.28 f32addf64 F
-GLIBC_2.28 f32divf32x F
-GLIBC_2.28 f32divf64 F
-GLIBC_2.28 f32mulf32x F
-GLIBC_2.28 f32mulf64 F
-GLIBC_2.28 f32subf32x F
-GLIBC_2.28 f32subf64 F
-GLIBC_2.28 f32xaddf64 F
-GLIBC_2.28 f32xdivf64 F
-GLIBC_2.28 f32xmulf64 F
-GLIBC_2.28 f32xsubf64 F
-GLIBC_2.28 fadd F
-GLIBC_2.28 faddl F
-GLIBC_2.28 fdiv F
-GLIBC_2.28 fdivl F
-GLIBC_2.28 fmul F
-GLIBC_2.28 fmull F
-GLIBC_2.28 fsub F
-GLIBC_2.28 fsubl F
-GLIBC_2.29 exp F
-GLIBC_2.29 exp2 F
-GLIBC_2.29 log F
-GLIBC_2.29 log2 F
-GLIBC_2.29 pow F
-GLIBC_2.31 totalorder F
-GLIBC_2.31 totalorderf F
-GLIBC_2.31 totalorderf32 F
-GLIBC_2.31 totalorderf32x F
-GLIBC_2.31 totalorderf64 F
-GLIBC_2.31 totalorderl F
-GLIBC_2.31 totalordermag F
-GLIBC_2.31 totalordermagf F
-GLIBC_2.31 totalordermagf32 F
-GLIBC_2.31 totalordermagf32x F
-GLIBC_2.31 totalordermagf64 F
-GLIBC_2.31 totalordermagl F
-GLIBC_2.32 exp10f F
-GLIBC_2.35 dfmal F
-GLIBC_2.35 dsqrtl F
-GLIBC_2.35 f32fmaf32x F
-GLIBC_2.35 f32fmaf64 F
-GLIBC_2.35 f32sqrtf32x F
-GLIBC_2.35 f32sqrtf64 F
-GLIBC_2.35 f32xfmaf64 F
-GLIBC_2.35 f32xsqrtf64 F
-GLIBC_2.35 ffma F
-GLIBC_2.35 ffmal F
-GLIBC_2.35 fmaximum F
-GLIBC_2.35 fmaximum_mag F
-GLIBC_2.35 fmaximum_mag_num F
-GLIBC_2.35 fmaximum_mag_numf F
-GLIBC_2.35 fmaximum_mag_numf32 F
-GLIBC_2.35 fmaximum_mag_numf32x F
-GLIBC_2.35 fmaximum_mag_numf64 F
-GLIBC_2.35 fmaximum_mag_numl F
-GLIBC_2.35 fmaximum_magf F
-GLIBC_2.35 fmaximum_magf32 F
-GLIBC_2.35 fmaximum_magf32x F
-GLIBC_2.35 fmaximum_magf64 F
-GLIBC_2.35 fmaximum_magl F
-GLIBC_2.35 fmaximum_num F
-GLIBC_2.35 fmaximum_numf F
-GLIBC_2.35 fmaximum_numf32 F
-GLIBC_2.35 fmaximum_numf32x F
-GLIBC_2.35 fmaximum_numf64 F
-GLIBC_2.35 fmaximum_numl F
-GLIBC_2.35 fmaximumf F
-GLIBC_2.35 fmaximumf32 F
-GLIBC_2.35 fmaximumf32x F
-GLIBC_2.35 fmaximumf64 F
-GLIBC_2.35 fmaximuml F
-GLIBC_2.35 fminimum F
-GLIBC_2.35 fminimum_mag F
-GLIBC_2.35 fminimum_mag_num F
-GLIBC_2.35 fminimum_mag_numf F
-GLIBC_2.35 fminimum_mag_numf32 F
-GLIBC_2.35 fminimum_mag_numf32x F
-GLIBC_2.35 fminimum_mag_numf64 F
-GLIBC_2.35 fminimum_mag_numl F
-GLIBC_2.35 fminimum_magf F
-GLIBC_2.35 fminimum_magf32 F
-GLIBC_2.35 fminimum_magf32x F
-GLIBC_2.35 fminimum_magf64 F
-GLIBC_2.35 fminimum_magl F
-GLIBC_2.35 fminimum_num F
-GLIBC_2.35 fminimum_numf F
-GLIBC_2.35 fminimum_numf32 F
-GLIBC_2.35 fminimum_numf32x F
-GLIBC_2.35 fminimum_numf64 F
-GLIBC_2.35 fminimum_numl F
-GLIBC_2.35 fminimumf F
-GLIBC_2.35 fminimumf32 F
-GLIBC_2.35 fminimumf32x F
-GLIBC_2.35 fminimumf64 F
-GLIBC_2.35 fminimuml F
-GLIBC_2.35 fsqrt F
-GLIBC_2.35 fsqrtl F
-GLIBC_2.35 hypot F
-GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
-GLIBC_2.39 exp10 F
-GLIBC_2.40 exp10m1 F
-GLIBC_2.40 exp10m1f F
-GLIBC_2.40 exp10m1f32 F
-GLIBC_2.40 exp10m1f32x F
-GLIBC_2.40 exp10m1f64 F
-GLIBC_2.40 exp10m1l F
-GLIBC_2.40 exp2m1 F
-GLIBC_2.40 exp2m1f F
-GLIBC_2.40 exp2m1f32 F
-GLIBC_2.40 exp2m1f32x F
-GLIBC_2.40 exp2m1f64 F
-GLIBC_2.40 exp2m1l F
-GLIBC_2.40 log10p1 F
-GLIBC_2.40 log10p1f F
-GLIBC_2.40 log10p1f32 F
-GLIBC_2.40 log10p1f32x F
-GLIBC_2.40 log10p1f64 F
-GLIBC_2.40 log10p1l F
-GLIBC_2.40 log2p1 F
-GLIBC_2.40 log2p1f F
-GLIBC_2.40 log2p1f32 F
-GLIBC_2.40 log2p1f32x F
-GLIBC_2.40 log2p1f64 F
-GLIBC_2.40 log2p1l F
-GLIBC_2.40 logp1 F
-GLIBC_2.40 logp1f F
-GLIBC_2.40 logp1f32 F
-GLIBC_2.40 logp1f32x F
-GLIBC_2.40 logp1f64 F
-GLIBC_2.40 logp1l F
diff --git a/sysdeps/unix/sysv/linux/nios2/libnsl.abilist b/sysdeps/unix/sysv/linux/nios2/libnsl.abilist
deleted file mode 100644
index 9a3bbb3..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libnsl.abilist
+++ /dev/null
@@ -1,121 +0,0 @@
-GLIBC_2.21 __free_fdresult F
-GLIBC_2.21 __nis_default_access F
-GLIBC_2.21 __nis_default_group F
-GLIBC_2.21 __nis_default_owner F
-GLIBC_2.21 __nis_default_ttl F
-GLIBC_2.21 __nis_finddirectory F
-GLIBC_2.21 __nis_hash F
-GLIBC_2.21 __nisbind_connect F
-GLIBC_2.21 __nisbind_create F
-GLIBC_2.21 __nisbind_destroy F
-GLIBC_2.21 __nisbind_next F
-GLIBC_2.21 __yp_check F
-GLIBC_2.21 nis_add F
-GLIBC_2.21 nis_add_entry F
-GLIBC_2.21 nis_addmember F
-GLIBC_2.21 nis_checkpoint F
-GLIBC_2.21 nis_clone_directory F
-GLIBC_2.21 nis_clone_object F
-GLIBC_2.21 nis_clone_result F
-GLIBC_2.21 nis_creategroup F
-GLIBC_2.21 nis_destroy_object F
-GLIBC_2.21 nis_destroygroup F
-GLIBC_2.21 nis_dir_cmp F
-GLIBC_2.21 nis_domain_of F
-GLIBC_2.21 nis_domain_of_r F
-GLIBC_2.21 nis_first_entry F
-GLIBC_2.21 nis_free_directory F
-GLIBC_2.21 nis_free_object F
-GLIBC_2.21 nis_free_request F
-GLIBC_2.21 nis_freenames F
-GLIBC_2.21 nis_freeresult F
-GLIBC_2.21 nis_freeservlist F
-GLIBC_2.21 nis_freetags F
-GLIBC_2.21 nis_getnames F
-GLIBC_2.21 nis_getservlist F
-GLIBC_2.21 nis_ismember F
-GLIBC_2.21 nis_leaf_of F
-GLIBC_2.21 nis_leaf_of_r F
-GLIBC_2.21 nis_lerror F
-GLIBC_2.21 nis_list F
-GLIBC_2.21 nis_local_directory F
-GLIBC_2.21 nis_local_group F
-GLIBC_2.21 nis_local_host F
-GLIBC_2.21 nis_local_principal F
-GLIBC_2.21 nis_lookup F
-GLIBC_2.21 nis_mkdir F
-GLIBC_2.21 nis_modify F
-GLIBC_2.21 nis_modify_entry F
-GLIBC_2.21 nis_name_of F
-GLIBC_2.21 nis_name_of_r F
-GLIBC_2.21 nis_next_entry F
-GLIBC_2.21 nis_perror F
-GLIBC_2.21 nis_ping F
-GLIBC_2.21 nis_print_directory F
-GLIBC_2.21 nis_print_entry F
-GLIBC_2.21 nis_print_group F
-GLIBC_2.21 nis_print_group_entry F
-GLIBC_2.21 nis_print_link F
-GLIBC_2.21 nis_print_object F
-GLIBC_2.21 nis_print_result F
-GLIBC_2.21 nis_print_rights F
-GLIBC_2.21 nis_print_table F
-GLIBC_2.21 nis_read_obj F
-GLIBC_2.21 nis_remove F
-GLIBC_2.21 nis_remove_entry F
-GLIBC_2.21 nis_removemember F
-GLIBC_2.21 nis_rmdir F
-GLIBC_2.21 nis_servstate F
-GLIBC_2.21 nis_sperrno F
-GLIBC_2.21 nis_sperror F
-GLIBC_2.21 nis_sperror_r F
-GLIBC_2.21 nis_stats F
-GLIBC_2.21 nis_verifygroup F
-GLIBC_2.21 nis_write_obj F
-GLIBC_2.21 readColdStartFile F
-GLIBC_2.21 writeColdStartFile F
-GLIBC_2.21 xdr_cback_data F
-GLIBC_2.21 xdr_domainname F
-GLIBC_2.21 xdr_keydat F
-GLIBC_2.21 xdr_mapname F
-GLIBC_2.21 xdr_obj_p F
-GLIBC_2.21 xdr_peername F
-GLIBC_2.21 xdr_valdat F
-GLIBC_2.21 xdr_yp_buf F
-GLIBC_2.21 xdr_ypall F
-GLIBC_2.21 xdr_ypbind_binding F
-GLIBC_2.21 xdr_ypbind_resp F
-GLIBC_2.21 xdr_ypbind_resptype F
-GLIBC_2.21 xdr_ypbind_setdom F
-GLIBC_2.21 xdr_ypdelete_args F
-GLIBC_2.21 xdr_ypmap_parms F
-GLIBC_2.21 xdr_ypmaplist F
-GLIBC_2.21 xdr_yppush_status F
-GLIBC_2.21 xdr_yppushresp_xfr F
-GLIBC_2.21 xdr_ypreq_key F
-GLIBC_2.21 xdr_ypreq_nokey F
-GLIBC_2.21 xdr_ypreq_xfr F
-GLIBC_2.21 xdr_ypresp_all F
-GLIBC_2.21 xdr_ypresp_key_val F
-GLIBC_2.21 xdr_ypresp_maplist F
-GLIBC_2.21 xdr_ypresp_master F
-GLIBC_2.21 xdr_ypresp_order F
-GLIBC_2.21 xdr_ypresp_val F
-GLIBC_2.21 xdr_ypresp_xfr F
-GLIBC_2.21 xdr_ypstat F
-GLIBC_2.21 xdr_ypupdate_args F
-GLIBC_2.21 xdr_ypxfrstat F
-GLIBC_2.21 yp_all F
-GLIBC_2.21 yp_bind F
-GLIBC_2.21 yp_first F
-GLIBC_2.21 yp_get_default_domain F
-GLIBC_2.21 yp_maplist F
-GLIBC_2.21 yp_master F
-GLIBC_2.21 yp_match F
-GLIBC_2.21 yp_next F
-GLIBC_2.21 yp_order F
-GLIBC_2.21 yp_unbind F
-GLIBC_2.21 yp_update F
-GLIBC_2.21 ypbinderr_string F
-GLIBC_2.21 yperr_string F
-GLIBC_2.21 ypprot_err F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
deleted file mode 100644
index 714dfd9..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ /dev/null
@@ -1,4 +0,0 @@
-GLIBC_2.21 __libpthread_version_placeholder F
-GLIBC_2.28 __libpthread_version_placeholder F
-GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
deleted file mode 100644
index e1d6065..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ /dev/null
@@ -1,67 +0,0 @@
-GLIBC_2.21 __b64_ntop F
-GLIBC_2.21 __b64_pton F
-GLIBC_2.21 __dn_count_labels F
-GLIBC_2.21 __fp_nquery F
-GLIBC_2.21 __fp_query F
-GLIBC_2.21 __fp_resstat F
-GLIBC_2.21 __hostalias F
-GLIBC_2.21 __loc_aton F
-GLIBC_2.21 __loc_ntoa F
-GLIBC_2.21 __p_cdname F
-GLIBC_2.21 __p_cdnname F
-GLIBC_2.21 __p_class F
-GLIBC_2.21 __p_class_syms D 0x54
-GLIBC_2.21 __p_fqname F
-GLIBC_2.21 __p_fqnname F
-GLIBC_2.21 __p_option F
-GLIBC_2.21 __p_query F
-GLIBC_2.21 __p_rcode F
-GLIBC_2.21 __p_secstodate F
-GLIBC_2.21 __p_time F
-GLIBC_2.21 __p_type F
-GLIBC_2.21 __p_type_syms D 0x228
-GLIBC_2.21 __putlong F
-GLIBC_2.21 __putshort F
-GLIBC_2.21 __res_close F
-GLIBC_2.21 __res_hostalias F
-GLIBC_2.21 __res_isourserver F
-GLIBC_2.21 __res_nameinquery F
-GLIBC_2.21 __res_queriesmatch F
-GLIBC_2.21 __sym_ntop F
-GLIBC_2.21 __sym_ntos F
-GLIBC_2.21 __sym_ston F
-GLIBC_2.21 _gethtbyaddr F
-GLIBC_2.21 _gethtbyname F
-GLIBC_2.21 _gethtbyname2 F
-GLIBC_2.21 _gethtent F
-GLIBC_2.21 _getlong F
-GLIBC_2.21 _getshort F
-GLIBC_2.21 _res_opcodes D 0x40
-GLIBC_2.21 _sethtent F
-GLIBC_2.21 inet_net_ntop F
-GLIBC_2.21 inet_net_pton F
-GLIBC_2.21 inet_neta F
-GLIBC_2.21 ns_datetosecs F
-GLIBC_2.21 ns_format_ttl F
-GLIBC_2.21 ns_get16 F
-GLIBC_2.21 ns_get32 F
-GLIBC_2.21 ns_initparse F
-GLIBC_2.21 ns_makecanon F
-GLIBC_2.21 ns_msg_getflag F
-GLIBC_2.21 ns_name_ntol F
-GLIBC_2.21 ns_name_rollback F
-GLIBC_2.21 ns_parse_ttl F
-GLIBC_2.21 ns_parserr F
-GLIBC_2.21 ns_put16 F
-GLIBC_2.21 ns_put32 F
-GLIBC_2.21 ns_samedomain F
-GLIBC_2.21 ns_samename F
-GLIBC_2.21 ns_skiprr F
-GLIBC_2.21 ns_sprintrr F
-GLIBC_2.21 ns_sprintrrf F
-GLIBC_2.21 ns_subdomain F
-GLIBC_2.21 res_gethostbyaddr F
-GLIBC_2.21 res_gethostbyname F
-GLIBC_2.21 res_gethostbyname2 F
-GLIBC_2.21 res_send_setqhook F
-GLIBC_2.21 res_send_setrhook F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
deleted file mode 100644
index 834a4dc..0000000
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ /dev/null
@@ -1 +0,0 @@
-GLIBC_2.21 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist b/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist
deleted file mode 100644
index cb9e543..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist
+++ /dev/null
@@ -1,40 +0,0 @@
-GLIBC_2.21 td_init F
-GLIBC_2.21 td_log F
-GLIBC_2.21 td_symbol_list F
-GLIBC_2.21 td_ta_clear_event F
-GLIBC_2.21 td_ta_delete F
-GLIBC_2.21 td_ta_enable_stats F
-GLIBC_2.21 td_ta_event_addr F
-GLIBC_2.21 td_ta_event_getmsg F
-GLIBC_2.21 td_ta_get_nthreads F
-GLIBC_2.21 td_ta_get_ph F
-GLIBC_2.21 td_ta_get_stats F
-GLIBC_2.21 td_ta_map_id2thr F
-GLIBC_2.21 td_ta_map_lwp2thr F
-GLIBC_2.21 td_ta_new F
-GLIBC_2.21 td_ta_reset_stats F
-GLIBC_2.21 td_ta_set_event F
-GLIBC_2.21 td_ta_setconcurrency F
-GLIBC_2.21 td_ta_thr_iter F
-GLIBC_2.21 td_ta_tsd_iter F
-GLIBC_2.21 td_thr_clear_event F
-GLIBC_2.21 td_thr_dbresume F
-GLIBC_2.21 td_thr_dbsuspend F
-GLIBC_2.21 td_thr_event_enable F
-GLIBC_2.21 td_thr_event_getmsg F
-GLIBC_2.21 td_thr_get_info F
-GLIBC_2.21 td_thr_getfpregs F
-GLIBC_2.21 td_thr_getgregs F
-GLIBC_2.21 td_thr_getxregs F
-GLIBC_2.21 td_thr_getxregsize F
-GLIBC_2.21 td_thr_set_event F
-GLIBC_2.21 td_thr_setfpregs F
-GLIBC_2.21 td_thr_setgregs F
-GLIBC_2.21 td_thr_setprio F
-GLIBC_2.21 td_thr_setsigpending F
-GLIBC_2.21 td_thr_setxregs F
-GLIBC_2.21 td_thr_sigsetmask F
-GLIBC_2.21 td_thr_tls_get_addr F
-GLIBC_2.21 td_thr_tlsbase F
-GLIBC_2.21 td_thr_tsd F
-GLIBC_2.21 td_thr_validate F
diff --git a/sysdeps/unix/sysv/linux/nios2/libutil.abilist b/sysdeps/unix/sysv/linux/nios2/libutil.abilist
deleted file mode 100644
index 742ebe6..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libutil.abilist
+++ /dev/null
@@ -1 +0,0 @@
-GLIBC_2.21 __libutil_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/localplt.data b/sysdeps/unix/sysv/linux/nios2/localplt.data
deleted file mode 100644
index f502a3f..0000000
--- a/sysdeps/unix/sysv/linux/nios2/localplt.data
+++ /dev/null
@@ -1,30 +0,0 @@
-libc.so: realloc
-libc.so: __floatsisf
-libc.so: __gtdf2 ?
-libc.so: __ltdf2
-libc.so: __gedf2
-libc.so: malloc
-libc.so: __gtsf2 ?
-libc.so: __nesf2
-libc.so: __mulsf3
-libc.so: __floatunsisf
-libc.so: __addsf3
-libc.so: __fixsfsi
-libc.so: __subsf3
-libc.so: __unorddf2 ?
-libc.so: calloc
-libc.so: __muldf3
-libc.so: __unordsf2 ?
-libc.so: free
-libc.so: __subdf3
-libc.so: __ledf2
-libc.so: __adddf3
-libc.so: __divdf3
-libc.so: __floatsidf
-libc.so: __divsf3
-libc.so: __nedf2
-libc.so: __eqdf2
-libc.so: __extendsfdf2
-libc.so: __floatundidf ?
-libc.so: __floatunsidf ?
-libm.so: matherr
diff --git a/sysdeps/unix/sysv/linux/nios2/makecontext.c b/sysdeps/unix/sysv/linux/nios2/makecontext.c
deleted file mode 100644
index d6e430c..0000000
--- a/sysdeps/unix/sysv/linux/nios2/makecontext.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Create new context.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <stdarg.h>
-#include <stdint.h>
-#include <ucontext.h>
-
-/* makecontext sets up a stack and the registers for the
- user context. The stack looks like this:
-
- +-----------------------+
- | padding as required |
- +-----------------------+
- sp -> | parameters 5 to n |
- +-----------------------+
-
- The registers are set up like this:
- r4--r7 : parameter 1 to 4
- r16 : uc_link
- sp : stack pointer.
-*/
-
-void
-__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
-{
- extern void __startcontext (void);
- unsigned long *sp;
- va_list ap;
- int i;
-
- sp = (unsigned long *)
- ((uintptr_t) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
-
- /* Allocate stack arguments. */
- sp -= argc < 4 ? 0 : argc - 4;
-
- /* Keep the stack aligned. */
- sp = (unsigned long*) (((uintptr_t) sp) & -4L);
-
- /* Init version field. */
- ucp->uc_mcontext.version = 2;
- /* Keep uc_link in r16. */
- ucp->uc_mcontext.regs[15] = (uintptr_t) ucp->uc_link;
- /* Return address points to __startcontext(). */
- ucp->uc_mcontext.regs[23] = (uintptr_t) &__startcontext;
- /* Frame pointer is null. */
- ucp->uc_mcontext.regs[24] = (uintptr_t) 0;
- /* Restart in user-space starting at 'func'. */
- ucp->uc_mcontext.regs[27] = (uintptr_t) func;
- /* Set stack pointer. */
- ucp->uc_mcontext.regs[28] = (uintptr_t) sp;
-
- va_start (ap, argc);
- for (i = 0; i < argc; ++i)
- if (i < 4)
- ucp->uc_mcontext.regs[i + 3] = va_arg (ap, unsigned long);
- else
- sp[i - 4] = va_arg (ap, unsigned long);
-
- va_end (ap);
-}
-
-weak_alias (__makecontext, makecontext)
diff --git a/sysdeps/unix/sysv/linux/nios2/pointer_guard.h b/sysdeps/unix/sysv/linux/nios2/pointer_guard.h
deleted file mode 100644
index 487fa22..0000000
--- a/sysdeps/unix/sysv/linux/nios2/pointer_guard.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Pointer obfuscation implenentation. Nios II version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef POINTER_GUARD_H
-#define POINTER_GUARD_H
-
-#if IS_IN (rtld)
-/* We cannot use the thread descriptor because in ld.so we use setjmp
- earlier than the descriptor is initialized. */
-# include <sysdeps/generic/pointer_guard.h>
-#else
-# ifdef __ASSEMBLER__
-# define PTR_MANGLE_GUARD(guard) ldw guard, POINTER_GUARD(r23)
-# define PTR_MANGLE(dst, src, guard) xor dst, src, guard
-# define PTR_DEMANGLE(dst, src, guard) PTR_MANGLE (dst, src, guard)
-# else
-# include <stdint.h>
-# include <tls.h>
-# define PTR_MANGLE(var) \
- (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
-# define PTR_DEMANGLE(var) PTR_MANGLE (var)
-# endif
-#endif
-
-#endif /* POINTER_GUARD_H */
diff --git a/sysdeps/unix/sysv/linux/nios2/send.c b/sysdeps/unix/sysv/linux/nios2/send.c
deleted file mode 100644
index c1621c8..0000000
--- a/sysdeps/unix/sysv/linux/nios2/send.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <shlib-compat.h>
-
-#include <sysdeps/unix/sysv/linux/send.c>
-
-#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_21, GLIBC_2_34)
-/* libpthread compat symbol: Nios2 used the generic version without the
- libc_hidden_def which lead in a non existent __send symbol in libc.so. */
-compat_symbol (libc, __libc_send, __send, GLIBC_2_21);
-#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/setcontext.S b/sysdeps/unix/sysv/linux/nios2/setcontext.S
deleted file mode 100644
index 2345de7..0000000
--- a/sysdeps/unix/sysv/linux/nios2/setcontext.S
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Set current context.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include "ucontext_i.h"
-
-/* int setcontext (const ucontext_t *ucp) */
- .text
-ENTRY(__setcontext)
- ldw r5, UCONTEXT_FLAGS(r4)
- movi r6, 1
- bne r5, r6, .Lsigreturn
-
- mov r10, r4
-
- /* Restore signal mask. */
- /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
- movi r7, _NSIG8
- addi r5, r4, UCONTEXT_SIGMASK
- mov r6, zero
- movi r4, SIG_SETMASK
- movi r2, SYS_ify (rt_sigprocmask)
- trap
- bne r7, zero, SYSCALL_ERROR_LABEL
-
- /* Restore argument registers, for the makecontext() case. */
- ldw r4, (UCONTEXT_MCONTEXT + 4*4)(r10)
- ldw r5, (UCONTEXT_MCONTEXT + 5*4)(r10)
- ldw r6, (UCONTEXT_MCONTEXT + 6*4)(r10)
- ldw r7, (UCONTEXT_MCONTEXT + 7*4)(r10)
-
- ldw r16, (UCONTEXT_MCONTEXT + 16*4)(r10)
- ldw r17, (UCONTEXT_MCONTEXT + 17*4)(r10)
- ldw r18, (UCONTEXT_MCONTEXT + 18*4)(r10)
- ldw r19, (UCONTEXT_MCONTEXT + 19*4)(r10)
- ldw r20, (UCONTEXT_MCONTEXT + 20*4)(r10)
- ldw r21, (UCONTEXT_MCONTEXT + 21*4)(r10)
- ldw r22, (UCONTEXT_MCONTEXT + 22*4)(r10)
- ldw ra, (UCONTEXT_MCONTEXT + 24*4)(r10)
- ldw fp, (UCONTEXT_MCONTEXT + 25*4)(r10)
- ldw gp, (UCONTEXT_MCONTEXT + 26*4)(r10)
- /* Load address to continue execution. */
- ldw r3, (UCONTEXT_MCONTEXT + 28*4)(r10)
- ldw sp, (UCONTEXT_MCONTEXT + 29*4)(r10)
-
- mov r2, zero
- jmp r3
-
-.Lsigreturn:
- addi sp, sp, -RT_SIGFRAME_SIZE
- cfi_adjust_cfa_offset (RT_SIGFRAME_SIZE)
-
- addi r2, sp, RT_SIGFRAME_UCONTEXT
- movi r3, UCONTEXT_SIZE-4
-1:
- add r6, r4, r3
- ldw r5, 0(r6)
- add r7, r2, r3
- addi r3, r3, -4
- stw r5, 0(r7)
- bgt r3, zero, 1b
-
- movi r2, SYS_ify (rt_sigreturn)
- trap
-
- addi sp, sp, RT_SIGFRAME_SIZE
- cfi_adjust_cfa_offset (-RT_SIGFRAME_SIZE)
- br SYSCALL_ERROR_LABEL
-
-PSEUDO_END (__setcontext)
-weak_alias (__setcontext, setcontext)
-
- /* We add an NOP here to separate between __setcontext/__startcontext.
- The wanted behavior that happens is: when unwinding from a function
- called inside a makecontext() context, FDE lookup will use
- '&__startcontext - 1', then returns NULL for no FDE found,
- and immediately ends the unwind, in a normal fashion.
-
- If this NOP word does not exist, FDE lookup just repeatedly finds
- __setcontext's FDE in an infinite loop, due to the convention of
- using 'address - 1' for FDE lookup. Modifying/deleting the below
- __startcontext's FDE has no help on this. */
- nop
-
-ENTRY(__startcontext)
- mov r4, r16
- bne r4, zero, __setcontext
-
- /* If uc_link == zero, call exit. */
-#ifdef PIC
- nextpc r22
-1: movhi r8, %hiadj(_gp_got - 1b)
- addi r8, r8, %lo(_gp_got - 1b)
- add r22, r22, r8
- ldw r8, %call(HIDDEN_JUMPTARGET(exit))(r22)
- jmp r8
-#else
- jmpi exit
-#endif
-END(__startcontext)
diff --git a/sysdeps/unix/sysv/linux/nios2/shlib-versions b/sysdeps/unix/sysv/linux/nios2/shlib-versions
deleted file mode 100644
index 443fd4d..0000000
--- a/sysdeps/unix/sysv/linux/nios2/shlib-versions
+++ /dev/null
@@ -1,2 +0,0 @@
-DEFAULT GLIBC_2.21
-ld=ld-linux-nios2.so.1
diff --git a/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h b/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h
deleted file mode 100644
index b759d37..0000000
--- a/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Nios II definitions for signal handling calling conventions.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SIGCONTEXTINFO_H
-#define _SIGCONTEXTINFO_H
-
-static inline uintptr_t
-sigcontext_get_pc (const ucontext_t *ctx)
-{
- return ctx->uc_mcontext.regs[27];
-}
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/swapcontext.S b/sysdeps/unix/sysv/linux/nios2/swapcontext.S
deleted file mode 100644
index 488d702..0000000
--- a/sysdeps/unix/sysv/linux/nios2/swapcontext.S
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Modify saved context.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include "ucontext_i.h"
-
-/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
- .text
-ENTRY(__swapcontext)
-
- /* Same as getcontext(). */
- stw r16, (UCONTEXT_MCONTEXT + 16*4)(r4)
- stw r17, (UCONTEXT_MCONTEXT + 17*4)(r4)
- stw r18, (UCONTEXT_MCONTEXT + 18*4)(r4)
- stw r19, (UCONTEXT_MCONTEXT + 19*4)(r4)
- stw r20, (UCONTEXT_MCONTEXT + 20*4)(r4)
- stw r21, (UCONTEXT_MCONTEXT + 21*4)(r4)
- stw r22, (UCONTEXT_MCONTEXT + 22*4)(r4)
- stw ra, (UCONTEXT_MCONTEXT + 24*4)(r4)
- stw fp, (UCONTEXT_MCONTEXT + 25*4)(r4)
- stw gp, (UCONTEXT_MCONTEXT + 26*4)(r4)
- /* Store return address at place for EA. */
- stw ra, (UCONTEXT_MCONTEXT + 28*4)(r4)
- stw sp, (UCONTEXT_MCONTEXT + 29*4)(r4)
- /* Store zero for return success. */
- stw zero, (UCONTEXT_MCONTEXT + 2*4)(r4)
-
- /* Store value "1" at uc_flags to recognize as getcontext created. */
- movi r2, 1
- stw r2, UCONTEXT_FLAGS(r4)
-
- /* Store MCONTEXT_VERSION at first word of mcontext_t. */
- movi r2, MCONTEXT_VERSION
- stw r2, UCONTEXT_MCONTEXT(r4)
-
- /* Save ucp to non-argument syscall preserved register. */
- mov r10, r5
-
- /* Get signal mask. */
- /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
- movi r7, _NSIG8
- addi r6, r4, UCONTEXT_SIGMASK
- mov r5, zero
- movi r4, SIG_BLOCK
- movi r2, SYS_ify (rt_sigprocmask)
- trap
- bne r7, zero, SYSCALL_ERROR_LABEL
-
-
- /* Same as setcontext(). */
- ldw r5, UCONTEXT_FLAGS(r10)
- movi r6, 1
- bne r5, r6, .Lsigreturn
-
- /* Restore signal mask. */
- /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
- movi r7, _NSIG8
- addi r5, r10, UCONTEXT_SIGMASK
- mov r6, zero
- movi r4, SIG_SETMASK
- movi r2, SYS_ify (rt_sigprocmask)
- trap
- bne r7, zero, SYSCALL_ERROR_LABEL
-
- /* Restore argument registers, for the makecontext() case. */
- ldw r4, (UCONTEXT_MCONTEXT + 4*4)(r10)
- ldw r5, (UCONTEXT_MCONTEXT + 5*4)(r10)
- ldw r6, (UCONTEXT_MCONTEXT + 6*4)(r10)
- ldw r7, (UCONTEXT_MCONTEXT + 7*4)(r10)
-
- ldw r16, (UCONTEXT_MCONTEXT + 16*4)(r10)
- ldw r17, (UCONTEXT_MCONTEXT + 17*4)(r10)
- ldw r18, (UCONTEXT_MCONTEXT + 18*4)(r10)
- ldw r19, (UCONTEXT_MCONTEXT + 19*4)(r10)
- ldw r20, (UCONTEXT_MCONTEXT + 20*4)(r10)
- ldw r21, (UCONTEXT_MCONTEXT + 21*4)(r10)
- ldw r22, (UCONTEXT_MCONTEXT + 22*4)(r10)
- ldw ra, (UCONTEXT_MCONTEXT + 24*4)(r10)
- ldw fp, (UCONTEXT_MCONTEXT + 25*4)(r10)
- ldw gp, (UCONTEXT_MCONTEXT + 26*4)(r10)
- /* Load address to continue execution. */
- ldw r3, (UCONTEXT_MCONTEXT + 28*4)(r10)
- ldw sp, (UCONTEXT_MCONTEXT + 29*4)(r10)
-
- mov r2, zero
- jmp r3
-
-.Lsigreturn:
- addi sp, sp, -RT_SIGFRAME_SIZE
- cfi_adjust_cfa_offset (RT_SIGFRAME_SIZE)
-
- addi r2, sp, RT_SIGFRAME_UCONTEXT
- movi r3, UCONTEXT_SIZE-4
-1:
- add r6, r4, r3
- ldw r5, 0(r6)
- add r7, r2, r3
- addi r3, r3, -4
- stw r5, 0(r7)
- bgt r3, zero, 1b
-
- movi r2, SYS_ify (rt_sigreturn)
- trap
-
- addi sp, sp, RT_SIGFRAME_SIZE
- cfi_adjust_cfa_offset (-RT_SIGFRAME_SIZE)
- br SYSCALL_ERROR_LABEL
-
-PSEUDO_END (__swapcontext)
-weak_alias (__swapcontext, swapcontext)
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h b/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h
deleted file mode 100644
index c39afca..0000000
--- a/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* cacheflush - flush contents of instruction and/or data cache.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_CACHECTL_H
-#define _SYS_CACHECTL_H 1
-
-#include <features.h>
-
-__BEGIN_DECLS
-
-#ifdef __USE_MISC
-extern int cacheflush (void *__addr, const int __nbytes, const int __op) __THROW;
-#endif
-extern int _flush_cache (char *__addr, const int __nbytes, const int __op) __THROW;
-
-__END_DECLS
-
-#endif /* sys/cachectl.h */
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h b/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
deleted file mode 100644
index 74cc119..0000000
--- a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* ucontext_t definition, Nios II version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* System V/Nios II ABI compliant context switching support. */
-
-#ifndef _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
-
-#include <features.h>
-
-#include <bits/types/sigset_t.h>
-#include <bits/types/stack_t.h>
-
-
-/* These definitions must be in sync with the kernel. */
-
-#ifdef __USE_MISC
-# define MCONTEXT_VERSION 2
-#endif
-
-#ifdef __USE_MISC
-# define __ctx(fld) fld
-#else
-# define __ctx(fld) __ ## fld
-#endif
-
-/* Context to describe whole processor state. */
-typedef struct
- {
- int __ctx(version);
- unsigned long __ctx(regs)[32];
- } mcontext_t;
-
-/* Userlevel context. */
-typedef struct ucontext_t
- {
- unsigned long __ctx(uc_flags);
- struct ucontext_t *uc_link;
- stack_t uc_stack;
- mcontext_t uc_mcontext;
- sigset_t uc_sigmask;
- } ucontext_t;
-
-#undef __ctx
-
-#endif /* sys/ucontext.h */
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/user.h b/sysdeps/unix/sysv/linux/nios2/sys/user.h
deleted file mode 100644
index ed637b5..0000000
--- a/sysdeps/unix/sysv/linux/nios2/sys/user.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* ptrace register data format definitions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_USER_H
-#define _SYS_USER_H 1
-
-/* The whole purpose of this file is for GDB and GDB only. Don't read
- too much into it. Don't use it for anything other than GDB unless
- you know what you are doing. */
-
-struct user_fpregs
-{
-};
-
-struct user_regs
-{
- unsigned long int uregs[49];
-};
-
-struct user
-{
- struct user_regs regs; /* General registers */
- int u_fpvalid; /* True if math co-processor being used. */
-
- unsigned long int u_tsize; /* Text segment size (pages). */
- unsigned long int u_dsize; /* Data segment size (pages). */
- unsigned long int u_ssize; /* Stack segment size (pages). */
-
- unsigned long start_code; /* Starting virtual address of text. */
- unsigned long start_stack; /* Starting virtual address of stack. */
-
- long int signal; /* Signal that caused the core dump. */
- int reserved; /* No longer used */
- struct user_regs *u_ar0; /* help gdb to find the general registers. */
-
- unsigned long magic; /* uniquely identify a core file */
- char u_comm[32]; /* User command that was responsible */
- int u_debugreg[8];
- struct user_fpregs u_fp; /* Floating point registers */
- struct user_fpregs *u_fp0; /* help gdb to find the FP registers. */
-};
-
-#endif /* sys/user.h */
diff --git a/sysdeps/unix/sysv/linux/nios2/syscall.S b/sysdeps/unix/sysv/linux/nios2/syscall.S
deleted file mode 100644
index 18ac11c..0000000
--- a/sysdeps/unix/sysv/linux/nios2/syscall.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/* syscall - indirect system call.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-/* We don't need a special syscall to implement syscall(). It won't work
- reliably with 64-bit arguments (but that is true on many modern platforms).
-*/
-
-ENTRY (syscall)
- mov r2, r4
- mov r4, r5
- mov r5, r6
- mov r6, r7
- ldw r7, 0(sp)
- ldw r8, 4(sp)
- ldw r9, 8(sp)
- trap
- bne r7, zero, SYSCALL_ERROR_LABEL
- ret
-PSEUDO_END (syscall)
diff --git a/sysdeps/unix/sysv/linux/nios2/syscall_cancel.S b/sysdeps/unix/sysv/linux/nios2/syscall_cancel.S
deleted file mode 100644
index 19d0795..0000000
--- a/sysdeps/unix/sysv/linux/nios2/syscall_cancel.S
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Cancellable syscall wrapper. Linux/nios2 version.
- Copyright (C) 2023 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <descr-const.h>
-
-/* long int __syscall_cancel_arch (int *cancelhandling,
- __syscall_arg_t nr,
- __syscall_arg_t arg1,
- __syscall_arg_t arg2,
- __syscall_arg_t arg3,
- __syscall_arg_t arg4,
- __syscall_arg_t arg5,
- __syscall_arg_t arg6) */
-
-ENTRY (__syscall_cancel_arch)
-#ifdef SHARED
- addi sp, sp, -8
- stw r22, 0(sp)
- nextpc r22
-1:
- movhi r8, %hiadj(_gp_got - 1b)
- addi r8, r8, %lo(_gp_got - 1b)
- stw ra, 4(sp)
- add r22, r22, r8
-#else
- addi sp, sp, -4
- cfi_def_cfa_offset (4)
- stw ra, 0(sp)
- cfi_offset (31, -4)
-#endif
-
- .globl __syscall_cancel_arch_start
-__syscall_cancel_arch_start:
- ldw r3, 0(r4)
- andi r3, r3, TCB_CANCELED_BITMASK
- bne r3, zero, 3f
- mov r10, r6
- mov r2, r5
-#ifdef SHARED
-# define STACK_ADJ 4
-#else
-# define STACK_ADJ 0
-#endif
- ldw r9, (16 + STACK_ADJ)(sp)
- mov r5, r7
- ldw r8, (12 + STACK_ADJ)(sp)
- ldw r7, (8 + STACK_ADJ)(sp)
- ldw r6, (4 + STACK_ADJ)(sp)
- mov r4, r10
- trap
-
- .globl __syscall_cancel_arch_end
-__syscall_cancel_arch_end:
- beq r7, zero, 2f
- sub r2, zero, r2
-2:
-#ifdef SHARED
- ldw ra, 4(sp)
- ldw r22, 0(sp)
- addi sp, sp, 8
-#else
- ldw ra, (0 + STACK_ADJ)(sp)
- cfi_remember_state
- cfi_restore (31)
- addi sp, sp, 4
- cfi_def_cfa_offset (0)
-#endif
- ret
-
-3:
-#ifdef SHARED
- ldw r2, %call(__syscall_do_cancel)(r22)
- callr r2
-#else
- cfi_restore_state
- call __syscall_do_cancel
-#endif
-
-END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/nios2/sysdep.S b/sysdeps/unix/sysv/linux/nios2/sysdep.S
deleted file mode 100644
index a827d41..0000000
--- a/sysdeps/unix/sysv/linux/nios2/sysdep.S
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Static library error handling code fragment for Nios II.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-/* The following code is only used in the static library. In the shared
- library, the error handling code is at the end of each function. */
-
-#ifndef PIC
-
-/* In the static library, the syscall stubs jump here when they detect
- an error. */
-
-# undef CALL_MCOUNT
-# define CALL_MCOUNT /* Don't insert the profiling call, it clobbers r2. */
-
-# if IS_IN (libc)
-# define SYSCALL_ERROR_ERRNO __libc_errno
-# else
-# define SYSCALL_ERROR_ERRNO errno
-# endif
- .text
-ENTRY (__syscall_error)
- nextpc r3
-1:
- movhi r8, %hiadj(_gp_got - 1b)
- addi r8, r8, %lo(_gp_got - 1b)
- add r3, r3, r8
- ldw r3, %tls_ie(SYSCALL_ERROR_ERRNO)(r3)
- add r3, r23, r3
- stw r2, 0(r3)
- movi r2, -1
- ret
-END (__syscall_error)
-#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/sysdep.h b/sysdeps/unix/sysv/linux/nios2/sysdep.h
deleted file mode 100644
index 2ea9c3b..0000000
--- a/sysdeps/unix/sysv/linux/nios2/sysdep.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/* Assembler macros for Nios II.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _LINUX_NIOS2_SYSDEP_H
-#define _LINUX_NIOS2_SYSDEP_H 1
-
-#include <sysdeps/unix/sysv/linux/sysdep.h>
-#include <sysdeps/unix/sysdep.h>
-#include <sysdeps/nios2/sysdep.h>
-
-/* For RTLD_PRIVATE_ERRNO. */
-#include <dl-sysdep.h>
-
-#include <tls.h>
-
-/* For Linux we can use the system call table in the header file
- /usr/include/asm/unistd.h
- of the kernel. But these symbols do not follow the SYS_* syntax
- so we have to redefine the `SYS_ify' macro here. */
-#undef SYS_ify
-#define SYS_ify(syscall_name) __NR_##syscall_name
-
-#ifdef __ASSEMBLER__
-
-#undef SYSCALL_ERROR_LABEL
-#define SYSCALL_ERROR_LABEL __local_syscall_error
-
-#undef PSEUDO
-#define PSEUDO(name, syscall_name, args) \
- ENTRY (name) \
- DO_CALL (syscall_name, args) \
- bne r7, zero, SYSCALL_ERROR_LABEL; \
-
-#undef PSEUDO_END
-#define PSEUDO_END(name) \
- SYSCALL_ERROR_HANDLER \
- END (name)
-
-#undef PSEUDO_NOERRNO
-#define PSEUDO_NOERRNO(name, syscall_name, args) \
- ENTRY (name) \
- DO_CALL (syscall_name, args)
-
-#undef PSEUDO_END_NOERRNO
-#define PSEUDO_END_NOERRNO(name) \
- END (name)
-
-#undef ret_NOERRNO
-#define ret_NOERRNO ret
-
-#undef DO_CALL
-#define DO_CALL(syscall_name, args) \
- DOARGS_##args \
- movi r2, SYS_ify(syscall_name); \
- trap;
-
-#if defined(__PIC__) || defined(PIC)
-
-# if RTLD_PRIVATE_ERRNO
-
-# define SYSCALL_ERROR_HANDLER \
- SYSCALL_ERROR_LABEL: \
- nextpc r3; \
-1: \
- movhi r8, %hiadj(rtld_errno - 1b); \
- addi r8, r8, %lo(rtld_errno - 1b); \
- add r3, r3, r8; \
- stw r2, 0(r3); \
- movi r2, -1; \
- ret;
-
-# else
-
-# if IS_IN (libc)
-# define SYSCALL_ERROR_ERRNO __libc_errno
-# else
-# define SYSCALL_ERROR_ERRNO errno
-# endif
-# define SYSCALL_ERROR_HANDLER \
- SYSCALL_ERROR_LABEL: \
- nextpc r3; \
-1: \
- movhi r8, %hiadj(_gp_got - 1b); \
- addi r8, r8, %lo(_gp_got - 1b); \
- add r3, r3, r8; \
- ldw r3, %tls_ie(SYSCALL_ERROR_ERRNO)(r3); \
- add r3, r23, r3; \
- stw r2, 0(r3); \
- movi r2, -1; \
- ret;
-
-# endif
-
-#else
-
-/* We can use a single error handler in the static library. */
-#define SYSCALL_ERROR_HANDLER \
- SYSCALL_ERROR_LABEL: \
- jmpi __syscall_error;
-
-#endif
-
-#define DOARGS_0 /* nothing */
-#define DOARGS_1 /* nothing */
-#define DOARGS_2 /* nothing */
-#define DOARGS_3 /* nothing */
-#define DOARGS_4 /* nothing */
-#define DOARGS_5 ldw r8, 0(sp);
-#define DOARGS_6 ldw r9, 4(sp); ldw r8, 0(sp);
-
-/* The function has to return the error code. */
-#undef PSEUDO_ERRVAL
-#define PSEUDO_ERRVAL(name, syscall_name, args) \
- ENTRY (name) \
- DO_CALL (syscall_name, args)
-
-#undef PSEUDO_END_ERRVAL
-#define PSEUDO_END_ERRVAL(name) \
- END (name)
-
-#define ret_ERRVAL ret
-
-#else /* __ASSEMBLER__ */
-
-/* In order to get __set_errno() definition in INLINE_SYSCALL. */
-#include <errno.h>
-
-#undef INTERNAL_SYSCALL_RAW
-#define INTERNAL_SYSCALL_RAW(name, nr, args...) \
- ({ unsigned int _sys_result; \
- { \
- /* Load argument values in temporary variables
- to perform side effects like function calls
- before the call-used registers are set. */ \
- LOAD_ARGS_##nr (args) \
- LOAD_REGS_##nr \
- register int _r2 asm ("r2") = (int)(name); \
- register int _err asm ("r7"); \
- asm volatile ("trap" \
- : "+r" (_r2), "=r" (_err) \
- : ASM_ARGS_##nr \
- : __SYSCALL_CLOBBERS); \
- _sys_result = _err != 0 ? -_r2 : _r2; \
- } \
- (int) _sys_result; })
-
-#undef INTERNAL_SYSCALL
-#define INTERNAL_SYSCALL(name, nr, args...) \
- INTERNAL_SYSCALL_RAW(SYS_ify(name), nr, args)
-
-#undef INTERNAL_SYSCALL_NCS
-#define INTERNAL_SYSCALL_NCS(number, nr, args...) \
- INTERNAL_SYSCALL_RAW(number, nr, args)
-
-#define LOAD_ARGS_0()
-#define LOAD_REGS_0
-#define ASM_ARGS_0
-#define LOAD_ARGS_1(a1) \
- LOAD_ARGS_0 () \
- int __arg1 = (int) (a1);
-#define LOAD_REGS_1 \
- register int _r4 asm ("r4") = __arg1; \
- LOAD_REGS_0
-#define ASM_ARGS_1 "r" (_r4)
-#define LOAD_ARGS_2(a1, a2) \
- LOAD_ARGS_1 (a1) \
- int __arg2 = (int) (a2);
-#define LOAD_REGS_2 \
- register int _r5 asm ("r5") = __arg2; \
- LOAD_REGS_1
-#define ASM_ARGS_2 ASM_ARGS_1, "r" (_r5)
-#define LOAD_ARGS_3(a1, a2, a3) \
- LOAD_ARGS_2 (a1, a2) \
- int __arg3 = (int) (a3);
-#define LOAD_REGS_3 \
- register int _r6 asm ("r6") = __arg3; \
- LOAD_REGS_2
-#define ASM_ARGS_3 ASM_ARGS_2, "r" (_r6)
-#define LOAD_ARGS_4(a1, a2, a3, a4) \
- LOAD_ARGS_3 (a1, a2, a3) \
- int __arg4 = (int) (a4);
-#define LOAD_REGS_4 \
- register int _r7 asm ("r7") = __arg4; \
- LOAD_REGS_3
-#define ASM_ARGS_4 ASM_ARGS_3, "r" (_r7)
-#define LOAD_ARGS_5(a1, a2, a3, a4, a5) \
- LOAD_ARGS_4 (a1, a2, a3, a4) \
- int __arg5 = (int) (a5);
-#define LOAD_REGS_5 \
- register int _r8 asm ("r8") = __arg5; \
- LOAD_REGS_4
-#define ASM_ARGS_5 ASM_ARGS_4, "r" (_r8)
-#define LOAD_ARGS_6(a1, a2, a3, a4, a5, a6) \
- LOAD_ARGS_5 (a1, a2, a3, a4, a5) \
- int __arg6 = (int) (a6);
-#define LOAD_REGS_6 \
- register int _r9 asm ("r9") = __arg6; \
- LOAD_REGS_5
-#define ASM_ARGS_6 ASM_ARGS_5, "r" (_r9)
-
-#define __SYSCALL_CLOBBERS "memory"
-
-#undef HAVE_INTERNAL_BRK_ADDR_SYMBOL
-#define HAVE_INTERNAL_BRK_ADDR_SYMBOL 1
-
-#endif /* __ASSEMBLER__ */
-
-#endif /* linux/nios2/sysdep.h */
diff --git a/sysdeps/unix/sysv/linux/nios2/time64-compat.h b/sysdeps/unix/sysv/linux/nios2/time64-compat.h
deleted file mode 100644
index 700f854..0000000
--- a/sysdeps/unix/sysv/linux/nios2/time64-compat.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* ABI support 64-bit in non-default mode. */
-#define TIME64_NON_DEFAULT
diff --git a/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym b/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym
deleted file mode 100644
index a844c96..0000000
--- a/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <inttypes.h>
-#include <signal.h>
-#include <stddef.h>
-#include <sys/ucontext.h>
-
-#include "kernel_rt_sigframe.h"
-
-SIG_BLOCK
-SIG_SETMASK
-
-_NSIG8 (_NSIG / 8)
-
-MCONTEXT_VERSION
-
--- Offsets of the fields in the kernel rt_sigframe_t structure.
-#define rt_sigframe(member) offsetof (struct kernel_rt_sigframe, member)
-
-RT_SIGFRAME_SIZE sizeof (struct kernel_rt_sigframe)
-RT_SIGFRAME_UCONTEXT rt_sigframe (uc)
-
--- Offsets of the fields in the ucontext_t structure.
-#define ucontext(member) offsetof (ucontext_t, member)
-
-UCONTEXT_FLAGS ucontext (uc_flags)
-UCONTEXT_LINK ucontext (uc_link)
-UCONTEXT_STACK ucontext (uc_stack)
-UCONTEXT_MCONTEXT ucontext (uc_mcontext)
-UCONTEXT_SIGMASK ucontext (uc_sigmask)
-UCONTEXT_SIZE sizeof (ucontext_t)
diff --git a/sysdeps/unix/sysv/linux/nios2/vfork.S b/sysdeps/unix/sysv/linux/nios2/vfork.S
deleted file mode 100644
index 897b637..0000000
--- a/sysdeps/unix/sysv/linux/nios2/vfork.S
+++ /dev/null
@@ -1,34 +0,0 @@
-/* vfork for Nios II Linux.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <tcb-offsets.h>
-
-ENTRY(__vfork)
-
- movi r4, 0x4111 /* (CLONE_VM | CLONE_VFORK | SIGCHLD) */
- mov r5, zero
- DO_CALL (clone, 2)
-
- bne r7, zero, SYSCALL_ERROR_LABEL
- ret
-
-PSEUDO_END (__vfork)
-libc_hidden_def (__vfork)
-
-weak_alias (__vfork, vfork)
diff --git a/sysdeps/unix/sysv/linux/rseq-internal.h b/sysdeps/unix/sysv/linux/rseq-internal.h
index 37a8f63..ef3eab1 100644
--- a/sysdeps/unix/sysv/linux/rseq-internal.h
+++ b/sysdeps/unix/sysv/linux/rseq-internal.h
@@ -56,6 +56,7 @@ rseq_register_current_thread (struct pthread *self, bool do_rseq)
registration, there is no guarantee that struct pthread is
cleared on all architectures. */
THREAD_SETMEM (self, rseq_area.cpu_id, RSEQ_CPU_ID_UNINITIALIZED);
+ THREAD_SETMEM (self, rseq_area.cpu_id_start, 0);
THREAD_SETMEM (self, rseq_area.rseq_cs, 0);
THREAD_SETMEM (self, rseq_area.flags, 0);
diff --git a/sysdeps/unix/sysv/linux/settimeofday.c b/sysdeps/unix/sysv/linux/settimeofday.c
index 4235dc8..4fa1d66 100644
--- a/sysdeps/unix/sysv/linux/settimeofday.c
+++ b/sysdeps/unix/sysv/linux/settimeofday.c
@@ -26,9 +26,9 @@ int
__settimeofday64 (const struct __timeval64 *tv, const struct timezone *tz)
{
/* Backwards compatibility for setting the UTC offset. */
- if (__glibc_unlikely (tz != 0))
+ if (__glibc_unlikely (tz != NULL))
{
- if (tv != 0)
+ if (tv != NULL)
{
__set_errno (EINVAL);
return -1;
diff --git a/sysdeps/unix/sysv/linux/sigwait.c b/sysdeps/unix/sysv/linux/sigwait.c
index 37de8db..f0dff83 100644
--- a/sysdeps/unix/sysv/linux/sigwait.c
+++ b/sysdeps/unix/sysv/linux/sigwait.c
@@ -25,7 +25,7 @@ __sigwait (const sigset_t *set, int *sig)
siginfo_t si;
int ret;
do
- ret = __sigtimedwait (set, &si, 0);
+ ret = __sigtimedwait (set, &si, NULL);
/* Applications do not expect sigwait to return with EINTR, and the
error code is not specified by POSIX. */
while (ret < 0 && errno == EINTR);
diff --git a/sysdeps/unix/sysv/linux/sigwaitinfo.c b/sysdeps/unix/sysv/linux/sigwaitinfo.c
index dba25bd..1d48b11 100644
--- a/sysdeps/unix/sysv/linux/sigwaitinfo.c
+++ b/sysdeps/unix/sysv/linux/sigwaitinfo.c
@@ -22,7 +22,7 @@
int
__sigwaitinfo (const sigset_t *set, siginfo_t *info)
{
- return __sigtimedwait (set, info, 0);
+ return __sigtimedwait (set, info, NULL);
}
libc_hidden_def (__sigwaitinfo)
diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c
index 1edf62c..85796c6 100644
--- a/sysdeps/unix/sysv/linux/spawni.c
+++ b/sysdeps/unix/sysv/linux/spawni.c
@@ -115,7 +115,7 @@ __spawni_child (void *arguments)
memset (&sa, '\0', sizeof (sa));
sigset_t hset;
- __sigprocmask (SIG_BLOCK, 0, &hset);
+ __sigprocmask (SIG_BLOCK, NULL, &hset);
for (int sig = 1; sig < _NSIG; ++sig)
{
if ((attr->__flags & POSIX_SPAWN_SETSIGDEF)
@@ -129,7 +129,7 @@ __spawni_child (void *arguments)
sa.sa_handler = SIG_IGN;
else
{
- __libc_sigaction (sig, 0, &sa);
+ __libc_sigaction (sig, NULL, &sa);
if (sa.sa_handler == SIG_IGN || sa.sa_handler == SIG_DFL)
continue;
sa.sa_handler = SIG_DFL;
@@ -138,7 +138,7 @@ __spawni_child (void *arguments)
else
continue;
- __libc_sigaction (sig, &sa, 0);
+ __libc_sigaction (sig, &sa, NULL);
}
#ifdef _POSIX_PRIORITY_SCHEDULING
@@ -172,7 +172,7 @@ __spawni_child (void *arguments)
goto fail;
/* Execute the file actions. */
- if (file_actions != 0)
+ if (file_actions != NULL)
{
int cnt;
struct rlimit64 fdlimit;
diff --git a/sysdeps/unix/sysv/linux/tst-sem_getvalue-affinity.c b/sysdeps/unix/sysv/linux/tst-sem_getvalue-affinity.c
new file mode 100644
index 0000000..4176f67
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-sem_getvalue-affinity.c
@@ -0,0 +1,185 @@
+/* Test sem_getvalue across CPUs. Based on tst-skeleton-thread-affinity.c.
+ Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <pthread.h>
+#include <semaphore.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <support/xthread.h>
+#include <sys/time.h>
+
+struct conf;
+static bool early_test (struct conf *);
+
+static int
+setaffinity (size_t size, const cpu_set_t *set)
+{
+ int ret = pthread_setaffinity_np (pthread_self (), size, set);
+ if (ret != 0)
+ {
+ errno = ret;
+ return -1;
+ }
+ return 0;
+}
+
+static int
+getaffinity (size_t size, cpu_set_t *set)
+{
+ int ret = pthread_getaffinity_np (pthread_self (), size, set);
+ if (ret != 0)
+ {
+ errno = ret;
+ return -1;
+ }
+ return 0;
+}
+
+#include "tst-skeleton-affinity.c"
+
+static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
+static sem_t sem;
+
+static void *
+tf (void *arg)
+{
+ void *ret = NULL;
+ xpthread_mutex_lock (&lock);
+ int semval;
+ if (sem_getvalue (&sem, &semval) != 0)
+ {
+ printf ("sem_getvalue failed: %m\n");
+ ret = (void *) 1;
+ }
+ else if (semval != 12345)
+ {
+ printf ("sem_getvalue returned %d not 12345\n", semval);
+ ret = (void *) 1;
+ }
+ xpthread_mutex_unlock (&lock);
+ return ret;
+}
+
+static int
+stop_and_join_threads (struct conf *conf, cpu_set_t *set,
+ pthread_t *pinned_first, pthread_t *pinned_last)
+{
+ int failed = 0;
+ for (pthread_t *p = pinned_first; p < pinned_last; ++p)
+ {
+ int cpu = p - pinned_first;
+ if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), set))
+ continue;
+
+ void *retval = (void *) 1;
+ int ret = pthread_join (*p, &retval);
+ if (ret != 0)
+ {
+ printf ("error: Failed to join thread %d: %s\n", cpu, strerror (ret));
+ fflush (stdout);
+ /* Cannot shut down cleanly with threads still running. */
+ abort ();
+ }
+ if (retval != NULL)
+ failed = 1;
+ }
+ return failed;
+}
+
+static bool
+early_test (struct conf *conf)
+{
+ int ret;
+ ret = sem_init (&sem, 0, 12345);
+ if (ret != 0)
+ {
+ printf ("error: sem_init failed: %m\n");
+ return false;
+ }
+ xpthread_mutex_lock (&lock);
+ pthread_t *pinned_threads
+ = calloc (conf->last_cpu + 1, sizeof (*pinned_threads));
+ cpu_set_t *initial_set = CPU_ALLOC (conf->set_size);
+ cpu_set_t *scratch_set = CPU_ALLOC (conf->set_size);
+
+ if (pinned_threads == NULL || initial_set == NULL || scratch_set == NULL)
+ {
+ puts ("error: Memory allocation failure");
+ return false;
+ }
+ if (getaffinity (CPU_ALLOC_SIZE (conf->set_size), initial_set) < 0)
+ {
+ printf ("error: pthread_getaffinity_np failed: %m\n");
+ return false;
+ }
+
+ pthread_attr_t attr;
+ ret = pthread_attr_init (&attr);
+ if (ret != 0)
+ {
+ printf ("error: pthread_attr_init failed: %s\n", strerror (ret));
+ return false;
+ }
+ support_set_small_thread_stack_size (&attr);
+
+ /* Spawn a thread pinned to each available CPU. */
+ for (int cpu = 0; cpu <= conf->last_cpu; ++cpu)
+ {
+ if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), initial_set))
+ continue;
+ CPU_ZERO_S (CPU_ALLOC_SIZE (conf->set_size), scratch_set);
+ CPU_SET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), scratch_set);
+ ret = pthread_attr_setaffinity_np
+ (&attr, CPU_ALLOC_SIZE (conf->set_size), scratch_set);
+ if (ret != 0)
+ {
+ printf ("error: pthread_attr_setaffinity_np for CPU %d failed: %s\n",
+ cpu, strerror (ret));
+ stop_and_join_threads (conf, initial_set,
+ pinned_threads, pinned_threads + cpu);
+ return false;
+ }
+ ret = pthread_create (pinned_threads + cpu, &attr,
+ tf, (void *) (uintptr_t) cpu);
+ if (ret != 0)
+ {
+ printf ("error: pthread_create for CPU %d failed: %s\n",
+ cpu, strerror (ret));
+ stop_and_join_threads (conf, initial_set,
+ pinned_threads, pinned_threads + cpu);
+ return false;
+ }
+ }
+
+ /* Main thread. */
+ xpthread_mutex_unlock (&lock);
+ int failed = stop_and_join_threads (conf, initial_set,
+ pinned_threads,
+ pinned_threads + conf->last_cpu + 1);
+
+ printf ("info: Main thread ran on %d CPU(s) of %d available CPU(s)\n",
+ CPU_COUNT_S (CPU_ALLOC_SIZE (conf->set_size), scratch_set),
+ CPU_COUNT_S (CPU_ALLOC_SIZE (conf->set_size), initial_set));
+
+ pthread_attr_destroy (&attr);
+ CPU_FREE (scratch_set);
+ CPU_FREE (initial_set);
+ free (pinned_threads);
+ return failed == 0;
+}
diff --git a/sysdeps/unix/sysv/linux/xstat.c b/sysdeps/unix/sysv/linux/xstat.c
index fa327ca..0e1894e 100644
--- a/sysdeps/unix/sysv/linux/xstat.c
+++ b/sysdeps/unix/sysv/linux/xstat.c
@@ -38,7 +38,7 @@ __xstat (int vers, const char *name, struct stat *buf)
{
# if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI,
- e.g. csky, nios2 */
+ e.g. csky. */
int r = INLINE_SYSCALL_CALL (fstatat64, AT_FDCWD, name, buf, 0);
return r ?: stat_overflow (buf);
# else
diff --git a/sysdeps/unix/sysv/linux/xstat64.c b/sysdeps/unix/sysv/linux/xstat64.c
index aa63152..e7dd6a5 100644
--- a/sysdeps/unix/sysv/linux/xstat64.c
+++ b/sysdeps/unix/sysv/linux/xstat64.c
@@ -67,7 +67,7 @@ ___xstat64 (int vers, const char *name, struct stat64 *buf)
#else
# if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI,
- e.g. csky, nios2 */
+ e.g. csky. */
if (vers == _STAT_VER_KERNEL)
return INLINE_SYSCALL_CALL (fstatat64, AT_FDCWD, name, buf, 0);
# else
diff --git a/sysdeps/x86/nptl/bits/struct_mutex.h b/sysdeps/x86/nptl/bits/struct_mutex.h
index b6bb9aa..7a1b8a1 100644
--- a/sysdeps/x86/nptl/bits/struct_mutex.h
+++ b/sysdeps/x86/nptl/bits/struct_mutex.h
@@ -54,7 +54,7 @@ struct __pthread_mutex_s
#ifdef __x86_64__
# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
- 0, 0, 0, 0, __kind, 0, 0, { 0, 0 }
+ 0, 0, 0, 0, __kind, 0, 0, { NULL, NULL }
#else
# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
0, 0, 0, __kind, 0, { { 0, 0 } }
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index e3c8115..f436059 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -638,25 +638,21 @@ ldouble: 1
Function: "cbrt":
double: 4
-float: 1
float128: 1
ldouble: 1
Function: "cbrt_downward":
double: 4
-float: 1
float128: 1
ldouble: 1
Function: "cbrt_towardzero":
double: 3
-float: 1
float128: 1
ldouble: 1
Function: "cbrt_upward":
double: 5
-float: 1
float128: 1
ldouble: 1
@@ -1294,25 +1290,21 @@ ldouble: 3
Function: "erf":
double: 1
-float: 1
float128: 1
ldouble: 1
Function: "erf_downward":
double: 1
-float: 1
float128: 2
ldouble: 1
Function: "erf_towardzero":
double: 1
-float: 1
float128: 1
ldouble: 1
Function: "erf_upward":
double: 1
-float: 1
float128: 2
ldouble: 1
@@ -1338,25 +1330,21 @@ float: 2
Function: "erfc":
double: 5
-float: 3
float128: 4
ldouble: 5
Function: "erfc_downward":
double: 5
-float: 6
float128: 5
ldouble: 4
Function: "erfc_towardzero":
double: 3
-float: 4
float128: 4
ldouble: 4
Function: "erfc_upward":
double: 5
-float: 6
float128: 5
ldouble: 5
@@ -1724,25 +1712,21 @@ ldouble: 5
Function: "lgamma":
double: 4
-float: 7
float128: 5
ldouble: 4
Function: "lgamma_downward":
double: 5
-float: 7
float128: 8
ldouble: 7
Function: "lgamma_towardzero":
double: 5
-float: 6
float128: 5
ldouble: 7
Function: "lgamma_upward":
double: 5
-float: 6
float128: 8
ldouble: 6
@@ -2152,25 +2136,21 @@ Function: "sinh_vlen8_avx2":
float: 1
Function: "tan":
-float: 1
float128: 1
ldouble: 2
Function: "tan_downward":
double: 1
-float: 2
float128: 1
ldouble: 3
Function: "tan_towardzero":
double: 1
-float: 1
float128: 1
ldouble: 3
Function: "tan_upward":
double: 1
-float: 1
float128: 1
ldouble: 2
diff --git a/sysdeps/x86_64/multiarch/strncat-evex.S b/sysdeps/x86_64/multiarch/strncat-evex.S
index e6717bd..fbec351 100644
--- a/sysdeps/x86_64/multiarch/strncat-evex.S
+++ b/sysdeps/x86_64/multiarch/strncat-evex.S
@@ -44,7 +44,7 @@
# define VPCMPEQ vpcmpeqd
# define CHAR_SIZE 4
-# define REP_MOVS rep movsd
+# define REP_MOVS rep movsl
# define VMASK_REG VR10
# define FIND_FIRST_ONE(src, dst) movl $CHAR_PER_VEC, %dst; bsf %src, %dst
@@ -514,7 +514,7 @@ L(page_cross_small):
cmova %edx, %ecx
# ifdef USE_AS_WCSCPY
- rep movsd
+ rep movsl
# else
rep movsb
# endif