aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog23
-rw-r--r--NEWS2
-rw-r--r--README1
-rw-r--r--manual/contrib.texi3
-rwxr-xr-xscripts/build-many-glibcs.py9
-rw-r--r--sysdeps/tile/Implies4
-rw-r--r--sysdeps/tile/Makefile49
-rw-r--r--sysdeps/tile/Versions6
-rw-r--r--sysdeps/tile/__longjmp.S57
-rw-r--r--sysdeps/tile/__tls_get_addr.S141
-rw-r--r--sysdeps/tile/_mcount.S87
-rw-r--r--sysdeps/tile/abort-instr.h2
-rw-r--r--sysdeps/tile/atomic-machine.h110
-rw-r--r--sysdeps/tile/bits/endian.h11
-rw-r--r--sysdeps/tile/bits/fenv.h53
-rw-r--r--sysdeps/tile/bits/link.h57
-rw-r--r--sysdeps/tile/bits/setjmp.h36
-rw-r--r--sysdeps/tile/bits/wordsize.h11
-rw-r--r--sysdeps/tile/bsd-_setjmp.S1
-rw-r--r--sysdeps/tile/bsd-setjmp.S1
-rw-r--r--sysdeps/tile/bzero.S30
-rw-r--r--sysdeps/tile/configure7
-rw-r--r--sysdeps/tile/configure.ac6
-rw-r--r--sysdeps/tile/crti.S113
-rw-r--r--sysdeps/tile/crtn.S55
-rw-r--r--sysdeps/tile/dl-lookupcfg.h27
-rw-r--r--sysdeps/tile/dl-machine.h692
-rw-r--r--sysdeps/tile/dl-runtime.c159
-rw-r--r--sysdeps/tile/dl-start.S109
-rw-r--r--sysdeps/tile/dl-tls.c27
-rw-r--r--sysdeps/tile/dl-tls.h42
-rw-r--r--sysdeps/tile/dl-trampoline.S193
-rw-r--r--sysdeps/tile/ffs.c36
-rw-r--r--sysdeps/tile/ffsll.c32
-rw-r--r--sysdeps/tile/gccframe.h21
-rw-r--r--sysdeps/tile/jmpbuf-offsets.h62
-rw-r--r--sysdeps/tile/jmpbuf-unwind.h48
-rw-r--r--sysdeps/tile/ldsodefs.h40
-rw-r--r--sysdeps/tile/libm-test-ulps394
-rw-r--r--sysdeps/tile/libm-test-ulps-name1
-rw-r--r--sysdeps/tile/machine-gmon.h25
-rw-r--r--sysdeps/tile/math-tests.h30
-rw-r--r--sysdeps/tile/memchr.c77
-rw-r--r--sysdeps/tile/memcmp.c349
-rw-r--r--sysdeps/tile/memcopy.h31
-rw-r--r--sysdeps/tile/memcpy.c272
-rw-r--r--sysdeps/tile/memset.c151
-rw-r--r--sysdeps/tile/memusage.h31
-rw-r--r--sysdeps/tile/nptl/Makefile20
-rw-r--r--sysdeps/tile/nptl/bits/pthreadtypes-arch.h81
-rw-r--r--sysdeps/tile/nptl/bits/semaphore.h41
-rw-r--r--sysdeps/tile/nptl/pthread-offsets.h15
-rw-r--r--sysdeps/tile/nptl/pthread_spin_lock.c50
-rw-r--r--sysdeps/tile/nptl/pthread_spin_trylock.c28
-rw-r--r--sysdeps/tile/nptl/pthread_spin_unlock.c28
-rw-r--r--sysdeps/tile/nptl/pthreaddef.h36
-rw-r--r--sysdeps/tile/nptl/tcb-offsets.sym16
-rw-r--r--sysdeps/tile/nptl/tls.h185
-rw-r--r--sysdeps/tile/preconfigure10
-rw-r--r--sysdeps/tile/rawmemchr.c45
-rw-r--r--sysdeps/tile/setjmp.S47
-rw-r--r--sysdeps/tile/sfp-machine.h99
-rw-r--r--sysdeps/tile/sotruss-lib.c49
-rw-r--r--sysdeps/tile/stackguard-macros.h13
-rw-r--r--sysdeps/tile/stackinfo.h48
-rw-r--r--sysdeps/tile/start.S184
-rw-r--r--sysdeps/tile/strcasestr.c53
-rw-r--r--sysdeps/tile/strchr.c67
-rw-r--r--sysdeps/tile/strchrnul.c64
-rw-r--r--sysdeps/tile/string-endian.h84
-rw-r--r--sysdeps/tile/strlen.c39
-rw-r--r--sysdeps/tile/strnlen.c57
-rw-r--r--sysdeps/tile/strrchr.c68
-rw-r--r--sysdeps/tile/strstr.c270
-rw-r--r--sysdeps/tile/sysdep.h83
-rw-r--r--sysdeps/tile/tilegx32/Implies2
-rw-r--r--sysdeps/tile/tilegx64/Implies2
-rw-r--r--sysdeps/tile/tls-macros.h65
-rw-r--r--sysdeps/tile/tst-audit.h23
-rw-r--r--sysdeps/tile/wordcopy.c433
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/ldsodefs.h3
-rw-r--r--sysdeps/unix/sysv/linux/nios2/Makefile2
-rw-r--r--sysdeps/unix/sysv/linux/posix_fadvise.c10
-rw-r--r--sysdeps/unix/sysv/linux/posix_fadvise64.c8
-rw-r--r--sysdeps/unix/sysv/linux/tile/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/tile/Makefile33
-rw-r--r--sysdeps/unix/sysv/linux/tile/Versions18
-rw-r--r--sysdeps/unix/sysv/linux/tile/bits/environments.h98
-rw-r--r--sysdeps/unix/sysv/linux/tile/bits/local_lim.h100
-rw-r--r--sysdeps/unix/sysv/linux/tile/bits/mman.h40
-rw-r--r--sysdeps/unix/sysv/linux/tile/bits/sigaction.h84
-rw-r--r--sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h10
-rw-r--r--sysdeps/unix/sysv/linux/tile/bits/siginfo-consts-arch.h14
-rw-r--r--sysdeps/unix/sysv/linux/tile/cacheflush.c34
-rw-r--r--sysdeps/unix/sysv/linux/tile/clone.S176
-rw-r--r--sysdeps/unix/sysv/linux/tile/configure21
-rw-r--r--sysdeps/unix/sysv/linux/tile/configure.ac10
-rw-r--r--sysdeps/unix/sysv/linux/tile/dl-static.c84
-rw-r--r--sysdeps/unix/sysv/linux/tile/getcontext.S95
-rw-r--r--sysdeps/unix/sysv/linux/tile/init-first.c48
-rw-r--r--sysdeps/unix/sysv/linux/tile/ioctl.S42
-rw-r--r--sysdeps/unix/sysv/linux/tile/ipc_priv.h21
-rw-r--r--sysdeps/unix/sysv/linux/tile/kernel-features.h27
-rw-r--r--sysdeps/unix/sysv/linux/tile/kernel_sigaction.h9
-rw-r--r--sysdeps/unix/sysv/linux/tile/ldconfig.h26
-rw-r--r--sysdeps/unix/sysv/linux/tile/ldd-rewrite.sed1
-rw-r--r--sysdeps/unix/sysv/linux/tile/ldsodefs.h32
-rw-r--r--sysdeps/unix/sysv/linux/tile/libc-vdso.h42
-rw-r--r--sysdeps/unix/sysv/linux/tile/makecontext.c67
-rw-r--r--sysdeps/unix/sysv/linux/tile/profil-counter.h26
-rw-r--r--sysdeps/unix/sysv/linux/tile/pt-vfork.c1
-rw-r--r--sysdeps/unix/sysv/linux/tile/register-dump.h123
-rw-r--r--sysdeps/unix/sysv/linux/tile/sched_getcpu.c87
-rw-r--r--sysdeps/unix/sysv/linux/tile/set_dataplane.c39
-rw-r--r--sysdeps/unix/sysv/linux/tile/setcontext.S206
-rw-r--r--sysdeps/unix/sysv/linux/tile/shlib-versions2
-rw-r--r--sysdeps/unix/sysv/linux/tile/sigcontextinfo.h22
-rw-r--r--sysdeps/unix/sysv/linux/tile/swapcontext.S89
-rw-r--r--sysdeps/unix/sysv/linux/tile/sys/cachectl.h36
-rw-r--r--sysdeps/unix/sysv/linux/tile/sys/procfs.h128
-rw-r--r--sysdeps/unix/sysv/linux/tile/sys/ptrace.h152
-rw-r--r--sysdeps/unix/sysv/linux/tile/sys/reg.h2
-rw-r--r--sysdeps/unix/sysv/linux/tile/sys/ucontext.h99
-rw-r--r--sysdeps/unix/sysv/linux/tile/sys/user.h1
-rw-r--r--sysdeps/unix/sysv/linux/tile/syscall.S32
-rw-r--r--sysdeps/unix/sysv/linux/tile/sysconf.c75
-rw-r--r--sysdeps/unix/sysv/linux/tile/sysdep.c33
-rw-r--r--sysdeps/unix/sysv/linux/tile/sysdep.h243
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/Implies3
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/Makefile1
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/c++-types.data67
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/jmp_buf-macros.h6
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/ld.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/libBrokenLocale.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/libanl.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/libc.abilist2138
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/libcrypt.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/libdl.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist762
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/libnsl.abilist122
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/libpthread.abilist226
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/libresolv.abilist92
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/librt.abilist41
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/libthread_db.abilist41
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx32/libutil.abilist7
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/Implies3
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/Makefile1
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/c++-types.data67
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/jmp_buf-macros.h6
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/ld.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/libBrokenLocale.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/libanl.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/libc.abilist2138
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/libcrypt.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/libdl.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist762
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/libnsl.abilist122
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/libpthread.abilist226
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/libresolv.abilist92
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/librt.abilist41
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/libthread_db.abilist41
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilegx64/libutil.abilist7
-rw-r--r--sysdeps/unix/sysv/linux/tile/ucontext_i.h42
-rw-r--r--sysdeps/unix/sysv/linux/tile/vfork.S49
164 files changed, 32 insertions, 15720 deletions
diff --git a/ChangeLog b/ChangeLog
index 354bb06..6501e19 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+2018-04-27 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/tile: Remove.
+ * sysdeps/unix/sysv/linux/tile: Likewise.
+ * README (tilegx-*-linux-gnu): Remove from list of supported
+ configurations.
+ * manual/contrib.texi (Contributors): Mention Chris Metcalf's
+ contribution of support for generic Linux kernel syscall
+ interface.
+ * scripts/build-many-glibcs.py (Context.add_all_configs): Remove
+ tilegx configurations.
+ (Config.install_linux_headers): Do not handle tile.
+ * sysdeps/unix/sysv/linux/aarch64/ldsodefs.h: Do not mention Tile
+ in comment.
+ * sysdeps/unix/sysv/linux/nios2/Makefile: Likewise.
+ * sysdeps/unix/sysv/linux/posix_fadvise.c: Likewise.
+ [__ASSUME_FADVISE64_64_NO_ALIGN] (__ALIGNMENT_ARG): Remove
+ conditional undefine and redefine.
+ * sysdeps/unix/sysv/linux/posix_fadvise64.c: Do not mention Tile
+ in comment.
+ [__ASSUME_FADVISE64_64_NO_ALIGN] (__ALIGNMENT_ARG): Remove
+ conditional undefine and redefine.
+
2018-04-26 Aurelien Jarno <aurelien@aurel32.net>
* signal/tst-sigaction.c: New file to test BZ #23069.
diff --git a/NEWS b/NEWS
index 3d6b2c8..363e918 100644
--- a/NEWS
+++ b/NEWS
@@ -57,6 +57,8 @@ Deprecated and removed features, and other changes affecting compatibility:
these macros should first include <sys/types.h>, and then include
<sys/sysmacros.h> if __GNU_LIBRARY__ is defined.
+* The tilegx*-*-linux-gnu configurations are no longer supported.
+
Changes to build and runtime requirements:
[Add changes to build and runtime requirements here]
diff --git a/README b/README
index 2874505..27a9fd4 100644
--- a/README
+++ b/README
@@ -41,7 +41,6 @@ The GNU C Library supports these configurations for using Linux kernels:
sh[34]-*-linux-gnu
sparc*-*-linux-gnu
sparc64*-*-linux-gnu
- tilegx-*-linux-gnu
If you are interested in doing a port, please contact the glibc
maintainers; see http://www.gnu.org/software/libc/ for more
diff --git a/manual/contrib.texi b/manual/contrib.texi
index 0da6dcb..dd28e92 100644
--- a/manual/contrib.texi
+++ b/manual/contrib.texi
@@ -265,7 +265,8 @@ version 3 (@code{i386-sequent-bsd}).
@item
Chris Metcalf for the port to Linux/Tile
(@code{tilegx-@var{anything}-linux} and
-@code{tilepro-@var{anything}-linux}).
+@code{tilepro-@var{anything}-linux}) and support for the generic Linux
+kernel syscall interface used by several newer ports.
@item
David Miller for contributing the port to Linux/Sparc
diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
index f911b20..19411c1 100755
--- a/scripts/build-many-glibcs.py
+++ b/scripts/build-many-glibcs.py
@@ -376,14 +376,6 @@ class Context(object):
'arch': 'sparcv9',
'ccopts': '-m32 -mlong-double-128',
'cfg': ['--disable-multi-arch']}])
- self.add_config(arch='tilegx',
- os_name='linux-gnu',
- glibcs=[{},
- {'variant': '32', 'ccopts': '-m32'}])
- self.add_config(arch='tilegxbe',
- os_name='linux-gnu',
- glibcs=[{},
- {'variant': '32', 'ccopts': '-m32'}])
self.add_config(arch='x86_64',
os_name='linux-gnu',
gcc_cfg=['--with-multilib-list=m64,m32,mx32'],
@@ -1271,7 +1263,6 @@ class Config(object):
'riscv64': 'riscv',
'sh': 'sh',
'sparc': 'sparc',
- 'tile': 'tile',
'x86_64': 'x86'}
linux_arch = None
for k in arch_map:
diff --git a/sysdeps/tile/Implies b/sysdeps/tile/Implies
deleted file mode 100644
index cb17441..0000000
--- a/sysdeps/tile/Implies
+++ /dev/null
@@ -1,4 +0,0 @@
-ieee754/soft-fp
-ieee754/dbl-64/wordsize-64
-ieee754/dbl-64
-ieee754/flt-32
diff --git a/sysdeps/tile/Makefile b/sysdeps/tile/Makefile
deleted file mode 100644
index dcb8777..0000000
--- a/sysdeps/tile/Makefile
+++ /dev/null
@@ -1,49 +0,0 @@
-include $(common-objpfx)cflags-mcmodel-large.mk
-
-# Check for gcc to support the command-line switch, and for
-# binutils to support the hwN_plt() assembly operators and relocations.
-$(common-objpfx)cflags-mcmodel-large.mk: $(common-objpfx)config.make
- mcmodel=no; \
- (echo 'int main() { return getuid(); }' | \
- $(CC) -o /dev/null -xc - -mcmodel=large -fpic) && mcmodel=yes; \
- echo "cflags-mcmodel-large = $$mcmodel" > $@
-
-ifeq (yes,$(cflags-mcmodel-large))
-
-ifeq ($(subdir),csu)
-# elf-init.c is in libc_nonshared.o (the end of the shared object) but
-# must reach the _init symbol at the very start of the shared object.
-CFLAGS-elf-init.c += -mcmodel=large
-
-# __gmon_start__ is at the very start of the shared object when linked
-# with profiling, but calls to libc.so via the PLT at the very end.
-CFLAGS-gmon-start.c += -mcmodel=large
-endif
-
-else
-
-# Don't try to compile assembly code with hwN_plt() directives if the
-# toolchain doesn't support -mcmodel=large.
-ifeq ($(subdir),csu)
-CPPFLAGS-start.S += -DNO_PLT_PCREL
-CPPFLAGS-crti.S += -DNO_PLT_PCREL
-endif
-ifeq ($(subdir),nptl)
-CPPFLAGS-pt-crti.S += -DNO_PLT_PCREL
-endif
-
-endif
-
-# 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),gmon)
-sysdep_routines += _mcount
-endif
-
-ifeq ($(subdir),elf)
-# Extra shared linker files to link only into dl-allobjs.so.
-sysdep-rtld-routines += dl-start __tls_get_addr
-endif
diff --git a/sysdeps/tile/Versions b/sysdeps/tile/Versions
deleted file mode 100644
index b275d7f..0000000
--- a/sysdeps/tile/Versions
+++ /dev/null
@@ -1,6 +0,0 @@
-libc {
- GLIBC_2.12 {
- # name requested by gcc community.
- __mcount;
- }
-}
diff --git a/sysdeps/tile/__longjmp.S b/sysdeps/tile/__longjmp.S
deleted file mode 100644
index 17d82b9..0000000
--- a/sysdeps/tile/__longjmp.S
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <jmpbuf-offsets.h>
-#include <asm-syntax.h>
-#include <arch/spr_def.h>
-
-/* PL to return to via iret in longjmp */
-#define RETURN_PL 0
-
- .text
-ENTRY (__longjmp)
- FEEDBACK_ENTER(__longjmp)
-
-#define RESTORE(r) { ld r, r0 ; ADDI_PTR r0, r0, REGSIZE }
- FOR_EACH_CALLEE_SAVED_REG(RESTORE)
-
- /* Make longjmp(buf, 0) return "1" instead.
- At the same time, construct our iret context; we set ICS so
- we can validly load EX_CONTEXT for iret without being
- interrupted halfway through. */
- {
- ld r2, r0 /* retrieve ICS bit from jmp_buf */
- movei r3, 1
- cmpeqi r0, r1, 0
- }
- {
- mtspr INTERRUPT_CRITICAL_SECTION, r3
- shli r2, r2, SPR_EX_CONTEXT_0_1__ICS_SHIFT
- }
- {
- mtspr EX_CONTEXT_0_0, lr
- ori r2, r2, RETURN_PL
- }
- {
- or r0, r1, r0
- mtspr EX_CONTEXT_0_1, r2
- }
- iret
- jrp lr /* Keep the backtracer happy. */
-END (__longjmp)
diff --git a/sysdeps/tile/__tls_get_addr.S b/sysdeps/tile/__tls_get_addr.S
deleted file mode 100644
index 078f377..0000000
--- a/sysdeps/tile/__tls_get_addr.S
+++ /dev/null
@@ -1,141 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <tls.h>
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
-#define LOG_SIZEOF_DTV_T 4
-#else
-#define LOG_SIZEOF_DTV_T 3
-#endif
-
-/* On entry, r0 points to two words, the module and the offset.
- On return, r0 holds the pointer to the relevant TLS memory.
- Only registers r25..r29 are clobbered by the call. */
-
- .text
-ENTRY (__tls_get_addr)
- {
- lnk r25
- ADDI_PTR r27, tp, DTV_OFFSET
- }
-.Llnk:
- {
- LD_PTR r27, r27 /* r27 = THREAD_DTV() */
- moveli r26, hw1_last(_rtld_local + TLS_GENERATION_OFFSET - .Llnk)
- }
- shl16insli r26, r26, hw0(_rtld_local + TLS_GENERATION_OFFSET - .Llnk)
- {
- ADD_PTR r25, r25, r26
- LD_PTR r26, r0 /* r26 = ti_module */
- }
- LD_PTR r25, r25 /* r25 = DL(dl_tls_generation) */
- {
- LD_PTR r28, r27 /* r28 = THREAD_DTV()->counter */
- ADDI_PTR r29, r0, __SIZEOF_POINTER__
- }
- {
- LD_PTR r29, r29 /* r29 = ti_offset */
- cmpeq r25, r28, r25 /* r25 nonzero if generation OK */
- shli r28, r26, LOG_SIZEOF_DTV_T /* byte index into dtv array */
- }
- {
- beqz r25, .Lslowpath
- cmpeqi r25, r26, -1 /* r25 nonzero if ti_module invalid */
- }
- {
- bnez r25, .Lslowpath
- ADD_PTR r28, r28, r27 /* pointer into module array */
- }
- LD_PTR r26, r28 /* r26 = module TLS pointer */
- cmpeqi r25, r26, -1 /* check r26 == TLS_DTV_UNALLOCATED */
- bnez r25, .Lslowpath
- {
- ADD_PTR r0, r26, r29
- jrp lr
- }
-
-.Lslowpath:
- {
- st sp, lr
- ADDLI_PTR r29, sp, - (25 * REGSIZE)
- }
- cfi_offset (lr, 0)
- {
- st r29, sp
- ADDLI_PTR sp, sp, - (26 * REGSIZE)
- }
- cfi_def_cfa_offset (26 * REGSIZE)
- ADDI_PTR r29, sp, (2 * REGSIZE)
- { st r29, r1; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r2; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r3; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r4; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r5; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r6; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r7; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r8; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r9; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r10; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r11; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r12; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r13; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r14; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r15; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r16; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r17; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r18; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r19; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r20; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r21; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r22; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r23; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r24; ADDI_PTR r29, r29, REGSIZE }
- .hidden __tls_get_addr_slow
- jal __tls_get_addr_slow
- ADDI_PTR r29, sp, (2 * REGSIZE)
- { ld r1, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r2, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r3, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r4, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r5, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r6, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r7, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r8, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r9, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r10, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r11, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r12, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r13, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r14, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r15, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r16, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r17, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r18, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r19, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r20, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r21, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r22, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r23, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r24, r29; ADDLI_PTR sp, sp, (26 * REGSIZE) }
- cfi_def_cfa_offset (0)
- ld lr, sp
- jrp lr
-END (__tls_get_addr)
diff --git a/sysdeps/tile/_mcount.S b/sysdeps/tile/_mcount.S
deleted file mode 100644
index 9883428..0000000
--- a/sysdeps/tile/_mcount.S
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
- Based on work contributed by David Mosberger (davidm@cs.arizona.edu).
-
- 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/>. */
-
-/* Assembly stub to invoke __mcount_internal(). Compiler-generated
- code calls mcount after executing a function's prologue, placing
- the "lr" register in "r10" for the call. As a result "lr" is the
- function that invoked mcount, and "r10" is mcount's caller's
- caller. However, we have to save all the parameter registers here
- before invoking _mcount_internal. Callee-save and temporary
- registers need no special attention. We save r10 and restore it to
- lr on the way out, to properly handle the case of ENTRY() in
- assembly code, before lr is saved. We use the name __mcount since
- the gcc community prefers using the reserved namespace. */
-
-#include <sysdep.h>
-
- .text
-ENTRY(__mcount)
- {
- st sp, lr
- ADDI_PTR r29, sp, - (12 * REGSIZE)
- }
- cfi_offset (lr, 0)
- {
- ADDI_PTR sp, sp, - (13 * REGSIZE)
- st r29, sp
- ADDI_PTR r29, r29, REGSIZE
- }
- cfi_def_cfa_offset (13 * REGSIZE)
- { st r29, r0; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r1; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r2; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r3; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r4; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r5; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r6; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r7; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r8; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r9; ADDI_PTR r29, r29, REGSIZE }
- { st r29, r10; ADDI_PTR r29, r29, REGSIZE; move r0, r10 }
- {
- move r1, lr
- jal __mcount_internal
- }
- {
- ADDI_PTR r29, sp, (2 * REGSIZE)
- }
- { ld r0, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r1, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r2, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r3, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r4, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r5, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r6, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r7, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r8, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r9, r29; ADDI_PTR r29, r29, REGSIZE }
- { ld r10, r29; ADDI_PTR sp, sp, (13 * REGSIZE) }
- cfi_def_cfa_offset (0)
- {
- ld lr, sp
- }
- {
- move lr, r10
- jrp lr
- }
-END(__mcount)
-
-#undef mcount
-weak_alias (__mcount, _mcount) /* exported in gmon/Versions */
-weak_alias (__mcount, mcount) /* exported in stdlib/Versions */
diff --git a/sysdeps/tile/abort-instr.h b/sysdeps/tile/abort-instr.h
deleted file mode 100644
index 0f57da5..0000000
--- a/sysdeps/tile/abort-instr.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* An instruction which should crash any program is `hlt'. */
-#define ABORT_INSTRUCTION asm ("ill")
diff --git a/sysdeps/tile/atomic-machine.h b/sysdeps/tile/atomic-machine.h
deleted file mode 100644
index 482b460..0000000
--- a/sysdeps/tile/atomic-machine.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#ifndef _ATOMIC_MACHINE_H
-#define _ATOMIC_MACHINE_H 1
-
-#include <stdint.h>
-#include <features.h>
-#include <arch/spr_def.h>
-
-typedef int32_t atomic32_t;
-typedef uint32_t uatomic32_t;
-typedef int_fast32_t atomic_fast32_t;
-typedef uint_fast32_t uatomic_fast32_t;
-
-typedef int64_t atomic64_t;
-typedef uint64_t uatomic64_t;
-typedef int_fast64_t atomic_fast64_t;
-typedef uint_fast64_t uatomic_fast64_t;
-
-typedef intptr_t atomicptr_t;
-typedef uintptr_t uatomicptr_t;
-typedef intmax_t atomic_max_t;
-typedef uintmax_t uatomic_max_t;
-
-#ifdef _LP64
-# define __HAVE_64B_ATOMICS 1
-#else
-/* tilegx32 does have 64-bit atomics, but assumptions in the semaphore
- code mean that unaligned 64-bit atomics will be used if this symbol
- is true, and unaligned atomics are not supported on tile. */
-# define __HAVE_64B_ATOMICS 0
-#endif
-
-#define USE_ATOMIC_COMPILER_BUILTINS 0
-#define ATOMIC_EXCHANGE_USES_CAS 0
-
-/* Pick appropriate 8- or 4-byte instruction. */
-#define __atomic_update(mem, v, op) \
- ((__typeof (*(mem))) (__typeof (*(mem) - *(mem))) \
- ((sizeof (*(mem)) == 8) ? \
- __insn_##op ((void *) (mem), (int64_t) (__typeof((v) - (v))) (v)) : \
- (sizeof (*(mem)) == 4) ? \
- __insn_##op##4 ((void *) (mem), (int32_t) (__typeof ((v) - (v))) (v)) : \
- __atomic_error_bad_argument_size()))
-
-#define atomic_compare_and_exchange_val_acq(mem, n, o) \
- ({ __insn_mtspr (SPR_CMPEXCH_VALUE, (int64_t) (__typeof ((o) - (o))) (o)); \
- __atomic_update (mem, n, cmpexch); })
-#define atomic_exchange_acq(mem, newvalue) \
- __atomic_update (mem, newvalue, exch)
-#define atomic_exchange_and_add(mem, value) \
- __atomic_update (mem, value, fetchadd)
-#define atomic_and_val(mem, mask) \
- __atomic_update (mem, mask, fetchand)
-#define atomic_or_val(mem, mask) \
- __atomic_update (mem, mask, fetchor)
-#define atomic_decrement_if_positive(mem) \
- __atomic_update (mem, -1, fetchaddgez)
-
-/* Barrier macro. */
-#define atomic_full_barrier() __sync_synchronize()
-
-/* APIs with "release" semantics. */
-#define atomic_compare_and_exchange_val_rel(mem, n, o) \
- ({ \
- atomic_full_barrier (); \
- atomic_compare_and_exchange_val_acq ((mem), (n), (o)); \
- })
-#define atomic_exchange_rel(mem, n) \
- ({ \
- atomic_full_barrier (); \
- atomic_exchange_acq ((mem), (n)); \
- })
-
-/* Various macros that should just be synonyms. */
-#define catomic_exchange_and_add atomic_exchange_and_add
-#define atomic_and(mem, mask) ((void) atomic_and_val ((mem), (mask)))
-#define catomic_and atomic_and
-#define atomic_or(mem, mask) ((void) atomic_or_val ((mem), (mask)))
-#define catomic_or atomic_or
-
-/* atomic_bit_test_set in terms of atomic_or_val. */
-#define atomic_bit_test_set(mem, bit) \
- ({ __typeof (*(mem)) __att0_mask = ((__typeof (*(mem))) 1 << (bit)); \
- atomic_or_val ((mem), __att0_mask) & __att0_mask; })
-
-/*
- * This non-existent symbol is called for unsupporrted sizes,
- * indicating a bug in the caller.
- */
-extern int __atomic_error_bad_argument_size(void)
- __attribute__ ((warning ("bad sizeof atomic argument")));
-
-#endif /* _ATOMIC_MACHINE_H */
diff --git a/sysdeps/tile/bits/endian.h b/sysdeps/tile/bits/endian.h
deleted file mode 100644
index 835042a..0000000
--- a/sysdeps/tile/bits/endian.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Set endianness for tile. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#if defined __BIG_ENDIAN__
-# define __BYTE_ORDER __BIG_ENDIAN
-#else
-# define __BYTE_ORDER __LITTLE_ENDIAN
-#endif
diff --git a/sysdeps/tile/bits/fenv.h b/sysdeps/tile/bits/fenv.h
deleted file mode 100644
index 3fe93fe..0000000
--- a/sysdeps/tile/bits/fenv.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#ifndef _FENV_H
-# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-#endif
-
-/* The TILE-Gx hardware does not provide floating-point exception
- handling, and TILEPro does not support any floating-point operations. */
-#define FE_ALL_EXCEPT 0
-
-/* TILE-Gx 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 (if there were any). */
-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 *) -1l)
-
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
-/* 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/tile/bits/link.h b/sysdeps/tile/bits/link.h
deleted file mode 100644
index e78fd62..0000000
--- a/sysdeps/tile/bits/link.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#ifndef _LINK_H
-# error "Never include <bits/link.h> directly; use <link.h> instead."
-#endif
-
-#define __need_int_reg_t
-#include <arch/abi.h>
-
-
-/* Registers for entry into PLT. */
-typedef struct La_tile_regs
-{
- __uint_reg_t lr_reg[10];
-} La_tile_regs;
-
-/* Return values for calls from PLT. */
-typedef struct La_tile_retval
-{
- /* Up to ten registers can be used for a return value (e.g. small struct). */
- __uint_reg_t lrv_reg[10];
-} La_tile_retval;
-
-
-__BEGIN_DECLS
-
-extern ElfW(Addr) la_tile_gnu_pltenter (ElfW(Sym) *__sym, unsigned int __ndx,
- uintptr_t *__refcook,
- uintptr_t *__defcook,
- La_tile_regs *__regs,
- unsigned int *__flags,
- const char *__symname,
- long int *__framesizep);
-extern unsigned int la_tile_gnu_pltexit (ElfW(Sym) *__sym, unsigned int __ndx,
- uintptr_t *__refcook,
- uintptr_t *__defcook,
- const La_tile_regs *__inregs,
- La_tile_retval *__outregs,
- const char *__symname);
-
-__END_DECLS
diff --git a/sysdeps/tile/bits/setjmp.h b/sysdeps/tile/bits/setjmp.h
deleted file mode 100644
index 22e8043..0000000
--- a/sysdeps/tile/bits/setjmp.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-/* Define the machine-dependent type `jmp_buf'. TILE version. */
-#ifndef _BITS_SETJMP_H
-#define _BITS_SETJMP_H 1
-
-#if !defined _SETJMP_H && !defined _PTHREAD_H
-# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
-#endif
-
-#ifndef _ASM
-
-#define __need_int_reg_t
-#include <arch/abi.h>
-
-typedef __uint_reg_t __jmp_buf[32];
-
-#endif
-
-#endif /* bits/setjmp.h */
diff --git a/sysdeps/tile/bits/wordsize.h b/sysdeps/tile/bits/wordsize.h
deleted file mode 100644
index 9dc4da5..0000000
--- a/sysdeps/tile/bits/wordsize.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Determine the wordsize from the preprocessor defines. */
-
-#ifdef __LP64__
-# define __WORDSIZE 64
-# define __WORDSIZE_TIME64_COMPAT32 1
-#else
-# define __WORDSIZE 32
-# define __WORDSIZE_TIME64_COMPAT32 0
-# define __WORDSIZE32_SIZE_ULONG 0
-# define __WORDSIZE32_PTRDIFF_LONG 0
-#endif
diff --git a/sysdeps/tile/bsd-_setjmp.S b/sysdeps/tile/bsd-_setjmp.S
deleted file mode 100644
index 4e6a2da..0000000
--- a/sysdeps/tile/bsd-_setjmp.S
+++ /dev/null
@@ -1 +0,0 @@
-/* _setjmp is in setjmp.S */
diff --git a/sysdeps/tile/bsd-setjmp.S b/sysdeps/tile/bsd-setjmp.S
deleted file mode 100644
index 1da848d..0000000
--- a/sysdeps/tile/bsd-setjmp.S
+++ /dev/null
@@ -1 +0,0 @@
-/* setjmp is in setjmp.S */
diff --git a/sysdeps/tile/bzero.S b/sysdeps/tile/bzero.S
deleted file mode 100644
index c53f363..0000000
--- a/sysdeps/tile/bzero.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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>
-
- .text
-ENTRY(__bzero)
- FEEDBACK_ENTER(__bzero)
- {
- move r2, r1
- move r1, zero
- }
- j __memset
-END(__bzero)
-weak_alias (__bzero, bzero)
diff --git a/sysdeps/tile/configure b/sysdeps/tile/configure
deleted file mode 100644
index 534c7db..0000000
--- a/sysdeps/tile/configure
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
- # Local configure fragment for sysdeps/tile.
-
-# We can always access static and hidden symbols in a position independent way.
-$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-
-# work around problem with autoconf and empty lines at the end of files
diff --git a/sysdeps/tile/configure.ac b/sysdeps/tile/configure.ac
deleted file mode 100644
index 6e246a3..0000000
--- a/sysdeps/tile/configure.ac
+++ /dev/null
@@ -1,6 +0,0 @@
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/tile.
-
-# We can always access static and hidden symbols in a position independent way.
-AC_DEFINE(PI_STATIC_AND_HIDDEN)
-# work around problem with autoconf and empty lines at the end of files
diff --git a/sysdeps/tile/crti.S b/sysdeps/tile/crti.S
deleted file mode 100644
index 4811395..0000000
--- a/sysdeps/tile/crti.S
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Special .init and .fini section support for tile.
- Copyright (C) 2012-2018 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
- <http://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>
-#include <sysdep.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 8
- .globl _init
- .type _init, @function
-_init:
- {
- move r29, sp
- ADDI_PTR r28, sp, -REGSIZE
- st sp, lr
- }
- ADDI_PTR sp, sp, -(2 * REGSIZE)
- st r28, r29
-#if PREINIT_FUNCTION_WEAK
- lnk r2
-0:
- moveli r1, hw2_last(_GLOBAL_OFFSET_TABLE_ - 0b)
- {
- shl16insli r1, r1, hw1(_GLOBAL_OFFSET_TABLE_ - 0b)
- moveli r0, hw1_last_got(PREINIT_FUNCTION)
- }
- {
- shl16insli r1, r1, hw0(_GLOBAL_OFFSET_TABLE_ - 0b)
- shl16insli r0, r0, hw0_got(PREINIT_FUNCTION)
- }
- ADD_PTR r0, r0, r1
- ADD_PTR r0, r0, r2
- LD_PTR r0, r0
- beqz r0, .Lno_weak_fn
- jalr r0
-#elif !defined(NO_PLT_PCREL)
- /* Since we are calling from the start of the object to the PLT,
- call by loading the full address into a register. */
- lnk r2
-0:
- moveli r0, hw2_last_plt(PREINIT_FUNCTION - 0b)
- shl16insli r0, r0, hw1_plt(PREINIT_FUNCTION - 0b)
- shl16insli r0, r0, hw0_plt(PREINIT_FUNCTION - 0b)
- add r0, r0, r2
- jalr r0
-#else
- jal plt(PREINIT_FUNCTION)
-#endif
-.Lno_weak_fn:
-
- .section .fini,"ax",@progbits
- .align 8
- .globl _fini
- .type _fini, @function
-_fini:
- {
- move r29, sp
- ADDI_PTR r28, sp, -REGSIZE
- st sp, lr
- }
- ADDI_PTR sp, sp, -(2 * REGSIZE)
- st r28, r29
diff --git a/sysdeps/tile/crtn.S b/sysdeps/tile/crtn.S
deleted file mode 100644
index 7168418..0000000
--- a/sysdeps/tile/crtn.S
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Special .init and .fini section support for tile.
- Copyright (C) 2012-2018 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
- <http://www.gnu.org/licenses/>. */
-
-/* crtn.S puts function epilogues in the .init and .fini sections
- corresponding to the prologues in crti.S. */
-
-#include <sysdep.h>
-
- .section .init,"ax",@progbits
- ADDI_PTR r29, sp, (2 * REGSIZE)
- {
- ADDI_PTR sp, sp, (2 * REGSIZE)
- ld lr, r29
- }
- jrp lr
-
- .section .fini,"ax",@progbits
- ADDI_PTR r29, sp, (2 * REGSIZE)
- {
- ADDI_PTR sp, sp, (2 * REGSIZE)
- ld lr, r29
- }
- jrp lr
diff --git a/sysdeps/tile/dl-lookupcfg.h b/sysdeps/tile/dl-lookupcfg.h
deleted file mode 100644
index 87a6ebe..0000000
--- a/sysdeps/tile/dl-lookupcfg.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#define DL_UNMAP_IS_SPECIAL
-
-#include_next <dl-lookupcfg.h>
-
-struct link_map;
-
-void _dl_unmap (struct link_map *map);
-
-#define DL_UNMAP(map) _dl_unmap (map)
diff --git a/sysdeps/tile/dl-machine.h b/sysdeps/tile/dl-machine.h
deleted file mode 100644
index d615447..0000000
--- a/sysdeps/tile/dl-machine.h
+++ /dev/null
@@ -1,692 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
- Based on work contributed by by Carl Pederson & Martin Schwidefsky.
-
- 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/>. */
-
-#ifndef dl_machine_h
-#define dl_machine_h
-
-#define ELF_MACHINE_NAME "tilegx"
-
-#include <sys/param.h>
-#include <string.h>
-#include <link.h>
-#include <bits/wordsize.h>
-#include <arch/icache.h>
-#include <arch/opcode.h>
-
-/* Return nonzero iff ELF header is compatible with the running host. */
-static inline int
-elf_machine_matches_host (const ElfW(Ehdr) *ehdr)
-{
- if (ehdr->e_machine != EM_TILEGX)
- return 0;
-#if __WORDSIZE == 32
- return (ehdr->e_ident[EI_CLASS] == ELFCLASS32);
-#else
- return (ehdr->e_ident[EI_CLASS] == ELFCLASS64);
-#endif
-}
-
-
-/* Return the link-time address of _DYNAMIC. Conveniently, this is the
- first element of the GOT. This must be inlined in a function which
- uses global data. */
-
-static inline ElfW(Addr)
-elf_machine_dynamic (void)
-{
- ElfW(Addr) *got;
-
- ElfW(Addr) tmp;
- asm( " { lnk %0; moveli %1, hw2_last(_GLOBAL_OFFSET_TABLE_ - 1f) }\n"
- "1: shl16insli %1, %1, hw1(_GLOBAL_OFFSET_TABLE_ - 1b)\n"
- " shl16insli %1, %1, hw0(_GLOBAL_OFFSET_TABLE_ - 1b)\n"
- " add %0, %0, %1"
- : "=r" (got), "=r" (tmp));
-
- return *got;
-}
-
-
-/* Return the run-time load address of the shared object. */
-static inline ElfW(Addr)
-elf_machine_load_address (void)
-{
- ElfW(Addr) *got;
- ElfW(Addr) dynamic;
- ElfW(Addr) tmp;
-
- asm( " lnk %2\n"
- "1: {\n"
- " moveli %0, hw2_last(_GLOBAL_OFFSET_TABLE_ - 1b)\n"
- " moveli %1, hw2_last(_DYNAMIC - 1b)\n"
- " }\n"
- " {\n"
- " shl16insli %0, %0, hw1(_GLOBAL_OFFSET_TABLE_ - 1b)\n"
- " shl16insli %1, %1, hw1(_DYNAMIC - 1b)\n"
- " }\n"
- " {\n"
- " shl16insli %0, %0, hw0(_GLOBAL_OFFSET_TABLE_ - 1b)\n"
- " shl16insli %1, %1, hw0(_DYNAMIC - 1b)\n"
- " }\n"
- " {\n"
- " add %0, %0, %2\n"
- " add %1, %1, %2\n"
- " }"
- : "=r" (got), "=r" (dynamic), "=r" (tmp));
-
- return dynamic - *got;
-}
-
-/* Flush some range of the instruction cache. If invoked prior to
- actually setting dl_pagesize, we conservatively use 4KB, which
- is the smallest page size we could plausibly be running with. */
-static inline void
-_dl_flush_icache (const void *addr, unsigned long size)
-{
- invalidate_icache (addr, size, GLRO(dl_pagesize) ? : 4096);
-}
-
-/* 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__ ((unused))
-elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
-{
- ElfW(Addr) *gotplt;
- extern void _dl_runtime_resolve (ElfW(Word));
- extern void _dl_runtime_profile (ElfW(Word));
-
- if (l->l_info[DT_JMPREL] && lazy)
- {
- gotplt = (ElfW(Addr) *) D_PTR (l, l_info[DT_PLTGOT]);
-
- /* The GOT entries for functions in the PLT have not yet been filled
- in. Their initial contents will arrange when called to put in
- registers an offset into the .rel.plt section, and gotplt[0], then
- jump to gotplt[1]. */
-
- /* Identify this shared object. */
- gotplt[0] = (ElfW(Addr)) l;
-
- /* The gotplt[1] entry contains the address of a function which gets
- called to get the address of a so far unresolved function and jump
- to it. The profiling extension of the dynamic linker allows to
- intercept the calls to collect information. In this case we don't
- store the address in the GOTPLT so that all future calls also end
- in this function. */
- if (__builtin_expect (profile, 0))
- {
- gotplt[1] = (ElfW(Addr)) &_dl_runtime_profile;
-
- if (GLRO(dl_profile) != NULL
- && _dl_name_match_p (GLRO(dl_profile), l))
- /* This is the object we are looking for. Say that we really
- want profiling and the timers are started. */
- GL(dl_profile_map) = l;
- }
- else
- /* This function will get called to fix up the GOTPLT entry
- indicated by the offset on the stack, and then jump to the
- resolved address. */
- gotplt[1] = (ElfW(Addr)) &_dl_runtime_resolve;
- }
-
- return lazy;
-}
-
-#if __WORDSIZE == 32
-/* Mask identifying addresses reserved for the user program,
- where the dynamic linker should not map anything. */
-#define ELF_MACHINE_USER_ADDRESS_MASK 0xf8000000UL
-#endif
-
-/* 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 (".globl _dl_start");
-
-#ifndef RTLD_START_SPECIAL_INIT
-#define RTLD_START_SPECIAL_INIT /* nothing */
-#endif
-
-/* Wrap a generic Tilera relocation type. */
-#define R_TILE(x) R_TILEGX_##x
-#define __R_TILE_TLS(x,c) R_TILEGX_TLS_##x##c
-#define _R_TILE_TLS(x,c) __R_TILE_TLS(x,c)
-#define R_TILE_TLS(x) _R_TILE_TLS(x,__ELF_NATIVE_CLASS)
-
-/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or
- TLS variable, so undefined references 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_TILE(JMP_SLOT) || (type) == R_TILE_TLS(DTPMOD) \
- || (type) == R_TILE_TLS(DTPOFF) || (type) == R_TILE_TLS(TPOFF)) \
- * ELF_RTYPE_CLASS_PLT) \
- | (((type) == R_TILE(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_TILE(JMP_SLOT)
-
-/* TILE never uses Elf32_Rel relocations. */
-#define ELF_MACHINE_NO_REL 1
-#define ELF_MACHINE_NO_RELA 0
-
-/* We define an initialization functions. This is called very early in
- _dl_sysdep_start. */
-#define DL_PLATFORM_INIT dl_platform_init ()
-
-static inline void __attribute__ ((unused))
-dl_platform_init (void)
-{
- if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0')
- /* Avoid an empty string which would disturb us. */
- GLRO(dl_platform) = NULL;
-}
-
-static inline ElfW(Addr)
-elf_machine_fixup_plt (struct link_map *map, lookup_t t,
- const ElfW(Sym) *refsym, const ElfW(Sym) *sym,
- const ElfW(Rela) *reloc,
- ElfW(Addr) *reloc_addr, ElfW(Addr) value)
-{
- return *reloc_addr = value;
-}
-
-/* Return the final value of a plt relocation. */
-static inline ElfW(Addr)
-elf_machine_plt_value (struct link_map *map, const ElfW(Rela) *reloc,
- ElfW(Addr) value)
-{
- return value;
-}
-
-/* Support notifying the simulator about new objects. */
-void _dl_after_load (struct link_map *l);
-#define DL_AFTER_LOAD _dl_after_load
-
-/* Names of the architecture-specific auditing callback functions. */
-#define ARCH_LA_PLTENTER tile_gnu_pltenter
-#define ARCH_LA_PLTEXIT tile_gnu_pltexit
-
-#endif /* !dl_machine_h */
-
-
-#ifdef RESOLVE_MAP
-
-struct reloc_howto
-{
- /* Right shift operand by this number of bits. */
- unsigned char right_shift;
-
- /* If nonzero, this is updating a code bundle. */
- unsigned char is_bundle_update;
-
- /* If nonzero, subtract the containing address from the address. */
- unsigned char is_pcrel;
-
- /* Size in bytes, or 0 if this table entry should be ignored. */
- unsigned char byte_size;
-};
-
-/* Relocation information. Cannot contain create_* function pointers
- because then the table would not be position-independent. */
-static const struct reloc_howto howto[] =
-{
-#if __WORDSIZE == 32
- /* The GX -m32 loader only handles 32-bit types, so it will be confused
- by shifts larger than that. We convert them to just sign-extend;
- they usually indicate a program bug or missed optimization, but we
- have to handle them correctly anyway. */
-# define S32 31
-# define S48 31
-#else
-# define S32 32
-# define S48 48
-#endif
-
- /* R_TILEGX_NONE */ { 0, 0, 0, 0 },
- /* R_TILEGX_64 */ { 0, 0, 0, 8 },
- /* R_TILEGX_32 */ { 0, 0, 0, 4 },
- /* R_TILEGX_16 */ { 0, 0, 0, 2 },
- /* R_TILEGX_8 */ { 0, 0, 0, 1 },
- /* R_TILEGX_64_PCREL */ { 0, 0, 1, 8 },
- /* R_TILEGX_32_PCREL */ { 0, 0, 1, 4 },
- /* R_TILEGX_16_PCREL */ { 0, 0, 1, 2 },
- /* R_TILEGX_8_PCREL */ { 0, 0, 1, 1 },
- /* R_TILEGX_HW0 */ { 0, 0, 0, 0 },
- /* R_TILEGX_HW1 */ { 16, 0, 0, 0 },
- /* R_TILEGX_HW2 */ { S32, 0, 0, 0 },
- /* R_TILEGX_HW3 */ { S48, 0, 0, 0 },
- /* R_TILEGX_HW0_LAST */ { 0, 0, 0, 0 },
- /* R_TILEGX_HW1_LAST */ { 16, 0, 0, 0 },
- /* R_TILEGX_HW2_LAST */ { S32, 0, 0, 0 },
- /* R_TILEGX_COPY */ { 0, 0, 0, 0 },
- /* R_TILEGX_GLOB_DAT */ { 0, 0, 0, 8 },
- /* R_TILEGX_JMP_SLOT */ { 0, 0, 0, 0 },
- /* R_TILEGX_RELATIVE */ { 0, 0, 0, 0 },
- /* R_TILEGX_BROFF_X1 */ { 3, 1, 1, 8 },
- /* R_TILEGX_JUMPOFF_X1 */ { 3, 1, 1, 8 },
- /* R_TILEGX_JUMPOFF_X1_PLT */ { 3, 1, 1, 8 },
- /* R_TILEGX_IMM8_X0 */ { 0, 1, 0, 8 },
- /* R_TILEGX_IMM8_Y0 */ { 0, 1, 0, 8 },
- /* R_TILEGX_IMM8_X1 */ { 0, 1, 0, 8 },
- /* R_TILEGX_IMM8_Y1 */ { 0, 1, 0, 8 },
- /* R_TILEGX_DEST_IMM8_X1 */ { 0, 1, 0, 8 },
- /* R_TILEGX_MT_IMM14_X1 */ { 0, 1, 0, 8 },
- /* R_TILEGX_MF_IMM14_X1 */ { 0, 1, 0, 8 },
- /* R_TILEGX_MMSTART_X0 */ { 0, 1, 0, 8 },
- /* R_TILEGX_MMEND_X0 */ { 0, 1, 0, 8 },
- /* R_TILEGX_SHAMT_X0 */ { 0, 1, 0, 8 },
- /* R_TILEGX_SHAMT_X1 */ { 0, 1, 0, 8 },
- /* R_TILEGX_SHAMT_Y0 */ { 0, 1, 0, 8 },
- /* R_TILEGX_SHAMT_Y1 */ { 0, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW0 */ { 0, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW0 */ { 0, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW1 */ { 16, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW1 */ { 16, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW2 */ { S32, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW2 */ { S32, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW3 */ { S48, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW3 */ { S48, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW0_LAST */ { 0, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW0_LAST */ { 0, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW1_LAST */ { 16, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW1_LAST */ { 16, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW2_LAST */ { S32, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW2_LAST */ { S32, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW0_PCREL */ { 0, 1, 1, 8 },
- /* R_TILEGX_IMM16_X1_HW0_PCREL */ { 0, 1, 1, 8 },
- /* R_TILEGX_IMM16_X0_HW1_PCREL */ { 16, 1, 1, 8 },
- /* R_TILEGX_IMM16_X1_HW1_PCREL */ { 16, 1, 1, 8 },
- /* R_TILEGX_IMM16_X0_HW2_PCREL */ { S32, 1, 1, 8 },
- /* R_TILEGX_IMM16_X1_HW2_PCREL */ { S32, 1, 1, 8 },
- /* R_TILEGX_IMM16_X0_HW3_PCREL */ { S48, 1, 1, 8 },
- /* R_TILEGX_IMM16_X1_HW3_PCREL */ { S48, 1, 1, 8 },
- /* R_TILEGX_IMM16_X0_HW0_LAST_PCREL */ { 0, 1, 1, 8 },
- /* R_TILEGX_IMM16_X1_HW0_LAST_PCREL */ { 0, 1, 1, 8 },
- /* R_TILEGX_IMM16_X0_HW1_LAST_PCREL */ { 16, 1, 1, 8 },
- /* R_TILEGX_IMM16_X1_HW1_LAST_PCREL */ { 16, 1, 1, 8 },
- /* R_TILEGX_IMM16_X0_HW2_LAST_PCREL */ { S32, 1, 1, 8 },
- /* R_TILEGX_IMM16_X1_HW2_LAST_PCREL */ { S32, 1, 1, 8 },
- /* R_TILEGX_IMM16_X0_HW0_GOT */ { 0, 1, 0, 0 },
- /* R_TILEGX_IMM16_X1_HW0_GOT */ { 0, 1, 0, 0 },
- /* R_TILEGX_IMM16_X0_HW1_GOT */ { 16, 1, 0, 0 },
- /* R_TILEGX_IMM16_X1_HW1_GOT */ { 16, 1, 0, 0 },
- /* R_TILEGX_IMM16_X0_HW2_GOT */ { S32, 1, 0, 0 },
- /* R_TILEGX_IMM16_X1_HW2_GOT */ { S32, 1, 0, 0 },
- /* R_TILEGX_IMM16_X0_HW3_GOT */ { S48, 1, 0, 0 },
- /* R_TILEGX_IMM16_X1_HW3_GOT */ { S48, 1, 0, 0 },
- /* R_TILEGX_IMM16_X0_HW0_LAST_GOT */ { 0, 1, 0, 0 },
- /* R_TILEGX_IMM16_X1_HW0_LAST_GOT */ { 0, 1, 0, 0 },
- /* R_TILEGX_IMM16_X0_HW1_LAST_GOT */ { 16, 1, 0, 0 },
- /* R_TILEGX_IMM16_X1_HW1_LAST_GOT */ { 16, 1, 0, 0 },
- /* R_TILEGX_IMM16_X0_HW2_LAST_GOT */ { S32, 1, 0, 0 },
- /* R_TILEGX_IMM16_X1_HW2_LAST_GOT */ { S32, 1, 0, 0 },
- /* R_TILEGX_IMM16_X0_HW0_TLS_GD */ { 0, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW0_TLS_GD */ { 0, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW1_TLS_GD */ { 16, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW1_TLS_GD */ { 16, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW2_TLS_GD */ { S32, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW2_TLS_GD */ { S32, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW3_TLS_GD */ { S48, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW3_TLS_GD */ { S48, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD */{ 0, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD */{ 0, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD */{ 16, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD */{ 16, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD */{ S32, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD */{ S32, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW0_TLS_IE */ { 0, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW0_TLS_IE */ { 0, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW1_TLS_IE */ { 16, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW1_TLS_IE */ { 16, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW2_TLS_IE */ { S32, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW2_TLS_IE */ { S32, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW3_TLS_IE */ { S48, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW3_TLS_IE */ { S48, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE */{ 0, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE */{ 0, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE */{ 16, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE */{ 16, 1, 0, 8 },
- /* R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE */{ S32, 1, 0, 8 },
- /* R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE */{ S32, 1, 0, 8 },
- /* R_TILEGX_TLS_DTPMOD64 */ { 0, 0, 0, 0 },
- /* R_TILEGX_TLS_DTPOFF64 */ { 0, 0, 0, 0 },
- /* R_TILEGX_TLS_TPOFF64 */ { 0, 0, 0, 0 },
- /* R_TILEGX_TLS_DTPMOD32 */ { 0, 0, 0, 0 },
- /* R_TILEGX_TLS_DTPOFF32 */ { 0, 0, 0, 0 },
- /* R_TILEGX_TLS_TPOFF32 */ { 0, 0, 0, 0 }
-};
-
-#if __ELF_NATIVE_CLASS == 32
-#define ELFW_R_TYPE ELF32_R_TYPE
-#define ELFW_ST_TYPE ELF32_ST_TYPE
-#else
-#define ELFW_R_TYPE ELF64_R_TYPE
-#define ELFW_ST_TYPE ELF64_ST_TYPE
-#endif
-
-/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
- MAP is the object containing the reloc. */
-
-auto inline void __attribute__ ((always_inline))
-elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
- const ElfW(Sym) *sym, const struct r_found_version *version,
- void *const reloc_addr_arg, int skip_ifunc)
-{
- ElfW(Addr) *const reloc_addr = reloc_addr_arg;
- const unsigned int r_type = ELFW_R_TYPE (reloc->r_info);
-
-#if !defined RTLD_BOOTSTRAP || !defined HAVE_Z_COMBRELOC
- if (__builtin_expect (r_type == R_TILE(RELATIVE), 0))
- {
-# if !defined RTLD_BOOTSTRAP && !defined HAVE_Z_COMBRELOC
- /* This is defined in rtld.c, but nowhere in the static libc.a;
- make the reference weak so static programs can still link.
- This declaration cannot be done when compiling rtld.c
- (i.e. #ifdef RTLD_BOOTSTRAP) because rtld.c contains the
- common defn for _dl_rtld_map, which is incompatible with a
- weak decl in the same file. */
-# ifndef SHARED
- weak_extern (GL(dl_rtld_map));
-# endif
- if (map != &GL(dl_rtld_map)) /* Already done in rtld itself. */
-# endif
- *reloc_addr = map->l_addr + reloc->r_addend;
- return;
- }
-#endif
-
- if (__builtin_expect (r_type == R_TILE(NONE), 0))
- return;
-
-#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
- const ElfW(Sym) *const refsym = sym;
-#endif
- struct link_map *sym_map = RESOLVE_MAP (&sym, version, r_type);
- ElfW(Addr) value;
-
- if (sym == NULL)
- value = 0;
- else if (ELFW_ST_TYPE (sym->st_info) == STT_SECTION)
- value = map->l_addr; /* like a RELATIVE reloc */
- else
- value = SYMBOL_ADDRESS (sym_map, sym, true);
-
- if (sym != NULL
- && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0)
- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)
- && __builtin_expect (!skip_ifunc, 1))
- value = ((Elf64_Addr (*) (void)) value) ();
-
- switch (r_type)
- {
- case R_TILE(JMP_SLOT):
- elf_machine_fixup_plt (map, 0, 0, 0, reloc, reloc_addr,
- value + reloc->r_addend);
- return;
-
-#ifndef RESOLVE_CONFLICT_FIND_MAP
- case R_TILE_TLS(DTPMOD):
-# ifdef RTLD_BOOTSTRAP
- /* During startup the dynamic linker is always the module
- with index 1.
- XXX If this relocation is necessary move before RESOLVE
- call. */
- *reloc_addr = 1;
-# else
- /* Get the information from the link map returned by the
- resolv function. */
- if (sym_map != NULL)
- *reloc_addr = sym_map->l_tls_modid;
-# endif
- return;
- case R_TILE_TLS(DTPOFF):
-# ifndef RTLD_BOOTSTRAP
- /* During relocation all TLS symbols are defined and used.
- Therefore the offset is already correct. */
- if (sym != NULL)
- *reloc_addr = sym->st_value + reloc->r_addend;
-# endif
- return;
- case R_TILE_TLS(TPOFF):
-# ifdef RTLD_BOOTSTRAP
- *reloc_addr = sym->st_value + reloc->r_addend + map->l_tls_offset;
-# else
- if (sym != NULL)
- {
- CHECK_STATIC_TLS (map, sym_map);
- *reloc_addr = (sym->st_value + reloc->r_addend
- + sym_map->l_tls_offset);
- }
-#endif
- return;
-#endif /* use TLS */
-
-#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
- /* Not needed in dl-conflict.c. */
- case R_TILE(COPY):
- if (sym == NULL)
- /* This can happen in trace mode if an object could not be found. */
- return;
- if (__builtin_expect (sym->st_size > refsym->st_size, 0)
- || (__builtin_expect (sym->st_size < refsym->st_size, 0)
- && __builtin_expect (GLRO(dl_verbose), 0)))
- {
- const char *strtab;
-
- strtab = (const char *) 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, strtab + refsym->st_name);
- }
- memcpy (reloc_addr_arg, (void *) value,
- MIN (sym->st_size, refsym->st_size));
- return;
-#endif
- }
-
- /* All remaining relocations must be in the lookup table. */
- const struct reloc_howto *h = &howto[r_type];
- if ((unsigned int) r_type >= sizeof howto / sizeof howto[0] ||
- h->byte_size == 0)
- {
-#if !defined RTLD_BOOTSTRAP || defined _NDEBUG
- /* We add these checks in the version to relocate ld.so only
- if we are still debugging. */
- _dl_reloc_bad_type (map, r_type, 0);
-#endif
- return;
- }
-
- value += reloc->r_addend;
-
- /* The lookup table entry knows how to perform this reloc. */
- if (h->is_pcrel)
- value -= (ElfW(Addr)) reloc_addr;
-
- value = ((long) value) >> h->right_shift;
-
- switch (h->byte_size)
- {
- case 1:
- *(char *) reloc_addr = value;
- return;
- case 2:
- *(short *) reloc_addr = value;
- return;
- case 4:
- *(int *) reloc_addr = value;
- return;
- case 8:
- if (!h->is_bundle_update)
- {
- *(ElfW(Addr) *) reloc_addr = value;
- return;
- }
- }
-
- /* We are updating a bundle, so use the function pointer that
- swizzles the operand bits into the right location. */
-
- tile_bundle_bits *p = (tile_bundle_bits *) reloc_addr;
- tile_bundle_bits bits = *p;
-
-#define MUNGE_SIGNED(func, length) do { \
- bits = ((bits & ~create_##func (-1)) | create_##func (value)); \
- ElfW(Addr) result = get_##func (bits); \
- int signbits = __WORDSIZE - length; \
- result = (long) (result << signbits) >> signbits; \
- if (result != value) \
- _dl_signal_error (0, map->l_name, NULL, \
- "relocation value too large for " #func); \
- } while (0)
-
-#define MUNGE(func) MUNGE_SIGNED(func, __WORDSIZE)
-
-#define MUNGE_NOCHECK(func) \
- bits = ((bits & ~create_##func (-1)) | create_##func (value))
-
- switch (r_type)
- {
- case R_TILEGX_BROFF_X1:
- MUNGE_SIGNED (BrOff_X1, 17);
- break;
- case R_TILEGX_JUMPOFF_X1:
- case R_TILEGX_JUMPOFF_X1_PLT:
- MUNGE_SIGNED (JumpOff_X1, 27);
- break;
- case R_TILEGX_IMM8_X0:
- MUNGE_SIGNED (Imm8_X0, 8);
- break;
- case R_TILEGX_IMM8_Y0:
- MUNGE_SIGNED (Imm8_Y0, 8);
- break;
- case R_TILEGX_IMM8_X1:
- MUNGE_SIGNED (Imm8_X1, 8);
- break;
- case R_TILEGX_IMM8_Y1:
- MUNGE_SIGNED (Imm8_Y1, 8);
- break;
- case R_TILEGX_MT_IMM14_X1:
- MUNGE (MT_Imm14_X1);
- break;
- case R_TILEGX_MF_IMM14_X1:
- MUNGE (MF_Imm14_X1);
- break;
- case R_TILEGX_IMM16_X0_HW0:
- case R_TILEGX_IMM16_X0_HW1:
- case R_TILEGX_IMM16_X0_HW2:
- case R_TILEGX_IMM16_X0_HW3:
- case R_TILEGX_IMM16_X0_HW0_PCREL:
- case R_TILEGX_IMM16_X0_HW1_PCREL:
- case R_TILEGX_IMM16_X0_HW2_PCREL:
- case R_TILEGX_IMM16_X0_HW3_PCREL:
- case R_TILEGX_IMM16_X0_HW0_TLS_GD:
- case R_TILEGX_IMM16_X0_HW0_TLS_IE:
- MUNGE_NOCHECK (Imm16_X0);
- break;
- case R_TILEGX_IMM16_X0_HW0_LAST:
- case R_TILEGX_IMM16_X0_HW1_LAST:
- case R_TILEGX_IMM16_X0_HW2_LAST:
- case R_TILEGX_IMM16_X0_HW0_LAST_PCREL:
- case R_TILEGX_IMM16_X0_HW1_LAST_PCREL:
- case R_TILEGX_IMM16_X0_HW2_LAST_PCREL:
- case R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD:
- case R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
- case R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
- case R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE:
- MUNGE_SIGNED (Imm16_X0, 16);
- break;
- case R_TILEGX_IMM16_X1_HW0:
- case R_TILEGX_IMM16_X1_HW1:
- case R_TILEGX_IMM16_X1_HW2:
- case R_TILEGX_IMM16_X1_HW3:
- case R_TILEGX_IMM16_X1_HW0_PCREL:
- case R_TILEGX_IMM16_X1_HW1_PCREL:
- case R_TILEGX_IMM16_X1_HW2_PCREL:
- case R_TILEGX_IMM16_X1_HW3_PCREL:
- case R_TILEGX_IMM16_X1_HW0_TLS_GD:
- case R_TILEGX_IMM16_X1_HW0_TLS_IE:
- MUNGE_NOCHECK (Imm16_X1);
- break;
- case R_TILEGX_IMM16_X1_HW0_LAST:
- case R_TILEGX_IMM16_X1_HW1_LAST:
- case R_TILEGX_IMM16_X1_HW2_LAST:
- case R_TILEGX_IMM16_X1_HW0_LAST_PCREL:
- case R_TILEGX_IMM16_X1_HW1_LAST_PCREL:
- case R_TILEGX_IMM16_X1_HW2_LAST_PCREL:
- case R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD:
- case R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
- case R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
- case R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE:
- MUNGE_SIGNED (Imm16_X1, 16);
- break;
- case R_TILEGX_MMSTART_X0:
- MUNGE (BFStart_X0);
- break;
- case R_TILEGX_MMEND_X0:
- MUNGE (BFEnd_X0);
- break;
- case R_TILEGX_SHAMT_X0:
- MUNGE (ShAmt_X0);
- break;
- case R_TILEGX_SHAMT_X1:
- MUNGE (ShAmt_X1);
- break;
- case R_TILEGX_SHAMT_Y0:
- MUNGE (ShAmt_Y0);
- break;
- case R_TILEGX_SHAMT_Y1:
- MUNGE (ShAmt_Y1);
- break;
- }
-#undef MUNGE
- *p = bits;
- _dl_flush_icache (p, sizeof (*p));
-}
-
-auto inline void __attribute__ ((always_inline))
-elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
- void *const reloc_addr_arg)
-{
- ElfW(Addr) *const reloc_addr = reloc_addr_arg;
- *reloc_addr = l_addr + reloc->r_addend;
-}
-
-auto inline void __attribute__ ((always_inline))
-elf_machine_lazy_rel (struct link_map *map,
- ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
- int skip_ifunc)
-{
- const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
-
- /* Check for unexpected PLT reloc type. */
- if (__builtin_expect (r_type == R_TILE(JMP_SLOT), 1))
- {
- *(ElfW(Addr) *) (l_addr + reloc->r_offset) += l_addr;
- }
- else
- _dl_reloc_bad_type (map, r_type, 1);
-}
-
-#endif /* RESOLVE_MAP */
diff --git a/sysdeps/tile/dl-runtime.c b/sysdeps/tile/dl-runtime.c
deleted file mode 100644
index 6ad9769..0000000
--- a/sysdeps/tile/dl-runtime.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-/* Like x86_64, we pass the index of the relocation and not its offset.
- In _dl_profile_fixup and _dl_call_pltexit we also use the index.
- Therefore it is wasteful to compute the offset in the trampoline
- just to reverse the operation immediately afterwards. */
-#define reloc_offset reloc_arg * sizeof (PLTREL)
-#define reloc_index reloc_arg
-
-#include <elf/dl-runtime.c>
-
-#include <sys/mman.h>
-#include <arch/sim.h>
-#include <dl-unmap-segments.h>
-
-/* Like realpath(), but simplified: no dynamic memory use, no lstat(),
- no set_errno(), no valid "rpath" on error, etc. This handles some
- simple cases where the simulator might not have a valid entry for
- a loaded Elf object, in particular dlopen() with a relative path.
- For this relatively rare case, one could also imagine using
- link_map.l_origin to avoid the getcwd() here, but the simpler code
- here seems like a better solution. */
-static char *
-dl_realpath (const char *name, char *rpath)
-{
- char *dest;
- const char *start, *end;
-
- if (name[0] != '/')
- {
- if (!__getcwd (rpath, PATH_MAX))
- return NULL;
- dest = __rawmemchr (rpath, '\0');
- }
- else
- {
- rpath[0] = '/';
- dest = rpath + 1;
- }
-
- for (start = end = name; *start; start = end)
- {
- /* Skip sequence of multiple path-separators. */
- while (*start == '/')
- ++start;
-
- /* Find end of path component. */
- for (end = start; *end && *end != '/'; ++end)
- /* Nothing. */;
-
- if (end - start == 0)
- break;
- else if (end - start == 1 && start[0] == '.')
- /* nothing */;
- else if (end - start == 2 && start[0] == '.' && start[1] == '.')
- {
- /* Back up to previous component, ignore if at root already. */
- if (dest > rpath + 1)
- while ((--dest)[-1] != '/');
- }
- else
- {
- if (dest[-1] != '/')
- *dest++ = '/';
-
- if (dest + (end - start) >= rpath + PATH_MAX)
- return NULL;
-
- dest = __mempcpy (dest, start, end - start);
- *dest = '\0';
- }
- }
- if (dest > rpath + 1 && dest[-1] == '/')
- --dest;
- *dest = '\0';
-
- return rpath;
-}
-
-/* Support notifying the simulator about new objects. */
-void
-_dl_after_load (struct link_map *l)
-{
- int shift;
- char pathbuf[PATH_MAX];
- char *path;
-
- /* Don't bother if not in the simulator. */
- if (__insn_mfspr (SPR_SIM_CONTROL) == 0)
- return;
-
-#define DLPUTC(c) __insn_mtspr (SPR_SIM_CONTROL, \
- (SIM_CONTROL_DLOPEN \
- | ((c) << _SIM_CONTROL_OPERATOR_BITS)))
-
- /* Write the library address in hex. */
- DLPUTC ('0');
- DLPUTC ('x');
- for (shift = (int) sizeof (unsigned long) * 8 - 4; shift >= 0; shift -= 4)
- DLPUTC ("0123456789abcdef"[(l->l_map_start >> shift) & 0xF]);
- DLPUTC (':');
-
- /* Write the library path, including the terminating '\0'. */
- path = dl_realpath (l->l_name, pathbuf) ?: l->l_name;
- for (size_t i = 0;; i++)
- {
- DLPUTC (path[i]);
- if (path[i] == '\0')
- break;
- }
-#undef DLPUTC
-}
-
-/* Support notifying the simulator about removed objects prior to munmap(). */
-static void
-sim_dlclose (ElfW(Addr) map_start)
-{
- int shift;
-
- /* Don't bother if not in the simulator. */
- if (__insn_mfspr (SPR_SIM_CONTROL) == 0)
- return;
-
-#define DLPUTC(c) __insn_mtspr (SPR_SIM_CONTROL, \
- (SIM_CONTROL_DLCLOSE \
- | ((c) << _SIM_CONTROL_OPERATOR_BITS)))
-
- /* Write the library address in hex. */
- DLPUTC ('0');
- DLPUTC ('x');
- for (shift = (int) sizeof (unsigned long) * 8 - 4; shift >= 0; shift -= 4)
- DLPUTC ("0123456789abcdef"[(map_start >> shift) & 0xF]);
- DLPUTC ('\0');
-
-#undef DLPUTC
-}
-
-void
-_dl_unmap (struct link_map *map)
-{
- sim_dlclose (map->l_map_start);
- _dl_unmap_segments (map);
-}
diff --git a/sysdeps/tile/dl-start.S b/sysdeps/tile/dl-start.S
deleted file mode 100644
index 5820baf..0000000
--- a/sysdeps/tile/dl-start.S
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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>
-
- /* Get address of "sym" in "reg" assuming r51 holds ".Llink". */
- .macro pic_addr reg, sym
- moveli \reg, hw1_last(\sym - .Llink)
- shl16insli \reg, \reg, hw0(\sym - .Llink)
- ADD_PTR \reg, r51, \reg
- .endm
-
- .text
-ENTRY (_start)
- /* Linux starts us with sp pointing at the conventional Elf layout,
- but we need to allow two 'caller' words for our ABI convention. */
- {
- move r52, sp
- andi sp, sp, -8
- }
- cfi_def_cfa_register (r52)
- {
- /* Point sp at base of ABI area; point r4 to the caller-sp word. */
- ADDI_PTR sp, sp, -(2 * REGSIZE)
- ADDI_PTR r4, sp, -REGSIZE
- }
- {
- /* Save zero for caller sp in our 'caller' save area, and make
- sure lr has a zero value, to limit backtraces. */
- move lr, zero
- st r4, zero
- }
- {
- move r0, r52
- jal _dl_start
- }
- /* Save returned start of user program address for later. */
- move r50, r0
-
- /* See if we were invoked explicitly with the dynamic loader,
- in which case we have to adjust the argument vector. */
- lnk r51; .Llink:
- pic_addr r4, _dl_skip_args
- ld4u r4, r4
- beqzt r4, .Lno_skip
-
- /* Load the argc word at the initial sp and adjust it.
- We basically jump "sp" up over the first few argv entries
- and write "argc" a little higher up in memory, to be the
- base of the new kernel-initialized stack area. */
- LD_PTR r0, r52
- {
- sub r0, r0, r4
- SHL_PTR_ADD r52, r4, r52
- }
- {
- ST_PTR r52, r0
- SHL_PTR_ADD sp, r4, sp
- }
- andi sp, sp, -8
-
-.Lno_skip:
- /* Call_dl_init (_dl_loaded, argc, argv, envp). See elf/start.s
- for the layout of memory here; r52 is pointing to "+0". */
- pic_addr r0, _rtld_local
- {
- LD_PTR r1, r52 /* load argc in r1 */
- ADDLI_PTR r2, r52, __SIZEOF_POINTER__ /* point r2 at argv */
- }
- {
- LD_PTR r0, r0 /* yields _rtld_global._ns_loaded */
- addi r3, r1, 1
- move lr, zero
- }
- {
- SHL_PTR_ADD r3, r3, r2 /* point r3 at envp */
- jal _dl_init
- }
-
- /* Call user program whose address we saved in r50.
- We invoke it just like a static binary, but with _dl_fini
- in r0 so we can distinguish. */
-
- pic_addr r0, _dl_fini
- move lr, zero
- {
- move sp, r52
- jr r50
- }
-
- /* Tell backtracer to give up (_start has no caller). */
- info 2 /* INFO_OP_CANNOT_BACKTRACE */
-
-END (_start)
diff --git a/sysdeps/tile/dl-tls.c b/sysdeps/tile/dl-tls.c
deleted file mode 100644
index 81df8f3..0000000
--- a/sysdeps/tile/dl-tls.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#ifdef SHARED
-/* We provide a fast-path version of __tls_get_addr to allow for
- the normal case to be fast, both by coding the function tightly,
- and more importantly by fixing its register clobber API so the
- compiler can avoid having to set up frames, etc., unnecessarily. */
-#define __tls_get_addr __tls_get_addr_slow
-#endif
-
-#include <elf/dl-tls.c>
diff --git a/sysdeps/tile/dl-tls.h b/sysdeps/tile/dl-tls.h
deleted file mode 100644
index 04c4a82..0000000
--- a/sysdeps/tile/dl-tls.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-
-/* 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;
-
-/* Fast-path function to get a TLS pointer. */
-extern void *__tls_get_addr (tls_index *ti);
-
-/* The thread pointer points to the first static TLS block. */
-#define TLS_TP_OFFSET 0
-
-/* Dynamic thread vector pointers at the start of each TLS block. */
-#define TLS_DTV_OFFSET 0
-
-/* 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)
diff --git a/sysdeps/tile/dl-trampoline.S b/sysdeps/tile/dl-trampoline.S
deleted file mode 100644
index 7669d77..0000000
--- a/sysdeps/tile/dl-trampoline.S
+++ /dev/null
@@ -1,193 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <arch/abi.h>
-
-/* This function is called via the PLT header, which is called
- from an individual PLT entry.
-
- At this point we have several values passed in:
-
- lr: return address to original user code
- r28: the tpnt value to pass to _dl_runtime_resolver
- r29: the PLT index of the invoked jump table entry.
-
- We set up a frame entry that looks like this (in int_reg_t units):
-
- +57: r25 return values from function...
- +56: r24
- [...]
- +33: r1
- +32: r0
- +31: PLT index
- +30: tpnt
- +29: stackframe
- +28: caller lr
- +27: r25 arguments to function...
- +26: r24
- [...]
- +3: r1
- +2: r0
- +1: standard ABI slot (sp)
- +0: standard ABI slot (callee lr)
-
- The entries from "stackframe" up are only used in _dl_profile_resolve.
- We save and restore r0 through r25, rather than the strictly
- architected r0 through r9, to support unusual calling conventions;
- for example, __tls_get_addr takes r0 and returns r0, but promises
- not to clobber r1 through r24 to support its usual fast path. */
-
-#define FRAME_SP (1 * REGSIZE)
-#define FRAME_REGS (2 * REGSIZE)
-#define FRAME_LR (28 * REGSIZE) /* Must follow FRAME_REGS */
-#define FRAME_STACKFRAME (29 * REGSIZE)
-#define FRAME_TPNT (30 * REGSIZE)
-#define FRAME_INDEX (31 * REGSIZE)
-#define FRAME_RETVAL (32 * REGSIZE)
-
-#define FRAME_SIZE_SMALL (30 * REGSIZE)
-#define FRAME_SIZE_LARGE (58 * REGSIZE)
-
-#define FOR_EACH_REG(f) \
- f(r0); f(r1); f(r2); f(r3); \
- f(r4); f(r5); f(r6); f(r7); \
- f(r8); f(r9); f(r10); f(r11); \
- f(r12); f(r13); f(r14); f(r15); \
- f(r16); f(r17); f(r18); f(r19); \
- f(r20); f(r21); f(r22); f(r23); \
- f(r24); f(r25)
-
-#define SAVE(REG) { st r27, REG; ADDI_PTR r27, r27, REGSIZE }
-#define RESTORE(REG) { ld REG, r27; ADDI_PTR r27, r27, REGSIZE }
-
- .macro dl_resolve, name, profile, framesize
-.text
-.global \name
-.hidden \name
-/* Note that cpp expands ENTRY(\name) incorrectly. */
-.type \name,@function
-.align 8
-\name:
- cfi_startproc
- {
- st sp, lr
- move r26, sp
- }
- {
- ADDLI_PTR sp, sp, -\framesize
- ADDLI_PTR r27, sp, FRAME_SP - \framesize
- }
- cfi_def_cfa_offset (\framesize)
- {
- st r27, r26
- ADDI_PTR r27, r27, FRAME_REGS - FRAME_SP
- }
- FOR_EACH_REG(SAVE)
- {
- st r27, lr
- ADDLI_PTR r27, sp, FRAME_TPNT
- }
- cfi_offset (lr, FRAME_LR - \framesize)
- .if \profile
- {
- move r0, r28 /* tpnt value */
- st r27, r28
- ADDI_PTR r27, r27, FRAME_INDEX - FRAME_TPNT
- }
- {
- move r1, r29 /* PLT index */
- st r27, r29
- }
- {
- move r2, lr /* retaddr */
- ADDI_PTR r3, sp, FRAME_REGS /* La_tile_regs pointer */
- }
- {
- ADDLI_PTR r4, sp, FRAME_STACKFRAME /* framesize pointer */
- jal _dl_profile_fixup
- }
- ADDLI_PTR r28, sp, FRAME_STACKFRAME
- LD_PTR r28, r28
- bgtz r28, 1f
- .else
- {
- move r0, r28 /* tpnt value 1 */
- move r1, r29 /* PLT index 2 */
- }
- jal _dl_fixup
- .endif
- {
- /* Copy aside the return value so we can restore r0 below. */
- move r29, r0
- /* Set up r27 to let us start restoring registers. */
- ADDLI_PTR r27, sp, FRAME_REGS
- }
- FOR_EACH_REG(RESTORE)
- .if \profile
- ADDLI_PTR r28, sp, FRAME_STACKFRAME
- ld r28, r28
- bgtz r28, 1f
- .endif
- {
- /* Restore original user return address. */
- ld lr, r27
- /* Pop off our stack frame. */
- ADDLI_PTR sp, sp, \framesize
- }
- cfi_def_cfa_offset (0)
- jr r29 /* Transfer control to freshly loaded code. */
- jrp lr /* Keep backtracer happy. */
-
- .if \profile
-1: jalr r29 /* Call resolved function. */
- {
- ADDLI_PTR r28, sp, FRAME_TPNT
- ADDLI_PTR r27, sp, FRAME_RETVAL
- }
- FOR_EACH_REG(SAVE)
- {
- ld r0, r28
- ADDI_PTR r28, r28, FRAME_INDEX - FRAME_TPNT
- }
- {
- ld r1, r28
- ADDLI_PTR r2, sp, FRAME_REGS
- }
- {
- ADDLI_PTR r3, sp, FRAME_RETVAL
- jal _dl_call_pltexit
- }
- {
- ADDLI_PTR lr, sp, FRAME_LR
- ADDLI_PTR r27, sp, FRAME_RETVAL
- }
- FOR_EACH_REG(RESTORE)
- {
- ld lr, lr
- ADDLI_PTR sp, sp, \framesize
- }
- jrp lr
- .endif
-END (\name)
- .endm
-
- dl_resolve _dl_runtime_resolve, 0, FRAME_SIZE_SMALL
-#ifndef PROF
- dl_resolve _dl_runtime_profile, 1, FRAME_SIZE_LARGE
-#endif
diff --git a/sysdeps/tile/ffs.c b/sysdeps/tile/ffs.c
deleted file mode 100644
index 6c34273..0000000
--- a/sysdeps/tile/ffs.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <limits.h>
-#define ffsl __something_else
-#include <string.h>
-
-#undef ffs
-int
-__ffs (int x)
-{
- return __builtin_ffs (x);
-}
-weak_alias (__ffs, ffs)
-libc_hidden_def (__ffs)
-libc_hidden_builtin_def (ffs)
-
-#if ULONG_MAX == UINT_MAX
-#undef ffsl
-weak_alias (__ffs, ffsl)
-#endif
diff --git a/sysdeps/tile/ffsll.c b/sysdeps/tile/ffsll.c
deleted file mode 100644
index 409ce70..0000000
--- a/sysdeps/tile/ffsll.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2011-2018 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 <limits.h>
-#define ffsl __something_else
-#include <string.h>
-
-#undef ffsll
-int
-ffsll (long long x)
-{
- return __builtin_ffsll (x);
-}
-
-#if ULONG_MAX > UINT_MAX
-#undef ffsl
-weak_alias (ffsll, ffsl)
-#endif
diff --git a/sysdeps/tile/gccframe.h b/sysdeps/tile/gccframe.h
deleted file mode 100644
index b3c351c..0000000
--- a/sysdeps/tile/gccframe.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#define FIRST_PSEUDO_REGISTER 64
-
-#include <sysdeps/generic/gccframe.h>
diff --git a/sysdeps/tile/jmpbuf-offsets.h b/sysdeps/tile/jmpbuf-offsets.h
deleted file mode 100644
index 8285826..0000000
--- a/sysdeps/tile/jmpbuf-offsets.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-/* We don't use most of these symbols; they are here for documentation. */
-#define JB_R30 0
-#define JB_R31 1
-#define JB_R32 2
-#define JB_R33 3
-#define JB_R34 4
-#define JB_R35 5
-#define JB_R36 6
-#define JB_R37 7
-#define JB_R38 8
-#define JB_R39 9
-#define JB_R40 10
-#define JB_R41 11
-#define JB_R42 12
-#define JB_R43 13
-#define JB_R44 14
-#define JB_R45 15
-#define JB_R46 16
-#define JB_R47 17
-#define JB_R48 18
-#define JB_R49 19
-#define JB_R50 20
-#define JB_R51 21
-#define JB_FP 22 /* r52 */
-#define JB_TP 23 /* r53 */
-#define JB_SP 24 /* r54 */
-#define JB_PC 25 /* normally LR, r55 */
-#define JB_ICS 26 /* interrupt critical section bit */
-
-/* We save space for some extra state to accommodate future changes. */
-#define JB_LEN 32 /* number of words */
-
-#define JB_SIZE (JB_LEN * REGSIZE)
-
-/* Helper macro used by all the setjmp/longjmp assembly code. */
-#define FOR_EACH_CALLEE_SAVED_REG(f) \
- .no_require_canonical_reg_names; f(r30); f(r31); \
- f(r32); f(r33); f(r34); f(r35); f(r36); f(r37); f(r38); f(r39); \
- f(r40); f(r41); f(r42); f(r43); f(r44); f(r45); f(r46); f(r47); \
- f(r48); f(r49); f(r50); f(r51); f(r52); f(r53); f(r54); f(r55)
-
-/* Helper for generic ____longjmp_chk(). */
-#define JB_FRAME_ADDRESS(buf) \
- ((void *) (unsigned long) (buf[JB_SP]))
diff --git a/sysdeps/tile/jmpbuf-unwind.h b/sysdeps/tile/jmpbuf-unwind.h
deleted file mode 100644
index 906977b..0000000
--- a/sysdeps/tile/jmpbuf-unwind.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
- Based on work contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
- 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 <setjmp.h>
-#include <jmpbuf-offsets.h>
-#include <stdint.h>
-#include <unwind.h>
-#include <sysdep.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 *) (long) _Unwind_GetCFA (_context), _adj)
-
-static inline uintptr_t __attribute__ ((unused))
-_jmpbuf_sp (__jmp_buf regs)
-{
- uintptr_t sp = regs[JB_SP];
-#ifdef PTR_DEMANGLE
- PTR_DEMANGLE (sp);
-#endif
- return sp;
-}
-
-#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
- ((uintptr_t) (_address) - (_adj) < _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/tile/ldsodefs.h b/sysdeps/tile/ldsodefs.h
deleted file mode 100644
index 6deacb7..0000000
--- a/sysdeps/tile/ldsodefs.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#ifndef _TILE_LDSODEFS_H
-#define _TILE_LDSODEFS_H 1
-
-#include <elf.h>
-
-struct La_tile_regs;
-struct La_tile_retval;
-
-#define ARCH_PLTENTER_MEMBERS \
- ElfW(Addr) (*tile_gnu_pltenter) (ElfW(Sym) *, unsigned int, uintptr_t *, \
- uintptr_t *, struct La_tile_regs *, \
- unsigned int *, const char *, \
- long int *)
-
-#define ARCH_PLTEXIT_MEMBERS \
- ElfW(Addr) (*tile_gnu_pltexit) (ElfW(Sym) *, unsigned int, uintptr_t *, \
- uintptr_t *, const struct La_tile_regs *, \
- struct La_tile_retval *, const char *)
-
-#include_next <ldsodefs.h>
-
-#endif
diff --git a/sysdeps/tile/libm-test-ulps b/sysdeps/tile/libm-test-ulps
deleted file mode 100644
index a9d2c23..0000000
--- a/sysdeps/tile/libm-test-ulps
+++ /dev/null
@@ -1,394 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-float: 1
-ifloat: 1
-
-Function: "acosh":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: "asin":
-float: 1
-ifloat: 1
-
-Function: "asinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "atan":
-float: 1
-ifloat: 1
-
-Function: "atan2":
-float: 1
-ifloat: 1
-
-Function: "atanh":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: "cabs":
-double: 1
-idouble: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "carg":
-float: 1
-ifloat: 1
-
-Function: Real part of "casin":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "catan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "cbrt":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Real part of "clog":
-double: 3
-float: 3
-idouble: 3
-ifloat: 3
-
-Function: Imaginary part of "clog":
-float: 1
-ifloat: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-idouble: 3
-ifloat: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: "cos":
-float: 1
-ifloat: 1
-
-Function: "cosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "cpow":
-double: 2
-float: 4
-idouble: 2
-ifloat: 4
-
-Function: Imaginary part of "cpow":
-float: 2
-ifloat: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "csinh":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: Real part of "ctanh":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: "erf":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "erfc":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-
-Function: "exp":
-float: 1
-ifloat: 1
-
-Function: "exp10":
-double: 2
-idouble: 2
-
-Function: "exp2":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "expm1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "gamma":
-double: 4
-float: 4
-idouble: 4
-ifloat: 4
-
-Function: "hypot":
-double: 1
-idouble: 1
-
-Function: "j0":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: "j1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "jn":
-double: 4
-float: 4
-idouble: 4
-ifloat: 4
-
-Function: "lgamma":
-double: 4
-float: 4
-idouble: 4
-ifloat: 4
-
-Function: "log":
-float: 1
-ifloat: 1
-
-Function: "log10":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: "log1p":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "log2":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "pow":
-float: 3
-ifloat: 3
-
-Function: "sin":
-float: 1
-ifloat: 1
-
-Function: "sincos":
-float: 1
-ifloat: 1
-
-Function: "sinh":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: "tan":
-float: 1
-ifloat: 1
-
-Function: "tanh":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: "tgamma":
-double: 5
-float: 5
-idouble: 5
-ifloat: 5
-
-Function: "y0":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "y1":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-
-Function: "yn":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-
-# end of automatic generation
diff --git a/sysdeps/tile/libm-test-ulps-name b/sysdeps/tile/libm-test-ulps-name
deleted file mode 100644
index 69673dc..0000000
--- a/sysdeps/tile/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-Tile
diff --git a/sysdeps/tile/machine-gmon.h b/sysdeps/tile/machine-gmon.h
deleted file mode 100644
index b129a69..0000000
--- a/sysdeps/tile/machine-gmon.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#define _MCOUNT_DECL(from, self) \
- void __mcount_internal (u_long from, u_long self)
-
-/* Call __mcount_internal with our the return PC for our caller, and
- the return PC our caller will return to. Empty since we use an
- assembly stub instead. */
-#define MCOUNT
diff --git a/sysdeps/tile/math-tests.h b/sysdeps/tile/math-tests.h
deleted file mode 100644
index 8eeafb8..0000000
--- a/sysdeps/tile/math-tests.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Configuration for math tests. Tile version.
- Copyright (C) 2013-2018 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/>. */
-
-/* Tile hardware/softfloat does not support exceptions and rounding modes. */
-#define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST)
-#define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST)
-#define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST)
-#define EXCEPTION_TESTS_float 0
-#define EXCEPTION_TESTS_double 0
-#define EXCEPTION_TESTS_long_double 0
-
-/* Tile hardware/softfloat floating-point ops do not preserve NaN payloads. */
-#define SNAN_TESTS_PRESERVE_PAYLOAD 0
-
-#include_next <math-tests.h>
diff --git a/sysdeps/tile/memchr.c b/sysdeps/tile/memchr.c
deleted file mode 100644
index 96a9f6e..0000000
--- a/sysdeps/tile/memchr.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <string.h>
-#include <stdint.h>
-#include "string-endian.h"
-
-void *
-__memchr (const void *s, int c, size_t n)
-{
- const uint64_t *last_word_ptr;
- const uint64_t *p;
- const char *last_byte_ptr;
- uintptr_t s_int;
- uint64_t goal, before_mask, v, bits;
- char *ret;
-
- if (__builtin_expect (n == 0, 0))
- {
- /* Don't dereference any memory if the array is empty. */
- return NULL;
- }
-
- /* Get an aligned pointer. */
- s_int = (uintptr_t) s;
- p = (const uint64_t *) (s_int & -8);
-
- /* Create eight copies of the byte for which we are looking. */
- goal = copy_byte(c);
-
- /* Read the first word, but munge it so that bytes before the array
- will not match goal. */
- before_mask = MASK (s_int);
- v = (*p | before_mask) ^ (goal & before_mask);
-
- /* Compute the address of the last byte. */
- last_byte_ptr = (const char *) s + n - 1;
-
- /* Handle possible addition overflow. */
- if (__glibc_unlikely ((uintptr_t) last_byte_ptr < (uintptr_t) s))
- last_byte_ptr = (const char *) UINTPTR_MAX;
-
- /* Compute the address of the word containing the last byte. */
- last_word_ptr = (const uint64_t *) ((uintptr_t) last_byte_ptr & -8);
-
- while ((bits = v1cmpeq (v, goal)) == 0)
- {
- if (__builtin_expect (p == last_word_ptr, 0))
- {
- /* We already read the last word in the array, so give up. */
- return NULL;
- }
- v = *++p;
- }
-
- /* We found a match, but it might be in a byte past the end
- of the array. */
- ret = ((char *) p) + (CFZ (bits) >> 3);
- return (ret <= last_byte_ptr) ? ret : NULL;
-}
-weak_alias (__memchr, memchr)
-libc_hidden_builtin_def (memchr)
diff --git a/sysdeps/tile/memcmp.c b/sysdeps/tile/memcmp.c
deleted file mode 100644
index b7cf00a..0000000
--- a/sysdeps/tile/memcmp.c
+++ /dev/null
@@ -1,349 +0,0 @@
-/* Copyright (C) 1991-2018 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/>. */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#if defined HAVE_STRING_H || defined _LIBC
-# include <string.h>
-#endif
-
-#undef memcmp
-
-#ifndef MEMCMP
-# define MEMCMP memcmp
-#endif
-
-#ifdef _LIBC
-
-# include <memcopy.h>
-# include <endian.h>
-
-# if __BYTE_ORDER == __BIG_ENDIAN
-# define WORDS_BIGENDIAN
-# endif
-
-#else /* Not in the GNU C library. */
-
-# include <sys/types.h>
-
-/* Type to use for aligned memory operations.
- This should normally be the biggest type supported by a single load
- and store. Must be an unsigned type. */
-# define op_t unsigned long int
-# define OPSIZ (sizeof(op_t))
-
-/* Threshold value for when to enter the unrolled loops. */
-# define OP_T_THRES 16
-
-/* Type to use for unaligned operations. */
-typedef unsigned char byte;
-
-#endif /* In the GNU C library. */
-
-/* Provide the appropriate builtins to shift two registers based on
- the alignment of a pointer held in a third register, and to reverse
- the bytes in a word. */
-#define DBLALIGN __insn_dblalign
-#define REVBYTES __insn_revbytes
-
-#ifdef WORDS_BIGENDIAN
-# define CMP_LT_OR_GT(a, b) ((a) > (b) ? 1 : -1)
-#else
-# define CMP_LT_OR_GT(a, b) (REVBYTES(a) > REVBYTES(b) ? 1 : -1)
-#endif
-
-/* BE VERY CAREFUL IF YOU CHANGE THIS CODE! */
-
-/* The strategy of this memcmp is:
-
- 1. Compare bytes until one of the block pointers is aligned.
-
- 2. Compare using memcmp_common_alignment or
- memcmp_not_common_alignment, regarding the alignment of the other
- block after the initial byte operations. The maximum number of
- full words (of type op_t) are compared in this way.
-
- 3. Compare the few remaining bytes. */
-
-static int memcmp_common_alignment (long, long, size_t) __THROW;
-
-/* memcmp_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN `op_t'
- objects (not LEN bytes!). Both SRCP1 and SRCP2 should be aligned for
- memory operations on `op_t's. */
-static int
-memcmp_common_alignment (long int srcp1, long int srcp2, size_t len)
-{
- op_t a0, a1;
- op_t b0, b1;
-
- switch (len % 4)
- {
- default: /* Avoid warning about uninitialized local variables. */
- case 2:
- a0 = ((op_t *) srcp1)[0];
- b0 = ((op_t *) srcp2)[0];
- srcp1 += OPSIZ;
- srcp2 += OPSIZ;
- len += 2;
- goto do1;
- case 3:
- a1 = ((op_t *) srcp1)[0];
- b1 = ((op_t *) srcp2)[0];
- srcp1 += OPSIZ;
- srcp2 += OPSIZ;
- len += 1;
- goto do2;
- case 0:
- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
- return 0;
- a0 = ((op_t *) srcp1)[0];
- b0 = ((op_t *) srcp2)[0];
- srcp1 += OPSIZ;
- srcp2 += OPSIZ;
- goto do3;
- case 1:
- a1 = ((op_t *) srcp1)[0];
- b1 = ((op_t *) srcp2)[0];
- srcp1 += OPSIZ;
- srcp2 += OPSIZ;
- len -= 1;
- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
- goto do0;
- /* Fall through. */
- }
-
- do
- {
- a0 = ((op_t *) srcp1)[0];
- b0 = ((op_t *) srcp2)[0];
- srcp1 += OPSIZ;
- srcp2 += OPSIZ;
- if (__glibc_likely (a1 != b1))
- return CMP_LT_OR_GT (a1, b1);
-
- do3:
- a1 = ((op_t *) srcp1)[0];
- b1 = ((op_t *) srcp2)[0];
- srcp1 += OPSIZ;
- srcp2 += OPSIZ;
- if (__glibc_likely (a0 != b0))
- return CMP_LT_OR_GT (a0, b0);
-
- do2:
- a0 = ((op_t *) srcp1)[0];
- b0 = ((op_t *) srcp2)[0];
- srcp1 += OPSIZ;
- srcp2 += OPSIZ;
- if (__glibc_likely (a1 != b1))
- return CMP_LT_OR_GT (a1, b1);
-
- do1:
- a1 = ((op_t *) srcp1)[0];
- b1 = ((op_t *) srcp2)[0];
- srcp1 += OPSIZ;
- srcp2 += OPSIZ;
- if (__glibc_likely (a0 != b0))
- return CMP_LT_OR_GT (a0, b0);
-
- len -= 4;
- }
- while (len != 0);
-
- /* This is the right position for do0. Please don't move
- it into the loop. */
- do0:
- if (__glibc_likely (a1 != b1))
- return CMP_LT_OR_GT (a1, b1);
- return 0;
-}
-
-static int memcmp_not_common_alignment (long, long, size_t) __THROW;
-
-/* memcmp_not_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN
- `op_t' objects (not LEN bytes!). SRCP2 should be aligned for memory
- operations on `op_t', but SRCP1 *should be unaligned*. */
-static int
-memcmp_not_common_alignment (long int srcp1, long int srcp2, size_t len)
-{
- void * srcp1i;
- op_t a0, a1, a2, a3;
- op_t b0, b1, b2, b3;
- op_t x;
-
- /* Calculate how to shift a word read at the memory operation
- aligned srcp1 to make it aligned for comparison. */
-
- srcp1i = (void *) srcp1;
-
- /* Make SRCP1 aligned by rounding it down to the beginning of the `op_t'
- it points in the middle of. */
- srcp1 &= -OPSIZ;
-
- switch (len % 4)
- {
- default: /* Avoid warning about uninitialized local variables. */
- case 2:
- a1 = ((op_t *) srcp1)[0];
- a2 = ((op_t *) srcp1)[1];
- b2 = ((op_t *) srcp2)[0];
- srcp1 += 2 * OPSIZ;
- srcp2 += 1 * OPSIZ;
- len += 2;
- goto do1;
- case 3:
- a0 = ((op_t *) srcp1)[0];
- a1 = ((op_t *) srcp1)[1];
- b1 = ((op_t *) srcp2)[0];
- srcp1 += 2 * OPSIZ;
- srcp2 += 1 * OPSIZ;
- len += 1;
- goto do2;
- case 0:
- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
- return 0;
- a3 = ((op_t *) srcp1)[0];
- a0 = ((op_t *) srcp1)[1];
- b0 = ((op_t *) srcp2)[0];
- srcp1 += 2 * OPSIZ;
- srcp2 += 1 * OPSIZ;
- goto do3;
- case 1:
- a2 = ((op_t *) srcp1)[0];
- a3 = ((op_t *) srcp1)[1];
- b3 = ((op_t *) srcp2)[0];
- srcp1 += 2 * OPSIZ;
- srcp2 += 1 * OPSIZ;
- len -= 1;
- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
- goto do0;
- /* Fall through. */
- }
-
- do
- {
- a0 = ((op_t *) srcp1)[0];
- b0 = ((op_t *) srcp2)[0];
- x = DBLALIGN (a2, a3, srcp1i);
- srcp1 += OPSIZ;
- srcp2 += OPSIZ;
- if (__glibc_likely (x != b3))
- return CMP_LT_OR_GT (x, b3);
-
- do3:
- a1 = ((op_t *) srcp1)[0];
- b1 = ((op_t *) srcp2)[0];
- x = DBLALIGN (a3, a0, srcp1i);
- srcp1 += OPSIZ;
- srcp2 += OPSIZ;
- if (__glibc_likely (x != b0))
- return CMP_LT_OR_GT (x, b0);
-
- do2:
- a2 = ((op_t *) srcp1)[0];
- b2 = ((op_t *) srcp2)[0];
- x = DBLALIGN (a0, a1, srcp1i);
- srcp1 += OPSIZ;
- srcp2 += OPSIZ;
- if (__glibc_likely (x != b1))
- return CMP_LT_OR_GT (x, b1);
-
- do1:
- a3 = ((op_t *) srcp1)[0];
- b3 = ((op_t *) srcp2)[0];
- x = DBLALIGN (a1, a2, srcp1i);
- srcp1 += OPSIZ;
- srcp2 += OPSIZ;
- if (__glibc_likely (x != b2))
- return CMP_LT_OR_GT (x, b2);
-
- len -= 4;
- }
- while (len != 0);
-
- /* This is the right position for do0. Please don't move
- it into the loop. */
- do0:
- x = DBLALIGN (a2, a3, srcp1i);
- if (__glibc_likely (x != b3))
- return CMP_LT_OR_GT (x, b3);
- return 0;
-}
-
-int
-MEMCMP (const void *s1, const void *s2, size_t len)
-{
- op_t a0;
- op_t b0;
- long int srcp1 = (long int) s1;
- long int srcp2 = (long int) s2;
- int res;
-
- if (len >= OP_T_THRES)
- {
- /* There are at least some bytes to compare. No need to test
- for LEN == 0 in this alignment loop. */
- while (srcp2 % OPSIZ != 0)
- {
- a0 = ((byte *) srcp1)[0];
- b0 = ((byte *) srcp2)[0];
- srcp1 += 1;
- srcp2 += 1;
- res = a0 - b0;
- if (__glibc_likely (res != 0))
- return res;
- len -= 1;
- }
-
- /* SRCP2 is now aligned for memory operations on `op_t'.
- SRCP1 alignment determines if we can do a simple,
- aligned compare or need to shuffle bits. */
-
- if (srcp1 % OPSIZ == 0)
- res = memcmp_common_alignment (srcp1, srcp2, len / OPSIZ);
- else
- res = memcmp_not_common_alignment (srcp1, srcp2, len / OPSIZ);
- if (res != 0)
- return res;
-
- /* Number of bytes remaining in the interval [0..OPSIZ-1]. */
- srcp1 += len & -OPSIZ;
- srcp2 += len & -OPSIZ;
- len %= OPSIZ;
- }
-
- /* There are just a few bytes to compare. Use byte memory operations. */
- while (len != 0)
- {
- a0 = ((byte *) srcp1)[0];
- b0 = ((byte *) srcp2)[0];
- srcp1 += 1;
- srcp2 += 1;
- res = a0 - b0;
- if (__glibc_likely (res != 0))
- return res;
- len -= 1;
- }
-
- return 0;
-}
-libc_hidden_builtin_def(memcmp)
-#ifdef weak_alias
-# undef bcmp
-weak_alias (memcmp, bcmp)
-#endif
diff --git a/sysdeps/tile/memcopy.h b/sysdeps/tile/memcopy.h
deleted file mode 100644
index 0c357c1..0000000
--- a/sysdeps/tile/memcopy.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* memcopy.h -- definitions for memory copy functions. Tile version.
- Copyright (C) 2012-2018 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 <sysdeps/generic/memcopy.h>
-#include <bits/wordsize.h>
-
-/* The tilegx implementation of memcpy is safe to use for memmove. */
-#undef MEMCPY_OK_FOR_FWD_MEMMOVE
-#define MEMCPY_OK_FOR_FWD_MEMMOVE 1
-
-/* Support more efficient copying on tilegx32, which supports
- long long as a native 64-bit type. */
-#if __WORDSIZE == 32
-# undef op_t
-# define op_t unsigned long long int
-#endif
diff --git a/sysdeps/tile/memcpy.c b/sysdeps/tile/memcpy.c
deleted file mode 100644
index cbf92bc..0000000
--- a/sysdeps/tile/memcpy.c
+++ /dev/null
@@ -1,272 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <string.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <memcopy.h>
-#include <arch/chip.h>
-
-/* How many cache lines ahead should we prefetch? */
-#define PREFETCH_LINES_AHEAD 3
-
-void * inhibit_loop_to_libcall
-__memcpy (void *__restrict dstv, const void *__restrict srcv, size_t n)
-{
- char *__restrict dst1 = (char *) dstv;
- const char *__restrict src1 = (const char *) srcv;
- const char *__restrict src1_end;
- const char *__restrict prefetch;
- op_t *__restrict dst8; /* 8-byte pointer to destination memory. */
- op_t final; /* Final bytes to write to trailing word, if any */
- long i;
-
- if (n < 16)
- {
- for (; n; n--)
- *dst1++ = *src1++;
- return dstv;
- }
-
- /* Locate the end of source memory we will copy. Don't prefetch
- past this. */
- src1_end = src1 + n - 1;
-
- /* Prefetch ahead a few cache lines, but not past the end. */
- prefetch = src1;
- for (i = 0; i < PREFETCH_LINES_AHEAD; i++)
- {
- __insn_prefetch (prefetch);
- prefetch += CHIP_L2_LINE_SIZE ();
- prefetch = (prefetch < src1_end) ? prefetch : src1;
- }
-
- /* Copy bytes until dst is word-aligned. */
- for (; (uintptr_t) dst1 & (sizeof (op_t) - 1); n--)
- *dst1++ = *src1++;
-
- /* 8-byte pointer to destination memory. */
- dst8 = (op_t *) dst1;
-
- if (__builtin_expect ((uintptr_t) src1 & (sizeof (op_t) - 1), 0))
- {
- /* Misaligned copy. Use glibc's _wordcopy_fwd_dest_aligned, but
- inline it to avoid prologue/epilogue. TODO: Consider
- prefetching and using wh64 as well. */
- void * srci;
- op_t a0, a1, a2, a3;
- long int dstp = (long int) dst1;
- long int srcp = (long int) src1;
- long int len = n / OPSIZ;
-
- /* Save the initial source pointer so we know the number of
- bytes to shift for merging two unaligned results. */
- srci = (void *) srcp;
-
- /* Make SRCP aligned by rounding it down to the beginning of the
- `op_t' it points in the middle of. */
- srcp &= -OPSIZ;
-
- switch (len % 4)
- {
- case 2:
- a1 = ((op_t *) srcp)[0];
- a2 = ((op_t *) srcp)[1];
- len += 2;
- srcp += 2 * OPSIZ;
- goto do1;
- case 3:
- a0 = ((op_t *) srcp)[0];
- a1 = ((op_t *) srcp)[1];
- len += 1;
- srcp += 2 * OPSIZ;
- goto do2;
- case 0:
- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
- return dstv;
- a3 = ((op_t *) srcp)[0];
- a0 = ((op_t *) srcp)[1];
- len += 0;
- srcp += 2 * OPSIZ;
- goto do3;
- case 1:
- a2 = ((op_t *) srcp)[0];
- a3 = ((op_t *) srcp)[1];
- srcp += 2 * OPSIZ;
- len -= 1;
- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
- goto do0;
- goto do4; /* No-op. */
- }
-
- do
- {
- do4:
- a0 = ((op_t *) srcp)[0];
- a2 = __insn_dblalign (a2, a3, srci);
- ((op_t *) dstp)[0] = a2;
- srcp += OPSIZ;
- dstp += OPSIZ;
- do3:
- a1 = ((op_t *) srcp)[0];
- a3 = __insn_dblalign (a3, a0, srci);
- ((op_t *) dstp)[0] = a3;
- srcp += OPSIZ;
- dstp += OPSIZ;
- do2:
- a2 = ((op_t *) srcp)[0];
- a0 = __insn_dblalign (a0, a1, srci);
- ((op_t *) dstp)[0] = a0;
- srcp += OPSIZ;
- dstp += OPSIZ;
- do1:
- a3 = ((op_t *) srcp)[0];
- a1 = __insn_dblalign (a1, a2, srci);
- ((op_t *) dstp)[0] = a1;
- srcp += OPSIZ;
- dstp += OPSIZ;
- len -= 4;
- }
- while (len != 0);
-
- /* This is the right position for do0. Please don't move
- it into the loop. */
- do0:
- ((op_t *) dstp)[0] = __insn_dblalign (a2, a3, srci);
-
- n = n % OPSIZ;
- if (n == 0)
- return dstv;
-
- a0 = ((const char *) srcp <= src1_end) ? ((op_t *) srcp)[0] : 0;
-
- final = __insn_dblalign (a3, a0, srci);
- dst8 = (op_t *)(dstp + OPSIZ);
- }
- else
- {
- /* Aligned copy. */
-
- const op_t *__restrict src8 = (const op_t *) src1;
-
- /* src8 and dst8 are both word-aligned. */
- if (n >= CHIP_L2_LINE_SIZE ())
- {
- /* Copy until 'dst' is cache-line-aligned. */
- for (; (uintptr_t) dst8 & (CHIP_L2_LINE_SIZE () - 1);
- n -= sizeof (op_t))
- *dst8++ = *src8++;
-
- for (; n >= CHIP_L2_LINE_SIZE ();)
- {
- op_t tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
-
- /* Prefetch and advance to next line to prefetch, but
- don't go past the end. */
- __insn_prefetch (prefetch);
- prefetch += CHIP_L2_LINE_SIZE ();
- prefetch = (prefetch < src1_end) ? prefetch :
- (const char *) src8;
-
- /* Do all the loads before wh64. This is necessary if
- [src8, src8+7] and [dst8, dst8+7] share the same
- cache line and dst8 <= src8, as can be the case when
- called from memmove, or with code tested on x86 whose
- memcpy always works with forward copies. */
- tmp0 = *src8++;
- tmp1 = *src8++;
- tmp2 = *src8++;
- tmp3 = *src8++;
- tmp4 = *src8++;
- tmp5 = *src8++;
- tmp6 = *src8++;
- tmp7 = *src8++;
-
- __insn_wh64 (dst8);
-
- *dst8++ = tmp0;
- *dst8++ = tmp1;
- *dst8++ = tmp2;
- *dst8++ = tmp3;
- *dst8++ = tmp4;
- *dst8++ = tmp5;
- *dst8++ = tmp6;
- *dst8++ = tmp7;
-
- n -= 64;
- }
-#if CHIP_L2_LINE_SIZE() != 64
-# error "Fix code that assumes particular L2 cache line size."
-#endif
- }
-
- for (; n >= sizeof (op_t); n -= sizeof (op_t))
- *dst8++ = *src8++;
-
- if (__builtin_expect (n == 0, 1))
- return dstv;
-
- final = *src8;
- }
-
- /* n != 0 if we get here. Write out any trailing bytes. */
- dst1 = (char *) dst8;
-#ifndef __BIG_ENDIAN__
- if (n & 4)
- {
- *(uint32_t *) dst1 = final;
- dst1 += 4;
- final >>= 32;
- n &= 3;
- }
- if (n & 2)
- {
- *(uint16_t *) dst1 = final;
- dst1 += 2;
- final >>= 16;
- n &= 1;
- }
- if (n)
- *(uint8_t *) dst1 = final;
-#else
- if (n & 4)
- {
- *(uint32_t *) dst1 = final >> 32;
- dst1 += 4;
- }
- else
- {
- final >>= 32;
- }
- if (n & 2)
- {
- *(uint16_t *) dst1 = final >> 16;
- dst1 += 2;
- }
- else
- {
- final >>= 16;
- }
- if (n & 1)
- *(uint8_t *) dst1 = final >> 8;
-#endif
-
- return dstv;
-}
-weak_alias (__memcpy, memcpy)
-libc_hidden_builtin_def (memcpy)
diff --git a/sysdeps/tile/memset.c b/sysdeps/tile/memset.c
deleted file mode 100644
index db3769b..0000000
--- a/sysdeps/tile/memset.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <arch/chip.h>
-#include <string.h>
-#include <stdint.h>
-#include "string-endian.h"
-
-void * inhibit_loop_to_libcall
-__memset (void *s, int c, size_t n)
-{
- uint64_t *out64;
- int n64, to_align64;
- uint64_t v64;
- uint8_t *out8 = s;
-
- /* Experimentation shows that a trivial tight loop is a win up until
- around a size of 20, where writing a word at a time starts to win. */
-#define BYTE_CUTOFF 20
-
-#if BYTE_CUTOFF < 7
- /* This must be at least at least this big, or some code later
- on doesn't work. */
-# error "BYTE_CUTOFF is too small."
-#endif
-
- if (n < BYTE_CUTOFF)
- {
- /* Strangely, this turns out to be the tightest way to write
- this loop. */
- if (n != 0)
- {
- do
- {
- /* Strangely, combining these into one line performs worse. */
- *out8 = c;
- out8++;
- }
- while (--n != 0);
- }
-
- return s;
- }
-
- /* Align 'out8'. We know n >= 7 so this won't write past the end. */
- while (((uintptr_t) out8 & 7) != 0)
- {
- *out8++ = c;
- --n;
- }
-
- /* Align 'n'. */
- while (n & 7)
- out8[--n] = c;
-
- out64 = (uint64_t *) out8;
- n64 = n >> 3;
-
- /* Tile input byte out to 64 bits. */
- v64 = copy_byte(c);
-
- /* This must be at least 8 or the following loop doesn't work. */
-#define CACHE_LINE_SIZE_IN_DOUBLEWORDS (CHIP_L2_LINE_SIZE() / 8)
-
- /* Determine how many words we need to emit before the 'out32'
- pointer becomes aligned modulo the cache line size. */
- to_align64 = (-((uintptr_t) out64 >> 3)) &
- (CACHE_LINE_SIZE_IN_DOUBLEWORDS - 1);
-
- /* Only bother aligning and using wh64 if there is at least
- one full cache line to process. This check also prevents
- overrunning the end of the buffer with alignment words. */
- if (to_align64 <= n64 - CACHE_LINE_SIZE_IN_DOUBLEWORDS)
- {
- int lines_left;
-
- /* Align out64 mod the cache line size so we can use wh64. */
- n64 -= to_align64;
- for (; to_align64 != 0; to_align64--)
- {
- *out64 = v64;
- out64++;
- }
-
- /* Use unsigned divide to turn this into a right shift. */
- lines_left = (unsigned) n64 / CACHE_LINE_SIZE_IN_DOUBLEWORDS;
-
- do
- {
- /* Only wh64 a few lines at a time, so we don't exceed the
- maximum number of victim lines. */
- int x = ((lines_left < CHIP_MAX_OUTSTANDING_VICTIMS ()) ? lines_left
- : CHIP_MAX_OUTSTANDING_VICTIMS ());
- uint64_t *wh = out64;
- int i = x;
- int j;
-
- lines_left -= x;
-
- do
- {
- __insn_wh64 (wh);
- wh += CACHE_LINE_SIZE_IN_DOUBLEWORDS;
- }
- while (--i);
-
- for (j = x * (CACHE_LINE_SIZE_IN_DOUBLEWORDS / 4); j != 0; j--)
- {
- *out64++ = v64;
- *out64++ = v64;
- *out64++ = v64;
- *out64++ = v64;
- }
- }
- while (lines_left != 0);
-
- /* We processed all full lines above, so only this many
- words remain to be processed. */
- n64 &= CACHE_LINE_SIZE_IN_DOUBLEWORDS - 1;
- }
-
- /* Now handle any leftover values. */
- if (n64 != 0)
- {
- do
- {
- *out64 = v64;
- out64++;
- }
- while (--n64 != 0);
- }
-
- return s;
-}
-weak_alias (__memset, memset)
-libc_hidden_builtin_def (memset)
diff --git a/sysdeps/tile/memusage.h b/sysdeps/tile/memusage.h
deleted file mode 100644
index b2343fe..0000000
--- a/sysdeps/tile/memusage.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <stdint.h>
-#include <arch/spr_def.h>
-
-#define GETSP() ({ register uintptr_t stack_ptr asm ("sp"); stack_ptr; })
-
-#define GETTIME(low,high) \
- { \
- uint64_t cycles = __insn_mfspr (SPR_CYCLE); \
- low = cycles & 0xffffffff; \
- high = cycles >> 32; \
- }
-
-#include <sysdeps/generic/memusage.h>
diff --git a/sysdeps/tile/nptl/Makefile b/sysdeps/tile/nptl/Makefile
deleted file mode 100644
index 60e19c7..0000000
--- a/sysdeps/tile/nptl/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (C) 2002-2018 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/>.
-
-ifeq ($(subdir),csu)
-gen-as-const-headers += tcb-offsets.sym
-endif
diff --git a/sysdeps/tile/nptl/bits/pthreadtypes-arch.h b/sysdeps/tile/nptl/bits/pthreadtypes-arch.h
deleted file mode 100644
index 7c0844f..0000000
--- a/sysdeps/tile/nptl/bits/pthreadtypes-arch.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Based on work contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#ifndef _BITS_PTHREADTYPES_ARCH_H
-#define _BITS_PTHREADTYPES_ARCH_H 1
-
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
-# define __SIZEOF_PTHREAD_MUTEX_T 40
-# define __SIZEOF_PTHREAD_ATTR_T 56
-# define __SIZEOF_PTHREAD_RWLOCK_T 56
-# define __SIZEOF_PTHREAD_BARRIER_T 32
-#else
-# define __SIZEOF_PTHREAD_MUTEX_T 24
-# define __SIZEOF_PTHREAD_ATTR_T 36
-# define __SIZEOF_PTHREAD_RWLOCK_T 32
-# define __SIZEOF_PTHREAD_BARRIER_T 20
-#endif
-#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-#define __SIZEOF_PTHREAD_COND_T 48
-#define __SIZEOF_PTHREAD_CONDATTR_T 4
-#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-
-/* Data structure for mutex handling. */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 0
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND (__WORDSIZE != 64)
-#define __PTHREAD_MUTEX_USE_UNION (__WORDSIZE != 64)
-
-#define __LOCK_ALIGNMENT
-#define __ONCE_ALIGNMENT
-
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
-#if __WORDSIZE == 64
- int __cur_writer;
- int __shared;
- unsigned long int __pad1;
- unsigned long int __pad2;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned int __flags;
-#else
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
- unsigned char __shared;
- unsigned char __pad1;
- unsigned char __pad2;
- int __cur_writer;
-#endif
-};
-
-#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
-#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/tile/nptl/bits/semaphore.h b/sysdeps/tile/nptl/bits/semaphore.h
deleted file mode 100644
index 733ba8a..0000000
--- a/sysdeps/tile/nptl/bits/semaphore.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
- Based on work contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- 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/>. */
-
-#ifndef _SEMAPHORE_H
-# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-#endif
-
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
-# define __SIZEOF_SEM_T 32
-#else
-# define __SIZEOF_SEM_T 16
-#endif
-
-
-/* Value returned if `sem_open' failed. */
-#define SEM_FAILED ((sem_t *) 0)
-
-
-typedef union
-{
- char __size[__SIZEOF_SEM_T];
- long int __align;
-} sem_t;
diff --git a/sysdeps/tile/nptl/pthread-offsets.h b/sysdeps/tile/nptl/pthread-offsets.h
deleted file mode 100644
index bdda1f1..0000000
--- a/sysdeps/tile/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
-# define __PTHREAD_MUTEX_NUSERS_OFFSET 12
-# define __PTHREAD_MUTEX_KIND_OFFSET 16
-# define __PTHREAD_MUTEX_SPINS_OFFSET 20
-# define __PTHREAD_MUTEX_ELISION_OFFSET 22
-# define __PTHREAD_MUTEX_LIST_OFFSET 24
-#else
-# define __PTHREAD_MUTEX_NUSERS_OFFSET 16
-# define __PTHREAD_MUTEX_KIND_OFFSET 12
-# define __PTHREAD_MUTEX_SPINS_OFFSET 20
-# define __PTHREAD_MUTEX_ELISION_OFFSET 22
-# define __PTHREAD_MUTEX_LIST_OFFSET 20
-#endif
diff --git a/sysdeps/tile/nptl/pthread_spin_lock.c b/sysdeps/tile/nptl/pthread_spin_lock.c
deleted file mode 100644
index 94f5f1b..0000000
--- a/sysdeps/tile/nptl/pthread_spin_lock.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 "pthreadP.h"
-#include <arch/spr_def.h>
-#include <atomic.h>
-
-/* Bound point for bounded exponential backoff */
-#define BACKOFF_MAX 2048
-
-/* Initial cycle delay for exponential backoff */
-#define BACKOFF_START 32
-
-/* Use cmpexch() after the initial fast-path exch to avoid
- invalidating the cache line of the lock holder. */
-#define TNS(p) atomic_exchange_acq((p), 1)
-#define CMPTNS(p) atomic_compare_and_exchange_val_acq((p), 1, 0)
-
-int
-pthread_spin_lock (pthread_spinlock_t *lock)
-{
- if (__builtin_expect (TNS (lock) != 0, 0))
- {
- unsigned int backoff = BACKOFF_START;
- while (CMPTNS (lock) != 0)
- {
- unsigned int start = __insn_mfspr (SPR_CYCLE);
- while (__insn_mfspr (SPR_CYCLE) - start < backoff)
- ;
- if (backoff < BACKOFF_MAX)
- backoff *= 2;
- }
- }
- return 0;
-}
diff --git a/sysdeps/tile/nptl/pthread_spin_trylock.c b/sysdeps/tile/nptl/pthread_spin_trylock.c
deleted file mode 100644
index 7e549a5..0000000
--- a/sysdeps/tile/nptl/pthread_spin_trylock.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 "pthreadP.h"
-#include <errno.h>
-
-#define TNS(p) __insn_exch4((p), 1)
-
-int
-pthread_spin_trylock (pthread_spinlock_t *lock)
-{
- return (TNS (lock) == 0) ? 0 : EBUSY;
-}
diff --git a/sysdeps/tile/nptl/pthread_spin_unlock.c b/sysdeps/tile/nptl/pthread_spin_unlock.c
deleted file mode 100644
index f356747..0000000
--- a/sysdeps/tile/nptl/pthread_spin_unlock.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* pthread_spin_unlock -- unlock a spin lock. Tile version.
- Copyright (C) 2012-2018 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 "pthreadP.h"
-#include <atomic.h>
-
-int
-pthread_spin_unlock (pthread_spinlock_t *lock)
-{
- /* Use exchange() to bypass the write buffer. */
- atomic_exchange_rel (lock, 0);
- return 0;
-}
diff --git a/sysdeps/tile/nptl/pthreaddef.h b/sysdeps/tile/nptl/pthreaddef.h
deleted file mode 100644
index a1c0062..0000000
--- a/sysdeps/tile/nptl/pthreaddef.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <stdlib.h>
-#include <string.h>
-
-/* Default stack size. */
-#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
-
-/* Required stack pointer alignment at beginning. */
-#define STACK_ALIGN 16
-
-/* Minimal stack size after allocating thread descriptor and guard size. */
-#define MINIMAL_REST_STACK 2048
-
-/* Alignment requirement for TCB. */
-#define TCB_ALIGNMENT 16
-
-
-/* Location of current stack frame. */
-#define CURRENT_STACK_FRAME __builtin_frame_address (0)
diff --git a/sysdeps/tile/nptl/tcb-offsets.sym b/sysdeps/tile/nptl/tcb-offsets.sym
deleted file mode 100644
index 0147ffa..0000000
--- a/sysdeps/tile/nptl/tcb-offsets.sym
+++ /dev/null
@@ -1,16 +0,0 @@
-#define SHARED /* needed to get struct rtld_global from <ldsodefs.h> */
-#include <sysdep.h>
-#include <tls.h>
-#include <ldsodefs.h>
-
---
-
--- Abuse tls.h macros to derive offsets relative to the thread register.
-#define thread_offsetof(mem) (long)(offsetof(struct pthread, mem) - TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE)
-
-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))
-FEEDBACK_DATA_OFFSET (offsetof (tcbhead_t, feedback_data) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
-DTV_OFFSET (offsetof (tcbhead_t, dtv) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
-TLS_GENERATION_OFFSET offsetof (struct rtld_global, _dl_tls_generation)
diff --git a/sysdeps/tile/nptl/tls.h b/sysdeps/tile/nptl/tls.h
deleted file mode 100644
index 45d6c53..0000000
--- a/sysdeps/tile/nptl/tls.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#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
-
-/* We use the multiple_threads field in the pthread struct */
-#define TLS_MULTIPLE_THREADS_IN_TCB 1
-
-/* Get the thread descriptor definition. */
-# include <nptl/descr.h>
-
-/* The stack_guard is accessed directly by GCC -fstack-protector code,
- so it is a part of public ABI. The dtv and pointer_guard fields
- are private. */
-typedef struct
-{
- void *feedback_data;
- uintptr_t pointer_guard;
- uintptr_t stack_guard;
- dtv_t *dtv;
-} tcbhead_t;
-
-/* 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
-
-/* Alignment requirements for the initial TCB. */
-# define TLS_INIT_TCB_ALIGN __alignof__ (struct pthread)
-
-/* 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
-
-/* Alignment requirements for the TCB. */
-# define TLS_TCB_ALIGN __alignof__ (struct pthread)
-
-/* This is the size we need before TCB - actually, it includes the TCB. */
-# define TLS_PRE_TCB_SIZE \
- (sizeof (struct pthread) \
- + ((sizeof (tcbhead_t) + TLS_TCB_ALIGN - 1) & ~(TLS_TCB_ALIGN - 1)))
-
-/* Return the thread descriptor (tp) for the current thread. */
-register void *__thread_pointer asm ("tp");
-
-/* The thread pointer (in hardware register tp) points to the end of
- the TCB. The pthread_descr structure is immediately in front of the TCB. */
-# define TLS_TCB_OFFSET 0
-
-/* 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 (tp). */
-# define TLS_INIT_TP(tcbp) \
- (__thread_pointer = (char *)(tcbp) + TLS_TCB_OFFSET, NULL)
-
-/* 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 *) (__thread_pointer - TLS_TCB_OFFSET))[-1].dtv)
-
-/* Return the thread descriptor for the current thread. */
-# define THREAD_SELF \
- ((struct pthread *) (__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 (64, 64, REG_TP * 8, - TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE)
-
-/* Read member of the thread descriptor directly. */
-# define THREAD_GETMEM(descr, member) (descr->member)
-
-/* Same as THREAD_GETMEM, but the member offset can be non-constant. */
-# define THREAD_GETMEM_NC(descr, member, idx) \
- (descr->member[idx])
-
-/* Set member of the thread descriptor directly. */
-# define THREAD_SETMEM(descr, member, value) \
- (descr->member = (value))
-
-/* Same as THREAD_SETMEM, but the member offset can be non-constant. */
-# define THREAD_SETMEM_NC(descr, member, idx, value) \
- (descr->member[idx] = (value))
-
-/* Set the stack guard field in TCB head. */
-# define THREAD_SET_STACK_GUARD(value) \
- (((tcbhead_t *) ((char *) __thread_pointer \
- - TLS_TCB_OFFSET))[-1].stack_guard = (value))
-# define THREAD_COPY_STACK_GUARD(descr) \
- (((tcbhead_t *) ((char *) (descr) \
- + TLS_PRE_TCB_SIZE))[-1].stack_guard \
- = ((tcbhead_t *) ((char *) __thread_pointer \
- - TLS_TCB_OFFSET))[-1].stack_guard)
-
-/* Set the pointer guard field in TCB head. */
-# define THREAD_GET_POINTER_GUARD() \
- (((tcbhead_t *) ((char *) __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 *) ((char *) (descr) \
- + TLS_PRE_TCB_SIZE))[-1].pointer_guard \
- = THREAD_GET_POINTER_GUARD())
-
-/* l_tls_offset == 0 is perfectly valid on Tile, 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_IN_TCB 1
-#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_rel (&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)
-#define THREAD_GSCOPE_WAIT() \
- GL(dl_wait_lookup_done) ()
-
-#endif /* __ASSEMBLER__ */
-
-#endif /* tls.h */
diff --git a/sysdeps/tile/preconfigure b/sysdeps/tile/preconfigure
deleted file mode 100644
index 21382df..0000000
--- a/sysdeps/tile/preconfigure
+++ /dev/null
@@ -1,10 +0,0 @@
-# This is a -*- sh -*-
-case "$machine" in
- tilegx*)
- base_machine=tile
- if $CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | grep -q __LP64__; then
- machine=tile/tilegx64
- else
- machine=tile/tilegx32
- fi ;;
-esac
diff --git a/sysdeps/tile/rawmemchr.c b/sysdeps/tile/rawmemchr.c
deleted file mode 100644
index 26e892a..0000000
--- a/sysdeps/tile/rawmemchr.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <string.h>
-#include <stdint.h>
-#include "string-endian.h"
-
-void *
-__rawmemchr (const void *s, int c)
-{
- /* Get an aligned pointer. */
- const uintptr_t s_int = (uintptr_t) s;
- const uint64_t *p = (const uint64_t *) (s_int & -8);
-
- /* Create eight copies of the byte for which we are looking. */
- const uint64_t goal = copy_byte(c);
-
- /* Read the first word, but munge it so that bytes before the array
- will not match goal. */
- const uint64_t before_mask = MASK (s_int);
- uint64_t v = (*p | before_mask) ^ (goal & before_mask);
-
- uint64_t bits;
- while ((bits = v1cmpeq (v, goal)) == 0)
- v = *++p;
-
- return ((char *) p) + (CFZ (bits) >> 3);
-}
-libc_hidden_def (__rawmemchr)
-weak_alias (__rawmemchr, rawmemchr)
diff --git a/sysdeps/tile/setjmp.S b/sysdeps/tile/setjmp.S
deleted file mode 100644
index 748a6d3..0000000
--- a/sysdeps/tile/setjmp.S
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <jmpbuf-offsets.h>
-
- .text
-
- /* Keep traditional entry points in with sigsetjmp(). */
-ENTRY(setjmp)
- { movei r1, 1; j 1f }
-END(setjmp)
-
-ENTRY(_setjmp)
- { movei r1, 0; j 1f }
-END(_setjmp)
-libc_hidden_def (_setjmp)
-
-ENTRY(__sigsetjmp)
- FEEDBACK_ENTER(__sigsetjmp)
-1:
- move r2, r0
-
-#define SAVE(r) { st r2, r ; ADDI_PTR r2, r2, REGSIZE }
- FOR_EACH_CALLEE_SAVED_REG(SAVE)
-
- mfspr r3, INTERRUPT_CRITICAL_SECTION
- st r2, r3
- j plt(__sigjmp_save)
- jrp lr /* Keep the backtracer happy. */
-END(__sigsetjmp)
-hidden_def (__sigsetjmp)
diff --git a/sysdeps/tile/sfp-machine.h b/sysdeps/tile/sfp-machine.h
deleted file mode 100644
index 9931214..0000000
--- a/sysdeps/tile/sfp-machine.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Machine-dependent software floating-point definitions, tile version.
- Copyright (C) 2013-2018 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 <bits/wordsize.h>
-
-#define _FP_W_TYPE_SIZE __WORDSIZE
-#define _FP_W_TYPE unsigned long
-#define _FP_WS_TYPE signed long
-#define _FP_I_TYPE long
-
-#if _FP_W_TYPE_SIZE == 64
-
-#define _FP_MUL_MEAT_S(R,X,Y) \
- _FP_MUL_MEAT_1_imm(_FP_WFRACBITS_S,R,X,Y)
-#define _FP_MUL_MEAT_D(R,X,Y) \
- _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_Q(R,X,Y) \
- _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
-
-#define _FP_MUL_MEAT_DW_S(R,X,Y) \
- _FP_MUL_MEAT_DW_1_imm(_FP_WFRACBITS_S,R,X,Y)
-#define _FP_MUL_MEAT_DW_D(R,X,Y) \
- _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_DW_Q(R,X,Y) \
- _FP_MUL_MEAT_DW_2_wide_3mul(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
-
-#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_imm(S,R,X,Y,_FP_DIV_HELP_imm)
-#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_1_udiv_norm(D,R,X,Y)
-#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_2_udiv(Q,R,X,Y)
-
-#define _FP_NANFRAC_S _FP_QNANBIT_S
-#define _FP_NANFRAC_D _FP_QNANBIT_D
-#define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0
-
-#else /* _FP_W_TYPE_SIZE == 32 */
-
-#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
-#define _FP_NANFRAC_D _FP_QNANBIT_D, 0
-#define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0, 0, 0
-
-#endif
-
-#define _FP_NANSIGN_S 1
-#define _FP_NANSIGN_D 1
-#define _FP_NANSIGN_Q 1
-
-#define _FP_KEEPNANFRACP 1
-#define _FP_QNANNEGATEDP 0
-
-#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/tile/sotruss-lib.c b/sysdeps/tile/sotruss-lib.c
deleted file mode 100644
index b830c67..0000000
--- a/sysdeps/tile/sotruss-lib.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Override generic sotruss-lib.c to define actual functions for tile.
- Copyright (C) 2012-2018 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/>. */
-
-#define HAVE_ARCH_PLTENTER
-#define HAVE_ARCH_PLTEXIT
-
-#include <elf/sotruss-lib.c>
-
-ElfW(Addr)
-la_tile_gnu_pltenter (ElfW(Sym) *sym __attribute__ ((unused)),
- unsigned int ndx __attribute__ ((unused)),
- uintptr_t *refcook, uintptr_t *defcook,
- La_tile_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_tile_gnu_pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
- uintptr_t *defcook, const struct La_tile_regs *inregs,
- struct La_tile_retval *outregs, const char *symname)
-{
- print_exit (refcook, defcook, symname, outregs->lrv_reg[0]);
-
- return 0;
-}
diff --git a/sysdeps/tile/stackguard-macros.h b/sysdeps/tile/stackguard-macros.h
deleted file mode 100644
index c3ea0ad..0000000
--- a/sysdeps/tile/stackguard-macros.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
-# define STACK_CHK_GUARD \
- ({ uintptr_t x; asm ("addi %0, tp, -16; ld %0, %0" : "=r" (x)); x; })
-# define POINTER_CHK_GUARD \
- ({ uintptr_t x; asm ("addi %0, tp, -24; ld %0, %0" : "=r" (x)); x; })
-#else
-# define STACK_CHK_GUARD \
- ({ uintptr_t x; asm ("addi %0, tp, -8; ld4s %0, %0" : "=r" (x)); x; })
-# define POINTER_CHK_GUARD \
- ({ uintptr_t x; asm ("addi %0, tp, -12; ld4s %0, %0" : "=r" (x)); x; })
-#endif
diff --git a/sysdeps/tile/stackinfo.h b/sysdeps/tile/stackinfo.h
deleted file mode 100644
index 91bb0bd..0000000
--- a/sysdeps/tile/stackinfo.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-/* 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 tile the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-/* Default to a non-executable stack. */
-#define DEFAULT_STACK_PERMS (PF_R|PF_W)
-
-/* Access to the stack pointer. The macros are used in alloca_account
- for which they need to act as barriers as well, hence the additional
- (unnecessary) parameters. */
-#define stackinfo_get_sp() \
- ({ void *p__; asm volatile ("move %0, sp" : "=r" (p__)); p__; })
-#if __WORDSIZE == 32
-#define __stackinfo_sub "subx"
-#else
-#define __stackinfo_sub "sub"
-#endif
-#define stackinfo_sub_sp(ptr) \
- ({ ptrdiff_t d__; \
- asm volatile (__stackinfo_sub " %0, %0, sp" : "=r" (d__) : "0" (ptr)); \
- d__; })
-
-#endif /* stackinfo.h */
diff --git a/sysdeps/tile/start.S b/sysdeps/tile/start.S
deleted file mode 100644
index 6219012..0000000
--- a/sysdeps/tile/start.S
+++ /dev/null
@@ -1,184 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* This is the canonical entry point, usually the first thing in the text
- segment. The ELF standard tells us that the stack is set up like this on
- entry (the left side is the offset from "sp"), in units of
- __SIZEOF_POINTER__ entries:
-
- +0 argc
- +1 argv[0]
- ...
- +(argc+1) NULL
- +(argc+2) envp[0]
- ...
- NULL
- ... ElfInfo
-
- The ElfInfo is pairs of key/value long words following the envp
- pointers and terminated by a zero-valued key.
-
- Although not mandated by the standard, it happens to be the case
- that we store the actual argv and envp strings immediately after
- the ElfInfo data on the stack.
-
- On entry r0 points to the shared library termination function, or 0
- if there isn't one.
-*/
-
-#include <features.h>
-#include <sysdep.h>
-#include <arch/abi.h>
-
-/* Just create no-ops if we don't support PC-relative PLT relocations. */
-#ifdef NO_PLT_PCREL
-# define hw2_last_plt(x) 0
-# define hw1_plt(x) 0
-# define hw0_plt(x) 0
-#endif
-
- .text
- .global _start
- .type _start,@function
- .align 8
-_start:
- /* Linux starts us with sp pointing at the conventional Elf layout,
- but we need to allow two "caller" words for our ABI convention. */
- {
- /* Load argc (stored as a "long", equivalent to a pointer type). */
- LD_PTR r1, sp
-
- /* Save incoming 'sp', which points to the Elf argument block. */
- move r52, sp
- }
-
- {
- /* Allocate stack frame callee space for __libc_start_main. */
- ADDI_PTR r12, sp, -(2 * REGSIZE)
- }
-
- {
- /* Get our PC. */
- lnk r13
-
- /* sp is not necessarily properly aligned on startup because
- of the way ld.so pops off leading argv elements. So align it. */
- andi sp, r12, -8
- }
-.Lmy_pc:
-
- {
- /* Pass the address of the shared library termination function. */
- move r5, r0
-
- /* Compute location where __libc_start_main's caller is supposed to
- store its frame pointer. */
- ADDI_PTR r12, sp, REGSIZE
-
- /* Zero out callee space for return address. Unnecessary but free.
- This is just paranoia to help backtracing not go awry. */
- st sp, zero
- }
- {
- /* Zero out our frame pointer for __libc_start_main. */
- st r12, zero
-
- /* Zero out lr to make __libc_start_main the end of backtrace. */
- move lr, zero
-
- /* Compute a pointer to argv. envp will be determined
- later in __libc_start_main. We set up the first argument
- (the address of main) below. */
- ADDI_PTR r2, r52, __SIZEOF_POINTER__
- }
- {
- /* Pass the highest stack address to user code. */
- ADDI_PTR r6, sp, (2 * REGSIZE)
-
- /* Pass address of main() in r0, and of our own entry
- points to .fini and .init in r3 and r4. */
- moveli r0, hw2_last(main - .Lmy_pc)
- }
- {
- shl16insli r0, r0, hw1(main - .Lmy_pc)
- moveli r3, hw2_last(__libc_csu_init - .Lmy_pc)
- }
- {
- shl16insli r0, r0, hw0(main - .Lmy_pc)
- shl16insli r3, r3, hw1(__libc_csu_init - .Lmy_pc)
- }
- {
- ADD_PTR r0, r0, r13
- shl16insli r3, r3, hw0(__libc_csu_init - .Lmy_pc)
- }
- {
- moveli r12, hw2_last_plt(__libc_start_main - .Lmy_pc)
- ADD_PTR r3, r3, r13
- }
- {
- shl16insli r12, r12, hw1_plt(__libc_start_main - .Lmy_pc)
- moveli r4, hw2_last(__libc_csu_fini - .Lmy_pc)
- }
- {
- shl16insli r12, r12, hw0_plt(__libc_start_main - .Lmy_pc)
- shl16insli r4, r4, hw1(__libc_csu_fini - .Lmy_pc)
- }
- {
- ADD_PTR r12, r12, r13
- shl16insli r4, r4, hw0(__libc_csu_fini - .Lmy_pc)
- }
- {
- ADD_PTR r4, r4, r13
-#ifdef NO_PLT_PCREL
- j plt(__libc_start_main)
-#else
- jr r12
-#endif
- }
-
- {
- /* Tell backtracer to give up (_start has no caller). */
- info INFO_OP_CANNOT_BACKTRACE
- }
-.size _start, .-_start
-
-/* Define a symbol for the first piece of initialized data. */
- .data
- .global __data_start
- .align 8
-__data_start:
- .long 0
- .weak data_start
- data_start = __data_start
diff --git a/sysdeps/tile/strcasestr.c b/sysdeps/tile/strcasestr.c
deleted file mode 100644
index e2cc058..0000000
--- a/sysdeps/tile/strcasestr.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Return the offset of one string within another.
- Copyright (C) 1994-2018 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/>. */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-/* Specification. */
-#include <string.h>
-
-#include <ctype.h>
-#include <stdbool.h>
-#include <strings.h>
-
-#define USE_AS_STRCASESTR
-#define STRSTR __strcasestr
-#define STRSTR2 strcasestr2
-#define STRCHR strcasechr
-#define STRSTR_SCAN strcasestr_scan
-
-#undef strcasestr
-#undef __strcasestr
-
-#ifndef STRCASESTR
-#define STRCASESTR __strcasestr
-#endif
-
-#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
-
-#define CANON_ELEMENT(c) TOLOWER (c)
-#define CMP_FUNC(p1, p2, l) \
- __strncasecmp ((const char *) (p1), (const char *) (p2), l)
-
-#include "strstr.c"
-
-#ifndef NO_ALIAS
-weak_alias (__strcasestr, strcasestr)
-#endif
diff --git a/sysdeps/tile/strchr.c b/sysdeps/tile/strchr.c
deleted file mode 100644
index f2bb833..0000000
--- a/sysdeps/tile/strchr.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <string.h>
-#include <stdint.h>
-#include "string-endian.h"
-
-#undef strchr
-
-char *
-strchr (const char *s, int c)
-{
- int z, g;
-
- /* Get an aligned pointer. */
- const uintptr_t s_int = (uintptr_t) s;
- const uint64_t *p = (const uint64_t *) (s_int & -8);
-
- /* Create eight copies of the byte for which we are looking. */
- const uint64_t goal = copy_byte(c);
-
- /* Read the first aligned word, but force bytes before the string to
- match neither zero nor goal (we make sure the high bit of each byte
- is 1, and the low 7 bits are all the opposite of the goal byte). */
- const uint64_t before_mask = MASK (s_int);
- uint64_t v = (*p | before_mask) ^ (goal & v1shrui (before_mask, 1));
-
- uint64_t zero_matches, goal_matches;
- while (1)
- {
- /* Look for a terminating '\0'. */
- zero_matches = v1cmpeqi (v, 0);
-
- /* Look for the goal byte. */
- goal_matches = v1cmpeq (v, goal);
-
- if (__builtin_expect ((zero_matches | goal_matches) != 0, 0))
- break;
-
- v = *++p;
- }
-
- z = CFZ (zero_matches);
- g = CFZ (goal_matches);
-
- /* If we found c before '\0' we got a match. Note that if c == '\0'
- then g == z, and we correctly return the address of the '\0'
- rather than NULL. */
- return (g <= z) ? ((char *) p) + (g >> 3) : NULL;
-}
-weak_alias (strchr, index)
-libc_hidden_builtin_def (strchr)
diff --git a/sysdeps/tile/strchrnul.c b/sysdeps/tile/strchrnul.c
deleted file mode 100644
index 2f425a2..0000000
--- a/sysdeps/tile/strchrnul.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <string.h>
-#include <stdint.h>
-#include "string-endian.h"
-
-char *
-__strchrnul (const char *s, int c)
-{
- int z, g;
-
- /* Get an aligned pointer. */
- const uintptr_t s_int = (uintptr_t) s;
- const uint64_t *p = (const uint64_t *) (s_int & -8);
-
- /* Create eight copies of the byte for which we are looking. */
- const uint64_t goal = copy_byte(c);
-
- /* Read the first aligned word, but force bytes before the string to
- match neither zero nor goal (we make sure the high bit of each byte
- is 1, and the low 7 bits are all the opposite of the goal byte). */
- const uint64_t before_mask = MASK (s_int);
- uint64_t v = (*p | before_mask) ^ (goal & v1shrui (before_mask, 1));
-
- uint64_t zero_matches, goal_matches;
- while (1)
- {
- /* Look for a terminating '\0'. */
- zero_matches = v1cmpeqi (v, 0);
-
- /* Look for the goal byte. */
- goal_matches = v1cmpeq (v, goal);
-
- if (__builtin_expect ((zero_matches | goal_matches) != 0, 0))
- break;
-
- v = *++p;
- }
-
- z = CFZ (zero_matches);
- g = CFZ (goal_matches);
-
- /* Return a pointer to the NUL or goal, whichever is first. */
- if (z < g)
- g = z;
- return ((char *) p) + (g >> 3);
-}
-weak_alias (__strchrnul, strchrnul)
diff --git a/sysdeps/tile/string-endian.h b/sysdeps/tile/string-endian.h
deleted file mode 100644
index 3a2d495..0000000
--- a/sysdeps/tile/string-endian.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <endian.h>
-#include <stdint.h>
-
-/* Provide a set of macros to help keep endianness #ifdefs out of
- the string functions.
-
- MASK: Provide a mask based on the pointer alignment that
- sets up non-zero bytes before the beginning of the string.
- The MASK expression works because shift counts are taken mod 64.
-
- NULMASK: Clear bytes beyond a given point in the string.
-
- CFZ: Find the first zero bit in the 8 string bytes in a long.
-
- REVCZ: Find the last zero bit in the 8 string bytes in a long.
-
- STRSHIFT: Shift N bits towards the start of the string. */
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-#define MASK(x) (__insn_shl(1ULL, (x << 3)) - 1)
-#define NULMASK(x) ((2ULL << x) - 1)
-#define CFZ(x) __insn_ctz(x)
-#define REVCZ(x) __insn_clz(x)
-#define STRSHIFT(x,n) ((x) >> n)
-#else
-#define MASK(x) (__insn_shl(-2LL, ((-x << 3) - 1)))
-#define NULMASK(x) (-2LL << (63 - x))
-#define CFZ(x) __insn_clz(x)
-#define REVCZ(x) __insn_ctz(x)
-#define STRSHIFT(x,n) ((x) << n)
-#endif
-
-/* Create eight copies of the byte in a uint64_t. Byte Shuffle uses
- the bytes of srcB as the index into the dest vector to select a
- byte. With all indices of zero, the first byte is copied into all
- the other bytes. */
-static inline uint64_t copy_byte(uint8_t byte)
-{
- return __insn_shufflebytes(byte, 0, 0);
-}
-
-/* Implement the byte vector instructions using extended assembly.
- The __insn_OP() builtins are buggy in the upstream compiler;
- see gcc bugzilla 78117. */
-
-#define VECOP(OP) \
- static inline uint64_t OP (uint64_t a, uint64_t b) \
- { \
- uint64_t result; \
- asm volatile (#OP " %0, %1, %2" : "=r"(result) : "r"(a), "r"(b)); \
- return result; \
- } \
- \
- static inline uint64_t OP ## i (uint64_t a, uint64_t b) \
- { \
- uint64_t result; \
- asm volatile (#OP "i %0, %1, %2" : "=r"(result) : "r"(a), "I"(b)); \
- return result; \
- }
-
-VECOP(v1cmpeq)
-VECOP(v1cmpltu)
-VECOP(v1cmpne)
-VECOP(v1add)
-VECOP(v1shru)
-VECOP(v1shl)
diff --git a/sysdeps/tile/strlen.c b/sysdeps/tile/strlen.c
deleted file mode 100644
index 62c50b1..0000000
--- a/sysdeps/tile/strlen.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <string.h>
-#include <stdint.h>
-#include "string-endian.h"
-
-size_t
-strlen (const char *s)
-{
- /* Get an aligned pointer. */
- const uintptr_t s_int = (uintptr_t) s;
- const uint64_t *p = (const uint64_t *) (s_int & -8);
-
- /* Read and MASK the first word. */
- uint64_t v = *p | MASK (s_int);
-
- uint64_t bits;
- while ((bits = v1cmpeqi (v, 0)) == 0)
- v = *++p;
-
- return ((const char *) p) + (CFZ (bits) >> 3) - s;
-}
-libc_hidden_builtin_def (strlen)
diff --git a/sysdeps/tile/strnlen.c b/sysdeps/tile/strnlen.c
deleted file mode 100644
index c7c7281..0000000
--- a/sysdeps/tile/strnlen.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (C) 2013-2018 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 <string.h>
-#include <stdint.h>
-#include "string-endian.h"
-
-/* Find the length of S, but scan at most MAXLEN characters. If no
- '\0' terminator is found in that many characters, return MAXLEN. */
-size_t
-__strnlen (const char *s, size_t maxlen)
-{
- /* When maxlen is 0, can't read any bytes or it might cause a page fault. */
- if (maxlen == 0)
- return 0;
-
- /* Get an aligned pointer. */
- const uintptr_t s_int = (uintptr_t) s;
- const uint64_t *p = (const uint64_t *) (s_int & -8);
- size_t bytes_read = sizeof (*p) - (s_int & (sizeof (*p) - 1));
-
- /* Read and MASK the first word. */
- uint64_t v = *p | MASK (s_int);
-
- uint64_t bits;
- while ((bits = v1cmpeqi (v, 0)) == 0)
- {
- if (bytes_read >= maxlen)
- {
- /* Read maxlen bytes and didn't find the terminator. */
- return maxlen;
- }
- v = *++p;
- bytes_read += sizeof (v);
- }
-
- /* Found '\0', check it is not larger than maxlen */
- size_t len = ((const char *) p) + (CFZ (bits) >> 3) - s;
- return (len < maxlen ? len : maxlen);
-}
-libc_hidden_def (__strnlen)
-weak_alias (__strnlen, strnlen)
-libc_hidden_def (strnlen)
diff --git a/sysdeps/tile/strrchr.c b/sysdeps/tile/strrchr.c
deleted file mode 100644
index 33dcd4b..0000000
--- a/sysdeps/tile/strrchr.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <string.h>
-#include <stdint.h>
-#include "string-endian.h"
-
-char *
-strrchr (const char *s, int c)
-{
- /* Get an aligned pointer. */
- const uintptr_t s_int = (uintptr_t) s;
- const uint64_t *p = (const uint64_t *) (s_int & -8);
-
- /* Create eight copies of the byte for which we are looking. */
- const uint64_t goal = copy_byte(c);
-
- /* Read the first aligned word, but force bytes before the string to
- match neither zero nor goal (we make sure the high bit of each byte
- is 1, and the low 7 bits are all the opposite of the goal byte). */
- const uint64_t before_mask = MASK (s_int);
- uint64_t v = (*p | before_mask) ^ (goal & v1shrui (before_mask, 1));
- const char *found = NULL;
- uint64_t zero_matches, goal_matches;
- while (1)
- {
- /* Look for a terminating '\0'. */
- zero_matches = v1cmpeqi (v, 0);
-
- /* Look for the goal byte. */
- goal_matches = v1cmpeq (v, goal);
-
- /* If we found the goal, record the last offset. */
- if (__builtin_expect (goal_matches != 0, 0))
- {
- if (__builtin_expect (zero_matches != 0, 0))
- {
- /* Clear any goal after the first zero. */
- int first_nul = CFZ (zero_matches);
- goal_matches &= NULMASK (first_nul);
- }
- if (__builtin_expect (goal_matches != 0, 1))
- found = ((char *) p) + 7 - (REVCZ (goal_matches) >> 3);
- }
-
- if (__builtin_expect (zero_matches != 0, 0))
- return (char *) found;
-
- v = *++p;
- }
-}
-weak_alias (strrchr, rindex)
-libc_hidden_builtin_def (strrchr)
diff --git a/sysdeps/tile/strstr.c b/sysdeps/tile/strstr.c
deleted file mode 100644
index 961e2af..0000000
--- a/sysdeps/tile/strstr.c
+++ /dev/null
@@ -1,270 +0,0 @@
-/* Copyright (C) 2013-2018 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* Specification of strstr. */
-#include <string.h>
-
-#include <stdbool.h>
-#include "string-endian.h"
-
-#define RETURN_TYPE char *
-#define AVAILABLE(h, h_l, j, n_l) \
- (!memchr ((h) + (h_l), '\0', (j) + (n_l) - (h_l)) \
- && ((h_l) = (j) + (n_l)))
-#include "str-two-way.h"
-typeof(two_way_short_needle) two_way_short_needle __attribute__((unused));
-
-#undef strstr
-
-#ifndef STRSTR
-#define STRSTR strstr
-#endif
-
-#ifndef STRSTR2
-#define STRSTR2 strstr2
-#endif
-
-#ifndef STRCHR
-#define STRCHR strchr
-#endif
-
-#ifndef STRSTR_SCAN
-#define STRSTR_SCAN strstr_scan
-#endif
-
-#ifndef TOLOWER
-# define TOLOWER(Ch) (Ch)
-#endif
-
-#ifdef USE_AS_STRCASESTR
-
-static uint64_t
-vec_tolower (uint64_t cc)
-{
- /* For Uppercases letters, add 32 to convert to lower case. */
- uint64_t less_than_eq_Z = v1cmpltui (cc, 'Z' + 1);
- uint64_t less_than_A = v1cmpltui (cc, 'A');
- uint64_t is_upper = v1cmpne (less_than_eq_Z, less_than_A);
- return v1add (cc, v1shli (is_upper, 5));
-}
-
-/* There is no strcasechr() defined, but needed for 1 byte case
- of strcasestr(), so create it here. */
-
-static char *
-strcasechr (const char *s, int c)
-{
- int z, g;
-
- c = tolower (c);
-
- /* Get an aligned pointer. */
- const uintptr_t s_int = (uintptr_t) s;
- const uint64_t *p = (const uint64_t *) (s_int & -8);
-
- /* Create eight copies of the byte for which we are looking. */
- const uint64_t goal = copy_byte(c);
-
- /* Read the first aligned word, but force bytes before the string to
- match neither zero nor goal (we make sure the high bit of each byte
- is 1, and the low 7 bits are all the opposite of the goal byte). */
- const uint64_t before_mask = MASK (s_int);
- uint64_t v =
- (vec_tolower (*p) | before_mask) ^ (goal & v1shrui (before_mask, 1));
-
- uint64_t zero_matches, goal_matches;
- while (1)
- {
- /* Look for a terminating '\0'. */
- zero_matches = v1cmpeqi (v, 0);
-
- /* Look for the goal byte. */
- goal_matches = v1cmpeq (v, goal);
-
- if (__builtin_expect ((zero_matches | goal_matches) != 0, 0))
- break;
-
- v = vec_tolower (*++p);
- }
-
- z = CFZ (zero_matches);
- g = CFZ (goal_matches);
-
- /* If we found c before '\0' we got a match. Note that if c == '\0'
- then g == z, and we correctly return the address of the '\0'
- rather than NULL. */
- return (g <= z) ? ((char *) p) + (g >> 3) : NULL;
-}
-
-# define vec_load(p) vec_tolower (*(p))
-# define STRCHR strcasechr
-# define CMP_FUNC __strncasecmp
-
-#else
-
-# define vec_load(p) (*(p))
-# define STRCHR strchr
-# define CMP_FUNC memcmp
-
-#endif
-
-
-/* Compare 2-character needle using SIMD. */
-static char *
-STRSTR2 (const char *haystack_start, const char *needle)
-{
- int z, g;
-
- __insn_prefetch (haystack_start + 64);
-
- /* Get an aligned pointer. */
- const uintptr_t s_int = (uintptr_t) haystack_start;
- const uint64_t *p = (const uint64_t *) (s_int & -8);
-
- /* Create eight copies of the first byte for which we are looking. */
- const uint64_t byte1 = copy_byte (TOLOWER (*needle));
- /* Create eight copies of the second byte for which we are looking. */
- const uint64_t byte2 = copy_byte (TOLOWER (*(needle + 1)));
-
- /* Read the first aligned word, but force bytes before the string to
- match neither zero nor goal (we make sure the high bit of each byte
- is 1, and the low 7 bits are all the opposite of the goal byte). */
- const uint64_t before_mask = MASK (s_int);
- uint64_t v =
- (vec_load (p) | before_mask) ^ (byte1 & v1shrui (before_mask, 1));
-
- uint64_t zero_matches, goal_matches;
- while (1)
- {
- /* Look for a terminating '\0'. */
- zero_matches = v1cmpeqi (v, 0);
- uint64_t byte1_matches = v1cmpeq (v, byte1);
- if (__builtin_expect (zero_matches != 0, 0))
- {
- /* This is the last vector. Don't worry about matches
- crossing into the next vector. Shift the second byte
- back 1 byte to align it with the first byte, then and to
- check for both matching. Each vector has a 1 in the LSB
- of the byte if there was match. */
- uint64_t byte2_matches = v1cmpeq (v, byte2);
- goal_matches = byte1_matches & STRSHIFT (byte2_matches, 8);
- break;
- }
- else
- {
- /* This is not the last vector, so load the next vector now.
- And compare byte2 to the 8-bytes starting 1 byte shifted from v,
- which goes 1-byte into the next vector. */
- uint64_t v2 = vec_load (p + 1);
- if (byte1_matches)
- {
- /* 8-bytes starting 1 byte into v. */
- v = __insn_dblalign (v, v2, (void*)1);
- uint64_t byte2_matches_shifted = v1cmpeq (v, byte2);
- goal_matches = byte1_matches & byte2_matches_shifted;
- if (__builtin_expect (goal_matches != 0, 0))
- break;
- }
- __insn_prefetch (p + 4);
- /* Move to next vector. */
- v = v2;
- p++;
- }
- }
-
- z = CFZ (zero_matches);
- g = CFZ (goal_matches);
-
- /* If we found the match before '\0' we got a true match. Note that
- if c == '\0' then g == z, and we correctly return the address of
- the '\0' rather than NULL. */
- return (g <= z) ? ((char *) p) + (g >> 3) : NULL;
-}
-
-/* Scan for NEEDLE, using the first two characters as a filter. */
-static char *
-STRSTR_SCAN (const char *haystack, const char *needle,
- unsigned int needle_len)
-{
- char *match;
- while (1)
- {
- match = STRSTR2 (haystack, needle);
- if (match == NULL)
- return NULL;
- /* Found first two characters of needle, check for remainder. */
- if (CMP_FUNC (match + 2, needle + 2, needle_len - 2) == 0)
- return match;
- /* Move past the previous match. Could be +2 instead of +1 if
- first two characters are different, but that tested slower. */
- haystack = match + 1;
- }
-}
-
-/* Return the first occurrence of NEEDLE in HAYSTACK. Return HAYSTACK
- if NEEDLE is empty, otherwise NULL if NEEDLE is not found in
- HAYSTACK. */
-char *
-STRSTR (const char *haystack_start, const char *needle_start)
-{
- const char *haystack = haystack_start;
- const char *needle = needle_start;
- __insn_prefetch (haystack);
- size_t needle_len = strlen (needle_start); /* Length of NEEDLE. */
- size_t haystack_len; /* Known minimum length of HAYSTACK. */
-
- if (needle_len <= 2)
- {
- if (needle_len == 1)
- return STRCHR (haystack_start, *needle_start);
- if (needle_len == 0)
- return (char *) haystack_start;
- else
- return STRSTR2 (haystack_start, needle_start);
- }
-
- /* Fail if NEEDLE is longer than HAYSTACK. */
- if (__strnlen (haystack, needle_len) < needle_len)
- return NULL;
-
- /* Perform the search. Abstract memory is considered to be an array
- of 'unsigned char' values, not an array of 'char' values. See
- ISO C 99 section 6.2.6.1. */
- if (needle_len < 40)
- return STRSTR_SCAN (haystack_start, needle_start, needle_len);
- else
- {
- /* Reduce the size of haystack using STRSTR2, since it has a smaller
- linear coefficient than the Two-Way algorithm. */
- haystack = STRSTR2 (haystack_start, needle_start);
- if (haystack == NULL)
- return NULL;
- needle = needle_start;
- haystack_len = (haystack > haystack_start + needle_len ? 1
- : needle_len + haystack_start - haystack);
-
- return two_way_long_needle ((const unsigned char *) haystack,
- haystack_len,
- (const unsigned char *) needle, needle_len);
- }
-}
-#ifndef USE_AS_STRCASESTR
-libc_hidden_builtin_def (STRSTR)
-#endif
-
-#undef LONG_NEEDLE_THRESHOLD
diff --git a/sysdeps/tile/sysdep.h b/sysdeps/tile/sysdep.h
deleted file mode 100644
index bb82d3c..0000000
--- a/sysdeps/tile/sysdep.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <sysdeps/generic/sysdep.h>
-#include <bits/wordsize.h>
-#include <arch/abi.h>
-
-#if defined __ASSEMBLER__ || defined REQUEST_ASSEMBLER_MACROS
-
-#include <feedback.h>
-
-/* Make use of .size directive. */
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
-
-/* Define an entry point visible from C. */
-#define ENTRY(name) \
- .globl C_SYMBOL_NAME(name); \
- .type C_SYMBOL_NAME(name),@function; \
- .align 8; \
- C_LABEL(name) \
- cfi_startproc; \
- CALL_MCOUNT
-
-#undef END
-#define END(name) \
- cfi_endproc; \
- ASM_SIZE_DIRECTIVE(name)
-
-/* Since C identifiers are not normally prefixed with an underscore
- on this system, the asm identifier `syscall_error' intrudes on the
- C name space. Make sure we use an innocuous name. */
-#define syscall_error __syscall_error
-#define mcount __mcount
-
-/* If compiled for profiling, call `mcount' at the start of each function.
- The mcount code requires the caller PC in r10. The `mcount' function
- sets lr back to the value r10 had on entry when it returns. */
-#ifdef PROF
-#define CALL_MCOUNT { move r10, lr; jal mcount }
-#else
-#define CALL_MCOUNT /* Do nothing. */
-#endif
-
-/* Local label name for asm code. */
-#define L(name) .L##name
-
-/* Specify the size in bytes of a machine register. */
-#define REGSIZE 8
-
-/* Provide "pointer-oriented" instruction variants. These differ not
- just for tilepro vs tilegx, but also for tilegx -m64 vs -m32. */
-#if __WORDSIZE == 32
-#define ADD_PTR addx
-#define ADDI_PTR addxi
-#define ADDLI_PTR addxli
-#define LD_PTR ld4s
-#define ST_PTR st4
-#define SHL_PTR_ADD shl2add
-#else
-#define ADD_PTR add
-#define ADDI_PTR addi
-#define ADDLI_PTR addli
-#define LD_PTR LD
-#define ST_PTR ST
-#define SHL_PTR_ADD shl3add
-#endif
-
-#endif /* __ASSEMBLER__ */
diff --git a/sysdeps/tile/tilegx32/Implies b/sysdeps/tile/tilegx32/Implies
deleted file mode 100644
index 709e1dc..0000000
--- a/sysdeps/tile/tilegx32/Implies
+++ /dev/null
@@ -1,2 +0,0 @@
-tile
-wordsize-32
diff --git a/sysdeps/tile/tilegx64/Implies b/sysdeps/tile/tilegx64/Implies
deleted file mode 100644
index 1e9db8e..0000000
--- a/sysdeps/tile/tilegx64/Implies
+++ /dev/null
@@ -1,2 +0,0 @@
-tile
-wordsize-64
diff --git a/sysdeps/tile/tls-macros.h b/sysdeps/tile/tls-macros.h
deleted file mode 100644
index 162d309..0000000
--- a/sysdeps/tile/tls-macros.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#define TLS_GD_OFFSET(x) \
- "moveli r0, hw1_last_tls_gd(" #x ")\n\t" \
- "shl16insli r0, r0, hw0_tls_gd(" #x ")\n\t" \
- "addi r0, %1, tls_add(" #x ")\n\t"
-
-#define TLS_GD(x) \
- ({ \
- int *__retval; \
- extern char _GLOBAL_OFFSET_TABLE_[]; \
- \
- asm (TLS_GD_OFFSET(x) \
- "jal tls_gd_call(" #x ")\n\t" \
- "addi %0, r0, tls_gd_add(" #x ")" : \
- "=&r" (__retval) : "r" (_GLOBAL_OFFSET_TABLE_) : \
- "r0", "r25", "r26", "r27", "r28", "r29"); \
- __retval; })
-
-/* No special support for LD mode. */
-#define TLS_LD TLS_GD
-
-#define TLS_IE_OFFSET(x) \
- "moveli %0, hw1_last_tls_ie(" #x ")\n\t" \
- "shl16insli %0, %0, hw0_tls_ie(" #x ")\n\t" \
- "addi %0, %1, tls_add(" #x ")\n\t"
-#define LD_TLS "ld_tls"
-
-#define TLS_IE(x) \
- ({ \
- int *__retval; \
- extern char _GLOBAL_OFFSET_TABLE_[]; \
- \
- asm (TLS_IE_OFFSET(x) \
- LD_TLS " %0, %0, tls_ie_load(" #x ")\n\t" \
- "add %0, %0, tp" : \
- "=&r" (__retval) : "r" (_GLOBAL_OFFSET_TABLE_)); \
- __retval; })
-
-#define _TLS_LE(x) \
- "moveli %0, hw1_last_tls_le(" #x ")\n\t" \
- "shl16insli %0, %0, hw0_tls_le(" #x ")\n\t" \
- "add %0, %0, tp"
-
-#define TLS_LE(x) \
- ({ \
- int *__retval; \
- asm (_TLS_LE(x) : "=r" (__retval)); \
- __retval; })
diff --git a/sysdeps/tile/tst-audit.h b/sysdeps/tile/tst-audit.h
deleted file mode 100644
index 4196c32..0000000
--- a/sysdeps/tile/tst-audit.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#define pltenter la_tile_gnu_pltenter
-#define pltexit la_tile_gnu_pltexit
-#define La_regs La_tile_regs
-#define La_retval La_tile_retval
-#define int_retval lrv_reg[0]
diff --git a/sysdeps/tile/wordcopy.c b/sysdeps/tile/wordcopy.c
deleted file mode 100644
index ba73a0b..0000000
--- a/sysdeps/tile/wordcopy.c
+++ /dev/null
@@ -1,433 +0,0 @@
-/* wordcopy.c -- subroutines for memory copy functions. Tile version.
- Copyright (C) 1991-2018 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/>. */
-
-/* To optimize for tile, we make the following changes from the
- default glibc version:
- - Use the double align instruction instead of the MERGE macro.
- - Since we don't have offset addressing mode, make sure the loads /
- stores in the inner loop always have indices of 0.
- - Use post-increment addresses in the inner loops, which yields
- better scheduling. */
-
-/* BE VERY CAREFUL IF YOU CHANGE THIS CODE...! */
-
-#include <stddef.h>
-#include <memcopy.h>
-
-/* Provide the appropriate dblalign builtin to shift two registers
- based on the alignment of a pointer held in a third register. */
-#define DBLALIGN __insn_dblalign
-
-/* _wordcopy_fwd_aligned -- Copy block beginning at SRCP to
- block beginning at DSTP with LEN `op_t' words (not LEN bytes!).
- Both SRCP and DSTP should be aligned for memory operations on `op_t's. */
-
-void
-_wordcopy_fwd_aligned (long int dstp, long int srcp, size_t len)
-{
- op_t a0, a1;
-
- switch (len % 8)
- {
- case 2:
- a0 = ((op_t *) srcp)[0];
- srcp += OPSIZ;
- len += 6;
- goto do1;
- case 3:
- a1 = ((op_t *) srcp)[0];
- srcp += OPSIZ;
- len += 5;
- goto do2;
- case 4:
- a0 = ((op_t *) srcp)[0];
- srcp += OPSIZ;
- len += 4;
- goto do3;
- case 5:
- a1 = ((op_t *) srcp)[0];
- srcp += OPSIZ;
- len += 3;
- goto do4;
- case 6:
- a0 = ((op_t *) srcp)[0];
- srcp += OPSIZ;
- len += 2;
- goto do5;
- case 7:
- a1 = ((op_t *) srcp)[0];
- srcp += OPSIZ;
- len += 1;
- goto do6;
-
- case 0:
- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
- return;
- a0 = ((op_t *) srcp)[0];
- srcp += OPSIZ;
- goto do7;
- case 1:
- a1 = ((op_t *) srcp)[0];
- srcp += OPSIZ;
- len -= 1;
- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
- goto do0;
- goto do8; /* No-op. */
- }
-
- do
- {
- do8:
- a0 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a1;
- srcp += OPSIZ;
- dstp += OPSIZ;
- do7:
- a1 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a0;
- srcp += OPSIZ;
- dstp += OPSIZ;
- do6:
- a0 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a1;
- srcp += OPSIZ;
- dstp += OPSIZ;
- do5:
- a1 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a0;
- srcp += OPSIZ;
- dstp += OPSIZ;
- do4:
- a0 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a1;
- srcp += OPSIZ;
- dstp += OPSIZ;
- do3:
- a1 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a0;
- srcp += OPSIZ;
- dstp += OPSIZ;
- do2:
- a0 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a1;
- srcp += OPSIZ;
- dstp += OPSIZ;
- do1:
- a1 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a0;
- srcp += OPSIZ;
- dstp += OPSIZ;
-
- len -= 8;
- }
- while (len != 0);
-
- /* This is the right position for do0. Please don't move
- it into the loop. */
- do0:
- ((op_t *) dstp)[0] = a1;
-}
-
-/* _wordcopy_fwd_dest_aligned -- Copy block beginning at SRCP to
- block beginning at DSTP with LEN `op_t' words (not LEN bytes!).
- DSTP should be aligned for memory operations on `op_t's, but SRCP must
- *not* be aligned. */
-
-void
-_wordcopy_fwd_dest_aligned (long int dstp, long int srcp, size_t len)
-{
- void * srci;
- op_t a0, a1, a2, a3;
-
- /* Save the initial source pointer so we know the number of bytes to
- shift for merging two unaligned results. */
- srci = (void *) srcp;
-
- /* Make SRCP aligned by rounding it down to the beginning of the `op_t'
- it points in the middle of. */
- srcp &= -OPSIZ;
-
- switch (len % 4)
- {
- case 2:
- a1 = ((op_t *) srcp)[0];
- a2 = ((op_t *) srcp)[1];
- len += 2;
- srcp += 2 * OPSIZ;
- goto do1;
- case 3:
- a0 = ((op_t *) srcp)[0];
- a1 = ((op_t *) srcp)[1];
- len += 1;
- srcp += 2 * OPSIZ;
- goto do2;
- case 0:
- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
- return;
- a3 = ((op_t *) srcp)[0];
- a0 = ((op_t *) srcp)[1];
- len += 0;
- srcp += 2 * OPSIZ;
- goto do3;
- case 1:
- a2 = ((op_t *) srcp)[0];
- a3 = ((op_t *) srcp)[1];
- srcp += 2 * OPSIZ;
- len -= 1;
- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
- goto do0;
- goto do4; /* No-op. */
- }
-
- do
- {
- do4:
- a0 = ((op_t *) srcp)[0];
- a2 = DBLALIGN (a2, a3, srci);
- ((op_t *) dstp)[0] = a2;
- srcp += OPSIZ;
- dstp += OPSIZ;
- do3:
- a1 = ((op_t *) srcp)[0];
- a3 = DBLALIGN (a3, a0, srci);
- ((op_t *) dstp)[0] = a3;
- srcp += OPSIZ;
- dstp += OPSIZ;
- do2:
- a2 = ((op_t *) srcp)[0];
- a0 = DBLALIGN (a0, a1, srci);
- ((op_t *) dstp)[0] = a0;
- srcp += OPSIZ;
- dstp += OPSIZ;
- do1:
- a3 = ((op_t *) srcp)[0];
- a1 = DBLALIGN (a1, a2, srci);
- ((op_t *) dstp)[0] = a1;
- srcp += OPSIZ;
- dstp += OPSIZ;
- len -= 4;
- }
- while (len != 0);
-
- /* This is the right position for do0. Please don't move
- it into the loop. */
- do0:
- ((op_t *) dstp)[0] = DBLALIGN (a2, a3, srci);
-}
-
-/* _wordcopy_bwd_aligned -- Copy block finishing right before
- SRCP to block finishing right before DSTP with LEN `op_t' words
- (not LEN bytes!). Both SRCP and DSTP should be aligned for memory
- operations on `op_t's. */
-
-void
-_wordcopy_bwd_aligned (long int dstp, long int srcp, size_t len)
-{
- op_t a0, a1;
- long int srcp1;
-
- srcp1 = srcp - 1 * OPSIZ;
- srcp -= 2 * OPSIZ;
- dstp -= 1 * OPSIZ;
-
- switch (len % 8)
- {
- case 2:
- a0 = ((op_t *) srcp1)[0];
- len += 6;
- goto do1;
- case 3:
- a1 = ((op_t *) srcp1)[0];
- len += 5;
- goto do2;
- case 4:
- a0 = ((op_t *) srcp1)[0];
- len += 4;
- goto do3;
- case 5:
- a1 = ((op_t *) srcp1)[0];
- len += 3;
- goto do4;
- case 6:
- a0 = ((op_t *) srcp1)[0];
- len += 2;
- goto do5;
- case 7:
- a1 = ((op_t *) srcp1)[0];
- len += 1;
- goto do6;
-
- case 0:
- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
- return;
- a0 = ((op_t *) srcp1)[0];
- goto do7;
- case 1:
- a1 = ((op_t *) srcp1)[0];
- len -= 1;
- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
- goto do0;
- goto do8; /* No-op. */
- }
-
- do
- {
- do8:
- a0 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a1;
- srcp -= OPSIZ;
- dstp -= OPSIZ;
- do7:
- a1 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a0;
- srcp -= OPSIZ;
- dstp -= OPSIZ;
- do6:
- a0 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a1;
- srcp -= OPSIZ;
- dstp -= OPSIZ;
- do5:
- a1 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a0;
- srcp -= OPSIZ;
- dstp -= OPSIZ;
- do4:
- a0 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a1;
- srcp -= OPSIZ;
- dstp -= OPSIZ;
- do3:
- a1 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a0;
- srcp -= OPSIZ;
- dstp -= OPSIZ;
- do2:
- a0 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a1;
- srcp -= OPSIZ;
- dstp -= OPSIZ;
- do1:
- a1 = ((op_t *) srcp)[0];
- ((op_t *) dstp)[0] = a0;
- srcp -= OPSIZ;
- dstp -= OPSIZ;
-
- len -= 8;
- }
- while (len != 0);
-
- /* This is the right position for do0. Please don't move
- it into the loop. */
- do0:
- ((op_t *) dstp)[0] = a1;
-}
-
-/* _wordcopy_bwd_dest_aligned -- Copy block finishing right
- before SRCP to block finishing right before DSTP with LEN `op_t'
- words (not LEN bytes!). DSTP should be aligned for memory
- operations on `op_t', but SRCP must *not* be aligned. */
-
-void
-_wordcopy_bwd_dest_aligned (long int dstp, long int srcp, size_t len)
-{
- void * srci;
- op_t a0, a1, a2, a3;
- op_t b0, b1, b2, b3;
-
- /* Save the initial source pointer so we know the number of bytes to
- shift for merging two unaligned results. */
- srci = (void *) srcp;
-
- /* Make SRCP aligned by rounding it down to the beginning of the op_t
- it points in the middle of. */
- srcp &= -OPSIZ;
- srcp += OPSIZ;
-
- switch (len % 4)
- {
- case 2:
- srcp -= 3 * OPSIZ;
- dstp -= 1 * OPSIZ;
- b2 = ((op_t *) srcp)[2];
- b1 = a1 = ((op_t *) srcp)[1];
- len += 2;
- goto do1;
- case 3:
- srcp -= 3 * OPSIZ;
- dstp -= 1 * OPSIZ;
- b3 = ((op_t *) srcp)[2];
- b2 = a2 = ((op_t *) srcp)[1];
- len += 1;
- goto do2;
- case 0:
- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
- return;
- srcp -= 3 * OPSIZ;
- dstp -= 1 * OPSIZ;
- b0 = ((op_t *) srcp)[2];
- b3 = a3 = ((op_t *) srcp)[1];
- goto do3;
- case 1:
- srcp -= 3 * OPSIZ;
- dstp -= 1 * OPSIZ;
- b1 = ((op_t *) srcp)[2];
- b0 = a0 = ((op_t *) srcp)[1];
- len -= 1;
- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
- goto do0;
- goto do4; /* No-op. */
- }
-
- do
- {
- do4:
- b3 = a3 = ((op_t *) srcp)[0];
- a0 = DBLALIGN (a0, b1, srci);
- ((op_t *) dstp)[0] = a0;
- srcp -= OPSIZ;
- dstp -= OPSIZ;
- do3:
- b2 = a2 = ((op_t *) srcp)[0];
- a3 = DBLALIGN (a3, b0, srci);
- ((op_t *) dstp)[0] = a3;
- srcp -= OPSIZ;
- dstp -= OPSIZ;
- do2:
- b1 = a1 = ((op_t *) srcp)[0];
- a2 = DBLALIGN (a2, b3, srci);
- ((op_t *) dstp)[0] = a2;
- srcp -= OPSIZ;
- dstp -= OPSIZ;
- do1:
- b0 = a0 = ((op_t *) srcp)[0];
- a1 = DBLALIGN (a1, b2, srci);
- ((op_t *) dstp)[0] = a1;
- srcp -= OPSIZ;
- dstp -= OPSIZ;
-
- len -= 4;
- }
- while (len != 0);
-
- /* This is the right position for do0. Please don't move
- it into the loop. */
- do0:
- a0 = DBLALIGN (a0, b1, srci);
- ((op_t *) dstp)[0] = a0;
-}
diff --git a/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h b/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
index 2f2f973..ff88292 100644
--- a/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
@@ -1,4 +1,5 @@
-/* Run-time dynamic linker data structures for loaded ELF shared objects. Tile.
+/* Run-time dynamic linker data structures for loaded ELF shared objects.
+ AArch64 version.
Copyright (C) 2001-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/nios2/Makefile b/sysdeps/unix/sysv/linux/nios2/Makefile
index d0af9ec..20910fa 100644
--- a/sysdeps/unix/sysv/linux/nios2/Makefile
+++ b/sysdeps/unix/sysv/linux/nios2/Makefile
@@ -3,7 +3,7 @@ gen-as-const-headers += ucontext_i.sym
endif
ifeq ($(subdir),misc)
-# MIPS/Tile-style cacheflush routine
+# MIPS-style cacheflush routine
sysdep_headers += sys/cachectl.h
sysdep_routines += cacheflush
endif
diff --git a/sysdeps/unix/sysv/linux/posix_fadvise.c b/sysdeps/unix/sysv/linux/posix_fadvise.c
index 08ccc22..d676a68 100644
--- a/sysdeps/unix/sysv/linux/posix_fadvise.c
+++ b/sysdeps/unix/sysv/linux/posix_fadvise.c
@@ -31,9 +31,8 @@
(redefined to __NR_fadvise64_64 in kernel-features.h) that behaves as
__NR_fadvise64_64 (without the aligment argument required for the ABI).
- Third option will be used by both tile 32-bits and mips o32. Tile
- will set __ASSUME_FADVISE64_64_NO_ALIGN to issue a 6 argument syscall,
- while mips will use a 7 argument one with __NR_fadvise64.
+ Third option will be used by mips o32. Mips will use a 7 argument
+ syscall with __NR_fadvise64.
s390 implements fadvice64_64 using a specific struct with arguments
packed inside. This is the only implementation handled in arch-specific
@@ -53,11 +52,6 @@ posix_fadvise (int fd, off_t offset, off_t len, int advise)
SYSCALL_LL (offset), SYSCALL_LL (len));
# else
-# ifdef __ASSUME_FADVISE64_64_NO_ALIGN
-# undef __ALIGNMENT_ARG
-# define __ALIGNMENT_ARG
-# endif
-
# ifndef __NR_fadvise64_64
# define __NR_fadvise64_64 __NR_fadvise64
# endif
diff --git a/sysdeps/unix/sysv/linux/posix_fadvise64.c b/sysdeps/unix/sysv/linux/posix_fadvise64.c
index eebf10c..61dfe89 100644
--- a/sysdeps/unix/sysv/linux/posix_fadvise64.c
+++ b/sysdeps/unix/sysv/linux/posix_fadvise64.c
@@ -26,18 +26,10 @@ libc_hidden_proto (__posix_fadvise64_l64)
just after 'fd' to avoid the requirement of implementing 7-arg syscalls.
ARM also defines __NR_fadvise64_64 as __NR_arm_fadvise64_64.
- tile requires __ASSUME_ALIGNED_REGISTER_PAIRS but implements the 32-bit
- fadvise64_64 without the padding 0 after fd.
-
s390 implements fadvice64_64 using a specific struct with arguments
packed inside. This is the only implementation handled in arch-specific
code. */
-#ifdef __ASSUME_FADVISE64_64_NO_ALIGN
-# undef __ALIGNMENT_ARG
-# define __ALIGNMENT_ARG
-#endif
-
#ifndef __NR_fadvise64_64
# define __NR_fadvise64_64 __NR_fadvise64
#endif
diff --git a/sysdeps/unix/sysv/linux/tile/Implies b/sysdeps/unix/sysv/linux/tile/Implies
deleted file mode 100644
index e050152..0000000
--- a/sysdeps/unix/sysv/linux/tile/Implies
+++ /dev/null
@@ -1 +0,0 @@
-tile/nptl
diff --git a/sysdeps/unix/sysv/linux/tile/Makefile b/sysdeps/unix/sysv/linux/tile/Makefile
deleted file mode 100644
index fddaf18..0000000
--- a/sysdeps/unix/sysv/linux/tile/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# Provide biarch definitions.
-abi-variants := 64 32
-abi-64-condition := __WORDSIZE == 64
-abi-32-condition := __WORDSIZE == 32
-
-ifeq ($(subdir),misc)
-
-# <sys/reg.h> provides something like x86 compatibility.
-# New code should probably use <arch/abi.h> instead.
-sysdep_headers += sys/reg.h
-
-# MIPS-style cacheflush routine
-sysdep_headers += sys/cachectl.h
-sysdep_routines += cacheflush
-
-# Control dataplane properties of current thread (compatibility only).
-sysdep_routines += set_dataplane
-
-endif
-
-ifeq ($(subdir),elf)
-sysdep_routines += dl-vdso
-ifeq ($(build-shared),yes)
-# This is needed for DSO loading from static binaries.
-sysdep-dl-routines += dl-static
-endif
-endif
-
-ifeq ($(subdir),nptl)
-# pull in __syscall_error routine
-libpthread-routines += sysdep
-libpthread-shared-only-routines += sysdep
-endif
diff --git a/sysdeps/unix/sysv/linux/tile/Versions b/sysdeps/unix/sysv/linux/tile/Versions
deleted file mode 100644
index 13da68f..0000000
--- a/sysdeps/unix/sysv/linux/tile/Versions
+++ /dev/null
@@ -1,18 +0,0 @@
-ld {
- GLIBC_PRIVATE {
- # used for loading by static libraries
- _dl_var_init;
- }
-}
-libc {
- GLIBC_2.12 {
- _flush_cache;
- cacheflush;
- fallocate64;
- set_dataplane;
- }
- GLIBC_PRIVATE {
- __syscall_error;
- __vdso_clock_gettime;
- }
-}
diff --git a/sysdeps/unix/sysv/linux/tile/bits/environments.h b/sysdeps/unix/sysv/linux/tile/bits/environments.h
deleted file mode 100644
index b672f59..0000000
--- a/sysdeps/unix/sysv/linux/tile/bits/environments.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#ifndef _UNISTD_H
-# error "Never include this file directly. Use <unistd.h> instead"
-#endif
-
-#include <bits/wordsize.h>
-
-/* This header should define the following symbols under the described
- situations. A value `1' means that the model is always supported,
- `-1' means it is never supported. Undefined means it cannot be
- statically decided.
-
- _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type
- _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type
-
- _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type
- _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type
-
- The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG,
- _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32,
- _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were
- used in previous versions of the Unix standard and are available
- only for compatibility.
-*/
-
-#if __WORDSIZE == 64
-
-/* Environments with 32-bit wide pointers are optionally provided.
- Therefore following macros aren't defined:
- # undef _POSIX_V7_ILP32_OFF32
- # undef _POSIX_V7_ILP32_OFFBIG
- # undef _POSIX_V6_ILP32_OFF32
- # undef _POSIX_V6_ILP32_OFFBIG
- # undef _XBS5_ILP32_OFF32
- # undef _XBS5_ILP32_OFFBIG
- and users need to check at runtime. */
-
-/* We also have no use (for now) for an environment with bigger pointers
- and offsets. */
-# define _POSIX_V7_LPBIG_OFFBIG -1
-# define _POSIX_V6_LPBIG_OFFBIG -1
-# define _XBS5_LPBIG_OFFBIG -1
-
-/* By default we have 64-bit wide `long int', pointers and `off_t'. */
-# define _POSIX_V7_LP64_OFF64 1
-# define _POSIX_V6_LP64_OFF64 1
-# define _XBS5_LP64_OFF64 1
-
-#else /* __WORDSIZE == 32 */
-
-/* By default we have 32-bit wide `int', `long int', pointers and `off_t'
- and all platforms support LFS. */
-# define _POSIX_V7_ILP32_OFF32 1
-# define _POSIX_V7_ILP32_OFFBIG 1
-# define _POSIX_V6_ILP32_OFF32 1
-# define _POSIX_V6_ILP32_OFFBIG 1
-# define _XBS5_ILP32_OFF32 1
-# define _XBS5_ILP32_OFFBIG 1
-
-/* We optionally provide an environment with the above size but an 64-bit
- side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */
-
-/* Environments with 64-bit wide pointers can be provided,
- so these macros aren't defined:
- # undef _POSIX_V7_LP64_OFF64
- # undef _POSIX_V7_LPBIG_OFFBIG
- # undef _POSIX_V6_LP64_OFF64
- # undef _POSIX_V6_LPBIG_OFFBIG
- # undef _XBS5_LP64_OFF64
- # undef _XBS5_LPBIG_OFFBIG
- and sysconf tests for it at runtime. */
-
-#endif /* __WORDSIZE == 32 */
-
-/* TILE-Gx has the ability to choose 32- or 64-bit. */
-#define __ILP32_OFF32_CFLAGS "-m32"
-#define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-#define __ILP32_OFF32_LDFLAGS "-m32"
-#define __ILP32_OFFBIG_LDFLAGS "-m32"
-#define __LP64_OFF64_CFLAGS "-m64"
-#define __LP64_OFF64_LDFLAGS "-m64"
diff --git a/sysdeps/unix/sysv/linux/tile/bits/local_lim.h b/sysdeps/unix/sysv/linux/tile/bits/local_lim.h
deleted file mode 100644
index ba67237..0000000
--- a/sysdeps/unix/sysv/linux/tile/bits/local_lim.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-/* The kernel header pollutes the namespace with the NR_OPEN symbol
- and defines LINK_MAX although filesystems have different maxima. A
- similar thing is true for OPEN_MAX: the limit can be changed at
- runtime and therefore the macro must not be defined. Remove this
- after including the header if necessary. */
-#ifndef NR_OPEN
-# define __undef_NR_OPEN
-#endif
-#ifndef LINK_MAX
-# define __undef_LINK_MAX
-#endif
-#ifndef OPEN_MAX
-# define __undef_OPEN_MAX
-#endif
-#ifndef ARG_MAX
-# define __undef_ARG_MAX
-#endif
-
-/* The kernel sources contain a file with all the needed information. */
-#include <linux/limits.h>
-
-/* Have to remove NR_OPEN? */
-#ifdef __undef_NR_OPEN
-# undef NR_OPEN
-# undef __undef_NR_OPEN
-#endif
-/* Have to remove LINK_MAX? */
-#ifdef __undef_LINK_MAX
-# undef LINK_MAX
-# undef __undef_LINK_MAX
-#endif
-/* Have to remove OPEN_MAX? */
-#ifdef __undef_OPEN_MAX
-# undef OPEN_MAX
-# undef __undef_OPEN_MAX
-#endif
-/* Have to remove ARG_MAX? */
-#ifdef __undef_ARG_MAX
-# undef ARG_MAX
-# undef __undef_ARG_MAX
-#endif
-
-/* The number of data keys per process. */
-#define _POSIX_THREAD_KEYS_MAX 128
-/* This is the value this implementation supports. */
-#define PTHREAD_KEYS_MAX 1024
-
-/* Controlling the iterations of destructors for thread-specific data. */
-#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
-/* Number of iterations this implementation does. */
-#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
-
-/* The number of threads per process. */
-#define _POSIX_THREAD_THREADS_MAX 64
-/* We have no predefined limit on the number of threads. */
-#undef PTHREAD_THREADS_MAX
-
-/* Maximum amount by which a process can descrease its asynchronous I/O
- priority level. */
-#define AIO_PRIO_DELTA_MAX 20
-
-/* Minimum size for a thread. At least two pages for systems with 64k
- pages. */
-#define PTHREAD_STACK_MIN 131072
-
-/* Maximum number of timer expiration overruns. */
-#define DELAYTIMER_MAX 2147483647
-
-/* Maximum tty name length. */
-#define TTY_NAME_MAX 32
-
-/* Maximum login name length. This is arbitrary. */
-#define LOGIN_NAME_MAX 256
-
-/* Maximum host name length. */
-#define HOST_NAME_MAX 64
-
-/* Maximum message queue priority level. */
-#define MQ_PRIO_MAX 32768
-
-/* Maximum value the semaphore can have. */
-#define SEM_VALUE_MAX (2147483647)
diff --git a/sysdeps/unix/sysv/linux/tile/bits/mman.h b/sysdeps/unix/sysv/linux/tile/bits/mman.h
deleted file mode 100644
index 4b59ce2..0000000
--- a/sysdeps/unix/sysv/linux/tile/bits/mman.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#ifndef _SYS_MMAN_H
-# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-#endif
-
-/* The following definitions basically come from the kernel headers.
- But the kernel header is not namespace clean. */
-
-#ifdef __USE_MISC
-/* These are Linux-specific. */
-# define MAP_NONBLOCK 0x00080 /* Do not block on IO. */
-# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
-# define MAP_STACK MAP_GROWSDOWN /* Provide convenience alias. */
-# define MAP_LOCKED 0x00200 /* Lock the mapping. */
-# define MAP_NORESERVE 0x00400 /* Don't check for reservations. */
-# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
-# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
-# define MAP_POPULATE 0x00040 /* Populate (prefault) pagetables. */
-# define MAP_HUGETLB 0x04000 /* Create huge page mapping. */
-#endif
-
-/* Include generic Linux declarations. */
-#include <bits/mman-linux.h>
diff --git a/sysdeps/unix/sysv/linux/tile/bits/sigaction.h b/sysdeps/unix/sysv/linux/tile/bits/sigaction.h
deleted file mode 100644
index d0467bd..0000000
--- a/sysdeps/unix/sysv/linux/tile/bits/sigaction.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#ifndef _BITS_SIGACTION_H
-#define _BITS_SIGACTION_H 1
-
-#ifndef _SIGNAL_H
-# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
-#endif
-
-/* Structure describing the action to be taken when a signal arrives. */
-struct sigaction
- {
- /* Signal handler. */
-#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
- union
- {
- /* Used if SA_SIGINFO is not set. */
- __sighandler_t sa_handler;
- /* Used if SA_SIGINFO is set. */
- void (*sa_sigaction) (int, siginfo_t *, void *);
- }
- __sigaction_handler;
-# define sa_handler __sigaction_handler.sa_handler
-# define sa_sigaction __sigaction_handler.sa_sigaction
-#else
- __sighandler_t sa_handler;
-#endif
-
- /* Additional set of signals to be blocked. */
- __sigset_t sa_mask;
-
- /* Special flags. */
- int sa_flags;
-
- /* Restore handler. */
- void (*sa_restorer) (void);
- };
-
-/* Bits in `sa_flags'. */
-#define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */
-#define SA_NOCLDWAIT 2 /* Don't create zombie on child death. */
-#define SA_SIGINFO 4 /* Invoke signal-catching function with
- three arguments instead of one. */
-#if defined __USE_XOPEN_EXTENDED || defined __USE_MISC
-# define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */
-#endif
-#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
-# define SA_RESTART 0x10000000 /* Restart syscall on signal return. */
-# define SA_NODEFER 0x40000000 /* Don't automatically block the signal when
- its handler is being executed. */
-# define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler. */
-#endif
-#ifdef __USE_MISC
-# define SA_NOPTRACE 0x02000000 /* Don't ptrace this signal. */
-# define SA_INTERRUPT 0x20000000 /* Historical no-op. */
-
-/* Some aliases for the SA_ constants. */
-# define SA_NOMASK SA_NODEFER
-# define SA_ONESHOT SA_RESETHAND
-# define SA_STACK SA_ONSTACK
-#endif
-
-/* Values for the HOW argument to `sigprocmask'. */
-#define SIG_BLOCK 0 /* Block signals. */
-#define SIG_UNBLOCK 1 /* Unblock signals. */
-#define SIG_SETMASK 2 /* Set the set of blocked signals. */
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h b/sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h
deleted file mode 100644
index 7d0c24c..0000000
--- a/sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Architecture-specific adjustments to siginfo_t. Tile version. */
-#ifndef _BITS_SIGINFO_ARCH_H
-#define _BITS_SIGINFO_ARCH_H 1
-
-#define __SI_SIGFAULT_ADDL \
- int _si_trapno;
-
-#define si_trapno _sifields._sigfault._si_trapno
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/tile/bits/siginfo-consts-arch.h b/sysdeps/unix/sysv/linux/tile/bits/siginfo-consts-arch.h
deleted file mode 100644
index 2e76d20..0000000
--- a/sysdeps/unix/sysv/linux/tile/bits/siginfo-consts-arch.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Architecture-specific additional siginfo constants. Tile version. */
-#ifndef _BITS_SIGINFO_CONSTS_ARCH_H
-#define _BITS_SIGINFO_CONSTS_ARCH_H 1
-
-/* `si_code' values for SIGILL signal. */
-enum
-{
- ILL_DBLFLT = ILL_BADSTK + 1, /* Double fault. */
-#define ILL_DBLFLT ILL_DBLFLT
- ILL_HARDWALL /* User networks hardwall violation. */
-#define ILL_HARDWALL ILL_HARDWALL
-};
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/tile/cacheflush.c b/sysdeps/unix/sysv/linux/tile/cacheflush.c
deleted file mode 100644
index c236da1..0000000
--- a/sysdeps/unix/sysv/linux/tile/cacheflush.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <errno.h>
-#include <stddef.h>
-#include <unistd.h>
-
-/* Flush cache(s). */
-int
-_flush_cache (char *addr, const int nbytes, const int op)
-{
-#ifdef __NR_cacheflush
- return INLINE_SYSCALL (cacheflush, 3, addr, nbytes, op);
-#else
- __set_errno (ENOSYS);
- return -1;
-#endif
-}
-weak_alias (_flush_cache, cacheflush)
diff --git a/sysdeps/unix/sysv/linux/tile/clone.S b/sysdeps/unix/sysv/linux/tile/clone.S
deleted file mode 100644
index a38f65e..0000000
--- a/sysdeps/unix/sysv/linux/tile/clone.S
+++ /dev/null
@@ -1,176 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-/* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after it's all over. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-
-#include <asm/unistd.h>
-#include <arch/abi.h>
-#include <tls.h>
-#include <linux/sched.h>
-
-/* What we save where in the stack frame; must include all callee-saves. */
-#define FRAME_NEXT_LR (0 * REGSIZE) /* reserved by ABI; not used here */
-#define FRAME_SP (1 * REGSIZE)
-#define FRAME_R30 (2 * REGSIZE)
-#define FRAME_R31 (3 * REGSIZE)
-#define FRAME_R32 (4 * REGSIZE)
-#define FRAME_SIZE (5 * REGSIZE)
-
-/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
- pid_t *ptid, struct user_desc *tls, pid_t *ctid); */
-
- .text
-ENTRY (__clone)
- /* Create a stack frame so we can pass callee-saves to new task. */
- {
- move r10, sp
- st sp, lr
- ADDI_PTR sp, sp, -FRAME_SIZE
- }
- cfi_offset (lr, 0)
- cfi_def_cfa_offset (FRAME_SIZE)
- ADDI_PTR r11, sp, FRAME_SP
- {
- st r11, r10
- ADDI_PTR r11, sp, FRAME_R30
- }
- {
- st r11, r30
- ADDI_PTR r11, sp, FRAME_R31
- }
- cfi_offset (r30, FRAME_R30 - FRAME_SIZE)
- {
- st r11, r31
- ADDI_PTR r11, sp, FRAME_R32
- }
- cfi_offset (r31, FRAME_R31 - FRAME_SIZE)
- st r11, r32
- cfi_offset (r32, FRAME_R32 - FRAME_SIZE)
-
- /* sanity check arguments */
- beqz r0, .Linvalid
- beqz r1, .Linvalid
-
- /* Make sure child stack is properly aligned, and set up the
- top frame so that we can call out of it immediately in the
- child. Setting it up here means we fault in the parent if
- it's bogus, which is probably cleaner than faulting first
- thing in the child. */
- ADDI_PTR r1, r1, -C_ABI_SAVE_AREA_SIZE
- andi r1, r1, -C_ABI_SAVE_AREA_SIZE
- ADDI_PTR r9, r1, REGSIZE /* sp of this frame on entry, i.e. zero */
- st r9, zero
-
- /* We need to switch the argument convention around from
- libc to kernel:
-
- libc:
- r0 fn
- r1 child_stack
- r2 flags
- r3 arg
- r4 ptid
- r5 tls
- r6 ctid
-
- kernel:
- r0 flags
- r1 child_stack [same as libc]
- r2 ptid
- r3 ctid
- r4 tls
-
- Plus the callee-saves as described at .Lthread_start, below. */
- {
- move r32, r0
- move r0, r2
- }
- {
- move r31, r3
- move r3, r6
- }
- {
- move r30, r2
- move r2, r4
- }
- {
- move r4, r5
- moveli TREG_SYSCALL_NR_NAME, __NR_clone
- }
- swint1
- beqz r0, .Lthread_start /* If in child task. */
-
-.Ldone:
- /* Restore the callee-saved registers and return. */
- ADDLI_PTR lr, sp, FRAME_SIZE
- {
- ld lr, lr
- ADDLI_PTR r30, sp, FRAME_R30
- }
- {
- ld r30, r30
- ADDLI_PTR r31, sp, FRAME_R31
- }
- {
- ld r31, r31
- ADDLI_PTR r32, sp, FRAME_R32
- }
- {
- ld r32, r32
- ADDI_PTR sp, sp, FRAME_SIZE
- }
- cfi_def_cfa_offset (0)
-
- bnez r1, .Lerror
- jrp lr
-
-.Lerror:
- j SYSCALL_ERROR_NAME
-
-.Linvalid:
- {
- movei r1, EINVAL
- j .Ldone
- }
-
-/* This function expects to receive:
-
- sp: the top of a valid stack area
- r30: clone() flags
- r31: the argument to pass to the user function
- r32: the user function pointer */
-
-.Lthread_start:
- cfi_def_cfa_offset (FRAME_SIZE)
- cfi_undefined (lr)
- {
- /* Invoke user function with specified argument. */
- move r0, r31
- jalr r32
- }
- moveli TREG_SYSCALL_NR_NAME, __NR_exit
- swint1
-PSEUDO_END (__clone)
-
-libc_hidden_def (__clone)
-weak_alias (__clone, clone)
diff --git a/sysdeps/unix/sysv/linux/tile/configure b/sysdeps/unix/sysv/linux/tile/configure
deleted file mode 100644
index 32ce16c..0000000
--- a/sysdeps/unix/sysv/linux/tile/configure
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
- # Local configure fragment for sysdeps/unix/sysv/linux/tile/tilegx
-
-ldd_rewrite_script=$dir/ldd-rewrite.sed
-
-case $machine in
-tile/tilegx32)
- test -n "$libc_cv_slibdir" ||
-case "$prefix" in
-/usr | /usr/)
- libc_cv_slibdir='/lib32'
- libc_cv_rtlddir='/lib32'
- if test "$libdir" = '${exec_prefix}/lib'; then
- libdir='${exec_prefix}/lib32';
- # Locale data can be shared between 32-bit and 64-bit libraries.
- libc_cv_complocaledir='${exec_prefix}/lib/locale'
- fi
- ;;
-esac
- ;;
-esac
diff --git a/sysdeps/unix/sysv/linux/tile/configure.ac b/sysdeps/unix/sysv/linux/tile/configure.ac
deleted file mode 100644
index 45ec42c..0000000
--- a/sysdeps/unix/sysv/linux/tile/configure.ac
+++ /dev/null
@@ -1,10 +0,0 @@
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/unix/sysv/linux/tile/tilegx
-
-ldd_rewrite_script=$dir/ldd-rewrite.sed
-
-case $machine in
-tile/tilegx32)
- LIBC_SLIBDIR_RTLDDIR([lib32], [lib32])
- ;;
-esac
diff --git a/sysdeps/unix/sysv/linux/tile/dl-static.c b/sysdeps/unix/sysv/linux/tile/dl-static.c
deleted file mode 100644
index 6c3b004..0000000
--- a/sysdeps/unix/sysv/linux/tile/dl-static.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Variable initialization. Tile version.
- Copyright (C) 2001-2018 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 <ldsodefs.h>
-
-#ifdef SHARED
-
-void
-_dl_var_init (void *array[])
-{
- /* It has to match "variables" below. */
- enum
- {
- DL_PAGESIZE = 0
- };
-
- GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
-}
-
-#else
-
-static void *variables[] =
-{
- &GLRO(dl_pagesize)
-};
-
-static void
-_dl_unprotect_relro (struct link_map *l)
-{
- ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
- & ~(GLRO(dl_pagesize) - 1));
- ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
- & ~(GLRO(dl_pagesize) - 1));
-
- if (start != end)
- __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
-}
-
-void
-_dl_static_init (struct link_map *l)
-{
- struct link_map *rtld_map = l;
- struct r_scope_elem **scope;
- const ElfW(Sym) *ref = NULL;
- lookup_t loadbase;
- void (*f) (void *[]);
- size_t i;
-
- loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
- NULL, 0, 1, NULL);
-
- for (scope = l->l_local_scope; *scope != NULL; scope++)
- for (i = 0; i < (*scope)->r_nlist; i++)
- if ((*scope)->r_list[i] == loadbase)
- {
- rtld_map = (*scope)->r_list[i];
- break;
- }
-
- if (ref != NULL)
- {
- f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
- _dl_unprotect_relro (rtld_map);
- f (variables);
- _dl_protect_relro (rtld_map);
- }
-}
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/tile/getcontext.S b/sysdeps/unix/sysv/linux/tile/getcontext.S
deleted file mode 100644
index eedd2b7..0000000
--- a/sysdeps/unix/sysv/linux/tile/getcontext.S
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <arch/abi.h>
-
-#include "ucontext_i.h"
-
-/* int getcontext (ucontext_t *ucp) */
-
- .text
-ENTRY (__getcontext)
- FEEDBACK_ENTER(__getcontext)
-
- /* Save the callee-saved GPRs. There's no need to save the
- caller-saved GPRs since the eventual setcontext() or
- swapcontext() will assume those registers are all dead.
- Save value "1" to uc_flags to later recognize getcontext(). */
- { movei r11, 1; ADDI_PTR r10, r0, UC_FLAGS_OFFSET }
- { ST_PTR r10, r11; addli r10, r0, UC_REG(30) }
- { st r10, r30; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r31; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r32; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r33; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r34; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r35; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r36; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r37; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r38; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r39; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r40; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r41; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r42; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r43; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r44; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r45; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r46; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r47; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r48; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r49; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r50; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r51; ADDI_PTR r10, r10, REGSIZE }
- { st r10, r52; ADDI_PTR r10, r10, REGSIZE }
- { st r10, tp; ADDI_PTR r10, r10, REGSIZE }
- { st r10, sp; ADDI_PTR r10, r10, REGSIZE }
- { st r10, lr; ADDI_PTR r10, r10, REGSIZE }
- lnk r11 /* Point PC at the "jrp lr" instruction. */
- addli r11, r11, .Lreturn - .
- { st r10, r11; ADDI_PTR r10, r10, REGSIZE }
- mfspr r11, INTERRUPT_CRITICAL_SECTION
- {
- st r10, r11
- movei r1, 0
- }
-
- /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG / 8) */
- {
- movei r3, _NSIG / 8
- addli r2, r0, UC_SIGMASK_OFFSET
- }
- {
- movei r0, SIG_BLOCK
- moveli TREG_SYSCALL_NR_NAME, __NR_rt_sigprocmask
- }
- swint1
- bnez r1, .Lsyscall_error
-
-.Lreturn:
- {
- movei r0, 0
- jrp lr
- }
-
-.Lsyscall_error:
- j SYSCALL_ERROR_NAME
-
-END (__getcontext)
-.hidden __getcontext
-
-weak_alias (__getcontext, getcontext)
diff --git a/sysdeps/unix/sysv/linux/tile/init-first.c b/sysdeps/unix/sysv/linux/tile/init-first.c
deleted file mode 100644
index 0e9454f..0000000
--- a/sysdeps/unix/sysv/linux/tile/init-first.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 2012-2018 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/>. */
-
-#ifdef SHARED
-#include <dl-vdso.h>
-#include <libc-vdso.h>
-
-struct syscall_return_value (*VDSO_SYMBOL(gettimeofday)) (struct timeval *,
- void *)
- attribute_hidden;
-
-struct syscall_return_value (*VDSO_SYMBOL(clock_gettime)) (clockid_t,
- struct timespec *)
- __attribute__ ((nocommon));
-
-
-static inline void
-_libc_vdso_platform_setup (void)
-{
- PREPARE_VERSION (linux26, "LINUX_2.6", 61765110);
-
- void *p = _dl_vdso_vsym ("__vdso_gettimeofday", &linux26);
- PTR_MANGLE (p);
- VDSO_SYMBOL (gettimeofday) = p;
-
- p = _dl_vdso_vsym ("__vdso_clock_gettime", &linux26);
- PTR_MANGLE (p);
- VDSO_SYMBOL (clock_gettime) = p;
-}
-
-#define VDSO_SETUP _libc_vdso_platform_setup
-#endif
-
-#include <csu/init-first.c>
diff --git a/sysdeps/unix/sysv/linux/tile/ioctl.S b/sysdeps/unix/sysv/linux/tile/ioctl.S
deleted file mode 100644
index 461bd53..0000000
--- a/sysdeps/unix/sysv/linux/tile/ioctl.S
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-
-/* TILE-Gx specifies that "unsigned int" is sign extended in the high
- 32 bits. But since the userspace API claims to be "unsigned long",
- calls into __ioctl() will not be sign extended, but rather pass all
- 64 bits of the argument. Therefore, when we pass the "request"
- value to the kernel, we must explicitly sign-extend it to match the
- kernel's internal use of "unsigned int" as the second argument,
- which we do by casting to "unsigned int". */
-
-#include <sysdep.h>
-
- .text
-ENTRY (__ioctl)
- FEEDBACK_ENTER(__ioctl)
- {
- addxi r1, r1, 0
- moveli TREG_SYSCALL_NR_NAME, __NR_ioctl
- }
- swint1
- bnez r1, 0f
- jrp lr
-PSEUDO_END (__ioctl)
-libc_hidden_def (__ioctl)
-weak_alias (__ioctl, ioctl)
diff --git a/sysdeps/unix/sysv/linux/tile/ipc_priv.h b/sysdeps/unix/sysv/linux/tile/ipc_priv.h
deleted file mode 100644
index 1292856..0000000
--- a/sysdeps/unix/sysv/linux/tile/ipc_priv.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Old SysV permission definition for Linux. Tile version.
- Copyright (C) 2017-2018 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 <sys/ipc.h> /* For __key_t */
-
-#define __IPC_64 0x0
diff --git a/sysdeps/unix/sysv/linux/tile/kernel-features.h b/sysdeps/unix/sysv/linux/tile/kernel-features.h
deleted file mode 100644
index b47f1a0..0000000
--- a/sysdeps/unix/sysv/linux/tile/kernel-features.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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_next <kernel-features.h>
-
-/* Define this if your 32-bit syscall API requires 64-bit register
- pairs to start with an even-number register. */
-#ifndef _LP64
-# define __ASSUME_ALIGNED_REGISTER_PAIRS 1
-# define __ASSUME_FADVISE64_64_NO_ALIGN 1
-#endif
diff --git a/sysdeps/unix/sysv/linux/tile/kernel_sigaction.h b/sysdeps/unix/sysv/linux/tile/kernel_sigaction.h
deleted file mode 100644
index a943d52..0000000
--- a/sysdeps/unix/sysv/linux/tile/kernel_sigaction.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/* tile kernel sigaction is similar to generic Linux UAPI one
- and SA_RESTORER is used only for binary compatibility. */
-#define SA_RESTORER 0x04000000
-#include <sysdeps/unix/sysv/linux/kernel_sigaction.h>
-
-#define SET_SA_RESTORER(kact, act) \
- (kact)->sa_restorer = (act)->sa_restorer
-#define RESET_SA_RESTORER(act, kact) \
- (act)->sa_restorer = (kact)->sa_restorer
diff --git a/sysdeps/unix/sysv/linux/tile/ldconfig.h b/sysdeps/unix/sysv/linux/tile/ldconfig.h
deleted file mode 100644
index 3234576..0000000
--- a/sysdeps/unix/sysv/linux/tile/ldconfig.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <sysdeps/generic/ldconfig.h>
-
-#define SYSDEP_KNOWN_INTERPRETER_NAMES \
- { "/lib/ld.so.1", FLAG_ELF_LIBC6 }, \
- { "/lib32/ld.so.1", FLAG_ELF_LIBC6 },
-#define SYSDEP_KNOWN_LIBRARY_NAMES \
- { "libc.so.6", FLAG_ELF_LIBC6 }, \
- { "libm.so.6", FLAG_ELF_LIBC6 },
diff --git a/sysdeps/unix/sysv/linux/tile/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/tile/ldd-rewrite.sed
deleted file mode 100644
index 8b0bb69..0000000
--- a/sysdeps/unix/sysv/linux/tile/ldd-rewrite.sed
+++ /dev/null
@@ -1 +0,0 @@
-s_^\(RTLDLIST=\)\(.*lib\)\(\|32\)\(/[^/]*\.so\.[0-9.]*\)[ ]*$_\1"\2\4 \232\4"_
diff --git a/sysdeps/unix/sysv/linux/tile/ldsodefs.h b/sysdeps/unix/sysv/linux/tile/ldsodefs.h
deleted file mode 100644
index 2f2f973..0000000
--- a/sysdeps/unix/sysv/linux/tile/ldsodefs.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Run-time dynamic linker data structures for loaded ELF shared objects. Tile.
- Copyright (C) 2001-2018 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/>. */
-
-#ifndef _LDSODEFS_H
-
-/* Get the real definitions. */
-#include_next <ldsodefs.h>
-
-/* Now define our stuff. */
-
-/* We need special support to initialize DSO loaded for statically linked
- binaries. */
-extern void _dl_static_init (struct link_map *map);
-#undef DL_STATIC_INIT
-#define DL_STATIC_INIT(map) _dl_static_init (map)
-
-#endif /* ldsodefs.h */
diff --git a/sysdeps/unix/sysv/linux/tile/libc-vdso.h b/sysdeps/unix/sysv/linux/tile/libc-vdso.h
deleted file mode 100644
index 4a3e6ba..0000000
--- a/sysdeps/unix/sysv/linux/tile/libc-vdso.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Resolve function pointers to VDSO functions.
- Copyright (C) 2012-2018 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/>. */
-
-
-#ifndef _LIBC_VDSO_H
-#define _LIBC_VDSO_H
-
-#ifdef SHARED
-
-#include <sysdep-vdso.h>
-
-struct syscall_return_value
-{
- long int value;
- long int error;
-};
-
-extern struct syscall_return_value (*VDSO_SYMBOL (gettimeofday)) (struct
- timeval *,
- void *)
- attribute_hidden;
-
-extern struct syscall_return_value (*VDSO_SYMBOL (clock_gettime)) (clockid_t,
- struct
- timespec *);
-#endif
-#endif /* _LIBC_VDSO_H */
diff --git a/sysdeps/unix/sysv/linux/tile/makecontext.c b/sysdeps/unix/sysv/linux/tile/makecontext.c
deleted file mode 100644
index e2e6927..0000000
--- a/sysdeps/unix/sysv/linux/tile/makecontext.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <stdarg.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <ucontext.h>
-#include <arch/abi.h>
-
-void
-__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
-{
- extern void __startcontext (void);
- uint_reg_t *sp, *args;
- va_list ap;
- int i;
-
- /* Initialize the top of stack. */
- sp = (uint_reg_t *) ((((intptr_t) ucp->uc_stack.ss_sp
- + ucp->uc_stack.ss_size) & -16L) - 16);
-
- /* Allow room for memory-passed arguments if necessary. */
- if (argc > 10)
- sp -= 2 + (argc - 10);
-
- sp[0] = sp[1] = 0;
-
- /* Set parameters. */
- va_start (ap, argc);
- args = &ucp->uc_mcontext.gregs[0];
- for (i = 0; i < argc; i++)
- {
- if (i == 10)
- args = &sp[2];
- *args++ = va_arg (ap, long);
- }
- va_end (ap);
-
- /* Start in the trampoline. */
- ucp->uc_mcontext.pc = (long) __startcontext;
-
- /* Set stack pointer. */
- ucp->uc_mcontext.sp = (long) sp;
-
- /* Pass FUNC to __startcontext in r31. */
- ucp->uc_mcontext.gregs[31] = (long) func;
-
- /* Pass ucp->uc_link to __startcontext in r30. */
- ucp->uc_mcontext.gregs[30] = (long) ucp->uc_link;
-}
-weak_alias (__makecontext, makecontext)
diff --git a/sysdeps/unix/sysv/linux/tile/profil-counter.h b/sysdeps/unix/sysv/linux/tile/profil-counter.h
deleted file mode 100644
index 525f64e..0000000
--- a/sysdeps/unix/sysv/linux/tile/profil-counter.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <signal.h>
-#include <sigcontextinfo.h>
-
-static void
-__profil_counter (int signo, SIGCONTEXT scp)
-{
- profil_count ((void *) GET_PC (scp));
-}
diff --git a/sysdeps/unix/sysv/linux/tile/pt-vfork.c b/sysdeps/unix/sysv/linux/tile/pt-vfork.c
deleted file mode 100644
index 5fbc652..0000000
--- a/sysdeps/unix/sysv/linux/tile/pt-vfork.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/aarch64/pt-vfork.c>
diff --git a/sysdeps/unix/sysv/linux/tile/register-dump.h b/sysdeps/unix/sysv/linux/tile/register-dump.h
deleted file mode 100644
index 002c889..0000000
--- a/sysdeps/unix/sysv/linux/tile/register-dump.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <sys/uio.h>
-#include <_itoa.h>
-
-/* We will print the register dump in this format:
-
- R0: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
- R4: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
- R8: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
- R12: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
- R16: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
- R20: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
- R24: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
- R28: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
- R32: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
- R36: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
- R40: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
- R44: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
- R48: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
- R52: XXXXXXXXXXXXXXXX TP: XXXXXXXXXXXXXXXX
- SP: XXXXXXXXXXXXXXXX LR: XXXXXXXXXXXXXXXX
-
- PC: XXXXXXXXXXXXXXXX ICS: X FAULTNUM: XX
-
- */
-
-static void
-hexvalue (unsigned long int value, char *buf, size_t len)
-{
- char *cp = _itoa_word (value, buf + len, 16, 0);
- while (cp > buf)
- *--cp = '0';
-}
-
-static void
-register_dump (int fd, mcontext_t *ctx)
-{
- char regs[59][16];
- struct iovec iov[132];
- size_t nr = 0;
- unsigned int i;
-
-#define ADD_STRING(str) \
- iov[nr].iov_base = (char *) str; \
- iov[nr].iov_len = strlen (str); \
- ++nr
-#define ADD_MEM(str, len) \
- iov[nr].iov_base = str; \
- iov[nr].iov_len = len; \
- ++nr
-
- /* Generate strings of register contents. */
- for (i = 0; i < 56; ++i)
- hexvalue (ctx->gregs[i], regs[i], 16);
- hexvalue (ctx->pc, regs[56], 16);
- hexvalue (ctx->ics, regs[57], 1);
- hexvalue (ctx->faultnum, regs[58], 2);
-
- /* Generate the output. */
- for (i = 0; i < 56;)
- {
- const char *prefixes[] = {
- "Register dump:\n\n R0: ",
- "\n R4: ",
- "\n R8: ",
- "\n R12: ",
- "\n R16: ",
- "\n R20: ",
- "\n R24: ",
- "\n R28: ",
- "\n R32: ",
- "\n R36: ",
- "\n R40: ",
- "\n R44: ",
- "\n R48: "
- };
- ADD_STRING (prefixes[i / 4]);
- do
- {
- ADD_MEM (regs[i], 16);
- ADD_STRING (" ");
- }
- while (++i % 4);
- }
- ADD_STRING ("\n R52: ");
- ADD_MEM (regs[52], 16);
- ADD_STRING (" TP: ");
- ADD_MEM (regs[53], 16);
- ADD_STRING ("\n SP: ");
- ADD_MEM (regs[54], 16);
- ADD_STRING (" LR: ");
- ADD_MEM (regs[55], 16);
- ADD_STRING ("\n\n PC: ");
- ADD_MEM (regs[56], 16);
- ADD_STRING (" ICS: ");
- ADD_MEM (regs[57], 1);
- ADD_STRING (" FAULTNUM: ");
- ADD_MEM (regs[58], 2);
- ADD_STRING ("\n");
-
- /* Write the stuff out. */
- writev (fd, iov, nr);
-}
-
-
-#define REGISTER_DUMP register_dump (fd, &ctx->uc_mcontext)
diff --git a/sysdeps/unix/sysv/linux/tile/sched_getcpu.c b/sysdeps/unix/sysv/linux/tile/sched_getcpu.c
deleted file mode 100644
index 06b6f60..0000000
--- a/sysdeps/unix/sysv/linux/tile/sched_getcpu.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (C) 2012-2018 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 <errno.h>
-#include <stddef.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <sched.h>
-#include <sysdep.h>
-#include <arch/spr_def.h>
-
-
-/* The count of cores horizontally (X dimension) on the chip. */
-static int chip_width;
-
-/* Read the chip "width" from the /sys filesystem. */
-static int
-initialize_chip_width (void)
-{
- int w = 0;
- int fd;
-
- fd = __open ("/sys/devices/system/cpu/chip_width", O_RDONLY);
- if (fd >= 0)
- {
- char buf[64];
- ssize_t n;
- int i;
-
- n = __read (fd, buf, sizeof (buf));
- __close (fd);
-
- for (i = 0; i < n; ++i)
- {
- if (buf[i] < '0' || buf[i] > '9')
- break;
- w = (w * 10) + (buf[i] - '0');
- }
- }
-
- /* Store a negative value so we don't try again. */
- if (w == 0)
- w = -1;
-
- /* Using an atomic idempotent write here makes this thread-safe. */
- chip_width = w;
- return w;
-}
-
-int
-sched_getcpu (void)
-{
- unsigned int coord;
- int w = chip_width;
-
- if (__builtin_expect (w <= 0, 0))
- {
- if (w == 0)
- w = initialize_chip_width ();
- if (w < 0)
- {
- unsigned int cpu;
- int r = INLINE_SYSCALL (getcpu, 3, &cpu, NULL, NULL);
- return r == -1 ? r : cpu;
- }
- }
-
- /* Assign 64-bit value to a 32-bit variable to ensure 32-bit multiply. */
- coord = __insn_mfspr (SPR_TILE_COORD);
-
- /* Extract Y coord from bits 7..10 and X coord from bits 18..21. */
- return ((coord >> 7) & 0xf) * w + ((coord >> 18) & 0xf);
-}
diff --git a/sysdeps/unix/sysv/linux/tile/set_dataplane.c b/sysdeps/unix/sysv/linux/tile/set_dataplane.c
deleted file mode 100644
index fccaecd..0000000
--- a/sysdeps/unix/sysv/linux/tile/set_dataplane.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <errno.h>
-#include <stddef.h>
-#include <unistd.h>
-#include <shlib-compat.h>
-
-/* Request dataplane modes from the kernel (compatibility only). */
-#if SHLIB_COMPAT (libc, GLIBC_2_12, GLIBC_2_25)
-int
-attribute_compat_text_section
-__old_set_dataplane (int flags)
-{
-#ifdef __NR_set_dataplane
- return INLINE_SYSCALL (set_dataplane, 1, flags);
-#else
- __set_errno (ENOSYS);
- return -1;
-#endif
-}
-
-compat_symbol (libc, __old_set_dataplane, set_dataplane, GLIBC_2_12);
-#endif
diff --git a/sysdeps/unix/sysv/linux/tile/setcontext.S b/sysdeps/unix/sysv/linux/tile/setcontext.S
deleted file mode 100644
index efd4f5c..0000000
--- a/sysdeps/unix/sysv/linux/tile/setcontext.S
+++ /dev/null
@@ -1,206 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <asm/errno.h>
-#include <arch/spr_def.h>
-#include <arch/abi.h>
-
-#include "ucontext_i.h"
-
-/* PL to return to via iret in setcontext */
-#define RETURN_PL 0
-
-/* int setcontext (const ucontext_t *ucp) */
-
- .text
-ENTRY (__setcontext)
- FEEDBACK_ENTER(__setcontext)
-
- /* See if this is a true signal context (flags == 0).
- If so, restore by invoking rt_sigreturn(). */
-#if UC_FLAGS_OFFSET != 0
-# error "Add offset to r0 prior to load."
-#endif
- LD_PTR r10, r0
- {
- beqz r10, .Lsigreturn
- addi r10, r10, -1 /* Confirm that it has value "1". */
- }
- bnez r10, .Lbadcontext
-
- /* Save lr and r0 briefly on the stack and set the signal mask:
- rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG / 8). */
- {
- st sp, lr
- ADDI_PTR r11, sp, -(2 * REGSIZE)
- move r10, sp
- }
- ADDI_PTR sp, sp, -(3 * REGSIZE)
- cfi_def_cfa_offset (3 * REGSIZE)
- cfi_offset (lr, 0)
- {
- st r11, r10
- ADDI_PTR r10, sp, (2 * REGSIZE)
- }
- {
- st r10, r0
- ADDLI_PTR r1, r0, UC_SIGMASK_OFFSET
- }
- cfi_offset (r0, -REGSIZE)
- {
- movei r3, _NSIG / 8
- movei r2, 0
- }
- {
- movei r0, SIG_SETMASK
- moveli TREG_SYSCALL_NR_NAME, __NR_rt_sigprocmask
- }
- swint1
- ADDI_PTR r11, sp, 2 * REGSIZE /* Restore uc_context to r11. */
- {
- ld r11, r11
- ADDI_PTR sp, sp, 3 * REGSIZE
- }
- cfi_def_cfa_offset (0)
- ld lr, sp
- {
- ADDI_PTR r10, r11, UC_REG(0)
- bnez r1, .Lsyscall_error
- }
-
- /* Restore the argument registers; note they will be random
- unless makecontext() has been called. */
- { ld r0, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r1, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r2, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r3, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r4, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r5, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r6, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r7, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r8, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r9, r10; ADDLI_PTR r10, r10, UC_REG(30) - UC_REG(9) }
-
- /* Restore the callee-saved GPRs. */
- { ld r30, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r31, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r32, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r33, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r34, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r35, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r36, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r37, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r38, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r39, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r40, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r41, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r42, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r43, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r44, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r45, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r46, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r47, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r48, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r49, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r50, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r51, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r52, r10; ADDI_PTR r10, r10, REGSIZE * 2 }
- /* Skip tp since it must not change for a given thread. */
- { ld sp, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld lr, r10; ADDI_PTR r10, r10, REGSIZE }
- { ld r11, r10; ADDI_PTR r10, r10, REGSIZE }
-
- /* Construct an iret context; we set ICS so we can validly load
- EX_CONTEXT for iret without being interrupted halfway through. */
- {
- ld r12, r10
- movei r13, 1
- }
- {
- mtspr INTERRUPT_CRITICAL_SECTION, r13
- shli r12, r12, SPR_EX_CONTEXT_0_1__ICS_SHIFT
- }
- {
- mtspr EX_CONTEXT_0_0, r11
- ori r12, r12, RETURN_PL
- }
- mtspr EX_CONTEXT_0_1, r12
- iret
- jrp lr /* keep the backtracer happy */
-
-.Lsigreturn:
- /* This is a context obtained from a signal handler.
- Perform a full restore by pushing the context
- passed onto a simulated signal frame on the stack
- and call the signal return syscall as if a signal
- handler exited normally. */
- {
- ADDLI_PTR sp, sp, -(C_ABI_SAVE_AREA_SIZE + SI_MAX_SIZE + UC_SIZE)
- ADDLI_PTR r1, sp, -UC_SIZE
- }
- cfi_def_cfa_offset (C_ABI_SAVE_AREA_SIZE + SI_MAX_SIZE + UC_SIZE)
- moveli r2, UC_SIZE / REGSIZE
-0: {
- ld r10, r0
- ADDI_PTR r0, r0, REGSIZE
- }
- {
- st r1, r10
- ADDI_PTR r1, r1, REGSIZE
- addi r2, r2, -1
- }
- bnez r2, 0b
- moveli TREG_SYSCALL_NR_NAME, __NR_rt_sigreturn
- swint1
-
- /* Restore the stack and fall through to the error
- path. Successful rt_sigreturn never returns to
- its calling place. */
- ADDLI_PTR sp, sp, (C_ABI_SAVE_AREA_SIZE + SI_MAX_SIZE + UC_SIZE)
- cfi_def_cfa_offset (0)
-
-.Lsyscall_error:
- j SYSCALL_ERROR_NAME
-
-.Lbadcontext:
- {
- movei r1, EINVAL
- j SYSCALL_ERROR_NAME
- }
-
-END (__setcontext)
-
-.hidden __setcontext
-weak_alias (__setcontext, setcontext)
-
-ENTRY (__startcontext)
- cfi_undefined (lr)
- FEEDBACK_ENTER(__startcontext)
- jalr r31
- beqz r30, 1f
- {
- move r0, r30
- jal __setcontext
- }
-1: {
- movei r0, 0
- j HIDDEN_JUMPTARGET(exit)
- }
-END (__startcontext)
-.hidden __startcontext
diff --git a/sysdeps/unix/sysv/linux/tile/shlib-versions b/sysdeps/unix/sysv/linux/tile/shlib-versions
deleted file mode 100644
index b4360d3..0000000
--- a/sysdeps/unix/sysv/linux/tile/shlib-versions
+++ /dev/null
@@ -1,2 +0,0 @@
-# glibc 2.12 was released to customers; 2.15 was the first community version.
-DEFAULT GLIBC_2.12 GLIBC_2.15
diff --git a/sysdeps/unix/sysv/linux/tile/sigcontextinfo.h b/sysdeps/unix/sysv/linux/tile/sigcontextinfo.h
deleted file mode 100644
index b23b846..0000000
--- a/sysdeps/unix/sysv/linux/tile/sigcontextinfo.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <arch/abi.h>
-
-#define SIGCONTEXT siginfo_t *_si, ucontext_t *
-#define GET_PC(ctx) ((void *) (long) ctx->uc_mcontext.pc)
diff --git a/sysdeps/unix/sysv/linux/tile/swapcontext.S b/sysdeps/unix/sysv/linux/tile/swapcontext.S
deleted file mode 100644
index 39397ea..0000000
--- a/sysdeps/unix/sysv/linux/tile/swapcontext.S
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 "ucontext_i.h"
-
-/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
-
- .text
-ENTRY (__swapcontext)
- FEEDBACK_ENTER(__swapcontext)
- /* Set up a frame and save r0 and r1. */
- {
- st sp, lr
- ADDI_PTR r11, sp, -(3 * REGSIZE)
- move r10, sp
- }
- ADDI_PTR sp, sp, -(4 * REGSIZE)
- cfi_def_cfa_offset (4 * REGSIZE)
- cfi_offset (lr, 0)
- {
- st r11, r10
- ADDI_PTR r10, sp, (2 * REGSIZE)
- }
- {
- st r10, r0
- ADDI_PTR r10, sp, (3 * REGSIZE)
- }
- st r10, r1
-
- /* Save the current context. */
- jal __getcontext
-
- /* Tear down the frame and restore r0, r1, and lr. */
- {
- bnez r0, .Lerror
- ADDI_PTR r1, sp, 3 * REGSIZE
- }
- {
- ld r1, r1
- ADDI_PTR r0, sp, 2 * REGSIZE
- }
- {
- ld r0, r0
- ADDI_PTR sp, sp, 4 * REGSIZE
- }
- cfi_def_cfa_offset (0)
- {
- ld lr, sp
- ADDLI_PTR r10, r0, UC_REG(54)
- }
-
- /* Update the stored sp and lr. */
- {
- st r10, sp
- ADDLI_PTR r10, r0, UC_REG(55)
- }
- st r10, lr
-
- /* Tail-call setcontext to finish up. */
- {
- move r0, r1
- j __setcontext
- }
-
-.Lerror:
- ADDI_PTR sp, sp, 4 * REGSIZE
- cfi_def_cfa_offset (0)
- ld lr, sp
- jrp lr
-END (__swapcontext)
-
-weak_alias (__swapcontext, swapcontext)
diff --git a/sysdeps/unix/sysv/linux/tile/sys/cachectl.h b/sysdeps/unix/sysv/linux/tile/sys/cachectl.h
deleted file mode 100644
index 08de699..0000000
--- a/sysdeps/unix/sysv/linux/tile/sys/cachectl.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#ifndef _SYS_CACHECTL_H
-#define _SYS_CACHECTL_H 1
-
-#include <features.h>
-
-/* Get the kernel definition for the op bits. */
-#include <asm/cachectl.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/tile/sys/procfs.h b/sysdeps/unix/sysv/linux/tile/sys/procfs.h
deleted file mode 100644
index cc93f57..0000000
--- a/sysdeps/unix/sysv/linux/tile/sys/procfs.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somewhat modelled after the file of the same name on SVR4
- systems. It provides a definition of the core file format for ELF
- used on Linux. It doesn't have anything to do with the /proc file
- system, even though Linux has one.
-
- Anyway, 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. */
-
-#include <features.h>
-#include <sys/time.h>
-#include <sys/types.h>
-
-#define __need_int_reg_t
-#include <arch/abi.h>
-
-__BEGIN_DECLS
-
-/* Type for a general-purpose register. */
-typedef __uint_reg_t elf_greg_t;
-
-/* And the whole bunch of them. We could have used `struct pt_regs'
- from <asm/ptrace.h> 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 64
-#define ELF_NFPREG 0
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-typedef elf_greg_t elf_fpregset_t[ELF_NFPREG];
-
-/* Signal info. */
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with Linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- GDB doesn't really use excluded. */
-
-struct elf_prstatus
- {
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args. */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
- unsigned int pr_uid;
- unsigned int pr_gid;
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-
-/* The rest of this file provides the types for emulation of the
- Solaris <proc_service.h> interfaces that should be implemented by
- users of libthread_db. */
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef elf_gregset_t prgregset_t;
-
-/* Provide dummy declaration here; we don't have FP registers. */
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore have only one PID type. */
-typedef __pid_t lwpid_t;
-
-/* Process status and info. In the end we do provide typedefs for them. */
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/tile/sys/ptrace.h b/sysdeps/unix/sysv/linux/tile/sys/ptrace.h
deleted file mode 100644
index d391037..0000000
--- a/sysdeps/unix/sysv/linux/tile/sys/ptrace.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/* `ptrace' debugger support interface. Linux/Tile version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#ifndef _SYS_PTRACE_H
-#define _SYS_PTRACE_H 1
-
-#include <features.h>
-#include <bits/types.h>
-
-__BEGIN_DECLS
-
-/* Type of the REQUEST argument to `ptrace.' */
-enum __ptrace_request
-{
- /* Indicate that the process making this request should be traced.
- All signals received by this process can be intercepted by its
- parent, and its parent can use the other `ptrace' requests. */
- PTRACE_TRACEME = 0,
-#define PT_TRACE_ME PTRACE_TRACEME
-
- /* Return the word in the process's text space at address ADDR. */
- PTRACE_PEEKTEXT = 1,
-#define PT_READ_I PTRACE_PEEKTEXT
-
- /* Return the word in the process's data space at address ADDR. */
- PTRACE_PEEKDATA = 2,
-#define PT_READ_D PTRACE_PEEKDATA
-
- /* Return the word in the process's user area at offset ADDR. */
- PTRACE_PEEKUSER = 3,
-#define PT_READ_U PTRACE_PEEKUSER
-
- /* Write the word DATA into the process's text space at address ADDR. */
- PTRACE_POKETEXT = 4,
-#define PT_WRITE_I PTRACE_POKETEXT
-
- /* Write the word DATA into the process's data space at address ADDR. */
- PTRACE_POKEDATA = 5,
-#define PT_WRITE_D PTRACE_POKEDATA
-
- /* Write the word DATA into the process's user area at offset ADDR. */
- PTRACE_POKEUSER = 6,
-#define PT_WRITE_U PTRACE_POKEUSER
-
- /* Continue the process. */
- PTRACE_CONT = 7,
-#define PT_CONTINUE PTRACE_CONT
-
- /* Kill the process. */
- PTRACE_KILL = 8,
-#define PT_KILL PTRACE_KILL
-
- /* Single step the process. */
- PTRACE_SINGLESTEP = 9,
-#define PT_STEP PTRACE_SINGLESTEP
-
- /* Get all general purpose registers used by a processes. */
- PTRACE_GETREGS = 12,
-#define PT_GETREGS PTRACE_GETREGS
-
- /* Set all general purpose registers used by a processes. */
- PTRACE_SETREGS = 13,
-#define PT_SETREGS PTRACE_SETREGS
-
- /* Attach to a process that is already running. */
- PTRACE_ATTACH = 16,
-#define PT_ATTACH PTRACE_ATTACH
-
- /* Detach from a process attached to with PTRACE_ATTACH. */
- PTRACE_DETACH = 17,
-#define PT_DETACH PTRACE_DETACH
-
- /* Continue and stop at the next entry to or return from syscall. */
- PTRACE_SYSCALL = 24,
-#define PT_SYSCALL PTRACE_SYSCALL
-
- /* Set ptrace filter options. */
- PTRACE_SETOPTIONS = 0x4200,
-#define PT_SETOPTIONS PTRACE_SETOPTIONS
-
- /* Get last ptrace message. */
- PTRACE_GETEVENTMSG = 0x4201,
-#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
-
- /* Get siginfo for process. */
- PTRACE_GETSIGINFO = 0x4202,
-#define PT_GETSIGINFO PTRACE_GETSIGINFO
-
- /* Set new siginfo for process. */
- PTRACE_SETSIGINFO = 0x4203,
-#define PT_SETSIGINFO PTRACE_SETSIGINFO
-
- /* Set register content. */
- PTRACE_SETREGSET = 0x4205,
-#define PTRACE_SETREGSET PTRACE_SETREGSET
-
- /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect
- signal or group stop state. */
- PTRACE_SEIZE = 0x4206,
-#define PTRACE_SEIZE PTRACE_SEIZE
-
- /* Trap seized tracee. */
- PTRACE_INTERRUPT = 0x4207,
-#define PTRACE_INTERRUPT PTRACE_INTERRUPT
-
- /* Wait for next group event. */
- PTRACE_LISTEN = 0x4208,
-#define PTRACE_LISTEN PTRACE_LISTEN
-
- /* Retrieve siginfo_t structures without removing signals from a queue. */
- PTRACE_PEEKSIGINFO = 0x4209,
-#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
-
- /* Get the mask of blocked signals. */
- PTRACE_GETSIGMASK = 0x420a,
-#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
-
- /* Change the mask of blocked signals. */
- PTRACE_SETSIGMASK = 0x420b,
-#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
-
- /* Get seccomp BPF filters. */
- PTRACE_SECCOMP_GET_FILTER = 0x420c,
-#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
-
- /* Get seccomp BPF filter metadata. */
- PTRACE_SECCOMP_GET_METADATA = 0x420d
-#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
-};
-
-
-#include <bits/ptrace-shared.h>
-
-__END_DECLS
-
-#endif /* _SYS_PTRACE_H */
diff --git a/sysdeps/unix/sysv/linux/tile/sys/reg.h b/sysdeps/unix/sysv/linux/tile/sys/reg.h
deleted file mode 100644
index 1ab17ce..0000000
--- a/sysdeps/unix/sysv/linux/tile/sys/reg.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* The traditional purpose of "sys/reg.h" is satisfied by "arch/abi.h". */
-#include <arch/abi.h>
diff --git a/sysdeps/unix/sysv/linux/tile/sys/ucontext.h b/sysdeps/unix/sysv/linux/tile/sys/ucontext.h
deleted file mode 100644
index 06d0888..0000000
--- a/sysdeps/unix/sysv/linux/tile/sys/ucontext.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-#ifndef _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
-
-#include <features.h>
-
-#include <bits/types/sigset_t.h>
-#include <bits/types/stack_t.h>
-
-#ifdef __USE_MISC
-# define __ctx(fld) fld
-#else
-# define __ctx(fld) __ ## fld
-#endif
-
-#ifdef __USE_MISC
-/* Get register type and register names. */
-# include <arch/abi.h>
-
-
-/* Type for general register. */
-typedef uint_reg_t greg_t;
-
-/* Number of general registers. Must agree with <asm/ptrace.h>. */
-# define NGREG 64
-
-/* Container for all general registers. */
-typedef greg_t gregset_t[NGREG];
-#endif
-
-#ifdef __USE_GNU
-/* Names for interesting registers in the `gregset_t' array. */
-enum
-{
- /* ... r0 through r51 are just 0 through 51 ... */
- REG_FP = TREG_FP,
-# define REG_FP REG_FP
- REG_TP = TREG_TP,
-# define REG_TP REG_TP
- REG_SP = TREG_SP,
-# define REG_SP REG_SP
- REG_LR = TREG_LR,
-# define REG_LR REG_LR
-};
-#endif
-
-#define __need_int_reg_t
-#include <arch/abi.h>
-
-/* A machine context is exactly a sigcontext. */
-typedef struct
- {
- __extension__ union
- {
- __uint_reg_t __ctx(gregs)[56];
- __extension__ struct
- {
- __uint_reg_t __ctx(__gregs)[53];
- __uint_reg_t __ctx(tp);
- __uint_reg_t __ctx(sp);
- __uint_reg_t __ctx(lr);
- };
- };
- __uint_reg_t __ctx(pc);
- __uint_reg_t __ctx(ics);
- __uint_reg_t __ctx(faultnum);
- __uint_reg_t __glibc_reserved1[5];
- } mcontext_t;
-
-/* Userlevel context. */
-typedef struct ucontext_t
- {
- unsigned long int __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/tile/sys/user.h b/sysdeps/unix/sysv/linux/tile/sys/user.h
deleted file mode 100644
index c871f1a..0000000
--- a/sysdeps/unix/sysv/linux/tile/sys/user.h
+++ /dev/null
@@ -1 +0,0 @@
-/* This file is not needed, but in practice gdb might try to include it. */
diff --git a/sysdeps/unix/sysv/linux/tile/syscall.S b/sysdeps/unix/sysv/linux/tile/syscall.S
deleted file mode 100644
index f6aaf6b..0000000
--- a/sysdeps/unix/sysv/linux/tile/syscall.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <arch/abi.h>
-
- .text
-ENTRY (syscall)
- FEEDBACK_ENTER(syscall)
- { move TREG_SYSCALL_NR_NAME, r0; move r0, r1 }
- { move r1, r2; move r2, r3 }
- { move r3, r4; move r4, r5 }
- { move r5, r6; move r6, r7 }
- swint1
- bnez r1, 0f
- jrp lr
-PSEUDO_END (syscall)
diff --git a/sysdeps/unix/sysv/linux/tile/sysconf.c b/sysdeps/unix/sysv/linux/tile/sysconf.c
deleted file mode 100644
index d585ec0..0000000
--- a/sysdeps/unix/sysv/linux/tile/sysconf.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 2014-2018 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 <unistd.h>
-#include <sys/sysinfo.h>
-#include <arch/chip.h>
-
-static long int linux_sysconf (int name);
-
-/* Get the value of the system variable NAME. */
-long int
-__sysconf (int name)
-{
- /* Currently we support only tilegx, which have statically-known cache
- sizes. */
- switch (name)
- {
- /* Level 1 cache. */
- case _SC_LEVEL1_ICACHE_SIZE:
- return CHIP_L1I_CACHE_SIZE();
- case _SC_LEVEL1_ICACHE_ASSOC:
- return CHIP_L1I_ASSOC();
- case _SC_LEVEL1_ICACHE_LINESIZE:
- return CHIP_L1I_LINE_SIZE();
- case _SC_LEVEL1_DCACHE_SIZE:
- return CHIP_L1D_CACHE_SIZE();
- case _SC_LEVEL1_DCACHE_ASSOC:
- return CHIP_L1D_ASSOC();
- case _SC_LEVEL1_DCACHE_LINESIZE:
- return CHIP_L1D_LINE_SIZE();
-
- /* Level 2 cache. */
- case _SC_LEVEL2_CACHE_SIZE:
- return CHIP_L2_CACHE_SIZE();
- case _SC_LEVEL2_CACHE_ASSOC:
- return CHIP_L2_ASSOC();
- case _SC_LEVEL2_CACHE_LINESIZE:
- return CHIP_L2_LINE_SIZE();
-
- /* Level 3 cache is layered on level 2 cache. */
- case _SC_LEVEL3_CACHE_SIZE:
- return CHIP_L2_CACHE_SIZE() * __get_nprocs();
- case _SC_LEVEL3_CACHE_ASSOC:
- return CHIP_L2_ASSOC();
- case _SC_LEVEL3_CACHE_LINESIZE:
- return CHIP_L2_LINE_SIZE();
-
- /* No level 4 cache. */
- case _SC_LEVEL4_CACHE_SIZE:
- case _SC_LEVEL4_CACHE_ASSOC:
- case _SC_LEVEL4_CACHE_LINESIZE:
- return -1;
- }
-
- return linux_sysconf (name);
-}
-
-/* Now the generic Linux version. */
-#undef __sysconf
-#define __sysconf static linux_sysconf
-#include <sysdeps/unix/sysv/linux/sysconf.c>
diff --git a/sysdeps/unix/sysv/linux/tile/sysdep.c b/sysdeps/unix/sysv/linux/tile/sysdep.c
deleted file mode 100644
index 37c9d96..0000000
--- a/sysdeps/unix/sysv/linux/tile/sysdep.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <errno.h>
-
-int __syscall_error (int dummy, int err);
-hidden_proto (__syscall_error)
-
-/* This routine is jumped to by all the syscall handlers, to stash
- an error number into errno. */
-int
-__syscall_error (int dummy, int err)
-{
- __set_errno (err);
- return -1;
-}
-hidden_def (__syscall_error)
diff --git a/sysdeps/unix/sysv/linux/tile/sysdep.h b/sysdeps/unix/sysv/linux/tile/sysdep.h
deleted file mode 100644
index 9827e4b..0000000
--- a/sysdeps/unix/sysv/linux/tile/sysdep.h
+++ /dev/null
@@ -1,243 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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 <asm/unistd.h>
-#include <sysdeps/tile/sysdep.h>
-#include <sysdeps/unix/sysv/linux/generic/sysdep.h>
-#include <sys/syscall.h>
-
-#undef SYS_ify
-#define SYS_ify(syscall_name) __NR_##syscall_name
-
-
-#ifdef __ASSEMBLER__
-
-/* The actual implementation of doing a syscall. */
-#define DO_CALL(syscall_name, args) \
- moveli TREG_SYSCALL_NR_NAME, SYS_ify(syscall_name); \
- swint1
-
-/* TILE Linux returns the result in r0 (or a negative errno).
- The kernel "owns" the code to decide if a given value is an error,
- and puts errno in r1 if so, or otherwise zero. */
-#define PSEUDO(name, syscall_name, args) \
- ENTRY (name); \
- DO_CALL(syscall_name, args); \
- BNEZ r1, 0f
-
-#define ret jrp lr
-
-#ifndef SHARED
-/* For static code, on error jump to __syscall_error directly. */
-# define SYSCALL_ERROR_NAME __syscall_error
-#elif IS_IN (libc) || IS_IN (libpthread)
-/* Use the internal name for libc/libpthread shared objects. */
-# define SYSCALL_ERROR_NAME __GI___syscall_error
-#else
-/* Otherwise, on error do a full PLT jump. */
-# define SYSCALL_ERROR_NAME plt(__syscall_error)
-#endif
-
-#undef PSEUDO_END
-#define PSEUDO_END(name) \
-0: \
- j SYSCALL_ERROR_NAME; \
- END (name)
-
-#undef PSEUDO_NOERRNO
-#define PSEUDO_NOERRNO(name, syscall_name, args) \
- ENTRY (name); \
- DO_CALL(syscall_name, args)
-
-#define ret_NOERRNO jrp lr
-
-#undef PSEUDO_END_NOERRNO
-#define PSEUDO_END_NOERRNO(name) \
- END (name)
-
-/* Convenience wrappers. */
-#define SYSCALL__(name, args) PSEUDO (__##name, name, args)
-#define SYSCALL(name, args) PSEUDO (name, name, args)
-
-#else /* not __ASSEMBLER__ */
-
-#include <errno.h>
-
-/* Define a macro which expands inline into the wrapper code for a system
- call. */
-# undef INLINE_SYSCALL
-# define INLINE_SYSCALL(name, nr, args...) \
- ({ \
- INTERNAL_SYSCALL_DECL (_sc_err); \
- unsigned long _sc_val = INTERNAL_SYSCALL (name, _sc_err, nr, args); \
- if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_sc_val, _sc_err), 0)) \
- { \
- __set_errno (INTERNAL_SYSCALL_ERRNO (_sc_val, _sc_err)); \
- _sc_val = -1; \
- } \
- (long) _sc_val; \
- })
-
-#undef INTERNAL_SYSCALL
-#define INTERNAL_SYSCALL(name, err, nr, args...) \
- internal_syscall##nr (SYS_ify (name), err, args)
-
-#undef INTERNAL_SYSCALL_NCS
-#define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
- internal_syscall##nr (number, err, args)
-
-#undef INTERNAL_SYSCALL_DECL
-#define INTERNAL_SYSCALL_DECL(err) int err
-
-#undef INTERNAL_SYSCALL_ERROR_P
-#define INTERNAL_SYSCALL_ERROR_P(val, err) ({ (void) (val); (err) != 0; })
-
-#undef INTERNAL_SYSCALL_ERRNO
-#define INTERNAL_SYSCALL_ERRNO(val, err) ({ (void) (val); (err); })
-
-#define internal_syscall0(num, err, dummy...) \
- ({ \
- long _sys_result, __SYSCALL_CLOBBER_DECLS; \
- __asm__ __volatile__ ( \
- "swint1" \
- : "=R00" (_sys_result), "=R01" (err), __SYSCALL_CLOBBER_OUTPUTS \
- : "R10" (num) \
- : __SYSCALL_CLOBBERS); \
- _sys_result; \
- })
-
-#define internal_syscall1(num, err, arg0) \
- ({ \
- long _sys_result, __SYSCALL_CLOBBER_DECLS; \
- __asm__ __volatile__ ( \
- "swint1" \
- : "=R00" (_sys_result), "=R01" (err), __SYSCALL_CLOBBER_OUTPUTS \
- : "R10" (num), "R00" (arg0) \
- : __SYSCALL_CLOBBERS); \
- _sys_result; \
- })
-
-#define internal_syscall2(num, err, arg0, arg1) \
- ({ \
- long _sys_result, __SYSCALL_CLOBBER_DECLS; \
- __asm__ __volatile__ ( \
- "swint1" \
- : "=R00" (_sys_result), "=R01" (err), __SYSCALL_CLOBBER_OUTPUTS \
- : "R10" (num), "R00" (arg0), "R01" (arg1) \
- : __SYSCALL_CLOBBERS); \
- _sys_result; \
- })
-
-#define internal_syscall3(num, err, arg0, arg1, arg2) \
- ({ \
- long _sys_result, __SYSCALL_CLOBBER_DECLS; \
- __asm__ __volatile__ ( \
- "swint1" \
- : "=R00" (_sys_result), "=R01" (err), __SYSCALL_CLOBBER_OUTPUTS \
- : "R10" (num), "R00" (arg0), "R01" (arg1), "R02" (arg2) \
- : __SYSCALL_CLOBBERS); \
- _sys_result; \
- })
-
-#define internal_syscall4(num, err, arg0, arg1, arg2, arg3) \
- ({ \
- long _sys_result, __SYSCALL_CLOBBER_DECLS; \
- __asm__ __volatile__ ( \
- "swint1" \
- : "=R00" (_sys_result), "=R01" (err), __SYSCALL_CLOBBER_OUTPUTS \
- : "R10" (num), "R00" (arg0), "R01" (arg1), "R02" (arg2), \
- "R03" (arg3) \
- : __SYSCALL_CLOBBERS); \
- _sys_result; \
- })
-
-#define internal_syscall5(num, err, arg0, arg1, arg2, arg3, arg4) \
- ({ \
- long _sys_result, __SYSCALL_CLOBBER_DECLS; \
- __asm__ __volatile__ ( \
- "swint1" \
- : "=R00" (_sys_result), "=R01" (err), __SYSCALL_CLOBBER_OUTPUTS \
- : "R10" (num), "R00" (arg0), "R01" (arg1), "R02" (arg2), \
- "R03" (arg3), "R04" (arg4) \
- : __SYSCALL_CLOBBERS); \
- _sys_result; \
- })
-
-#define internal_syscall6(num, err, arg0, arg1, arg2, arg3, arg4, arg5) \
- ({ \
- long _sys_result, __SYSCALL_CLOBBER_DECLS; \
- __asm__ __volatile__ ( \
- "swint1" \
- : "=R00" (_sys_result), "=R01" (err), __SYSCALL_CLOBBER_OUTPUTS \
- : "R10" (num), "R00" (arg0), "R01" (arg1), "R02" (arg2), \
- "R03" (arg3), "R04" (arg4), "R05" (arg5) \
- : __SYSCALL_CLOBBERS); \
- _sys_result; \
- })
-
-#undef __SYSCALL_CLOBBERS
-#define __SYSCALL_CLOBBERS \
- "r6", "r7", \
- "r8", "r9", "r11", "r12", "r13", "r14", "r15", \
- "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23", \
- "r24", "r25", "r26", "r27", "r28", "r29", "memory"
-
-/* gcc doesn't seem to allow an input operand to be clobbered, so we
- fake it with dummy outputs. */
-#define __SYSCALL_CLOBBER_DECLS \
- _clobber_r2, _clobber_r3, _clobber_r4, _clobber_r5, _clobber_r10
-
-#define __SYSCALL_CLOBBER_OUTPUTS \
- "=R02" (_clobber_r2), "=R03" (_clobber_r3), "=R04" (_clobber_r4), \
- "=R05" (_clobber_r5), "=R10" (_clobber_r10)
-
-
-#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
- ({ \
- struct syscall_return_value _sc_rv = funcptr (args); \
- err = _sc_rv.error; \
- _sc_rv.value; \
- })
-
-/* List of system calls which are supported as vsyscalls. */
-#define HAVE_CLOCK_GETTIME_VSYSCALL 1
-#define HAVE_GETTIMEOFDAY_VSYSCALL 1
-
-/* Previously tile used the generic version without the libc_hidden_def
- which lead in a non existent __send symbol in libc.so. */
-#undef HAVE_INTERNAL_SEND_SYMBOL
-
-#endif /* __ASSEMBLER__ */
-
-/* Pointer mangling support. */
-#if IS_IN (rtld)
-/* We cannot use the thread descriptor because in ld.so we use setjmp
- earlier than the descriptor is initialized. */
-#else
-# ifdef __ASSEMBLER__
-# define PTR_MANGLE(reg, tmpreg) \
- ADDLI_PTR tmpreg, pt, POINTER_GUARD; \
- LD tmpreg, tmpreg; \
- xor reg, tmpreg, reg
-# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg)
-# else
-# define PTR_MANGLE(var) \
- (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
-# define PTR_DEMANGLE(var) PTR_MANGLE (var)
-# endif
-#endif
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/Implies b/sysdeps/unix/sysv/linux/tile/tilegx32/Implies
deleted file mode 100644
index 0023bb7..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/Implies
+++ /dev/null
@@ -1,3 +0,0 @@
-unix/sysv/linux/tile
-unix/sysv/linux/generic/wordsize-32
-unix/sysv/linux/generic
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/Makefile b/sysdeps/unix/sysv/linux/tile/tilegx32/Makefile
deleted file mode 100644
index 1e9d29b..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-default-abi := 32
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/c++-types.data b/sysdeps/unix/sysv/linux/tile/tilegx32/c++-types.data
deleted file mode 100644
index 1a7bcb3..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/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:x
-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/tile/tilegx32/jmp_buf-macros.h b/sysdeps/unix/sysv/linux/tile/tilegx32/jmp_buf-macros.h
deleted file mode 100644
index eb64802..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/jmp_buf-macros.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#define JMP_BUF_SIZE 392
-#define SIGJMP_BUF_SIZE 392
-#define JMP_BUF_ALIGN 8
-#define SIGJMP_BUF_ALIGN 8
-#define MASK_WAS_SAVED_OFFSET 256
-#define SAVED_MASK_OFFSET 260
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/ld.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/ld.abilist
deleted file mode 100644
index f166310..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/ld.abilist
+++ /dev/null
@@ -1,9 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 __libc_stack_end D 0x4
-GLIBC_2.12 __tls_get_addr F
-GLIBC_2.12 _dl_mcount F
-GLIBC_2.12 _r_debug D 0x14
-GLIBC_2.12 calloc F
-GLIBC_2.12 free F
-GLIBC_2.12 malloc F
-GLIBC_2.12 realloc F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libBrokenLocale.abilist
deleted file mode 100644
index 0d64827..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/libBrokenLocale.abilist
+++ /dev/null
@@ -1,2 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 __ctype_get_mb_cur_max F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/libanl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libanl.abilist
deleted file mode 100644
index a3b1cc0..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/libanl.abilist
+++ /dev/null
@@ -1,5 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 gai_cancel F
-GLIBC_2.12 gai_error F
-GLIBC_2.12 gai_suspend F
-GLIBC_2.12 getaddrinfo_a F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libc.abilist
deleted file mode 100644
index ab56ece..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/libc.abilist
+++ /dev/null
@@ -1,2138 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 _Exit F
-GLIBC_2.12 _IO_2_1_stderr_ D 0xa0
-GLIBC_2.12 _IO_2_1_stdin_ D 0xa0
-GLIBC_2.12 _IO_2_1_stdout_ D 0xa0
-GLIBC_2.12 _IO_adjust_column F
-GLIBC_2.12 _IO_adjust_wcolumn F
-GLIBC_2.12 _IO_default_doallocate F
-GLIBC_2.12 _IO_default_finish F
-GLIBC_2.12 _IO_default_pbackfail F
-GLIBC_2.12 _IO_default_uflow F
-GLIBC_2.12 _IO_default_xsgetn F
-GLIBC_2.12 _IO_default_xsputn F
-GLIBC_2.12 _IO_do_write F
-GLIBC_2.12 _IO_doallocbuf F
-GLIBC_2.12 _IO_fclose F
-GLIBC_2.12 _IO_fdopen F
-GLIBC_2.12 _IO_feof F
-GLIBC_2.12 _IO_ferror F
-GLIBC_2.12 _IO_fflush F
-GLIBC_2.12 _IO_fgetpos F
-GLIBC_2.12 _IO_fgetpos64 F
-GLIBC_2.12 _IO_fgets F
-GLIBC_2.12 _IO_file_attach F
-GLIBC_2.12 _IO_file_close F
-GLIBC_2.12 _IO_file_close_it F
-GLIBC_2.12 _IO_file_doallocate F
-GLIBC_2.12 _IO_file_finish F
-GLIBC_2.12 _IO_file_fopen F
-GLIBC_2.12 _IO_file_init F
-GLIBC_2.12 _IO_file_jumps D 0x54
-GLIBC_2.12 _IO_file_open F
-GLIBC_2.12 _IO_file_overflow F
-GLIBC_2.12 _IO_file_read F
-GLIBC_2.12 _IO_file_seek F
-GLIBC_2.12 _IO_file_seekoff F
-GLIBC_2.12 _IO_file_setbuf F
-GLIBC_2.12 _IO_file_stat F
-GLIBC_2.12 _IO_file_sync F
-GLIBC_2.12 _IO_file_underflow F
-GLIBC_2.12 _IO_file_write F
-GLIBC_2.12 _IO_file_xsputn F
-GLIBC_2.12 _IO_flockfile F
-GLIBC_2.12 _IO_flush_all F
-GLIBC_2.12 _IO_flush_all_linebuffered F
-GLIBC_2.12 _IO_fopen F
-GLIBC_2.12 _IO_fprintf F
-GLIBC_2.12 _IO_fputs F
-GLIBC_2.12 _IO_fread F
-GLIBC_2.12 _IO_free_backup_area F
-GLIBC_2.12 _IO_free_wbackup_area F
-GLIBC_2.12 _IO_fsetpos F
-GLIBC_2.12 _IO_fsetpos64 F
-GLIBC_2.12 _IO_ftell F
-GLIBC_2.12 _IO_ftrylockfile F
-GLIBC_2.12 _IO_funlockfile F
-GLIBC_2.12 _IO_fwrite F
-GLIBC_2.12 _IO_getc F
-GLIBC_2.12 _IO_getline F
-GLIBC_2.12 _IO_getline_info F
-GLIBC_2.12 _IO_gets F
-GLIBC_2.12 _IO_init F
-GLIBC_2.12 _IO_init_marker F
-GLIBC_2.12 _IO_init_wmarker F
-GLIBC_2.12 _IO_iter_begin F
-GLIBC_2.12 _IO_iter_end F
-GLIBC_2.12 _IO_iter_file F
-GLIBC_2.12 _IO_iter_next F
-GLIBC_2.12 _IO_least_wmarker F
-GLIBC_2.12 _IO_link_in F
-GLIBC_2.12 _IO_list_all D 0x4
-GLIBC_2.12 _IO_list_lock F
-GLIBC_2.12 _IO_list_resetlock F
-GLIBC_2.12 _IO_list_unlock F
-GLIBC_2.12 _IO_marker_delta F
-GLIBC_2.12 _IO_marker_difference F
-GLIBC_2.12 _IO_padn F
-GLIBC_2.12 _IO_peekc_locked F
-GLIBC_2.12 _IO_popen F
-GLIBC_2.12 _IO_printf F
-GLIBC_2.12 _IO_proc_close F
-GLIBC_2.12 _IO_proc_open F
-GLIBC_2.12 _IO_putc F
-GLIBC_2.12 _IO_puts F
-GLIBC_2.12 _IO_remove_marker F
-GLIBC_2.12 _IO_seekmark F
-GLIBC_2.12 _IO_seekoff F
-GLIBC_2.12 _IO_seekpos F
-GLIBC_2.12 _IO_seekwmark F
-GLIBC_2.12 _IO_setb F
-GLIBC_2.12 _IO_setbuffer F
-GLIBC_2.12 _IO_setvbuf F
-GLIBC_2.12 _IO_sgetn F
-GLIBC_2.12 _IO_sprintf F
-GLIBC_2.12 _IO_sputbackc F
-GLIBC_2.12 _IO_sputbackwc F
-GLIBC_2.12 _IO_sscanf F
-GLIBC_2.12 _IO_str_init_readonly F
-GLIBC_2.12 _IO_str_init_static F
-GLIBC_2.12 _IO_str_overflow F
-GLIBC_2.12 _IO_str_pbackfail F
-GLIBC_2.12 _IO_str_seekoff F
-GLIBC_2.12 _IO_str_underflow F
-GLIBC_2.12 _IO_sungetc F
-GLIBC_2.12 _IO_sungetwc F
-GLIBC_2.12 _IO_switch_to_get_mode F
-GLIBC_2.12 _IO_switch_to_main_wget_area F
-GLIBC_2.12 _IO_switch_to_wbackup_area F
-GLIBC_2.12 _IO_switch_to_wget_mode F
-GLIBC_2.12 _IO_un_link F
-GLIBC_2.12 _IO_ungetc F
-GLIBC_2.12 _IO_unsave_markers F
-GLIBC_2.12 _IO_unsave_wmarkers F
-GLIBC_2.12 _IO_vfprintf F
-GLIBC_2.12 _IO_vfscanf F
-GLIBC_2.12 _IO_vsprintf F
-GLIBC_2.12 _IO_wdefault_doallocate F
-GLIBC_2.12 _IO_wdefault_finish F
-GLIBC_2.12 _IO_wdefault_pbackfail F
-GLIBC_2.12 _IO_wdefault_uflow F
-GLIBC_2.12 _IO_wdefault_xsgetn F
-GLIBC_2.12 _IO_wdefault_xsputn F
-GLIBC_2.12 _IO_wdo_write F
-GLIBC_2.12 _IO_wdoallocbuf F
-GLIBC_2.12 _IO_wfile_jumps D 0x54
-GLIBC_2.12 _IO_wfile_overflow F
-GLIBC_2.12 _IO_wfile_seekoff F
-GLIBC_2.12 _IO_wfile_sync F
-GLIBC_2.12 _IO_wfile_underflow F
-GLIBC_2.12 _IO_wfile_xsputn F
-GLIBC_2.12 _IO_wmarker_delta F
-GLIBC_2.12 _IO_wsetb F
-GLIBC_2.12 ___brk_addr D 0x4
-GLIBC_2.12 __adjtimex F
-GLIBC_2.12 __after_morecore_hook D 0x4
-GLIBC_2.12 __argz_count F
-GLIBC_2.12 __argz_next F
-GLIBC_2.12 __argz_stringify F
-GLIBC_2.12 __asprintf F
-GLIBC_2.12 __asprintf_chk F
-GLIBC_2.12 __assert F
-GLIBC_2.12 __assert_fail F
-GLIBC_2.12 __assert_perror_fail F
-GLIBC_2.12 __backtrace F
-GLIBC_2.12 __backtrace_symbols F
-GLIBC_2.12 __backtrace_symbols_fd F
-GLIBC_2.12 __bsd_getpgrp F
-GLIBC_2.12 __bzero F
-GLIBC_2.12 __check_rhosts_file D 0x4
-GLIBC_2.12 __chk_fail F
-GLIBC_2.12 __clone F
-GLIBC_2.12 __close F
-GLIBC_2.12 __cmsg_nxthdr F
-GLIBC_2.12 __confstr_chk F
-GLIBC_2.12 __connect F
-GLIBC_2.12 __ctype_b_loc F
-GLIBC_2.12 __ctype_get_mb_cur_max F
-GLIBC_2.12 __ctype_tolower_loc F
-GLIBC_2.12 __ctype_toupper_loc F
-GLIBC_2.12 __curbrk D 0x4
-GLIBC_2.12 __cxa_at_quick_exit F
-GLIBC_2.12 __cxa_atexit F
-GLIBC_2.12 __cxa_finalize F
-GLIBC_2.12 __cyg_profile_func_enter F
-GLIBC_2.12 __cyg_profile_func_exit F
-GLIBC_2.12 __daylight D 0x4
-GLIBC_2.12 __dcgettext F
-GLIBC_2.12 __default_morecore F
-GLIBC_2.12 __dgettext F
-GLIBC_2.12 __dprintf_chk F
-GLIBC_2.12 __dup2 F
-GLIBC_2.12 __duplocale F
-GLIBC_2.12 __endmntent F
-GLIBC_2.12 __environ D 0x4
-GLIBC_2.12 __errno_location F
-GLIBC_2.12 __fbufsize F
-GLIBC_2.12 __fcntl F
-GLIBC_2.12 __ffs F
-GLIBC_2.12 __fgets_chk F
-GLIBC_2.12 __fgets_unlocked_chk F
-GLIBC_2.12 __fgetws_chk F
-GLIBC_2.12 __fgetws_unlocked_chk F
-GLIBC_2.12 __finite F
-GLIBC_2.12 __finitef F
-GLIBC_2.12 __flbf F
-GLIBC_2.12 __fork F
-GLIBC_2.12 __fpending F
-GLIBC_2.12 __fprintf_chk F
-GLIBC_2.12 __fpu_control D 0x4
-GLIBC_2.12 __fpurge F
-GLIBC_2.12 __fread_chk F
-GLIBC_2.12 __fread_unlocked_chk F
-GLIBC_2.12 __freadable F
-GLIBC_2.12 __freading F
-GLIBC_2.12 __free_hook D 0x4
-GLIBC_2.12 __freelocale F
-GLIBC_2.12 __fsetlocking F
-GLIBC_2.12 __fwprintf_chk F
-GLIBC_2.12 __fwritable F
-GLIBC_2.12 __fwriting F
-GLIBC_2.12 __fxstat F
-GLIBC_2.12 __fxstat64 F
-GLIBC_2.12 __fxstatat F
-GLIBC_2.12 __fxstatat64 F
-GLIBC_2.12 __getcwd_chk F
-GLIBC_2.12 __getdelim F
-GLIBC_2.12 __getdomainname_chk F
-GLIBC_2.12 __getgroups_chk F
-GLIBC_2.12 __gethostname_chk F
-GLIBC_2.12 __getlogin_r_chk F
-GLIBC_2.12 __getmntent_r F
-GLIBC_2.12 __getpagesize F
-GLIBC_2.12 __getpgid F
-GLIBC_2.12 __getpid F
-GLIBC_2.12 __gets_chk F
-GLIBC_2.12 __gettimeofday F
-GLIBC_2.12 __getwd_chk F
-GLIBC_2.12 __gmtime_r F
-GLIBC_2.12 __h_errno_location F
-GLIBC_2.12 __isalnum_l F
-GLIBC_2.12 __isalpha_l F
-GLIBC_2.12 __isascii_l F
-GLIBC_2.12 __isblank_l F
-GLIBC_2.12 __iscntrl_l F
-GLIBC_2.12 __isctype F
-GLIBC_2.12 __isdigit_l F
-GLIBC_2.12 __isgraph_l F
-GLIBC_2.12 __isinf F
-GLIBC_2.12 __isinff F
-GLIBC_2.12 __islower_l F
-GLIBC_2.12 __isnan F
-GLIBC_2.12 __isnanf F
-GLIBC_2.12 __isoc99_fscanf F
-GLIBC_2.12 __isoc99_fwscanf F
-GLIBC_2.12 __isoc99_scanf F
-GLIBC_2.12 __isoc99_sscanf F
-GLIBC_2.12 __isoc99_swscanf F
-GLIBC_2.12 __isoc99_vfscanf F
-GLIBC_2.12 __isoc99_vfwscanf F
-GLIBC_2.12 __isoc99_vscanf F
-GLIBC_2.12 __isoc99_vsscanf F
-GLIBC_2.12 __isoc99_vswscanf F
-GLIBC_2.12 __isoc99_vwscanf F
-GLIBC_2.12 __isoc99_wscanf F
-GLIBC_2.12 __isprint_l F
-GLIBC_2.12 __ispunct_l F
-GLIBC_2.12 __isspace_l F
-GLIBC_2.12 __isupper_l F
-GLIBC_2.12 __iswalnum_l F
-GLIBC_2.12 __iswalpha_l F
-GLIBC_2.12 __iswblank_l F
-GLIBC_2.12 __iswcntrl_l F
-GLIBC_2.12 __iswctype F
-GLIBC_2.12 __iswctype_l F
-GLIBC_2.12 __iswdigit_l F
-GLIBC_2.12 __iswgraph_l F
-GLIBC_2.12 __iswlower_l F
-GLIBC_2.12 __iswprint_l F
-GLIBC_2.12 __iswpunct_l F
-GLIBC_2.12 __iswspace_l F
-GLIBC_2.12 __iswupper_l F
-GLIBC_2.12 __iswxdigit_l F
-GLIBC_2.12 __isxdigit_l F
-GLIBC_2.12 __ivaliduser F
-GLIBC_2.12 __key_decryptsession_pk_LOCAL D 0x4
-GLIBC_2.12 __key_encryptsession_pk_LOCAL D 0x4
-GLIBC_2.12 __key_gendes_LOCAL D 0x4
-GLIBC_2.12 __libc_allocate_rtsig F
-GLIBC_2.12 __libc_calloc F
-GLIBC_2.12 __libc_current_sigrtmax F
-GLIBC_2.12 __libc_current_sigrtmin F
-GLIBC_2.12 __libc_free F
-GLIBC_2.12 __libc_freeres F
-GLIBC_2.12 __libc_init_first F
-GLIBC_2.12 __libc_mallinfo F
-GLIBC_2.12 __libc_malloc F
-GLIBC_2.12 __libc_mallopt F
-GLIBC_2.12 __libc_memalign F
-GLIBC_2.12 __libc_pvalloc F
-GLIBC_2.12 __libc_realloc F
-GLIBC_2.12 __libc_sa_len F
-GLIBC_2.12 __libc_start_main F
-GLIBC_2.12 __libc_valloc F
-GLIBC_2.12 __longjmp_chk F
-GLIBC_2.12 __lseek F
-GLIBC_2.12 __lxstat F
-GLIBC_2.12 __lxstat64 F
-GLIBC_2.12 __malloc_hook D 0x4
-GLIBC_2.12 __malloc_initialize_hook D 0x4
-GLIBC_2.12 __mbrlen F
-GLIBC_2.12 __mbrtowc F
-GLIBC_2.12 __mbsnrtowcs_chk F
-GLIBC_2.12 __mbsrtowcs_chk F
-GLIBC_2.12 __mbstowcs_chk F
-GLIBC_2.12 __mcount F
-GLIBC_2.12 __memalign_hook D 0x4
-GLIBC_2.12 __memcpy_chk F
-GLIBC_2.12 __memmove_chk F
-GLIBC_2.12 __mempcpy F
-GLIBC_2.12 __mempcpy_chk F
-GLIBC_2.12 __mempcpy_small F
-GLIBC_2.12 __memset_chk F
-GLIBC_2.12 __monstartup F
-GLIBC_2.12 __morecore D 0x4
-GLIBC_2.12 __nanosleep F
-GLIBC_2.12 __newlocale F
-GLIBC_2.12 __nl_langinfo_l F
-GLIBC_2.12 __nss_configure_lookup F
-GLIBC_2.12 __nss_database_lookup F
-GLIBC_2.12 __nss_group_lookup F
-GLIBC_2.12 __nss_hostname_digits_dots F
-GLIBC_2.12 __nss_hosts_lookup F
-GLIBC_2.12 __nss_next F
-GLIBC_2.12 __nss_passwd_lookup F
-GLIBC_2.12 __obstack_printf_chk F
-GLIBC_2.12 __obstack_vprintf_chk F
-GLIBC_2.12 __open F
-GLIBC_2.12 __open64 F
-GLIBC_2.12 __open64_2 F
-GLIBC_2.12 __open_2 F
-GLIBC_2.12 __openat64_2 F
-GLIBC_2.12 __openat_2 F
-GLIBC_2.12 __overflow F
-GLIBC_2.12 __pipe F
-GLIBC_2.12 __poll F
-GLIBC_2.12 __posix_getopt F
-GLIBC_2.12 __pread64 F
-GLIBC_2.12 __pread64_chk F
-GLIBC_2.12 __pread_chk F
-GLIBC_2.12 __printf_chk F
-GLIBC_2.12 __printf_fp F
-GLIBC_2.12 __profile_frequency F
-GLIBC_2.12 __progname D 0x4
-GLIBC_2.12 __progname_full D 0x4
-GLIBC_2.12 __ptsname_r_chk F
-GLIBC_2.12 __pwrite64 F
-GLIBC_2.12 __rawmemchr F
-GLIBC_2.12 __rcmd_errstr D 0x4
-GLIBC_2.12 __read F
-GLIBC_2.12 __read_chk F
-GLIBC_2.12 __readlink_chk F
-GLIBC_2.12 __readlinkat_chk F
-GLIBC_2.12 __realloc_hook D 0x4
-GLIBC_2.12 __realpath_chk F
-GLIBC_2.12 __recv_chk F
-GLIBC_2.12 __recvfrom_chk F
-GLIBC_2.12 __register_atfork F
-GLIBC_2.12 __res_init F
-GLIBC_2.12 __res_nclose F
-GLIBC_2.12 __res_ninit F
-GLIBC_2.12 __res_randomid F
-GLIBC_2.12 __res_state F
-GLIBC_2.12 __rpc_thread_createerr F
-GLIBC_2.12 __rpc_thread_svc_fdset F
-GLIBC_2.12 __rpc_thread_svc_max_pollfd F
-GLIBC_2.12 __rpc_thread_svc_pollfd F
-GLIBC_2.12 __sbrk F
-GLIBC_2.12 __sched_cpualloc F
-GLIBC_2.12 __sched_cpucount F
-GLIBC_2.12 __sched_cpufree F
-GLIBC_2.12 __sched_get_priority_max F
-GLIBC_2.12 __sched_get_priority_min F
-GLIBC_2.12 __sched_getparam F
-GLIBC_2.12 __sched_getscheduler F
-GLIBC_2.12 __sched_setscheduler F
-GLIBC_2.12 __sched_yield F
-GLIBC_2.12 __secure_getenv F
-GLIBC_2.12 __select F
-GLIBC_2.12 __setmntent F
-GLIBC_2.12 __setpgid F
-GLIBC_2.12 __sigaction F
-GLIBC_2.12 __sigaddset F
-GLIBC_2.12 __sigdelset F
-GLIBC_2.12 __sigismember F
-GLIBC_2.12 __signbit F
-GLIBC_2.12 __signbitf F
-GLIBC_2.12 __sigpause F
-GLIBC_2.12 __sigsetjmp F
-GLIBC_2.12 __sigsuspend F
-GLIBC_2.12 __snprintf_chk F
-GLIBC_2.12 __sprintf_chk F
-GLIBC_2.12 __stack_chk_fail F
-GLIBC_2.12 __statfs F
-GLIBC_2.12 __stpcpy F
-GLIBC_2.12 __stpcpy_chk F
-GLIBC_2.12 __stpcpy_small F
-GLIBC_2.12 __stpncpy F
-GLIBC_2.12 __stpncpy_chk F
-GLIBC_2.12 __strcasecmp F
-GLIBC_2.12 __strcasecmp_l F
-GLIBC_2.12 __strcasestr F
-GLIBC_2.12 __strcat_chk F
-GLIBC_2.12 __strcoll_l F
-GLIBC_2.12 __strcpy_chk F
-GLIBC_2.12 __strcpy_small F
-GLIBC_2.12 __strcspn_c1 F
-GLIBC_2.12 __strcspn_c2 F
-GLIBC_2.12 __strcspn_c3 F
-GLIBC_2.12 __strdup F
-GLIBC_2.12 __strerror_r F
-GLIBC_2.12 __strfmon_l F
-GLIBC_2.12 __strftime_l F
-GLIBC_2.12 __strncasecmp_l F
-GLIBC_2.12 __strncat_chk F
-GLIBC_2.12 __strncpy_chk F
-GLIBC_2.12 __strndup F
-GLIBC_2.12 __strpbrk_c2 F
-GLIBC_2.12 __strpbrk_c3 F
-GLIBC_2.12 __strsep_1c F
-GLIBC_2.12 __strsep_2c F
-GLIBC_2.12 __strsep_3c F
-GLIBC_2.12 __strsep_g F
-GLIBC_2.12 __strspn_c1 F
-GLIBC_2.12 __strspn_c2 F
-GLIBC_2.12 __strspn_c3 F
-GLIBC_2.12 __strtod_internal F
-GLIBC_2.12 __strtod_l F
-GLIBC_2.12 __strtof_internal F
-GLIBC_2.12 __strtof_l F
-GLIBC_2.12 __strtok_r F
-GLIBC_2.12 __strtok_r_1c F
-GLIBC_2.12 __strtol_internal F
-GLIBC_2.12 __strtol_l F
-GLIBC_2.12 __strtold_internal F
-GLIBC_2.12 __strtold_l F
-GLIBC_2.12 __strtoll_internal F
-GLIBC_2.12 __strtoll_l F
-GLIBC_2.12 __strtoul_internal F
-GLIBC_2.12 __strtoul_l F
-GLIBC_2.12 __strtoull_internal F
-GLIBC_2.12 __strtoull_l F
-GLIBC_2.12 __strverscmp F
-GLIBC_2.12 __strxfrm_l F
-GLIBC_2.12 __swprintf_chk F
-GLIBC_2.12 __sysconf F
-GLIBC_2.12 __syslog_chk F
-GLIBC_2.12 __sysv_signal F
-GLIBC_2.12 __timezone D 0x4
-GLIBC_2.12 __toascii_l F
-GLIBC_2.12 __tolower_l F
-GLIBC_2.12 __toupper_l F
-GLIBC_2.12 __towctrans F
-GLIBC_2.12 __towctrans_l F
-GLIBC_2.12 __towlower_l F
-GLIBC_2.12 __towupper_l F
-GLIBC_2.12 __ttyname_r_chk F
-GLIBC_2.12 __tzname D 0x8
-GLIBC_2.12 __uflow F
-GLIBC_2.12 __underflow F
-GLIBC_2.12 __uselocale F
-GLIBC_2.12 __vasprintf_chk F
-GLIBC_2.12 __vdprintf_chk F
-GLIBC_2.12 __vfork F
-GLIBC_2.12 __vfprintf_chk F
-GLIBC_2.12 __vfscanf F
-GLIBC_2.12 __vfwprintf_chk F
-GLIBC_2.12 __vprintf_chk F
-GLIBC_2.12 __vsnprintf F
-GLIBC_2.12 __vsnprintf_chk F
-GLIBC_2.12 __vsprintf_chk F
-GLIBC_2.12 __vsscanf F
-GLIBC_2.12 __vswprintf_chk F
-GLIBC_2.12 __vsyslog_chk F
-GLIBC_2.12 __vwprintf_chk F
-GLIBC_2.12 __wait F
-GLIBC_2.12 __waitpid F
-GLIBC_2.12 __wcpcpy_chk F
-GLIBC_2.12 __wcpncpy_chk F
-GLIBC_2.12 __wcrtomb_chk F
-GLIBC_2.12 __wcscasecmp_l F
-GLIBC_2.12 __wcscat_chk F
-GLIBC_2.12 __wcscoll_l F
-GLIBC_2.12 __wcscpy_chk F
-GLIBC_2.12 __wcsftime_l F
-GLIBC_2.12 __wcsncasecmp_l F
-GLIBC_2.12 __wcsncat_chk F
-GLIBC_2.12 __wcsncpy_chk F
-GLIBC_2.12 __wcsnrtombs_chk F
-GLIBC_2.12 __wcsrtombs_chk F
-GLIBC_2.12 __wcstod_internal F
-GLIBC_2.12 __wcstod_l F
-GLIBC_2.12 __wcstof_internal F
-GLIBC_2.12 __wcstof_l F
-GLIBC_2.12 __wcstol_internal F
-GLIBC_2.12 __wcstol_l F
-GLIBC_2.12 __wcstold_internal F
-GLIBC_2.12 __wcstold_l F
-GLIBC_2.12 __wcstoll_internal F
-GLIBC_2.12 __wcstoll_l F
-GLIBC_2.12 __wcstombs_chk F
-GLIBC_2.12 __wcstoul_internal F
-GLIBC_2.12 __wcstoul_l F
-GLIBC_2.12 __wcstoull_internal F
-GLIBC_2.12 __wcstoull_l F
-GLIBC_2.12 __wcsxfrm_l F
-GLIBC_2.12 __wctomb_chk F
-GLIBC_2.12 __wctrans_l F
-GLIBC_2.12 __wctype_l F
-GLIBC_2.12 __wmemcpy_chk F
-GLIBC_2.12 __wmemmove_chk F
-GLIBC_2.12 __wmempcpy_chk F
-GLIBC_2.12 __wmemset_chk F
-GLIBC_2.12 __woverflow F
-GLIBC_2.12 __wprintf_chk F
-GLIBC_2.12 __write F
-GLIBC_2.12 __wuflow F
-GLIBC_2.12 __wunderflow F
-GLIBC_2.12 __xmknod F
-GLIBC_2.12 __xmknodat F
-GLIBC_2.12 __xpg_basename F
-GLIBC_2.12 __xpg_sigpause F
-GLIBC_2.12 __xpg_strerror_r F
-GLIBC_2.12 __xstat F
-GLIBC_2.12 __xstat64 F
-GLIBC_2.12 _authenticate F
-GLIBC_2.12 _dl_mcount_wrapper F
-GLIBC_2.12 _dl_mcount_wrapper_check F
-GLIBC_2.12 _environ D 0x4
-GLIBC_2.12 _exit F
-GLIBC_2.12 _flush_cache F
-GLIBC_2.12 _flushlbf F
-GLIBC_2.12 _libc_intl_domainname D 0x5
-GLIBC_2.12 _longjmp F
-GLIBC_2.12 _mcleanup F
-GLIBC_2.12 _mcount F
-GLIBC_2.12 _nl_default_dirname D 0x12
-GLIBC_2.12 _nl_domain_bindings D 0x4
-GLIBC_2.12 _nl_msg_cat_cntr D 0x4
-GLIBC_2.12 _null_auth D 0xc
-GLIBC_2.12 _obstack_allocated_p F
-GLIBC_2.12 _obstack_begin F
-GLIBC_2.12 _obstack_begin_1 F
-GLIBC_2.12 _obstack_free F
-GLIBC_2.12 _obstack_memory_used F
-GLIBC_2.12 _obstack_newchunk F
-GLIBC_2.12 _res D 0x200
-GLIBC_2.12 _res_hconf D 0x30
-GLIBC_2.12 _rpc_dtablesize F
-GLIBC_2.12 _seterr_reply F
-GLIBC_2.12 _setjmp F
-GLIBC_2.12 _sys_errlist D 0x21c
-GLIBC_2.12 _sys_nerr D 0x4
-GLIBC_2.12 _sys_siglist D 0x104
-GLIBC_2.12 _tolower F
-GLIBC_2.12 _toupper F
-GLIBC_2.12 a64l F
-GLIBC_2.12 abort F
-GLIBC_2.12 abs F
-GLIBC_2.12 accept F
-GLIBC_2.12 accept4 F
-GLIBC_2.12 access F
-GLIBC_2.12 acct F
-GLIBC_2.12 addmntent F
-GLIBC_2.12 addseverity F
-GLIBC_2.12 adjtime F
-GLIBC_2.12 adjtimex F
-GLIBC_2.12 advance F
-GLIBC_2.12 alarm F
-GLIBC_2.12 alphasort F
-GLIBC_2.12 alphasort64 F
-GLIBC_2.12 argp_err_exit_status D 0x4
-GLIBC_2.12 argp_error F
-GLIBC_2.12 argp_failure F
-GLIBC_2.12 argp_help F
-GLIBC_2.12 argp_parse F
-GLIBC_2.12 argp_program_bug_address D 0x4
-GLIBC_2.12 argp_program_version D 0x4
-GLIBC_2.12 argp_program_version_hook D 0x4
-GLIBC_2.12 argp_state_help F
-GLIBC_2.12 argp_usage F
-GLIBC_2.12 argz_add F
-GLIBC_2.12 argz_add_sep F
-GLIBC_2.12 argz_append F
-GLIBC_2.12 argz_count F
-GLIBC_2.12 argz_create F
-GLIBC_2.12 argz_create_sep F
-GLIBC_2.12 argz_delete F
-GLIBC_2.12 argz_extract F
-GLIBC_2.12 argz_insert F
-GLIBC_2.12 argz_next F
-GLIBC_2.12 argz_replace F
-GLIBC_2.12 argz_stringify F
-GLIBC_2.12 asctime F
-GLIBC_2.12 asctime_r F
-GLIBC_2.12 asprintf F
-GLIBC_2.12 atof F
-GLIBC_2.12 atoi F
-GLIBC_2.12 atol F
-GLIBC_2.12 atoll F
-GLIBC_2.12 authdes_create F
-GLIBC_2.12 authdes_getucred F
-GLIBC_2.12 authdes_pk_create F
-GLIBC_2.12 authnone_create F
-GLIBC_2.12 authunix_create F
-GLIBC_2.12 authunix_create_default F
-GLIBC_2.12 backtrace F
-GLIBC_2.12 backtrace_symbols F
-GLIBC_2.12 backtrace_symbols_fd F
-GLIBC_2.12 basename F
-GLIBC_2.12 bcmp F
-GLIBC_2.12 bcopy F
-GLIBC_2.12 bdflush F
-GLIBC_2.12 bind F
-GLIBC_2.12 bind_textdomain_codeset F
-GLIBC_2.12 bindresvport F
-GLIBC_2.12 bindtextdomain F
-GLIBC_2.12 brk F
-GLIBC_2.12 bsd_signal F
-GLIBC_2.12 bsearch F
-GLIBC_2.12 btowc F
-GLIBC_2.12 bzero F
-GLIBC_2.12 cacheflush F
-GLIBC_2.12 calloc F
-GLIBC_2.12 callrpc F
-GLIBC_2.12 canonicalize_file_name F
-GLIBC_2.12 capget F
-GLIBC_2.12 capset F
-GLIBC_2.12 catclose F
-GLIBC_2.12 catgets F
-GLIBC_2.12 catopen F
-GLIBC_2.12 cbc_crypt F
-GLIBC_2.12 cfgetispeed F
-GLIBC_2.12 cfgetospeed F
-GLIBC_2.12 cfmakeraw F
-GLIBC_2.12 cfree F
-GLIBC_2.12 cfsetispeed F
-GLIBC_2.12 cfsetospeed F
-GLIBC_2.12 cfsetspeed F
-GLIBC_2.12 chdir F
-GLIBC_2.12 chflags F
-GLIBC_2.12 chmod F
-GLIBC_2.12 chown F
-GLIBC_2.12 chroot F
-GLIBC_2.12 clearenv F
-GLIBC_2.12 clearerr F
-GLIBC_2.12 clearerr_unlocked F
-GLIBC_2.12 clnt_broadcast F
-GLIBC_2.12 clnt_create F
-GLIBC_2.12 clnt_pcreateerror F
-GLIBC_2.12 clnt_perrno F
-GLIBC_2.12 clnt_perror F
-GLIBC_2.12 clnt_spcreateerror F
-GLIBC_2.12 clnt_sperrno F
-GLIBC_2.12 clnt_sperror F
-GLIBC_2.12 clntraw_create F
-GLIBC_2.12 clnttcp_create F
-GLIBC_2.12 clntudp_bufcreate F
-GLIBC_2.12 clntudp_create F
-GLIBC_2.12 clntunix_create F
-GLIBC_2.12 clock F
-GLIBC_2.12 clone F
-GLIBC_2.12 close F
-GLIBC_2.12 closedir F
-GLIBC_2.12 closelog F
-GLIBC_2.12 confstr F
-GLIBC_2.12 connect F
-GLIBC_2.12 copysign F
-GLIBC_2.12 copysignf F
-GLIBC_2.12 copysignl F
-GLIBC_2.12 creat F
-GLIBC_2.12 creat64 F
-GLIBC_2.12 create_module F
-GLIBC_2.12 ctermid F
-GLIBC_2.12 ctime F
-GLIBC_2.12 ctime_r F
-GLIBC_2.12 cuserid F
-GLIBC_2.12 daemon F
-GLIBC_2.12 daylight D 0x4
-GLIBC_2.12 dcgettext F
-GLIBC_2.12 dcngettext F
-GLIBC_2.12 delete_module F
-GLIBC_2.12 des_setparity F
-GLIBC_2.12 dgettext F
-GLIBC_2.12 difftime F
-GLIBC_2.12 dirfd F
-GLIBC_2.12 dirname F
-GLIBC_2.12 div F
-GLIBC_2.12 dl_iterate_phdr F
-GLIBC_2.12 dngettext F
-GLIBC_2.12 dprintf F
-GLIBC_2.12 drand48 F
-GLIBC_2.12 drand48_r F
-GLIBC_2.12 dup F
-GLIBC_2.12 dup2 F
-GLIBC_2.12 dup3 F
-GLIBC_2.12 duplocale F
-GLIBC_2.12 dysize F
-GLIBC_2.12 eaccess F
-GLIBC_2.12 ecb_crypt F
-GLIBC_2.12 ecvt F
-GLIBC_2.12 ecvt_r F
-GLIBC_2.12 endaliasent F
-GLIBC_2.12 endfsent F
-GLIBC_2.12 endgrent F
-GLIBC_2.12 endhostent F
-GLIBC_2.12 endmntent F
-GLIBC_2.12 endnetent F
-GLIBC_2.12 endnetgrent F
-GLIBC_2.12 endprotoent F
-GLIBC_2.12 endpwent F
-GLIBC_2.12 endrpcent F
-GLIBC_2.12 endservent F
-GLIBC_2.12 endsgent F
-GLIBC_2.12 endspent F
-GLIBC_2.12 endttyent F
-GLIBC_2.12 endusershell F
-GLIBC_2.12 endutent F
-GLIBC_2.12 endutxent F
-GLIBC_2.12 environ D 0x4
-GLIBC_2.12 envz_add F
-GLIBC_2.12 envz_entry F
-GLIBC_2.12 envz_get F
-GLIBC_2.12 envz_merge F
-GLIBC_2.12 envz_remove F
-GLIBC_2.12 envz_strip F
-GLIBC_2.12 epoll_create F
-GLIBC_2.12 epoll_create1 F
-GLIBC_2.12 epoll_ctl F
-GLIBC_2.12 epoll_pwait F
-GLIBC_2.12 epoll_wait F
-GLIBC_2.12 erand48 F
-GLIBC_2.12 erand48_r F
-GLIBC_2.12 err F
-GLIBC_2.12 error F
-GLIBC_2.12 error_at_line F
-GLIBC_2.12 error_message_count D 0x4
-GLIBC_2.12 error_one_per_line D 0x4
-GLIBC_2.12 error_print_progname D 0x4
-GLIBC_2.12 errx F
-GLIBC_2.12 ether_aton F
-GLIBC_2.12 ether_aton_r F
-GLIBC_2.12 ether_hostton F
-GLIBC_2.12 ether_line F
-GLIBC_2.12 ether_ntoa F
-GLIBC_2.12 ether_ntoa_r F
-GLIBC_2.12 ether_ntohost F
-GLIBC_2.12 euidaccess F
-GLIBC_2.12 eventfd F
-GLIBC_2.12 eventfd_read F
-GLIBC_2.12 eventfd_write F
-GLIBC_2.12 execl F
-GLIBC_2.12 execle F
-GLIBC_2.12 execlp F
-GLIBC_2.12 execv F
-GLIBC_2.12 execve F
-GLIBC_2.12 execvp F
-GLIBC_2.12 execvpe F
-GLIBC_2.12 exit F
-GLIBC_2.12 faccessat F
-GLIBC_2.12 fallocate F
-GLIBC_2.12 fallocate64 F
-GLIBC_2.12 fattach F
-GLIBC_2.12 fchdir F
-GLIBC_2.12 fchflags F
-GLIBC_2.12 fchmod F
-GLIBC_2.12 fchmodat F
-GLIBC_2.12 fchown F
-GLIBC_2.12 fchownat F
-GLIBC_2.12 fclose F
-GLIBC_2.12 fcloseall F
-GLIBC_2.12 fcntl F
-GLIBC_2.12 fcvt F
-GLIBC_2.12 fcvt_r F
-GLIBC_2.12 fdatasync F
-GLIBC_2.12 fdetach F
-GLIBC_2.12 fdopen F
-GLIBC_2.12 fdopendir F
-GLIBC_2.12 feof F
-GLIBC_2.12 feof_unlocked F
-GLIBC_2.12 ferror F
-GLIBC_2.12 ferror_unlocked F
-GLIBC_2.12 fexecve F
-GLIBC_2.12 fflush F
-GLIBC_2.12 fflush_unlocked F
-GLIBC_2.12 ffs F
-GLIBC_2.12 ffsl F
-GLIBC_2.12 ffsll F
-GLIBC_2.12 fgetc F
-GLIBC_2.12 fgetc_unlocked F
-GLIBC_2.12 fgetgrent F
-GLIBC_2.12 fgetgrent_r F
-GLIBC_2.12 fgetpos F
-GLIBC_2.12 fgetpos64 F
-GLIBC_2.12 fgetpwent F
-GLIBC_2.12 fgetpwent_r F
-GLIBC_2.12 fgets F
-GLIBC_2.12 fgets_unlocked F
-GLIBC_2.12 fgetsgent F
-GLIBC_2.12 fgetsgent_r F
-GLIBC_2.12 fgetspent F
-GLIBC_2.12 fgetspent_r F
-GLIBC_2.12 fgetwc F
-GLIBC_2.12 fgetwc_unlocked F
-GLIBC_2.12 fgetws F
-GLIBC_2.12 fgetws_unlocked F
-GLIBC_2.12 fgetxattr F
-GLIBC_2.12 fileno F
-GLIBC_2.12 fileno_unlocked F
-GLIBC_2.12 finite F
-GLIBC_2.12 finitef F
-GLIBC_2.12 finitel F
-GLIBC_2.12 flistxattr F
-GLIBC_2.12 flock F
-GLIBC_2.12 flockfile F
-GLIBC_2.12 fmemopen F
-GLIBC_2.12 fmtmsg F
-GLIBC_2.12 fnmatch F
-GLIBC_2.12 fopen F
-GLIBC_2.12 fopen64 F
-GLIBC_2.12 fopencookie F
-GLIBC_2.12 fork F
-GLIBC_2.12 fpathconf F
-GLIBC_2.12 fprintf F
-GLIBC_2.12 fputc F
-GLIBC_2.12 fputc_unlocked F
-GLIBC_2.12 fputs F
-GLIBC_2.12 fputs_unlocked F
-GLIBC_2.12 fputwc F
-GLIBC_2.12 fputwc_unlocked F
-GLIBC_2.12 fputws F
-GLIBC_2.12 fputws_unlocked F
-GLIBC_2.12 fread F
-GLIBC_2.12 fread_unlocked F
-GLIBC_2.12 free F
-GLIBC_2.12 freeaddrinfo F
-GLIBC_2.12 freeifaddrs F
-GLIBC_2.12 freelocale F
-GLIBC_2.12 fremovexattr F
-GLIBC_2.12 freopen F
-GLIBC_2.12 freopen64 F
-GLIBC_2.12 frexp F
-GLIBC_2.12 frexpf F
-GLIBC_2.12 frexpl F
-GLIBC_2.12 fscanf F
-GLIBC_2.12 fseek F
-GLIBC_2.12 fseeko F
-GLIBC_2.12 fseeko64 F
-GLIBC_2.12 fsetpos F
-GLIBC_2.12 fsetpos64 F
-GLIBC_2.12 fsetxattr F
-GLIBC_2.12 fstatfs F
-GLIBC_2.12 fstatfs64 F
-GLIBC_2.12 fstatvfs F
-GLIBC_2.12 fstatvfs64 F
-GLIBC_2.12 fsync F
-GLIBC_2.12 ftell F
-GLIBC_2.12 ftello F
-GLIBC_2.12 ftello64 F
-GLIBC_2.12 ftime F
-GLIBC_2.12 ftok F
-GLIBC_2.12 ftruncate F
-GLIBC_2.12 ftruncate64 F
-GLIBC_2.12 ftrylockfile F
-GLIBC_2.12 fts_children F
-GLIBC_2.12 fts_close F
-GLIBC_2.12 fts_open F
-GLIBC_2.12 fts_read F
-GLIBC_2.12 fts_set F
-GLIBC_2.12 ftw F
-GLIBC_2.12 ftw64 F
-GLIBC_2.12 funlockfile F
-GLIBC_2.12 futimens F
-GLIBC_2.12 futimes F
-GLIBC_2.12 futimesat F
-GLIBC_2.12 fwide F
-GLIBC_2.12 fwprintf F
-GLIBC_2.12 fwrite F
-GLIBC_2.12 fwrite_unlocked F
-GLIBC_2.12 fwscanf F
-GLIBC_2.12 gai_strerror F
-GLIBC_2.12 gcvt F
-GLIBC_2.12 get_avphys_pages F
-GLIBC_2.12 get_current_dir_name F
-GLIBC_2.12 get_kernel_syms F
-GLIBC_2.12 get_myaddress F
-GLIBC_2.12 get_nprocs F
-GLIBC_2.12 get_nprocs_conf F
-GLIBC_2.12 get_phys_pages F
-GLIBC_2.12 getaddrinfo F
-GLIBC_2.12 getaliasbyname F
-GLIBC_2.12 getaliasbyname_r F
-GLIBC_2.12 getaliasent F
-GLIBC_2.12 getaliasent_r F
-GLIBC_2.12 getc F
-GLIBC_2.12 getc_unlocked F
-GLIBC_2.12 getchar F
-GLIBC_2.12 getchar_unlocked F
-GLIBC_2.12 getcontext F
-GLIBC_2.12 getcwd F
-GLIBC_2.12 getdate F
-GLIBC_2.12 getdate_err D 0x4
-GLIBC_2.12 getdate_r F
-GLIBC_2.12 getdelim F
-GLIBC_2.12 getdirentries F
-GLIBC_2.12 getdirentries64 F
-GLIBC_2.12 getdomainname F
-GLIBC_2.12 getdtablesize F
-GLIBC_2.12 getegid F
-GLIBC_2.12 getenv F
-GLIBC_2.12 geteuid F
-GLIBC_2.12 getfsent F
-GLIBC_2.12 getfsfile F
-GLIBC_2.12 getfsspec F
-GLIBC_2.12 getgid F
-GLIBC_2.12 getgrent F
-GLIBC_2.12 getgrent_r F
-GLIBC_2.12 getgrgid F
-GLIBC_2.12 getgrgid_r F
-GLIBC_2.12 getgrnam F
-GLIBC_2.12 getgrnam_r F
-GLIBC_2.12 getgrouplist F
-GLIBC_2.12 getgroups F
-GLIBC_2.12 gethostbyaddr F
-GLIBC_2.12 gethostbyaddr_r F
-GLIBC_2.12 gethostbyname F
-GLIBC_2.12 gethostbyname2 F
-GLIBC_2.12 gethostbyname2_r F
-GLIBC_2.12 gethostbyname_r F
-GLIBC_2.12 gethostent F
-GLIBC_2.12 gethostent_r F
-GLIBC_2.12 gethostid F
-GLIBC_2.12 gethostname F
-GLIBC_2.12 getifaddrs F
-GLIBC_2.12 getipv4sourcefilter F
-GLIBC_2.12 getitimer F
-GLIBC_2.12 getline F
-GLIBC_2.12 getloadavg F
-GLIBC_2.12 getlogin F
-GLIBC_2.12 getlogin_r F
-GLIBC_2.12 getmntent F
-GLIBC_2.12 getmntent_r F
-GLIBC_2.12 getmsg F
-GLIBC_2.12 getnameinfo F
-GLIBC_2.12 getnetbyaddr F
-GLIBC_2.12 getnetbyaddr_r F
-GLIBC_2.12 getnetbyname F
-GLIBC_2.12 getnetbyname_r F
-GLIBC_2.12 getnetent F
-GLIBC_2.12 getnetent_r F
-GLIBC_2.12 getnetgrent F
-GLIBC_2.12 getnetgrent_r F
-GLIBC_2.12 getnetname F
-GLIBC_2.12 getopt F
-GLIBC_2.12 getopt_long F
-GLIBC_2.12 getopt_long_only F
-GLIBC_2.12 getpagesize F
-GLIBC_2.12 getpass F
-GLIBC_2.12 getpeername F
-GLIBC_2.12 getpgid F
-GLIBC_2.12 getpgrp F
-GLIBC_2.12 getpid F
-GLIBC_2.12 getpmsg F
-GLIBC_2.12 getppid F
-GLIBC_2.12 getpriority F
-GLIBC_2.12 getprotobyname F
-GLIBC_2.12 getprotobyname_r F
-GLIBC_2.12 getprotobynumber F
-GLIBC_2.12 getprotobynumber_r F
-GLIBC_2.12 getprotoent F
-GLIBC_2.12 getprotoent_r F
-GLIBC_2.12 getpt F
-GLIBC_2.12 getpublickey F
-GLIBC_2.12 getpw F
-GLIBC_2.12 getpwent F
-GLIBC_2.12 getpwent_r F
-GLIBC_2.12 getpwnam F
-GLIBC_2.12 getpwnam_r F
-GLIBC_2.12 getpwuid F
-GLIBC_2.12 getpwuid_r F
-GLIBC_2.12 getresgid F
-GLIBC_2.12 getresuid F
-GLIBC_2.12 getrlimit F
-GLIBC_2.12 getrlimit64 F
-GLIBC_2.12 getrpcbyname F
-GLIBC_2.12 getrpcbyname_r F
-GLIBC_2.12 getrpcbynumber F
-GLIBC_2.12 getrpcbynumber_r F
-GLIBC_2.12 getrpcent F
-GLIBC_2.12 getrpcent_r F
-GLIBC_2.12 getrpcport F
-GLIBC_2.12 getrusage F
-GLIBC_2.12 gets F
-GLIBC_2.12 getsecretkey F
-GLIBC_2.12 getservbyname F
-GLIBC_2.12 getservbyname_r F
-GLIBC_2.12 getservbyport F
-GLIBC_2.12 getservbyport_r F
-GLIBC_2.12 getservent F
-GLIBC_2.12 getservent_r F
-GLIBC_2.12 getsgent F
-GLIBC_2.12 getsgent_r F
-GLIBC_2.12 getsgnam F
-GLIBC_2.12 getsgnam_r F
-GLIBC_2.12 getsid F
-GLIBC_2.12 getsockname F
-GLIBC_2.12 getsockopt F
-GLIBC_2.12 getsourcefilter F
-GLIBC_2.12 getspent F
-GLIBC_2.12 getspent_r F
-GLIBC_2.12 getspnam F
-GLIBC_2.12 getspnam_r F
-GLIBC_2.12 getsubopt F
-GLIBC_2.12 gettext F
-GLIBC_2.12 gettimeofday F
-GLIBC_2.12 getttyent F
-GLIBC_2.12 getttynam F
-GLIBC_2.12 getuid F
-GLIBC_2.12 getusershell F
-GLIBC_2.12 getutent F
-GLIBC_2.12 getutent_r F
-GLIBC_2.12 getutid F
-GLIBC_2.12 getutid_r F
-GLIBC_2.12 getutline F
-GLIBC_2.12 getutline_r F
-GLIBC_2.12 getutmp F
-GLIBC_2.12 getutmpx F
-GLIBC_2.12 getutxent F
-GLIBC_2.12 getutxid F
-GLIBC_2.12 getutxline F
-GLIBC_2.12 getw F
-GLIBC_2.12 getwc F
-GLIBC_2.12 getwc_unlocked F
-GLIBC_2.12 getwchar F
-GLIBC_2.12 getwchar_unlocked F
-GLIBC_2.12 getwd F
-GLIBC_2.12 getxattr F
-GLIBC_2.12 glob F
-GLIBC_2.12 glob64 F
-GLIBC_2.12 glob_pattern_p F
-GLIBC_2.12 globfree F
-GLIBC_2.12 globfree64 F
-GLIBC_2.12 gmtime F
-GLIBC_2.12 gmtime_r F
-GLIBC_2.12 gnu_dev_major F
-GLIBC_2.12 gnu_dev_makedev F
-GLIBC_2.12 gnu_dev_minor F
-GLIBC_2.12 gnu_get_libc_release F
-GLIBC_2.12 gnu_get_libc_version F
-GLIBC_2.12 grantpt F
-GLIBC_2.12 group_member F
-GLIBC_2.12 gsignal F
-GLIBC_2.12 gtty F
-GLIBC_2.12 h_errlist D 0x14
-GLIBC_2.12 h_nerr D 0x4
-GLIBC_2.12 hasmntopt F
-GLIBC_2.12 hcreate F
-GLIBC_2.12 hcreate_r F
-GLIBC_2.12 hdestroy F
-GLIBC_2.12 hdestroy_r F
-GLIBC_2.12 herror F
-GLIBC_2.12 host2netname F
-GLIBC_2.12 hsearch F
-GLIBC_2.12 hsearch_r F
-GLIBC_2.12 hstrerror F
-GLIBC_2.12 htonl F
-GLIBC_2.12 htons F
-GLIBC_2.12 iconv F
-GLIBC_2.12 iconv_close F
-GLIBC_2.12 iconv_open F
-GLIBC_2.12 if_freenameindex F
-GLIBC_2.12 if_indextoname F
-GLIBC_2.12 if_nameindex F
-GLIBC_2.12 if_nametoindex F
-GLIBC_2.12 imaxabs F
-GLIBC_2.12 imaxdiv F
-GLIBC_2.12 in6addr_any D 0x10
-GLIBC_2.12 in6addr_loopback D 0x10
-GLIBC_2.12 index F
-GLIBC_2.12 inet6_opt_append F
-GLIBC_2.12 inet6_opt_find F
-GLIBC_2.12 inet6_opt_finish F
-GLIBC_2.12 inet6_opt_get_val F
-GLIBC_2.12 inet6_opt_init F
-GLIBC_2.12 inet6_opt_next F
-GLIBC_2.12 inet6_opt_set_val F
-GLIBC_2.12 inet6_option_alloc F
-GLIBC_2.12 inet6_option_append F
-GLIBC_2.12 inet6_option_find F
-GLIBC_2.12 inet6_option_init F
-GLIBC_2.12 inet6_option_next F
-GLIBC_2.12 inet6_option_space F
-GLIBC_2.12 inet6_rth_add F
-GLIBC_2.12 inet6_rth_getaddr F
-GLIBC_2.12 inet6_rth_init F
-GLIBC_2.12 inet6_rth_reverse F
-GLIBC_2.12 inet6_rth_segments F
-GLIBC_2.12 inet6_rth_space F
-GLIBC_2.12 inet_addr F
-GLIBC_2.12 inet_aton F
-GLIBC_2.12 inet_lnaof F
-GLIBC_2.12 inet_makeaddr F
-GLIBC_2.12 inet_netof F
-GLIBC_2.12 inet_network F
-GLIBC_2.12 inet_nsap_addr F
-GLIBC_2.12 inet_nsap_ntoa F
-GLIBC_2.12 inet_ntoa F
-GLIBC_2.12 inet_ntop F
-GLIBC_2.12 inet_pton F
-GLIBC_2.12 init_module F
-GLIBC_2.12 initgroups F
-GLIBC_2.12 initstate F
-GLIBC_2.12 initstate_r F
-GLIBC_2.12 innetgr F
-GLIBC_2.12 inotify_add_watch F
-GLIBC_2.12 inotify_init F
-GLIBC_2.12 inotify_init1 F
-GLIBC_2.12 inotify_rm_watch F
-GLIBC_2.12 insque F
-GLIBC_2.12 ioctl F
-GLIBC_2.12 iruserok F
-GLIBC_2.12 iruserok_af F
-GLIBC_2.12 isalnum F
-GLIBC_2.12 isalnum_l F
-GLIBC_2.12 isalpha F
-GLIBC_2.12 isalpha_l F
-GLIBC_2.12 isascii F
-GLIBC_2.12 isastream F
-GLIBC_2.12 isatty F
-GLIBC_2.12 isblank F
-GLIBC_2.12 isblank_l F
-GLIBC_2.12 iscntrl F
-GLIBC_2.12 iscntrl_l F
-GLIBC_2.12 isctype F
-GLIBC_2.12 isdigit F
-GLIBC_2.12 isdigit_l F
-GLIBC_2.12 isfdtype F
-GLIBC_2.12 isgraph F
-GLIBC_2.12 isgraph_l F
-GLIBC_2.12 isinf F
-GLIBC_2.12 isinff F
-GLIBC_2.12 isinfl F
-GLIBC_2.12 islower F
-GLIBC_2.12 islower_l F
-GLIBC_2.12 isnan F
-GLIBC_2.12 isnanf F
-GLIBC_2.12 isnanl F
-GLIBC_2.12 isprint F
-GLIBC_2.12 isprint_l F
-GLIBC_2.12 ispunct F
-GLIBC_2.12 ispunct_l F
-GLIBC_2.12 isspace F
-GLIBC_2.12 isspace_l F
-GLIBC_2.12 isupper F
-GLIBC_2.12 isupper_l F
-GLIBC_2.12 iswalnum F
-GLIBC_2.12 iswalnum_l F
-GLIBC_2.12 iswalpha F
-GLIBC_2.12 iswalpha_l F
-GLIBC_2.12 iswblank F
-GLIBC_2.12 iswblank_l F
-GLIBC_2.12 iswcntrl F
-GLIBC_2.12 iswcntrl_l F
-GLIBC_2.12 iswctype F
-GLIBC_2.12 iswctype_l F
-GLIBC_2.12 iswdigit F
-GLIBC_2.12 iswdigit_l F
-GLIBC_2.12 iswgraph F
-GLIBC_2.12 iswgraph_l F
-GLIBC_2.12 iswlower F
-GLIBC_2.12 iswlower_l F
-GLIBC_2.12 iswprint F
-GLIBC_2.12 iswprint_l F
-GLIBC_2.12 iswpunct F
-GLIBC_2.12 iswpunct_l F
-GLIBC_2.12 iswspace F
-GLIBC_2.12 iswspace_l F
-GLIBC_2.12 iswupper F
-GLIBC_2.12 iswupper_l F
-GLIBC_2.12 iswxdigit F
-GLIBC_2.12 iswxdigit_l F
-GLIBC_2.12 isxdigit F
-GLIBC_2.12 isxdigit_l F
-GLIBC_2.12 jrand48 F
-GLIBC_2.12 jrand48_r F
-GLIBC_2.12 key_decryptsession F
-GLIBC_2.12 key_decryptsession_pk F
-GLIBC_2.12 key_encryptsession F
-GLIBC_2.12 key_encryptsession_pk F
-GLIBC_2.12 key_gendes F
-GLIBC_2.12 key_get_conv F
-GLIBC_2.12 key_secretkey_is_set F
-GLIBC_2.12 key_setnet F
-GLIBC_2.12 key_setsecret F
-GLIBC_2.12 kill F
-GLIBC_2.12 killpg F
-GLIBC_2.12 klogctl F
-GLIBC_2.12 l64a F
-GLIBC_2.12 labs F
-GLIBC_2.12 lchmod F
-GLIBC_2.12 lchown F
-GLIBC_2.12 lckpwdf F
-GLIBC_2.12 lcong48 F
-GLIBC_2.12 lcong48_r F
-GLIBC_2.12 ldexp F
-GLIBC_2.12 ldexpf F
-GLIBC_2.12 ldexpl F
-GLIBC_2.12 ldiv F
-GLIBC_2.12 lfind F
-GLIBC_2.12 lgetxattr F
-GLIBC_2.12 link F
-GLIBC_2.12 linkat F
-GLIBC_2.12 listen F
-GLIBC_2.12 listxattr F
-GLIBC_2.12 llabs F
-GLIBC_2.12 lldiv F
-GLIBC_2.12 llistxattr F
-GLIBC_2.12 llseek F
-GLIBC_2.12 loc1 D 0x4
-GLIBC_2.12 loc2 D 0x4
-GLIBC_2.12 localeconv F
-GLIBC_2.12 localtime F
-GLIBC_2.12 localtime_r F
-GLIBC_2.12 lockf F
-GLIBC_2.12 lockf64 F
-GLIBC_2.12 locs D 0x4
-GLIBC_2.12 longjmp F
-GLIBC_2.12 lrand48 F
-GLIBC_2.12 lrand48_r F
-GLIBC_2.12 lremovexattr F
-GLIBC_2.12 lsearch F
-GLIBC_2.12 lseek F
-GLIBC_2.12 lseek64 F
-GLIBC_2.12 lsetxattr F
-GLIBC_2.12 lutimes F
-GLIBC_2.12 madvise F
-GLIBC_2.12 makecontext F
-GLIBC_2.12 mallinfo F
-GLIBC_2.12 malloc F
-GLIBC_2.12 malloc_get_state F
-GLIBC_2.12 malloc_info F
-GLIBC_2.12 malloc_set_state F
-GLIBC_2.12 malloc_stats F
-GLIBC_2.12 malloc_trim F
-GLIBC_2.12 malloc_usable_size F
-GLIBC_2.12 mallopt F
-GLIBC_2.12 mallwatch D 0x4
-GLIBC_2.12 mblen F
-GLIBC_2.12 mbrlen F
-GLIBC_2.12 mbrtowc F
-GLIBC_2.12 mbsinit F
-GLIBC_2.12 mbsnrtowcs F
-GLIBC_2.12 mbsrtowcs F
-GLIBC_2.12 mbstowcs F
-GLIBC_2.12 mbtowc F
-GLIBC_2.12 mcheck F
-GLIBC_2.12 mcheck_check_all F
-GLIBC_2.12 mcheck_pedantic F
-GLIBC_2.12 mcount F
-GLIBC_2.12 memalign F
-GLIBC_2.12 memccpy F
-GLIBC_2.12 memchr F
-GLIBC_2.12 memcmp F
-GLIBC_2.12 memcpy F
-GLIBC_2.12 memfrob F
-GLIBC_2.12 memmem F
-GLIBC_2.12 memmove F
-GLIBC_2.12 mempcpy F
-GLIBC_2.12 memrchr F
-GLIBC_2.12 memset F
-GLIBC_2.12 mincore F
-GLIBC_2.12 mkdir F
-GLIBC_2.12 mkdirat F
-GLIBC_2.12 mkdtemp F
-GLIBC_2.12 mkfifo F
-GLIBC_2.12 mkfifoat F
-GLIBC_2.12 mkostemp F
-GLIBC_2.12 mkostemp64 F
-GLIBC_2.12 mkostemps F
-GLIBC_2.12 mkostemps64 F
-GLIBC_2.12 mkstemp F
-GLIBC_2.12 mkstemp64 F
-GLIBC_2.12 mkstemps F
-GLIBC_2.12 mkstemps64 F
-GLIBC_2.12 mktemp F
-GLIBC_2.12 mktime F
-GLIBC_2.12 mlock F
-GLIBC_2.12 mlockall F
-GLIBC_2.12 mmap F
-GLIBC_2.12 mmap64 F
-GLIBC_2.12 modf F
-GLIBC_2.12 modff F
-GLIBC_2.12 modfl F
-GLIBC_2.12 moncontrol F
-GLIBC_2.12 monstartup F
-GLIBC_2.12 mount F
-GLIBC_2.12 mprobe F
-GLIBC_2.12 mprotect F
-GLIBC_2.12 mrand48 F
-GLIBC_2.12 mrand48_r F
-GLIBC_2.12 mremap F
-GLIBC_2.12 msgctl F
-GLIBC_2.12 msgget F
-GLIBC_2.12 msgrcv F
-GLIBC_2.12 msgsnd F
-GLIBC_2.12 msync F
-GLIBC_2.12 mtrace F
-GLIBC_2.12 munlock F
-GLIBC_2.12 munlockall F
-GLIBC_2.12 munmap F
-GLIBC_2.12 muntrace F
-GLIBC_2.12 nanosleep F
-GLIBC_2.12 netname2host F
-GLIBC_2.12 netname2user F
-GLIBC_2.12 newlocale F
-GLIBC_2.12 nfsservctl F
-GLIBC_2.12 nftw F
-GLIBC_2.12 nftw64 F
-GLIBC_2.12 ngettext F
-GLIBC_2.12 nice F
-GLIBC_2.12 nl_langinfo F
-GLIBC_2.12 nl_langinfo_l F
-GLIBC_2.12 nrand48 F
-GLIBC_2.12 nrand48_r F
-GLIBC_2.12 ntohl F
-GLIBC_2.12 ntohs F
-GLIBC_2.12 ntp_adjtime F
-GLIBC_2.12 ntp_gettime F
-GLIBC_2.12 ntp_gettimex F
-GLIBC_2.12 obstack_alloc_failed_handler D 0x4
-GLIBC_2.12 obstack_exit_failure D 0x4
-GLIBC_2.12 obstack_free F
-GLIBC_2.12 obstack_printf F
-GLIBC_2.12 obstack_vprintf F
-GLIBC_2.12 on_exit F
-GLIBC_2.12 open F
-GLIBC_2.12 open64 F
-GLIBC_2.12 open_memstream F
-GLIBC_2.12 open_wmemstream F
-GLIBC_2.12 openat F
-GLIBC_2.12 openat64 F
-GLIBC_2.12 opendir F
-GLIBC_2.12 openlog F
-GLIBC_2.12 optarg D 0x4
-GLIBC_2.12 opterr D 0x4
-GLIBC_2.12 optind D 0x4
-GLIBC_2.12 optopt D 0x4
-GLIBC_2.12 parse_printf_format F
-GLIBC_2.12 passwd2des F
-GLIBC_2.12 pathconf F
-GLIBC_2.12 pause F
-GLIBC_2.12 pclose F
-GLIBC_2.12 perror F
-GLIBC_2.12 personality F
-GLIBC_2.12 pipe F
-GLIBC_2.12 pipe2 F
-GLIBC_2.12 pivot_root F
-GLIBC_2.12 pmap_getmaps F
-GLIBC_2.12 pmap_getport F
-GLIBC_2.12 pmap_rmtcall F
-GLIBC_2.12 pmap_set F
-GLIBC_2.12 pmap_unset F
-GLIBC_2.12 poll F
-GLIBC_2.12 popen F
-GLIBC_2.12 posix_fadvise F
-GLIBC_2.12 posix_fadvise64 F
-GLIBC_2.12 posix_fallocate F
-GLIBC_2.12 posix_fallocate64 F
-GLIBC_2.12 posix_madvise F
-GLIBC_2.12 posix_memalign F
-GLIBC_2.12 posix_openpt F
-GLIBC_2.12 posix_spawn F
-GLIBC_2.12 posix_spawn_file_actions_addclose F
-GLIBC_2.12 posix_spawn_file_actions_adddup2 F
-GLIBC_2.12 posix_spawn_file_actions_addopen F
-GLIBC_2.12 posix_spawn_file_actions_destroy F
-GLIBC_2.12 posix_spawn_file_actions_init F
-GLIBC_2.12 posix_spawnattr_destroy F
-GLIBC_2.12 posix_spawnattr_getflags F
-GLIBC_2.12 posix_spawnattr_getpgroup F
-GLIBC_2.12 posix_spawnattr_getschedparam F
-GLIBC_2.12 posix_spawnattr_getschedpolicy F
-GLIBC_2.12 posix_spawnattr_getsigdefault F
-GLIBC_2.12 posix_spawnattr_getsigmask F
-GLIBC_2.12 posix_spawnattr_init F
-GLIBC_2.12 posix_spawnattr_setflags F
-GLIBC_2.12 posix_spawnattr_setpgroup F
-GLIBC_2.12 posix_spawnattr_setschedparam F
-GLIBC_2.12 posix_spawnattr_setschedpolicy F
-GLIBC_2.12 posix_spawnattr_setsigdefault F
-GLIBC_2.12 posix_spawnattr_setsigmask F
-GLIBC_2.12 posix_spawnp F
-GLIBC_2.12 ppoll F
-GLIBC_2.12 prctl F
-GLIBC_2.12 pread F
-GLIBC_2.12 pread64 F
-GLIBC_2.12 preadv F
-GLIBC_2.12 preadv64 F
-GLIBC_2.12 printf F
-GLIBC_2.12 printf_size F
-GLIBC_2.12 printf_size_info F
-GLIBC_2.12 profil F
-GLIBC_2.12 program_invocation_name D 0x4
-GLIBC_2.12 program_invocation_short_name D 0x4
-GLIBC_2.12 pselect F
-GLIBC_2.12 psiginfo F
-GLIBC_2.12 psignal F
-GLIBC_2.12 pthread_attr_destroy F
-GLIBC_2.12 pthread_attr_getdetachstate F
-GLIBC_2.12 pthread_attr_getinheritsched F
-GLIBC_2.12 pthread_attr_getschedparam F
-GLIBC_2.12 pthread_attr_getschedpolicy F
-GLIBC_2.12 pthread_attr_getscope F
-GLIBC_2.12 pthread_attr_init F
-GLIBC_2.12 pthread_attr_setdetachstate F
-GLIBC_2.12 pthread_attr_setinheritsched F
-GLIBC_2.12 pthread_attr_setschedparam F
-GLIBC_2.12 pthread_attr_setschedpolicy F
-GLIBC_2.12 pthread_attr_setscope F
-GLIBC_2.12 pthread_cond_broadcast F
-GLIBC_2.12 pthread_cond_destroy F
-GLIBC_2.12 pthread_cond_init F
-GLIBC_2.12 pthread_cond_signal F
-GLIBC_2.12 pthread_cond_timedwait F
-GLIBC_2.12 pthread_cond_wait F
-GLIBC_2.12 pthread_condattr_destroy F
-GLIBC_2.12 pthread_condattr_init F
-GLIBC_2.12 pthread_equal F
-GLIBC_2.12 pthread_exit F
-GLIBC_2.12 pthread_getschedparam F
-GLIBC_2.12 pthread_mutex_destroy F
-GLIBC_2.12 pthread_mutex_init F
-GLIBC_2.12 pthread_mutex_lock F
-GLIBC_2.12 pthread_mutex_unlock F
-GLIBC_2.12 pthread_self F
-GLIBC_2.12 pthread_setcancelstate F
-GLIBC_2.12 pthread_setcanceltype F
-GLIBC_2.12 pthread_setschedparam F
-GLIBC_2.12 ptrace F
-GLIBC_2.12 ptsname F
-GLIBC_2.12 ptsname_r F
-GLIBC_2.12 putc F
-GLIBC_2.12 putc_unlocked F
-GLIBC_2.12 putchar F
-GLIBC_2.12 putchar_unlocked F
-GLIBC_2.12 putenv F
-GLIBC_2.12 putgrent F
-GLIBC_2.12 putmsg F
-GLIBC_2.12 putpmsg F
-GLIBC_2.12 putpwent F
-GLIBC_2.12 puts F
-GLIBC_2.12 putsgent F
-GLIBC_2.12 putspent F
-GLIBC_2.12 pututline F
-GLIBC_2.12 pututxline F
-GLIBC_2.12 putw F
-GLIBC_2.12 putwc F
-GLIBC_2.12 putwc_unlocked F
-GLIBC_2.12 putwchar F
-GLIBC_2.12 putwchar_unlocked F
-GLIBC_2.12 pvalloc F
-GLIBC_2.12 pwrite F
-GLIBC_2.12 pwrite64 F
-GLIBC_2.12 pwritev F
-GLIBC_2.12 pwritev64 F
-GLIBC_2.12 qecvt F
-GLIBC_2.12 qecvt_r F
-GLIBC_2.12 qfcvt F
-GLIBC_2.12 qfcvt_r F
-GLIBC_2.12 qgcvt F
-GLIBC_2.12 qsort F
-GLIBC_2.12 qsort_r F
-GLIBC_2.12 query_module F
-GLIBC_2.12 quick_exit F
-GLIBC_2.12 quotactl F
-GLIBC_2.12 raise F
-GLIBC_2.12 rand F
-GLIBC_2.12 rand_r F
-GLIBC_2.12 random F
-GLIBC_2.12 random_r F
-GLIBC_2.12 rawmemchr F
-GLIBC_2.12 rcmd F
-GLIBC_2.12 rcmd_af F
-GLIBC_2.12 re_comp F
-GLIBC_2.12 re_compile_fastmap F
-GLIBC_2.12 re_compile_pattern F
-GLIBC_2.12 re_exec F
-GLIBC_2.12 re_match F
-GLIBC_2.12 re_match_2 F
-GLIBC_2.12 re_search F
-GLIBC_2.12 re_search_2 F
-GLIBC_2.12 re_set_registers F
-GLIBC_2.12 re_set_syntax F
-GLIBC_2.12 re_syntax_options D 0x4
-GLIBC_2.12 read F
-GLIBC_2.12 readahead F
-GLIBC_2.12 readdir F
-GLIBC_2.12 readdir64 F
-GLIBC_2.12 readdir64_r F
-GLIBC_2.12 readdir_r F
-GLIBC_2.12 readlink F
-GLIBC_2.12 readlinkat F
-GLIBC_2.12 readv F
-GLIBC_2.12 realloc F
-GLIBC_2.12 realpath F
-GLIBC_2.12 reboot F
-GLIBC_2.12 recv F
-GLIBC_2.12 recvfrom F
-GLIBC_2.12 recvmmsg F
-GLIBC_2.12 recvmsg F
-GLIBC_2.12 regcomp F
-GLIBC_2.12 regerror F
-GLIBC_2.12 regexec F
-GLIBC_2.12 regfree F
-GLIBC_2.12 register_printf_function F
-GLIBC_2.12 register_printf_modifier F
-GLIBC_2.12 register_printf_specifier F
-GLIBC_2.12 register_printf_type F
-GLIBC_2.12 registerrpc F
-GLIBC_2.12 remap_file_pages F
-GLIBC_2.12 remove F
-GLIBC_2.12 removexattr F
-GLIBC_2.12 remque F
-GLIBC_2.12 rename F
-GLIBC_2.12 renameat F
-GLIBC_2.12 revoke F
-GLIBC_2.12 rewind F
-GLIBC_2.12 rewinddir F
-GLIBC_2.12 rexec F
-GLIBC_2.12 rexec_af F
-GLIBC_2.12 rexecoptions D 0x4
-GLIBC_2.12 rindex F
-GLIBC_2.12 rmdir F
-GLIBC_2.12 rpc_createerr D 0x10
-GLIBC_2.12 rpmatch F
-GLIBC_2.12 rresvport F
-GLIBC_2.12 rresvport_af F
-GLIBC_2.12 rtime F
-GLIBC_2.12 ruserok F
-GLIBC_2.12 ruserok_af F
-GLIBC_2.12 ruserpass F
-GLIBC_2.12 sbrk F
-GLIBC_2.12 scalbn F
-GLIBC_2.12 scalbnf F
-GLIBC_2.12 scalbnl F
-GLIBC_2.12 scandir F
-GLIBC_2.12 scandir64 F
-GLIBC_2.12 scanf F
-GLIBC_2.12 sched_get_priority_max F
-GLIBC_2.12 sched_get_priority_min F
-GLIBC_2.12 sched_getaffinity F
-GLIBC_2.12 sched_getcpu F
-GLIBC_2.12 sched_getparam F
-GLIBC_2.12 sched_getscheduler F
-GLIBC_2.12 sched_rr_get_interval F
-GLIBC_2.12 sched_setaffinity F
-GLIBC_2.12 sched_setparam F
-GLIBC_2.12 sched_setscheduler F
-GLIBC_2.12 sched_yield F
-GLIBC_2.12 seed48 F
-GLIBC_2.12 seed48_r F
-GLIBC_2.12 seekdir F
-GLIBC_2.12 select F
-GLIBC_2.12 semctl F
-GLIBC_2.12 semget F
-GLIBC_2.12 semop F
-GLIBC_2.12 semtimedop F
-GLIBC_2.12 send F
-GLIBC_2.12 sendfile F
-GLIBC_2.12 sendfile64 F
-GLIBC_2.12 sendmsg F
-GLIBC_2.12 sendto F
-GLIBC_2.12 set_dataplane F
-GLIBC_2.12 setaliasent F
-GLIBC_2.12 setbuf F
-GLIBC_2.12 setbuffer F
-GLIBC_2.12 setcontext F
-GLIBC_2.12 setdomainname F
-GLIBC_2.12 setegid F
-GLIBC_2.12 setenv F
-GLIBC_2.12 seteuid F
-GLIBC_2.12 setfsent F
-GLIBC_2.12 setfsgid F
-GLIBC_2.12 setfsuid F
-GLIBC_2.12 setgid F
-GLIBC_2.12 setgrent F
-GLIBC_2.12 setgroups F
-GLIBC_2.12 sethostent F
-GLIBC_2.12 sethostid F
-GLIBC_2.12 sethostname F
-GLIBC_2.12 setipv4sourcefilter F
-GLIBC_2.12 setitimer F
-GLIBC_2.12 setjmp F
-GLIBC_2.12 setlinebuf F
-GLIBC_2.12 setlocale F
-GLIBC_2.12 setlogin F
-GLIBC_2.12 setlogmask F
-GLIBC_2.12 setmntent F
-GLIBC_2.12 setnetent F
-GLIBC_2.12 setnetgrent F
-GLIBC_2.12 setpgid F
-GLIBC_2.12 setpgrp F
-GLIBC_2.12 setpriority F
-GLIBC_2.12 setprotoent F
-GLIBC_2.12 setpwent F
-GLIBC_2.12 setregid F
-GLIBC_2.12 setresgid F
-GLIBC_2.12 setresuid F
-GLIBC_2.12 setreuid F
-GLIBC_2.12 setrlimit F
-GLIBC_2.12 setrlimit64 F
-GLIBC_2.12 setrpcent F
-GLIBC_2.12 setservent F
-GLIBC_2.12 setsgent F
-GLIBC_2.12 setsid F
-GLIBC_2.12 setsockopt F
-GLIBC_2.12 setsourcefilter F
-GLIBC_2.12 setspent F
-GLIBC_2.12 setstate F
-GLIBC_2.12 setstate_r F
-GLIBC_2.12 settimeofday F
-GLIBC_2.12 setttyent F
-GLIBC_2.12 setuid F
-GLIBC_2.12 setusershell F
-GLIBC_2.12 setutent F
-GLIBC_2.12 setutxent F
-GLIBC_2.12 setvbuf F
-GLIBC_2.12 setxattr F
-GLIBC_2.12 sgetsgent F
-GLIBC_2.12 sgetsgent_r F
-GLIBC_2.12 sgetspent F
-GLIBC_2.12 sgetspent_r F
-GLIBC_2.12 shmat F
-GLIBC_2.12 shmctl F
-GLIBC_2.12 shmdt F
-GLIBC_2.12 shmget F
-GLIBC_2.12 shutdown F
-GLIBC_2.12 sigaction F
-GLIBC_2.12 sigaddset F
-GLIBC_2.12 sigaltstack F
-GLIBC_2.12 sigandset F
-GLIBC_2.12 sigblock F
-GLIBC_2.12 sigdelset F
-GLIBC_2.12 sigemptyset F
-GLIBC_2.12 sigfillset F
-GLIBC_2.12 siggetmask F
-GLIBC_2.12 sighold F
-GLIBC_2.12 sigignore F
-GLIBC_2.12 siginterrupt F
-GLIBC_2.12 sigisemptyset F
-GLIBC_2.12 sigismember F
-GLIBC_2.12 siglongjmp F
-GLIBC_2.12 signal F
-GLIBC_2.12 signalfd F
-GLIBC_2.12 sigorset F
-GLIBC_2.12 sigpause F
-GLIBC_2.12 sigpending F
-GLIBC_2.12 sigprocmask F
-GLIBC_2.12 sigqueue F
-GLIBC_2.12 sigrelse F
-GLIBC_2.12 sigreturn F
-GLIBC_2.12 sigset F
-GLIBC_2.12 sigsetmask F
-GLIBC_2.12 sigstack F
-GLIBC_2.12 sigsuspend F
-GLIBC_2.12 sigtimedwait F
-GLIBC_2.12 sigvec F
-GLIBC_2.12 sigwait F
-GLIBC_2.12 sigwaitinfo F
-GLIBC_2.12 sleep F
-GLIBC_2.12 snprintf F
-GLIBC_2.12 sockatmark F
-GLIBC_2.12 socket F
-GLIBC_2.12 socketpair F
-GLIBC_2.12 splice F
-GLIBC_2.12 sprintf F
-GLIBC_2.12 sprofil F
-GLIBC_2.12 srand F
-GLIBC_2.12 srand48 F
-GLIBC_2.12 srand48_r F
-GLIBC_2.12 srandom F
-GLIBC_2.12 srandom_r F
-GLIBC_2.12 sscanf F
-GLIBC_2.12 ssignal F
-GLIBC_2.12 sstk F
-GLIBC_2.12 statfs F
-GLIBC_2.12 statfs64 F
-GLIBC_2.12 statvfs F
-GLIBC_2.12 statvfs64 F
-GLIBC_2.12 stderr D 0x4
-GLIBC_2.12 stdin D 0x4
-GLIBC_2.12 stdout D 0x4
-GLIBC_2.12 step F
-GLIBC_2.12 stime F
-GLIBC_2.12 stpcpy F
-GLIBC_2.12 stpncpy F
-GLIBC_2.12 strcasecmp F
-GLIBC_2.12 strcasecmp_l F
-GLIBC_2.12 strcasestr F
-GLIBC_2.12 strcat F
-GLIBC_2.12 strchr F
-GLIBC_2.12 strchrnul F
-GLIBC_2.12 strcmp F
-GLIBC_2.12 strcoll F
-GLIBC_2.12 strcoll_l F
-GLIBC_2.12 strcpy F
-GLIBC_2.12 strcspn F
-GLIBC_2.12 strdup F
-GLIBC_2.12 strerror F
-GLIBC_2.12 strerror_l F
-GLIBC_2.12 strerror_r F
-GLIBC_2.12 strfmon F
-GLIBC_2.12 strfmon_l F
-GLIBC_2.12 strfry F
-GLIBC_2.12 strftime F
-GLIBC_2.12 strftime_l F
-GLIBC_2.12 strlen F
-GLIBC_2.12 strncasecmp F
-GLIBC_2.12 strncasecmp_l F
-GLIBC_2.12 strncat F
-GLIBC_2.12 strncmp F
-GLIBC_2.12 strncpy F
-GLIBC_2.12 strndup F
-GLIBC_2.12 strnlen F
-GLIBC_2.12 strpbrk F
-GLIBC_2.12 strptime F
-GLIBC_2.12 strptime_l F
-GLIBC_2.12 strrchr F
-GLIBC_2.12 strsep F
-GLIBC_2.12 strsignal F
-GLIBC_2.12 strspn F
-GLIBC_2.12 strstr F
-GLIBC_2.12 strtod F
-GLIBC_2.12 strtod_l F
-GLIBC_2.12 strtof F
-GLIBC_2.12 strtof_l F
-GLIBC_2.12 strtoimax F
-GLIBC_2.12 strtok F
-GLIBC_2.12 strtok_r F
-GLIBC_2.12 strtol F
-GLIBC_2.12 strtol_l F
-GLIBC_2.12 strtold F
-GLIBC_2.12 strtold_l F
-GLIBC_2.12 strtoll F
-GLIBC_2.12 strtoll_l F
-GLIBC_2.12 strtoq F
-GLIBC_2.12 strtoul F
-GLIBC_2.12 strtoul_l F
-GLIBC_2.12 strtoull F
-GLIBC_2.12 strtoull_l F
-GLIBC_2.12 strtoumax F
-GLIBC_2.12 strtouq F
-GLIBC_2.12 strverscmp F
-GLIBC_2.12 strxfrm F
-GLIBC_2.12 strxfrm_l F
-GLIBC_2.12 stty F
-GLIBC_2.12 svc_exit F
-GLIBC_2.12 svc_fdset D 0x80
-GLIBC_2.12 svc_getreq F
-GLIBC_2.12 svc_getreq_common F
-GLIBC_2.12 svc_getreq_poll F
-GLIBC_2.12 svc_getreqset F
-GLIBC_2.12 svc_max_pollfd D 0x4
-GLIBC_2.12 svc_pollfd D 0x4
-GLIBC_2.12 svc_register F
-GLIBC_2.12 svc_run F
-GLIBC_2.12 svc_sendreply F
-GLIBC_2.12 svc_unregister F
-GLIBC_2.12 svcauthdes_stats D 0xc
-GLIBC_2.12 svcerr_auth F
-GLIBC_2.12 svcerr_decode F
-GLIBC_2.12 svcerr_noproc F
-GLIBC_2.12 svcerr_noprog F
-GLIBC_2.12 svcerr_progvers F
-GLIBC_2.12 svcerr_systemerr F
-GLIBC_2.12 svcerr_weakauth F
-GLIBC_2.12 svcfd_create F
-GLIBC_2.12 svcraw_create F
-GLIBC_2.12 svctcp_create F
-GLIBC_2.12 svcudp_bufcreate F
-GLIBC_2.12 svcudp_create F
-GLIBC_2.12 svcudp_enablecache F
-GLIBC_2.12 svcunix_create F
-GLIBC_2.12 svcunixfd_create F
-GLIBC_2.12 swab F
-GLIBC_2.12 swapcontext F
-GLIBC_2.12 swapoff F
-GLIBC_2.12 swapon F
-GLIBC_2.12 swprintf F
-GLIBC_2.12 swscanf F
-GLIBC_2.12 symlink F
-GLIBC_2.12 symlinkat F
-GLIBC_2.12 sync F
-GLIBC_2.12 sync_file_range F
-GLIBC_2.12 sys_errlist D 0x21c
-GLIBC_2.12 sys_nerr D 0x4
-GLIBC_2.12 sys_sigabbrev D 0x104
-GLIBC_2.12 sys_siglist D 0x104
-GLIBC_2.12 syscall F
-GLIBC_2.12 sysconf F
-GLIBC_2.12 sysctl F
-GLIBC_2.12 sysinfo F
-GLIBC_2.12 syslog F
-GLIBC_2.12 system F
-GLIBC_2.12 sysv_signal F
-GLIBC_2.12 tcdrain F
-GLIBC_2.12 tcflow F
-GLIBC_2.12 tcflush F
-GLIBC_2.12 tcgetattr F
-GLIBC_2.12 tcgetpgrp F
-GLIBC_2.12 tcgetsid F
-GLIBC_2.12 tcsendbreak F
-GLIBC_2.12 tcsetattr F
-GLIBC_2.12 tcsetpgrp F
-GLIBC_2.12 tdelete F
-GLIBC_2.12 tdestroy F
-GLIBC_2.12 tee F
-GLIBC_2.12 telldir F
-GLIBC_2.12 tempnam F
-GLIBC_2.12 textdomain F
-GLIBC_2.12 tfind F
-GLIBC_2.12 time F
-GLIBC_2.12 timegm F
-GLIBC_2.12 timelocal F
-GLIBC_2.12 timerfd_create F
-GLIBC_2.12 timerfd_gettime F
-GLIBC_2.12 timerfd_settime F
-GLIBC_2.12 times F
-GLIBC_2.12 timezone D 0x4
-GLIBC_2.12 tmpfile F
-GLIBC_2.12 tmpfile64 F
-GLIBC_2.12 tmpnam F
-GLIBC_2.12 tmpnam_r F
-GLIBC_2.12 toascii F
-GLIBC_2.12 tolower F
-GLIBC_2.12 tolower_l F
-GLIBC_2.12 toupper F
-GLIBC_2.12 toupper_l F
-GLIBC_2.12 towctrans F
-GLIBC_2.12 towctrans_l F
-GLIBC_2.12 towlower F
-GLIBC_2.12 towlower_l F
-GLIBC_2.12 towupper F
-GLIBC_2.12 towupper_l F
-GLIBC_2.12 tr_break F
-GLIBC_2.12 truncate F
-GLIBC_2.12 truncate64 F
-GLIBC_2.12 tsearch F
-GLIBC_2.12 ttyname F
-GLIBC_2.12 ttyname_r F
-GLIBC_2.12 ttyslot F
-GLIBC_2.12 twalk F
-GLIBC_2.12 tzname D 0x8
-GLIBC_2.12 tzset F
-GLIBC_2.12 ualarm F
-GLIBC_2.12 ulckpwdf F
-GLIBC_2.12 ulimit F
-GLIBC_2.12 umask F
-GLIBC_2.12 umount F
-GLIBC_2.12 umount2 F
-GLIBC_2.12 uname F
-GLIBC_2.12 ungetc F
-GLIBC_2.12 ungetwc F
-GLIBC_2.12 unlink F
-GLIBC_2.12 unlinkat F
-GLIBC_2.12 unlockpt F
-GLIBC_2.12 unsetenv F
-GLIBC_2.12 unshare F
-GLIBC_2.12 updwtmp F
-GLIBC_2.12 updwtmpx F
-GLIBC_2.12 uselib F
-GLIBC_2.12 uselocale F
-GLIBC_2.12 user2netname F
-GLIBC_2.12 usleep F
-GLIBC_2.12 ustat F
-GLIBC_2.12 utime F
-GLIBC_2.12 utimensat F
-GLIBC_2.12 utimes F
-GLIBC_2.12 utmpname F
-GLIBC_2.12 utmpxname F
-GLIBC_2.12 valloc F
-GLIBC_2.12 vasprintf F
-GLIBC_2.12 vdprintf F
-GLIBC_2.12 verr F
-GLIBC_2.12 verrx F
-GLIBC_2.12 versionsort F
-GLIBC_2.12 versionsort64 F
-GLIBC_2.12 vfork F
-GLIBC_2.12 vfprintf F
-GLIBC_2.12 vfscanf F
-GLIBC_2.12 vfwprintf F
-GLIBC_2.12 vfwscanf F
-GLIBC_2.12 vhangup F
-GLIBC_2.12 vlimit F
-GLIBC_2.12 vmsplice F
-GLIBC_2.12 vprintf F
-GLIBC_2.12 vscanf F
-GLIBC_2.12 vsnprintf F
-GLIBC_2.12 vsprintf F
-GLIBC_2.12 vsscanf F
-GLIBC_2.12 vswprintf F
-GLIBC_2.12 vswscanf F
-GLIBC_2.12 vsyslog F
-GLIBC_2.12 vtimes F
-GLIBC_2.12 vwarn F
-GLIBC_2.12 vwarnx F
-GLIBC_2.12 vwprintf F
-GLIBC_2.12 vwscanf F
-GLIBC_2.12 wait F
-GLIBC_2.12 wait3 F
-GLIBC_2.12 wait4 F
-GLIBC_2.12 waitid F
-GLIBC_2.12 waitpid F
-GLIBC_2.12 warn F
-GLIBC_2.12 warnx F
-GLIBC_2.12 wcpcpy F
-GLIBC_2.12 wcpncpy F
-GLIBC_2.12 wcrtomb F
-GLIBC_2.12 wcscasecmp F
-GLIBC_2.12 wcscasecmp_l F
-GLIBC_2.12 wcscat F
-GLIBC_2.12 wcschr F
-GLIBC_2.12 wcschrnul F
-GLIBC_2.12 wcscmp F
-GLIBC_2.12 wcscoll F
-GLIBC_2.12 wcscoll_l F
-GLIBC_2.12 wcscpy F
-GLIBC_2.12 wcscspn F
-GLIBC_2.12 wcsdup F
-GLIBC_2.12 wcsftime F
-GLIBC_2.12 wcsftime_l F
-GLIBC_2.12 wcslen F
-GLIBC_2.12 wcsncasecmp F
-GLIBC_2.12 wcsncasecmp_l F
-GLIBC_2.12 wcsncat F
-GLIBC_2.12 wcsncmp F
-GLIBC_2.12 wcsncpy F
-GLIBC_2.12 wcsnlen F
-GLIBC_2.12 wcsnrtombs F
-GLIBC_2.12 wcspbrk F
-GLIBC_2.12 wcsrchr F
-GLIBC_2.12 wcsrtombs F
-GLIBC_2.12 wcsspn F
-GLIBC_2.12 wcsstr F
-GLIBC_2.12 wcstod F
-GLIBC_2.12 wcstod_l F
-GLIBC_2.12 wcstof F
-GLIBC_2.12 wcstof_l F
-GLIBC_2.12 wcstoimax F
-GLIBC_2.12 wcstok F
-GLIBC_2.12 wcstol F
-GLIBC_2.12 wcstol_l F
-GLIBC_2.12 wcstold F
-GLIBC_2.12 wcstold_l F
-GLIBC_2.12 wcstoll F
-GLIBC_2.12 wcstoll_l F
-GLIBC_2.12 wcstombs F
-GLIBC_2.12 wcstoq F
-GLIBC_2.12 wcstoul F
-GLIBC_2.12 wcstoul_l F
-GLIBC_2.12 wcstoull F
-GLIBC_2.12 wcstoull_l F
-GLIBC_2.12 wcstoumax F
-GLIBC_2.12 wcstouq F
-GLIBC_2.12 wcswcs F
-GLIBC_2.12 wcswidth F
-GLIBC_2.12 wcsxfrm F
-GLIBC_2.12 wcsxfrm_l F
-GLIBC_2.12 wctob F
-GLIBC_2.12 wctomb F
-GLIBC_2.12 wctrans F
-GLIBC_2.12 wctrans_l F
-GLIBC_2.12 wctype F
-GLIBC_2.12 wctype_l F
-GLIBC_2.12 wcwidth F
-GLIBC_2.12 wmemchr F
-GLIBC_2.12 wmemcmp F
-GLIBC_2.12 wmemcpy F
-GLIBC_2.12 wmemmove F
-GLIBC_2.12 wmempcpy F
-GLIBC_2.12 wmemset F
-GLIBC_2.12 wordexp F
-GLIBC_2.12 wordfree F
-GLIBC_2.12 wprintf F
-GLIBC_2.12 write F
-GLIBC_2.12 writev F
-GLIBC_2.12 wscanf F
-GLIBC_2.12 xdecrypt F
-GLIBC_2.12 xdr_accepted_reply F
-GLIBC_2.12 xdr_array F
-GLIBC_2.12 xdr_authdes_cred F
-GLIBC_2.12 xdr_authdes_verf F
-GLIBC_2.12 xdr_authunix_parms F
-GLIBC_2.12 xdr_bool F
-GLIBC_2.12 xdr_bytes F
-GLIBC_2.12 xdr_callhdr F
-GLIBC_2.12 xdr_callmsg F
-GLIBC_2.12 xdr_char F
-GLIBC_2.12 xdr_cryptkeyarg F
-GLIBC_2.12 xdr_cryptkeyarg2 F
-GLIBC_2.12 xdr_cryptkeyres F
-GLIBC_2.12 xdr_des_block F
-GLIBC_2.12 xdr_double F
-GLIBC_2.12 xdr_enum F
-GLIBC_2.12 xdr_float F
-GLIBC_2.12 xdr_free F
-GLIBC_2.12 xdr_getcredres F
-GLIBC_2.12 xdr_hyper F
-GLIBC_2.12 xdr_int F
-GLIBC_2.12 xdr_int16_t F
-GLIBC_2.12 xdr_int32_t F
-GLIBC_2.12 xdr_int64_t F
-GLIBC_2.12 xdr_int8_t F
-GLIBC_2.12 xdr_key_netstarg F
-GLIBC_2.12 xdr_key_netstres F
-GLIBC_2.12 xdr_keybuf F
-GLIBC_2.12 xdr_keystatus F
-GLIBC_2.12 xdr_long F
-GLIBC_2.12 xdr_longlong_t F
-GLIBC_2.12 xdr_netnamestr F
-GLIBC_2.12 xdr_netobj F
-GLIBC_2.12 xdr_opaque F
-GLIBC_2.12 xdr_opaque_auth F
-GLIBC_2.12 xdr_pmap F
-GLIBC_2.12 xdr_pmaplist F
-GLIBC_2.12 xdr_pointer F
-GLIBC_2.12 xdr_quad_t F
-GLIBC_2.12 xdr_reference F
-GLIBC_2.12 xdr_rejected_reply F
-GLIBC_2.12 xdr_replymsg F
-GLIBC_2.12 xdr_rmtcall_args F
-GLIBC_2.12 xdr_rmtcallres F
-GLIBC_2.12 xdr_short F
-GLIBC_2.12 xdr_sizeof F
-GLIBC_2.12 xdr_string F
-GLIBC_2.12 xdr_u_char F
-GLIBC_2.12 xdr_u_hyper F
-GLIBC_2.12 xdr_u_int F
-GLIBC_2.12 xdr_u_long F
-GLIBC_2.12 xdr_u_longlong_t F
-GLIBC_2.12 xdr_u_quad_t F
-GLIBC_2.12 xdr_u_short F
-GLIBC_2.12 xdr_uint16_t F
-GLIBC_2.12 xdr_uint32_t F
-GLIBC_2.12 xdr_uint64_t F
-GLIBC_2.12 xdr_uint8_t F
-GLIBC_2.12 xdr_union F
-GLIBC_2.12 xdr_unixcred F
-GLIBC_2.12 xdr_vector F
-GLIBC_2.12 xdr_void F
-GLIBC_2.12 xdr_wrapstring F
-GLIBC_2.12 xdrmem_create F
-GLIBC_2.12 xdrrec_create F
-GLIBC_2.12 xdrrec_endofrecord F
-GLIBC_2.12 xdrrec_eof F
-GLIBC_2.12 xdrrec_skiprecord F
-GLIBC_2.12 xdrstdio_create F
-GLIBC_2.12 xencrypt F
-GLIBC_2.12 xprt_register F
-GLIBC_2.12 xprt_unregister F
-GLIBC_2.15 GLIBC_2.15 A
-GLIBC_2.15 __fdelt_chk F
-GLIBC_2.15 __fdelt_warn F
-GLIBC_2.15 clock_adjtime F
-GLIBC_2.15 fanotify_init F
-GLIBC_2.15 fanotify_mark F
-GLIBC_2.15 name_to_handle_at F
-GLIBC_2.15 open_by_handle_at F
-GLIBC_2.15 posix_spawn F
-GLIBC_2.15 posix_spawnp F
-GLIBC_2.15 prlimit F
-GLIBC_2.15 prlimit64 F
-GLIBC_2.15 process_vm_readv F
-GLIBC_2.15 process_vm_writev F
-GLIBC_2.15 scandirat F
-GLIBC_2.15 scandirat64 F
-GLIBC_2.15 sendmmsg F
-GLIBC_2.15 setns F
-GLIBC_2.15 syncfs F
-GLIBC_2.16 GLIBC_2.16 A
-GLIBC_2.16 __getauxval F
-GLIBC_2.16 __poll_chk F
-GLIBC_2.16 __ppoll_chk F
-GLIBC_2.16 aligned_alloc F
-GLIBC_2.16 c16rtomb F
-GLIBC_2.16 c32rtomb F
-GLIBC_2.16 getauxval F
-GLIBC_2.16 mbrtoc16 F
-GLIBC_2.16 mbrtoc32 F
-GLIBC_2.16 timespec_get F
-GLIBC_2.17 GLIBC_2.17 A
-GLIBC_2.17 clock_getcpuclockid F
-GLIBC_2.17 clock_getres F
-GLIBC_2.17 clock_gettime F
-GLIBC_2.17 clock_nanosleep F
-GLIBC_2.17 clock_settime F
-GLIBC_2.17 secure_getenv F
-GLIBC_2.18 GLIBC_2.18 A
-GLIBC_2.18 __cxa_thread_atexit_impl F
-GLIBC_2.22 GLIBC_2.22 A
-GLIBC_2.22 fmemopen F
-GLIBC_2.23 GLIBC_2.23 A
-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 GLIBC_2.24 A
-GLIBC_2.24 quick_exit F
-GLIBC_2.25 GLIBC_2.25 A
-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 GLIBC_2.26 A
-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 GLIBC_2.27 A
-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
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/libcrypt.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libcrypt.abilist
deleted file mode 100644
index d564380..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/libcrypt.abilist
+++ /dev/null
@@ -1,8 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 crypt F
-GLIBC_2.12 crypt_r F
-GLIBC_2.12 encrypt F
-GLIBC_2.12 encrypt_r F
-GLIBC_2.12 fcrypt F
-GLIBC_2.12 setkey F
-GLIBC_2.12 setkey_r F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/libdl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libdl.abilist
deleted file mode 100644
index cabc30c..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/libdl.abilist
+++ /dev/null
@@ -1,10 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 dladdr F
-GLIBC_2.12 dladdr1 F
-GLIBC_2.12 dlclose F
-GLIBC_2.12 dlerror F
-GLIBC_2.12 dlinfo F
-GLIBC_2.12 dlmopen F
-GLIBC_2.12 dlopen F
-GLIBC_2.12 dlsym F
-GLIBC_2.12 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist
deleted file mode 100644
index 73ceb5a..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist
+++ /dev/null
@@ -1,762 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 _LIB_VERSION D 0x4
-GLIBC_2.12 __clog10 F
-GLIBC_2.12 __clog10f F
-GLIBC_2.12 __clog10l F
-GLIBC_2.12 __finite F
-GLIBC_2.12 __finitef F
-GLIBC_2.12 __fpclassify F
-GLIBC_2.12 __fpclassifyf F
-GLIBC_2.12 __signbit F
-GLIBC_2.12 __signbitf F
-GLIBC_2.12 acos F
-GLIBC_2.12 acosf F
-GLIBC_2.12 acosh F
-GLIBC_2.12 acoshf F
-GLIBC_2.12 acoshl F
-GLIBC_2.12 acosl F
-GLIBC_2.12 asin F
-GLIBC_2.12 asinf F
-GLIBC_2.12 asinh F
-GLIBC_2.12 asinhf F
-GLIBC_2.12 asinhl F
-GLIBC_2.12 asinl F
-GLIBC_2.12 atan F
-GLIBC_2.12 atan2 F
-GLIBC_2.12 atan2f F
-GLIBC_2.12 atan2l F
-GLIBC_2.12 atanf F
-GLIBC_2.12 atanh F
-GLIBC_2.12 atanhf F
-GLIBC_2.12 atanhl F
-GLIBC_2.12 atanl F
-GLIBC_2.12 cabs F
-GLIBC_2.12 cabsf F
-GLIBC_2.12 cabsl F
-GLIBC_2.12 cacos F
-GLIBC_2.12 cacosf F
-GLIBC_2.12 cacosh F
-GLIBC_2.12 cacoshf F
-GLIBC_2.12 cacoshl F
-GLIBC_2.12 cacosl F
-GLIBC_2.12 carg F
-GLIBC_2.12 cargf F
-GLIBC_2.12 cargl F
-GLIBC_2.12 casin F
-GLIBC_2.12 casinf F
-GLIBC_2.12 casinh F
-GLIBC_2.12 casinhf F
-GLIBC_2.12 casinhl F
-GLIBC_2.12 casinl F
-GLIBC_2.12 catan F
-GLIBC_2.12 catanf F
-GLIBC_2.12 catanh F
-GLIBC_2.12 catanhf F
-GLIBC_2.12 catanhl F
-GLIBC_2.12 catanl F
-GLIBC_2.12 cbrt F
-GLIBC_2.12 cbrtf F
-GLIBC_2.12 cbrtl F
-GLIBC_2.12 ccos F
-GLIBC_2.12 ccosf F
-GLIBC_2.12 ccosh F
-GLIBC_2.12 ccoshf F
-GLIBC_2.12 ccoshl F
-GLIBC_2.12 ccosl F
-GLIBC_2.12 ceil F
-GLIBC_2.12 ceilf F
-GLIBC_2.12 ceill F
-GLIBC_2.12 cexp F
-GLIBC_2.12 cexpf F
-GLIBC_2.12 cexpl F
-GLIBC_2.12 cimag F
-GLIBC_2.12 cimagf F
-GLIBC_2.12 cimagl F
-GLIBC_2.12 clog F
-GLIBC_2.12 clog10 F
-GLIBC_2.12 clog10f F
-GLIBC_2.12 clog10l F
-GLIBC_2.12 clogf F
-GLIBC_2.12 clogl F
-GLIBC_2.12 conj F
-GLIBC_2.12 conjf F
-GLIBC_2.12 conjl F
-GLIBC_2.12 copysign F
-GLIBC_2.12 copysignf F
-GLIBC_2.12 copysignl F
-GLIBC_2.12 cos F
-GLIBC_2.12 cosf F
-GLIBC_2.12 cosh F
-GLIBC_2.12 coshf F
-GLIBC_2.12 coshl F
-GLIBC_2.12 cosl F
-GLIBC_2.12 cpow F
-GLIBC_2.12 cpowf F
-GLIBC_2.12 cpowl F
-GLIBC_2.12 cproj F
-GLIBC_2.12 cprojf F
-GLIBC_2.12 cprojl F
-GLIBC_2.12 creal F
-GLIBC_2.12 crealf F
-GLIBC_2.12 creall F
-GLIBC_2.12 csin F
-GLIBC_2.12 csinf F
-GLIBC_2.12 csinh F
-GLIBC_2.12 csinhf F
-GLIBC_2.12 csinhl F
-GLIBC_2.12 csinl F
-GLIBC_2.12 csqrt F
-GLIBC_2.12 csqrtf F
-GLIBC_2.12 csqrtl F
-GLIBC_2.12 ctan F
-GLIBC_2.12 ctanf F
-GLIBC_2.12 ctanh F
-GLIBC_2.12 ctanhf F
-GLIBC_2.12 ctanhl F
-GLIBC_2.12 ctanl F
-GLIBC_2.12 drem F
-GLIBC_2.12 dremf F
-GLIBC_2.12 dreml F
-GLIBC_2.12 erf F
-GLIBC_2.12 erfc F
-GLIBC_2.12 erfcf F
-GLIBC_2.12 erfcl F
-GLIBC_2.12 erff F
-GLIBC_2.12 erfl F
-GLIBC_2.12 exp F
-GLIBC_2.12 exp10 F
-GLIBC_2.12 exp10f F
-GLIBC_2.12 exp10l F
-GLIBC_2.12 exp2 F
-GLIBC_2.12 exp2f F
-GLIBC_2.12 exp2l F
-GLIBC_2.12 expf F
-GLIBC_2.12 expl F
-GLIBC_2.12 expm1 F
-GLIBC_2.12 expm1f F
-GLIBC_2.12 expm1l F
-GLIBC_2.12 fabs F
-GLIBC_2.12 fabsf F
-GLIBC_2.12 fabsl F
-GLIBC_2.12 fdim F
-GLIBC_2.12 fdimf F
-GLIBC_2.12 fdiml F
-GLIBC_2.12 feclearexcept F
-GLIBC_2.12 fedisableexcept F
-GLIBC_2.12 feenableexcept F
-GLIBC_2.12 fegetenv F
-GLIBC_2.12 fegetexcept F
-GLIBC_2.12 fegetexceptflag F
-GLIBC_2.12 fegetround F
-GLIBC_2.12 feholdexcept F
-GLIBC_2.12 feraiseexcept F
-GLIBC_2.12 fesetenv F
-GLIBC_2.12 fesetexceptflag F
-GLIBC_2.12 fesetround F
-GLIBC_2.12 fetestexcept F
-GLIBC_2.12 feupdateenv F
-GLIBC_2.12 finite F
-GLIBC_2.12 finitef F
-GLIBC_2.12 finitel F
-GLIBC_2.12 floor F
-GLIBC_2.12 floorf F
-GLIBC_2.12 floorl F
-GLIBC_2.12 fma F
-GLIBC_2.12 fmaf F
-GLIBC_2.12 fmal F
-GLIBC_2.12 fmax F
-GLIBC_2.12 fmaxf F
-GLIBC_2.12 fmaxl F
-GLIBC_2.12 fmin F
-GLIBC_2.12 fminf F
-GLIBC_2.12 fminl F
-GLIBC_2.12 fmod F
-GLIBC_2.12 fmodf F
-GLIBC_2.12 fmodl F
-GLIBC_2.12 frexp F
-GLIBC_2.12 frexpf F
-GLIBC_2.12 frexpl F
-GLIBC_2.12 gamma F
-GLIBC_2.12 gammaf F
-GLIBC_2.12 gammal F
-GLIBC_2.12 hypot F
-GLIBC_2.12 hypotf F
-GLIBC_2.12 hypotl F
-GLIBC_2.12 ilogb F
-GLIBC_2.12 ilogbf F
-GLIBC_2.12 ilogbl F
-GLIBC_2.12 j0 F
-GLIBC_2.12 j0f F
-GLIBC_2.12 j0l F
-GLIBC_2.12 j1 F
-GLIBC_2.12 j1f F
-GLIBC_2.12 j1l F
-GLIBC_2.12 jn F
-GLIBC_2.12 jnf F
-GLIBC_2.12 jnl F
-GLIBC_2.12 ldexp F
-GLIBC_2.12 ldexpf F
-GLIBC_2.12 ldexpl F
-GLIBC_2.12 lgamma F
-GLIBC_2.12 lgamma_r F
-GLIBC_2.12 lgammaf F
-GLIBC_2.12 lgammaf_r F
-GLIBC_2.12 lgammal F
-GLIBC_2.12 lgammal_r F
-GLIBC_2.12 llrint F
-GLIBC_2.12 llrintf F
-GLIBC_2.12 llrintl F
-GLIBC_2.12 llround F
-GLIBC_2.12 llroundf F
-GLIBC_2.12 llroundl F
-GLIBC_2.12 log F
-GLIBC_2.12 log10 F
-GLIBC_2.12 log10f F
-GLIBC_2.12 log10l F
-GLIBC_2.12 log1p F
-GLIBC_2.12 log1pf F
-GLIBC_2.12 log1pl F
-GLIBC_2.12 log2 F
-GLIBC_2.12 log2f F
-GLIBC_2.12 log2l F
-GLIBC_2.12 logb F
-GLIBC_2.12 logbf F
-GLIBC_2.12 logbl F
-GLIBC_2.12 logf F
-GLIBC_2.12 logl F
-GLIBC_2.12 lrint F
-GLIBC_2.12 lrintf F
-GLIBC_2.12 lrintl F
-GLIBC_2.12 lround F
-GLIBC_2.12 lroundf F
-GLIBC_2.12 lroundl F
-GLIBC_2.12 matherr F
-GLIBC_2.12 modf F
-GLIBC_2.12 modff F
-GLIBC_2.12 modfl F
-GLIBC_2.12 nan F
-GLIBC_2.12 nanf F
-GLIBC_2.12 nanl F
-GLIBC_2.12 nearbyint F
-GLIBC_2.12 nearbyintf F
-GLIBC_2.12 nearbyintl F
-GLIBC_2.12 nextafter F
-GLIBC_2.12 nextafterf F
-GLIBC_2.12 nextafterl F
-GLIBC_2.12 nexttoward F
-GLIBC_2.12 nexttowardf F
-GLIBC_2.12 nexttowardl F
-GLIBC_2.12 pow F
-GLIBC_2.12 pow10 F
-GLIBC_2.12 pow10f F
-GLIBC_2.12 pow10l F
-GLIBC_2.12 powf F
-GLIBC_2.12 powl F
-GLIBC_2.12 remainder F
-GLIBC_2.12 remainderf F
-GLIBC_2.12 remainderl F
-GLIBC_2.12 remquo F
-GLIBC_2.12 remquof F
-GLIBC_2.12 remquol F
-GLIBC_2.12 rint F
-GLIBC_2.12 rintf F
-GLIBC_2.12 rintl F
-GLIBC_2.12 round F
-GLIBC_2.12 roundf F
-GLIBC_2.12 roundl F
-GLIBC_2.12 scalb F
-GLIBC_2.12 scalbf F
-GLIBC_2.12 scalbl F
-GLIBC_2.12 scalbln F
-GLIBC_2.12 scalblnf F
-GLIBC_2.12 scalblnl F
-GLIBC_2.12 scalbn F
-GLIBC_2.12 scalbnf F
-GLIBC_2.12 scalbnl F
-GLIBC_2.12 signgam D 0x4
-GLIBC_2.12 significand F
-GLIBC_2.12 significandf F
-GLIBC_2.12 significandl F
-GLIBC_2.12 sin F
-GLIBC_2.12 sincos F
-GLIBC_2.12 sincosf F
-GLIBC_2.12 sincosl F
-GLIBC_2.12 sinf F
-GLIBC_2.12 sinh F
-GLIBC_2.12 sinhf F
-GLIBC_2.12 sinhl F
-GLIBC_2.12 sinl F
-GLIBC_2.12 sqrt F
-GLIBC_2.12 sqrtf F
-GLIBC_2.12 sqrtl F
-GLIBC_2.12 tan F
-GLIBC_2.12 tanf F
-GLIBC_2.12 tanh F
-GLIBC_2.12 tanhf F
-GLIBC_2.12 tanhl F
-GLIBC_2.12 tanl F
-GLIBC_2.12 tgamma F
-GLIBC_2.12 tgammaf F
-GLIBC_2.12 tgammal F
-GLIBC_2.12 trunc F
-GLIBC_2.12 truncf F
-GLIBC_2.12 truncl F
-GLIBC_2.12 y0 F
-GLIBC_2.12 y0f F
-GLIBC_2.12 y0l F
-GLIBC_2.12 y1 F
-GLIBC_2.12 y1f F
-GLIBC_2.12 y1l F
-GLIBC_2.12 yn F
-GLIBC_2.12 ynf F
-GLIBC_2.12 ynl F
-GLIBC_2.15 GLIBC_2.15 A
-GLIBC_2.15 __acos_finite F
-GLIBC_2.15 __acosf_finite F
-GLIBC_2.15 __acosh_finite F
-GLIBC_2.15 __acoshf_finite F
-GLIBC_2.15 __asin_finite F
-GLIBC_2.15 __asinf_finite F
-GLIBC_2.15 __atan2_finite F
-GLIBC_2.15 __atan2f_finite F
-GLIBC_2.15 __atanh_finite F
-GLIBC_2.15 __atanhf_finite F
-GLIBC_2.15 __cosh_finite F
-GLIBC_2.15 __coshf_finite F
-GLIBC_2.15 __exp10_finite F
-GLIBC_2.15 __exp10f_finite F
-GLIBC_2.15 __exp2_finite F
-GLIBC_2.15 __exp2f_finite F
-GLIBC_2.15 __exp_finite F
-GLIBC_2.15 __expf_finite F
-GLIBC_2.15 __fmod_finite F
-GLIBC_2.15 __fmodf_finite F
-GLIBC_2.15 __gamma_r_finite F
-GLIBC_2.15 __gammaf_r_finite F
-GLIBC_2.15 __hypot_finite F
-GLIBC_2.15 __hypotf_finite F
-GLIBC_2.15 __j0_finite F
-GLIBC_2.15 __j0f_finite F
-GLIBC_2.15 __j1_finite F
-GLIBC_2.15 __j1f_finite F
-GLIBC_2.15 __jn_finite F
-GLIBC_2.15 __jnf_finite F
-GLIBC_2.15 __lgamma_r_finite F
-GLIBC_2.15 __lgammaf_r_finite F
-GLIBC_2.15 __log10_finite F
-GLIBC_2.15 __log10f_finite F
-GLIBC_2.15 __log2_finite F
-GLIBC_2.15 __log2f_finite F
-GLIBC_2.15 __log_finite F
-GLIBC_2.15 __logf_finite F
-GLIBC_2.15 __pow_finite F
-GLIBC_2.15 __powf_finite F
-GLIBC_2.15 __remainder_finite F
-GLIBC_2.15 __remainderf_finite F
-GLIBC_2.15 __scalb_finite F
-GLIBC_2.15 __scalbf_finite F
-GLIBC_2.15 __sinh_finite F
-GLIBC_2.15 __sinhf_finite F
-GLIBC_2.15 __sqrt_finite F
-GLIBC_2.15 __sqrtf_finite F
-GLIBC_2.15 __y0_finite F
-GLIBC_2.15 __y0f_finite F
-GLIBC_2.15 __y1_finite F
-GLIBC_2.15 __y1f_finite F
-GLIBC_2.15 __yn_finite F
-GLIBC_2.15 __ynf_finite F
-GLIBC_2.18 GLIBC_2.18 A
-GLIBC_2.18 __issignaling F
-GLIBC_2.18 __issignalingf F
-GLIBC_2.23 GLIBC_2.23 A
-GLIBC_2.23 __signgam D 0x4
-GLIBC_2.23 lgamma F
-GLIBC_2.23 lgammaf F
-GLIBC_2.23 lgammal F
-GLIBC_2.24 GLIBC_2.24 A
-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 GLIBC_2.25 A
-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 GLIBC_2.27 A
-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 GLIBC_2.28 A
-GLIBC_2.28 daddl F
-GLIBC_2.28 dsubl F
-GLIBC_2.28 f32addf32x F
-GLIBC_2.28 f32addf64 F
-GLIBC_2.28 f32subf32x F
-GLIBC_2.28 f32subf64 F
-GLIBC_2.28 f32xaddf64 F
-GLIBC_2.28 f32xsubf64 F
-GLIBC_2.28 fadd F
-GLIBC_2.28 faddl F
-GLIBC_2.28 fsub F
-GLIBC_2.28 fsubl F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/libnsl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libnsl.abilist
deleted file mode 100644
index 0277e5c..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/libnsl.abilist
+++ /dev/null
@@ -1,122 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 __free_fdresult F
-GLIBC_2.12 __nis_default_access F
-GLIBC_2.12 __nis_default_group F
-GLIBC_2.12 __nis_default_owner F
-GLIBC_2.12 __nis_default_ttl F
-GLIBC_2.12 __nis_finddirectory F
-GLIBC_2.12 __nis_hash F
-GLIBC_2.12 __nisbind_connect F
-GLIBC_2.12 __nisbind_create F
-GLIBC_2.12 __nisbind_destroy F
-GLIBC_2.12 __nisbind_next F
-GLIBC_2.12 __yp_check F
-GLIBC_2.12 nis_add F
-GLIBC_2.12 nis_add_entry F
-GLIBC_2.12 nis_addmember F
-GLIBC_2.12 nis_checkpoint F
-GLIBC_2.12 nis_clone_directory F
-GLIBC_2.12 nis_clone_object F
-GLIBC_2.12 nis_clone_result F
-GLIBC_2.12 nis_creategroup F
-GLIBC_2.12 nis_destroy_object F
-GLIBC_2.12 nis_destroygroup F
-GLIBC_2.12 nis_dir_cmp F
-GLIBC_2.12 nis_domain_of F
-GLIBC_2.12 nis_domain_of_r F
-GLIBC_2.12 nis_first_entry F
-GLIBC_2.12 nis_free_directory F
-GLIBC_2.12 nis_free_object F
-GLIBC_2.12 nis_free_request F
-GLIBC_2.12 nis_freenames F
-GLIBC_2.12 nis_freeresult F
-GLIBC_2.12 nis_freeservlist F
-GLIBC_2.12 nis_freetags F
-GLIBC_2.12 nis_getnames F
-GLIBC_2.12 nis_getservlist F
-GLIBC_2.12 nis_ismember F
-GLIBC_2.12 nis_leaf_of F
-GLIBC_2.12 nis_leaf_of_r F
-GLIBC_2.12 nis_lerror F
-GLIBC_2.12 nis_list F
-GLIBC_2.12 nis_local_directory F
-GLIBC_2.12 nis_local_group F
-GLIBC_2.12 nis_local_host F
-GLIBC_2.12 nis_local_principal F
-GLIBC_2.12 nis_lookup F
-GLIBC_2.12 nis_mkdir F
-GLIBC_2.12 nis_modify F
-GLIBC_2.12 nis_modify_entry F
-GLIBC_2.12 nis_name_of F
-GLIBC_2.12 nis_name_of_r F
-GLIBC_2.12 nis_next_entry F
-GLIBC_2.12 nis_perror F
-GLIBC_2.12 nis_ping F
-GLIBC_2.12 nis_print_directory F
-GLIBC_2.12 nis_print_entry F
-GLIBC_2.12 nis_print_group F
-GLIBC_2.12 nis_print_group_entry F
-GLIBC_2.12 nis_print_link F
-GLIBC_2.12 nis_print_object F
-GLIBC_2.12 nis_print_result F
-GLIBC_2.12 nis_print_rights F
-GLIBC_2.12 nis_print_table F
-GLIBC_2.12 nis_read_obj F
-GLIBC_2.12 nis_remove F
-GLIBC_2.12 nis_remove_entry F
-GLIBC_2.12 nis_removemember F
-GLIBC_2.12 nis_rmdir F
-GLIBC_2.12 nis_servstate F
-GLIBC_2.12 nis_sperrno F
-GLIBC_2.12 nis_sperror F
-GLIBC_2.12 nis_sperror_r F
-GLIBC_2.12 nis_stats F
-GLIBC_2.12 nis_verifygroup F
-GLIBC_2.12 nis_write_obj F
-GLIBC_2.12 readColdStartFile F
-GLIBC_2.12 writeColdStartFile F
-GLIBC_2.12 xdr_cback_data F
-GLIBC_2.12 xdr_domainname F
-GLIBC_2.12 xdr_keydat F
-GLIBC_2.12 xdr_mapname F
-GLIBC_2.12 xdr_obj_p F
-GLIBC_2.12 xdr_peername F
-GLIBC_2.12 xdr_valdat F
-GLIBC_2.12 xdr_yp_buf F
-GLIBC_2.12 xdr_ypall F
-GLIBC_2.12 xdr_ypbind_binding F
-GLIBC_2.12 xdr_ypbind_resp F
-GLIBC_2.12 xdr_ypbind_resptype F
-GLIBC_2.12 xdr_ypbind_setdom F
-GLIBC_2.12 xdr_ypdelete_args F
-GLIBC_2.12 xdr_ypmap_parms F
-GLIBC_2.12 xdr_ypmaplist F
-GLIBC_2.12 xdr_yppush_status F
-GLIBC_2.12 xdr_yppushresp_xfr F
-GLIBC_2.12 xdr_ypreq_key F
-GLIBC_2.12 xdr_ypreq_nokey F
-GLIBC_2.12 xdr_ypreq_xfr F
-GLIBC_2.12 xdr_ypresp_all F
-GLIBC_2.12 xdr_ypresp_key_val F
-GLIBC_2.12 xdr_ypresp_maplist F
-GLIBC_2.12 xdr_ypresp_master F
-GLIBC_2.12 xdr_ypresp_order F
-GLIBC_2.12 xdr_ypresp_val F
-GLIBC_2.12 xdr_ypresp_xfr F
-GLIBC_2.12 xdr_ypstat F
-GLIBC_2.12 xdr_ypupdate_args F
-GLIBC_2.12 xdr_ypxfrstat F
-GLIBC_2.12 yp_all F
-GLIBC_2.12 yp_bind F
-GLIBC_2.12 yp_first F
-GLIBC_2.12 yp_get_default_domain F
-GLIBC_2.12 yp_maplist F
-GLIBC_2.12 yp_master F
-GLIBC_2.12 yp_match F
-GLIBC_2.12 yp_next F
-GLIBC_2.12 yp_order F
-GLIBC_2.12 yp_unbind F
-GLIBC_2.12 yp_update F
-GLIBC_2.12 ypbinderr_string F
-GLIBC_2.12 yperr_string F
-GLIBC_2.12 ypprot_err F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/libpthread.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libpthread.abilist
deleted file mode 100644
index d16158f..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/libpthread.abilist
+++ /dev/null
@@ -1,226 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 _IO_flockfile F
-GLIBC_2.12 _IO_ftrylockfile F
-GLIBC_2.12 _IO_funlockfile F
-GLIBC_2.12 __close F
-GLIBC_2.12 __connect F
-GLIBC_2.12 __errno_location F
-GLIBC_2.12 __fcntl F
-GLIBC_2.12 __fork F
-GLIBC_2.12 __h_errno_location F
-GLIBC_2.12 __libc_allocate_rtsig F
-GLIBC_2.12 __libc_current_sigrtmax F
-GLIBC_2.12 __libc_current_sigrtmin F
-GLIBC_2.12 __lseek F
-GLIBC_2.12 __nanosleep F
-GLIBC_2.12 __open F
-GLIBC_2.12 __open64 F
-GLIBC_2.12 __pread64 F
-GLIBC_2.12 __pthread_cleanup_routine F
-GLIBC_2.12 __pthread_getspecific F
-GLIBC_2.12 __pthread_key_create F
-GLIBC_2.12 __pthread_mutex_destroy F
-GLIBC_2.12 __pthread_mutex_init F
-GLIBC_2.12 __pthread_mutex_lock F
-GLIBC_2.12 __pthread_mutex_trylock F
-GLIBC_2.12 __pthread_mutex_unlock F
-GLIBC_2.12 __pthread_mutexattr_destroy F
-GLIBC_2.12 __pthread_mutexattr_init F
-GLIBC_2.12 __pthread_mutexattr_settype F
-GLIBC_2.12 __pthread_once F
-GLIBC_2.12 __pthread_register_cancel F
-GLIBC_2.12 __pthread_register_cancel_defer F
-GLIBC_2.12 __pthread_rwlock_destroy F
-GLIBC_2.12 __pthread_rwlock_init F
-GLIBC_2.12 __pthread_rwlock_rdlock F
-GLIBC_2.12 __pthread_rwlock_tryrdlock F
-GLIBC_2.12 __pthread_rwlock_trywrlock F
-GLIBC_2.12 __pthread_rwlock_unlock F
-GLIBC_2.12 __pthread_rwlock_wrlock F
-GLIBC_2.12 __pthread_setspecific F
-GLIBC_2.12 __pthread_unregister_cancel F
-GLIBC_2.12 __pthread_unregister_cancel_restore F
-GLIBC_2.12 __pthread_unwind_next F
-GLIBC_2.12 __pwrite64 F
-GLIBC_2.12 __read F
-GLIBC_2.12 __res_state F
-GLIBC_2.12 __send F
-GLIBC_2.12 __sigaction F
-GLIBC_2.12 __vfork F
-GLIBC_2.12 __wait F
-GLIBC_2.12 __write F
-GLIBC_2.12 _pthread_cleanup_pop F
-GLIBC_2.12 _pthread_cleanup_pop_restore F
-GLIBC_2.12 _pthread_cleanup_push F
-GLIBC_2.12 _pthread_cleanup_push_defer F
-GLIBC_2.12 accept F
-GLIBC_2.12 close F
-GLIBC_2.12 connect F
-GLIBC_2.12 fcntl F
-GLIBC_2.12 flockfile F
-GLIBC_2.12 fork F
-GLIBC_2.12 fsync F
-GLIBC_2.12 ftrylockfile F
-GLIBC_2.12 funlockfile F
-GLIBC_2.12 longjmp F
-GLIBC_2.12 lseek F
-GLIBC_2.12 lseek64 F
-GLIBC_2.12 msync F
-GLIBC_2.12 nanosleep F
-GLIBC_2.12 open F
-GLIBC_2.12 open64 F
-GLIBC_2.12 pause F
-GLIBC_2.12 pread F
-GLIBC_2.12 pread64 F
-GLIBC_2.12 pthread_attr_destroy F
-GLIBC_2.12 pthread_attr_getaffinity_np F
-GLIBC_2.12 pthread_attr_getdetachstate F
-GLIBC_2.12 pthread_attr_getguardsize F
-GLIBC_2.12 pthread_attr_getinheritsched F
-GLIBC_2.12 pthread_attr_getschedparam F
-GLIBC_2.12 pthread_attr_getschedpolicy F
-GLIBC_2.12 pthread_attr_getscope F
-GLIBC_2.12 pthread_attr_getstack F
-GLIBC_2.12 pthread_attr_getstackaddr F
-GLIBC_2.12 pthread_attr_getstacksize F
-GLIBC_2.12 pthread_attr_init F
-GLIBC_2.12 pthread_attr_setaffinity_np F
-GLIBC_2.12 pthread_attr_setdetachstate F
-GLIBC_2.12 pthread_attr_setguardsize F
-GLIBC_2.12 pthread_attr_setinheritsched F
-GLIBC_2.12 pthread_attr_setschedparam F
-GLIBC_2.12 pthread_attr_setschedpolicy F
-GLIBC_2.12 pthread_attr_setscope F
-GLIBC_2.12 pthread_attr_setstack F
-GLIBC_2.12 pthread_attr_setstackaddr F
-GLIBC_2.12 pthread_attr_setstacksize F
-GLIBC_2.12 pthread_barrier_destroy F
-GLIBC_2.12 pthread_barrier_init F
-GLIBC_2.12 pthread_barrier_wait F
-GLIBC_2.12 pthread_barrierattr_destroy F
-GLIBC_2.12 pthread_barrierattr_getpshared F
-GLIBC_2.12 pthread_barrierattr_init F
-GLIBC_2.12 pthread_barrierattr_setpshared F
-GLIBC_2.12 pthread_cancel F
-GLIBC_2.12 pthread_cond_broadcast F
-GLIBC_2.12 pthread_cond_destroy F
-GLIBC_2.12 pthread_cond_init F
-GLIBC_2.12 pthread_cond_signal F
-GLIBC_2.12 pthread_cond_timedwait F
-GLIBC_2.12 pthread_cond_wait F
-GLIBC_2.12 pthread_condattr_destroy F
-GLIBC_2.12 pthread_condattr_getclock F
-GLIBC_2.12 pthread_condattr_getpshared F
-GLIBC_2.12 pthread_condattr_init F
-GLIBC_2.12 pthread_condattr_setclock F
-GLIBC_2.12 pthread_condattr_setpshared F
-GLIBC_2.12 pthread_create F
-GLIBC_2.12 pthread_detach F
-GLIBC_2.12 pthread_equal F
-GLIBC_2.12 pthread_exit F
-GLIBC_2.12 pthread_getaffinity_np F
-GLIBC_2.12 pthread_getattr_np F
-GLIBC_2.12 pthread_getconcurrency F
-GLIBC_2.12 pthread_getcpuclockid F
-GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_getschedparam F
-GLIBC_2.12 pthread_getspecific F
-GLIBC_2.12 pthread_join F
-GLIBC_2.12 pthread_key_create F
-GLIBC_2.12 pthread_key_delete F
-GLIBC_2.12 pthread_kill F
-GLIBC_2.12 pthread_kill_other_threads_np F
-GLIBC_2.12 pthread_mutex_consistent F
-GLIBC_2.12 pthread_mutex_consistent_np F
-GLIBC_2.12 pthread_mutex_destroy F
-GLIBC_2.12 pthread_mutex_getprioceiling F
-GLIBC_2.12 pthread_mutex_init F
-GLIBC_2.12 pthread_mutex_lock F
-GLIBC_2.12 pthread_mutex_setprioceiling F
-GLIBC_2.12 pthread_mutex_timedlock F
-GLIBC_2.12 pthread_mutex_trylock F
-GLIBC_2.12 pthread_mutex_unlock F
-GLIBC_2.12 pthread_mutexattr_destroy F
-GLIBC_2.12 pthread_mutexattr_getkind_np F
-GLIBC_2.12 pthread_mutexattr_getprioceiling F
-GLIBC_2.12 pthread_mutexattr_getprotocol F
-GLIBC_2.12 pthread_mutexattr_getpshared F
-GLIBC_2.12 pthread_mutexattr_getrobust F
-GLIBC_2.12 pthread_mutexattr_getrobust_np F
-GLIBC_2.12 pthread_mutexattr_gettype F
-GLIBC_2.12 pthread_mutexattr_init F
-GLIBC_2.12 pthread_mutexattr_setkind_np F
-GLIBC_2.12 pthread_mutexattr_setprioceiling F
-GLIBC_2.12 pthread_mutexattr_setprotocol F
-GLIBC_2.12 pthread_mutexattr_setpshared F
-GLIBC_2.12 pthread_mutexattr_setrobust F
-GLIBC_2.12 pthread_mutexattr_setrobust_np F
-GLIBC_2.12 pthread_mutexattr_settype F
-GLIBC_2.12 pthread_once F
-GLIBC_2.12 pthread_rwlock_destroy F
-GLIBC_2.12 pthread_rwlock_init F
-GLIBC_2.12 pthread_rwlock_rdlock F
-GLIBC_2.12 pthread_rwlock_timedrdlock F
-GLIBC_2.12 pthread_rwlock_timedwrlock F
-GLIBC_2.12 pthread_rwlock_tryrdlock F
-GLIBC_2.12 pthread_rwlock_trywrlock F
-GLIBC_2.12 pthread_rwlock_unlock F
-GLIBC_2.12 pthread_rwlock_wrlock F
-GLIBC_2.12 pthread_rwlockattr_destroy F
-GLIBC_2.12 pthread_rwlockattr_getkind_np F
-GLIBC_2.12 pthread_rwlockattr_getpshared F
-GLIBC_2.12 pthread_rwlockattr_init F
-GLIBC_2.12 pthread_rwlockattr_setkind_np F
-GLIBC_2.12 pthread_rwlockattr_setpshared F
-GLIBC_2.12 pthread_self F
-GLIBC_2.12 pthread_setaffinity_np F
-GLIBC_2.12 pthread_setcancelstate F
-GLIBC_2.12 pthread_setcanceltype F
-GLIBC_2.12 pthread_setconcurrency F
-GLIBC_2.12 pthread_setname_np F
-GLIBC_2.12 pthread_setschedparam F
-GLIBC_2.12 pthread_setschedprio F
-GLIBC_2.12 pthread_setspecific F
-GLIBC_2.12 pthread_sigmask F
-GLIBC_2.12 pthread_sigqueue F
-GLIBC_2.12 pthread_spin_destroy F
-GLIBC_2.12 pthread_spin_init F
-GLIBC_2.12 pthread_spin_lock F
-GLIBC_2.12 pthread_spin_trylock F
-GLIBC_2.12 pthread_spin_unlock F
-GLIBC_2.12 pthread_testcancel F
-GLIBC_2.12 pthread_timedjoin_np F
-GLIBC_2.12 pthread_tryjoin_np F
-GLIBC_2.12 pthread_yield F
-GLIBC_2.12 pwrite F
-GLIBC_2.12 pwrite64 F
-GLIBC_2.12 raise F
-GLIBC_2.12 read F
-GLIBC_2.12 recv F
-GLIBC_2.12 recvfrom F
-GLIBC_2.12 recvmsg F
-GLIBC_2.12 sem_close F
-GLIBC_2.12 sem_destroy F
-GLIBC_2.12 sem_getvalue F
-GLIBC_2.12 sem_init F
-GLIBC_2.12 sem_open F
-GLIBC_2.12 sem_post F
-GLIBC_2.12 sem_timedwait F
-GLIBC_2.12 sem_trywait F
-GLIBC_2.12 sem_unlink F
-GLIBC_2.12 sem_wait F
-GLIBC_2.12 send F
-GLIBC_2.12 sendmsg F
-GLIBC_2.12 sendto F
-GLIBC_2.12 sigaction F
-GLIBC_2.12 siglongjmp F
-GLIBC_2.12 sigwait F
-GLIBC_2.12 system F
-GLIBC_2.12 tcdrain F
-GLIBC_2.12 vfork F
-GLIBC_2.12 wait F
-GLIBC_2.12 waitpid F
-GLIBC_2.12 write F
-GLIBC_2.18 GLIBC_2.18 A
-GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/libresolv.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libresolv.abilist
deleted file mode 100644
index aa2fefa..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/libresolv.abilist
+++ /dev/null
@@ -1,92 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 __b64_ntop F
-GLIBC_2.12 __b64_pton F
-GLIBC_2.12 __dn_comp F
-GLIBC_2.12 __dn_count_labels F
-GLIBC_2.12 __dn_expand F
-GLIBC_2.12 __dn_skipname F
-GLIBC_2.12 __fp_nquery F
-GLIBC_2.12 __fp_query F
-GLIBC_2.12 __fp_resstat F
-GLIBC_2.12 __hostalias F
-GLIBC_2.12 __loc_aton F
-GLIBC_2.12 __loc_ntoa F
-GLIBC_2.12 __p_cdname F
-GLIBC_2.12 __p_cdnname F
-GLIBC_2.12 __p_class F
-GLIBC_2.12 __p_class_syms D 0x54
-GLIBC_2.12 __p_fqname F
-GLIBC_2.12 __p_fqnname F
-GLIBC_2.12 __p_option F
-GLIBC_2.12 __p_query F
-GLIBC_2.12 __p_rcode F
-GLIBC_2.12 __p_secstodate F
-GLIBC_2.12 __p_time F
-GLIBC_2.12 __p_type F
-GLIBC_2.12 __p_type_syms D 0x228
-GLIBC_2.12 __putlong F
-GLIBC_2.12 __putshort F
-GLIBC_2.12 __res_close F
-GLIBC_2.12 __res_dnok F
-GLIBC_2.12 __res_hnok F
-GLIBC_2.12 __res_hostalias F
-GLIBC_2.12 __res_isourserver F
-GLIBC_2.12 __res_mailok F
-GLIBC_2.12 __res_mkquery F
-GLIBC_2.12 __res_nameinquery F
-GLIBC_2.12 __res_nmkquery F
-GLIBC_2.12 __res_nquery F
-GLIBC_2.12 __res_nquerydomain F
-GLIBC_2.12 __res_nsearch F
-GLIBC_2.12 __res_nsend F
-GLIBC_2.12 __res_ownok F
-GLIBC_2.12 __res_queriesmatch F
-GLIBC_2.12 __res_query F
-GLIBC_2.12 __res_querydomain F
-GLIBC_2.12 __res_search F
-GLIBC_2.12 __res_send F
-GLIBC_2.12 __sym_ntop F
-GLIBC_2.12 __sym_ntos F
-GLIBC_2.12 __sym_ston F
-GLIBC_2.12 _gethtbyaddr F
-GLIBC_2.12 _gethtbyname F
-GLIBC_2.12 _gethtbyname2 F
-GLIBC_2.12 _gethtent F
-GLIBC_2.12 _getlong F
-GLIBC_2.12 _getshort F
-GLIBC_2.12 _res_opcodes D 0x40
-GLIBC_2.12 _sethtent F
-GLIBC_2.12 inet_net_ntop F
-GLIBC_2.12 inet_net_pton F
-GLIBC_2.12 inet_neta F
-GLIBC_2.12 ns_datetosecs F
-GLIBC_2.12 ns_format_ttl F
-GLIBC_2.12 ns_get16 F
-GLIBC_2.12 ns_get32 F
-GLIBC_2.12 ns_initparse F
-GLIBC_2.12 ns_makecanon F
-GLIBC_2.12 ns_msg_getflag F
-GLIBC_2.12 ns_name_compress F
-GLIBC_2.12 ns_name_ntol F
-GLIBC_2.12 ns_name_ntop F
-GLIBC_2.12 ns_name_pack F
-GLIBC_2.12 ns_name_pton F
-GLIBC_2.12 ns_name_rollback F
-GLIBC_2.12 ns_name_skip F
-GLIBC_2.12 ns_name_uncompress F
-GLIBC_2.12 ns_name_unpack F
-GLIBC_2.12 ns_parse_ttl F
-GLIBC_2.12 ns_parserr F
-GLIBC_2.12 ns_put16 F
-GLIBC_2.12 ns_put32 F
-GLIBC_2.12 ns_samedomain F
-GLIBC_2.12 ns_samename F
-GLIBC_2.12 ns_skiprr F
-GLIBC_2.12 ns_sprintrr F
-GLIBC_2.12 ns_sprintrrf F
-GLIBC_2.12 ns_subdomain F
-GLIBC_2.12 res_gethostbyaddr F
-GLIBC_2.12 res_gethostbyname F
-GLIBC_2.12 res_gethostbyname2 F
-GLIBC_2.12 res_send_setqhook F
-GLIBC_2.12 res_send_setrhook F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/librt.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/librt.abilist
deleted file mode 100644
index 14f5c82..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/librt.abilist
+++ /dev/null
@@ -1,41 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 __mq_open_2 F
-GLIBC_2.12 aio_cancel F
-GLIBC_2.12 aio_cancel64 F
-GLIBC_2.12 aio_error F
-GLIBC_2.12 aio_error64 F
-GLIBC_2.12 aio_fsync F
-GLIBC_2.12 aio_fsync64 F
-GLIBC_2.12 aio_init F
-GLIBC_2.12 aio_read F
-GLIBC_2.12 aio_read64 F
-GLIBC_2.12 aio_return F
-GLIBC_2.12 aio_return64 F
-GLIBC_2.12 aio_suspend F
-GLIBC_2.12 aio_suspend64 F
-GLIBC_2.12 aio_write F
-GLIBC_2.12 aio_write64 F
-GLIBC_2.12 clock_getcpuclockid F
-GLIBC_2.12 clock_getres F
-GLIBC_2.12 clock_gettime F
-GLIBC_2.12 clock_nanosleep F
-GLIBC_2.12 clock_settime F
-GLIBC_2.12 lio_listio F
-GLIBC_2.12 lio_listio64 F
-GLIBC_2.12 mq_close F
-GLIBC_2.12 mq_getattr F
-GLIBC_2.12 mq_notify F
-GLIBC_2.12 mq_open F
-GLIBC_2.12 mq_receive F
-GLIBC_2.12 mq_send F
-GLIBC_2.12 mq_setattr F
-GLIBC_2.12 mq_timedreceive F
-GLIBC_2.12 mq_timedsend F
-GLIBC_2.12 mq_unlink F
-GLIBC_2.12 shm_open F
-GLIBC_2.12 shm_unlink F
-GLIBC_2.12 timer_create F
-GLIBC_2.12 timer_delete F
-GLIBC_2.12 timer_getoverrun F
-GLIBC_2.12 timer_gettime F
-GLIBC_2.12 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/libthread_db.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libthread_db.abilist
deleted file mode 100644
index 4aade0b..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/libthread_db.abilist
+++ /dev/null
@@ -1,41 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 td_init F
-GLIBC_2.12 td_log F
-GLIBC_2.12 td_symbol_list F
-GLIBC_2.12 td_ta_clear_event F
-GLIBC_2.12 td_ta_delete F
-GLIBC_2.12 td_ta_enable_stats F
-GLIBC_2.12 td_ta_event_addr F
-GLIBC_2.12 td_ta_event_getmsg F
-GLIBC_2.12 td_ta_get_nthreads F
-GLIBC_2.12 td_ta_get_ph F
-GLIBC_2.12 td_ta_get_stats F
-GLIBC_2.12 td_ta_map_id2thr F
-GLIBC_2.12 td_ta_map_lwp2thr F
-GLIBC_2.12 td_ta_new F
-GLIBC_2.12 td_ta_reset_stats F
-GLIBC_2.12 td_ta_set_event F
-GLIBC_2.12 td_ta_setconcurrency F
-GLIBC_2.12 td_ta_thr_iter F
-GLIBC_2.12 td_ta_tsd_iter F
-GLIBC_2.12 td_thr_clear_event F
-GLIBC_2.12 td_thr_dbresume F
-GLIBC_2.12 td_thr_dbsuspend F
-GLIBC_2.12 td_thr_event_enable F
-GLIBC_2.12 td_thr_event_getmsg F
-GLIBC_2.12 td_thr_get_info F
-GLIBC_2.12 td_thr_getfpregs F
-GLIBC_2.12 td_thr_getgregs F
-GLIBC_2.12 td_thr_getxregs F
-GLIBC_2.12 td_thr_getxregsize F
-GLIBC_2.12 td_thr_set_event F
-GLIBC_2.12 td_thr_setfpregs F
-GLIBC_2.12 td_thr_setgregs F
-GLIBC_2.12 td_thr_setprio F
-GLIBC_2.12 td_thr_setsigpending F
-GLIBC_2.12 td_thr_setxregs F
-GLIBC_2.12 td_thr_sigsetmask F
-GLIBC_2.12 td_thr_tls_get_addr F
-GLIBC_2.12 td_thr_tlsbase F
-GLIBC_2.12 td_thr_tsd F
-GLIBC_2.12 td_thr_validate F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/libutil.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libutil.abilist
deleted file mode 100644
index e4d4326..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx32/libutil.abilist
+++ /dev/null
@@ -1,7 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 forkpty F
-GLIBC_2.12 login F
-GLIBC_2.12 login_tty F
-GLIBC_2.12 logout F
-GLIBC_2.12 logwtmp F
-GLIBC_2.12 openpty F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/Implies b/sysdeps/unix/sysv/linux/tile/tilegx64/Implies
deleted file mode 100644
index f814319..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/Implies
+++ /dev/null
@@ -1,3 +0,0 @@
-unix/sysv/linux/tile
-unix/sysv/linux/generic
-unix/sysv/linux/wordsize-64
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/Makefile b/sysdeps/unix/sysv/linux/tile/tilegx64/Makefile
deleted file mode 100644
index c8991d3..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-default-abi := 64
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/c++-types.data b/sysdeps/unix/sysv/linux/tile/tilegx64/c++-types.data
deleted file mode 100644
index ac925cc..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/c++-types.data
+++ /dev/null
@@ -1,67 +0,0 @@
-blkcnt64_t:l
-blkcnt_t:l
-blksize_t:i
-caddr_t:Pc
-clockid_t:i
-clock_t:l
-daddr_t:i
-dev_t:m
-fd_mask:l
-fsblkcnt64_t:m
-fsblkcnt_t:m
-fsfilcnt64_t:m
-fsfilcnt_t:m
-fsid_t:8__fsid_t
-gid_t:j
-id_t:j
-ino64_t:m
-ino_t:m
-int16_t:s
-int32_t:i
-int64_t:l
-int8_t:a
-intptr_t:l
-key_t:i
-loff_t:l
-mode_t:j
-nlink_t:j
-off64_t:l
-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:l
-register_t:l
-rlim64_t:m
-rlim_t:m
-sigset_t:10__sigset_t
-size_t:m
-socklen_t:j
-ssize_t:l
-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:m
-u_int8_t:h
-ulong:m
-u_long:m
-u_quad_t:m
-useconds_t:j
-ushort:t
-u_short:t
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/jmp_buf-macros.h b/sysdeps/unix/sysv/linux/tile/tilegx64/jmp_buf-macros.h
deleted file mode 100644
index 685f9b8..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/jmp_buf-macros.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#define JMP_BUF_SIZE 392
-#define SIGJMP_BUF_SIZE 392
-#define JMP_BUF_ALIGN 8
-#define SIGJMP_BUF_ALIGN 8
-#define MASK_WAS_SAVED_OFFSET 256
-#define SAVED_MASK_OFFSET 264
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/ld.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/ld.abilist
deleted file mode 100644
index ab74e7e..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/ld.abilist
+++ /dev/null
@@ -1,9 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 __libc_stack_end D 0x8
-GLIBC_2.12 __tls_get_addr F
-GLIBC_2.12 _dl_mcount F
-GLIBC_2.12 _r_debug D 0x28
-GLIBC_2.12 calloc F
-GLIBC_2.12 free F
-GLIBC_2.12 malloc F
-GLIBC_2.12 realloc F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libBrokenLocale.abilist
deleted file mode 100644
index 0d64827..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/libBrokenLocale.abilist
+++ /dev/null
@@ -1,2 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 __ctype_get_mb_cur_max F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/libanl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libanl.abilist
deleted file mode 100644
index a3b1cc0..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/libanl.abilist
+++ /dev/null
@@ -1,5 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 gai_cancel F
-GLIBC_2.12 gai_error F
-GLIBC_2.12 gai_suspend F
-GLIBC_2.12 getaddrinfo_a F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libc.abilist
deleted file mode 100644
index f2518c0..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/libc.abilist
+++ /dev/null
@@ -1,2138 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 _Exit F
-GLIBC_2.12 _IO_2_1_stderr_ D 0xe0
-GLIBC_2.12 _IO_2_1_stdin_ D 0xe0
-GLIBC_2.12 _IO_2_1_stdout_ D 0xe0
-GLIBC_2.12 _IO_adjust_column F
-GLIBC_2.12 _IO_adjust_wcolumn F
-GLIBC_2.12 _IO_default_doallocate F
-GLIBC_2.12 _IO_default_finish F
-GLIBC_2.12 _IO_default_pbackfail F
-GLIBC_2.12 _IO_default_uflow F
-GLIBC_2.12 _IO_default_xsgetn F
-GLIBC_2.12 _IO_default_xsputn F
-GLIBC_2.12 _IO_do_write F
-GLIBC_2.12 _IO_doallocbuf F
-GLIBC_2.12 _IO_fclose F
-GLIBC_2.12 _IO_fdopen F
-GLIBC_2.12 _IO_feof F
-GLIBC_2.12 _IO_ferror F
-GLIBC_2.12 _IO_fflush F
-GLIBC_2.12 _IO_fgetpos F
-GLIBC_2.12 _IO_fgetpos64 F
-GLIBC_2.12 _IO_fgets F
-GLIBC_2.12 _IO_file_attach F
-GLIBC_2.12 _IO_file_close F
-GLIBC_2.12 _IO_file_close_it F
-GLIBC_2.12 _IO_file_doallocate F
-GLIBC_2.12 _IO_file_finish F
-GLIBC_2.12 _IO_file_fopen F
-GLIBC_2.12 _IO_file_init F
-GLIBC_2.12 _IO_file_jumps D 0xa8
-GLIBC_2.12 _IO_file_open F
-GLIBC_2.12 _IO_file_overflow F
-GLIBC_2.12 _IO_file_read F
-GLIBC_2.12 _IO_file_seek F
-GLIBC_2.12 _IO_file_seekoff F
-GLIBC_2.12 _IO_file_setbuf F
-GLIBC_2.12 _IO_file_stat F
-GLIBC_2.12 _IO_file_sync F
-GLIBC_2.12 _IO_file_underflow F
-GLIBC_2.12 _IO_file_write F
-GLIBC_2.12 _IO_file_xsputn F
-GLIBC_2.12 _IO_flockfile F
-GLIBC_2.12 _IO_flush_all F
-GLIBC_2.12 _IO_flush_all_linebuffered F
-GLIBC_2.12 _IO_fopen F
-GLIBC_2.12 _IO_fprintf F
-GLIBC_2.12 _IO_fputs F
-GLIBC_2.12 _IO_fread F
-GLIBC_2.12 _IO_free_backup_area F
-GLIBC_2.12 _IO_free_wbackup_area F
-GLIBC_2.12 _IO_fsetpos F
-GLIBC_2.12 _IO_fsetpos64 F
-GLIBC_2.12 _IO_ftell F
-GLIBC_2.12 _IO_ftrylockfile F
-GLIBC_2.12 _IO_funlockfile F
-GLIBC_2.12 _IO_fwrite F
-GLIBC_2.12 _IO_getc F
-GLIBC_2.12 _IO_getline F
-GLIBC_2.12 _IO_getline_info F
-GLIBC_2.12 _IO_gets F
-GLIBC_2.12 _IO_init F
-GLIBC_2.12 _IO_init_marker F
-GLIBC_2.12 _IO_init_wmarker F
-GLIBC_2.12 _IO_iter_begin F
-GLIBC_2.12 _IO_iter_end F
-GLIBC_2.12 _IO_iter_file F
-GLIBC_2.12 _IO_iter_next F
-GLIBC_2.12 _IO_least_wmarker F
-GLIBC_2.12 _IO_link_in F
-GLIBC_2.12 _IO_list_all D 0x8
-GLIBC_2.12 _IO_list_lock F
-GLIBC_2.12 _IO_list_resetlock F
-GLIBC_2.12 _IO_list_unlock F
-GLIBC_2.12 _IO_marker_delta F
-GLIBC_2.12 _IO_marker_difference F
-GLIBC_2.12 _IO_padn F
-GLIBC_2.12 _IO_peekc_locked F
-GLIBC_2.12 _IO_popen F
-GLIBC_2.12 _IO_printf F
-GLIBC_2.12 _IO_proc_close F
-GLIBC_2.12 _IO_proc_open F
-GLIBC_2.12 _IO_putc F
-GLIBC_2.12 _IO_puts F
-GLIBC_2.12 _IO_remove_marker F
-GLIBC_2.12 _IO_seekmark F
-GLIBC_2.12 _IO_seekoff F
-GLIBC_2.12 _IO_seekpos F
-GLIBC_2.12 _IO_seekwmark F
-GLIBC_2.12 _IO_setb F
-GLIBC_2.12 _IO_setbuffer F
-GLIBC_2.12 _IO_setvbuf F
-GLIBC_2.12 _IO_sgetn F
-GLIBC_2.12 _IO_sprintf F
-GLIBC_2.12 _IO_sputbackc F
-GLIBC_2.12 _IO_sputbackwc F
-GLIBC_2.12 _IO_sscanf F
-GLIBC_2.12 _IO_str_init_readonly F
-GLIBC_2.12 _IO_str_init_static F
-GLIBC_2.12 _IO_str_overflow F
-GLIBC_2.12 _IO_str_pbackfail F
-GLIBC_2.12 _IO_str_seekoff F
-GLIBC_2.12 _IO_str_underflow F
-GLIBC_2.12 _IO_sungetc F
-GLIBC_2.12 _IO_sungetwc F
-GLIBC_2.12 _IO_switch_to_get_mode F
-GLIBC_2.12 _IO_switch_to_main_wget_area F
-GLIBC_2.12 _IO_switch_to_wbackup_area F
-GLIBC_2.12 _IO_switch_to_wget_mode F
-GLIBC_2.12 _IO_un_link F
-GLIBC_2.12 _IO_ungetc F
-GLIBC_2.12 _IO_unsave_markers F
-GLIBC_2.12 _IO_unsave_wmarkers F
-GLIBC_2.12 _IO_vfprintf F
-GLIBC_2.12 _IO_vfscanf F
-GLIBC_2.12 _IO_vsprintf F
-GLIBC_2.12 _IO_wdefault_doallocate F
-GLIBC_2.12 _IO_wdefault_finish F
-GLIBC_2.12 _IO_wdefault_pbackfail F
-GLIBC_2.12 _IO_wdefault_uflow F
-GLIBC_2.12 _IO_wdefault_xsgetn F
-GLIBC_2.12 _IO_wdefault_xsputn F
-GLIBC_2.12 _IO_wdo_write F
-GLIBC_2.12 _IO_wdoallocbuf F
-GLIBC_2.12 _IO_wfile_jumps D 0xa8
-GLIBC_2.12 _IO_wfile_overflow F
-GLIBC_2.12 _IO_wfile_seekoff F
-GLIBC_2.12 _IO_wfile_sync F
-GLIBC_2.12 _IO_wfile_underflow F
-GLIBC_2.12 _IO_wfile_xsputn F
-GLIBC_2.12 _IO_wmarker_delta F
-GLIBC_2.12 _IO_wsetb F
-GLIBC_2.12 ___brk_addr D 0x8
-GLIBC_2.12 __adjtimex F
-GLIBC_2.12 __after_morecore_hook D 0x8
-GLIBC_2.12 __argz_count F
-GLIBC_2.12 __argz_next F
-GLIBC_2.12 __argz_stringify F
-GLIBC_2.12 __asprintf F
-GLIBC_2.12 __asprintf_chk F
-GLIBC_2.12 __assert F
-GLIBC_2.12 __assert_fail F
-GLIBC_2.12 __assert_perror_fail F
-GLIBC_2.12 __backtrace F
-GLIBC_2.12 __backtrace_symbols F
-GLIBC_2.12 __backtrace_symbols_fd F
-GLIBC_2.12 __bsd_getpgrp F
-GLIBC_2.12 __bzero F
-GLIBC_2.12 __check_rhosts_file D 0x4
-GLIBC_2.12 __chk_fail F
-GLIBC_2.12 __clone F
-GLIBC_2.12 __close F
-GLIBC_2.12 __cmsg_nxthdr F
-GLIBC_2.12 __confstr_chk F
-GLIBC_2.12 __connect F
-GLIBC_2.12 __ctype_b_loc F
-GLIBC_2.12 __ctype_get_mb_cur_max F
-GLIBC_2.12 __ctype_tolower_loc F
-GLIBC_2.12 __ctype_toupper_loc F
-GLIBC_2.12 __curbrk D 0x8
-GLIBC_2.12 __cxa_at_quick_exit F
-GLIBC_2.12 __cxa_atexit F
-GLIBC_2.12 __cxa_finalize F
-GLIBC_2.12 __cyg_profile_func_enter F
-GLIBC_2.12 __cyg_profile_func_exit F
-GLIBC_2.12 __daylight D 0x4
-GLIBC_2.12 __dcgettext F
-GLIBC_2.12 __default_morecore F
-GLIBC_2.12 __dgettext F
-GLIBC_2.12 __dprintf_chk F
-GLIBC_2.12 __dup2 F
-GLIBC_2.12 __duplocale F
-GLIBC_2.12 __endmntent F
-GLIBC_2.12 __environ D 0x8
-GLIBC_2.12 __errno_location F
-GLIBC_2.12 __fbufsize F
-GLIBC_2.12 __fcntl F
-GLIBC_2.12 __ffs F
-GLIBC_2.12 __fgets_chk F
-GLIBC_2.12 __fgets_unlocked_chk F
-GLIBC_2.12 __fgetws_chk F
-GLIBC_2.12 __fgetws_unlocked_chk F
-GLIBC_2.12 __finite F
-GLIBC_2.12 __finitef F
-GLIBC_2.12 __flbf F
-GLIBC_2.12 __fork F
-GLIBC_2.12 __fpending F
-GLIBC_2.12 __fprintf_chk F
-GLIBC_2.12 __fpu_control D 0x4
-GLIBC_2.12 __fpurge F
-GLIBC_2.12 __fread_chk F
-GLIBC_2.12 __fread_unlocked_chk F
-GLIBC_2.12 __freadable F
-GLIBC_2.12 __freading F
-GLIBC_2.12 __free_hook D 0x8
-GLIBC_2.12 __freelocale F
-GLIBC_2.12 __fsetlocking F
-GLIBC_2.12 __fwprintf_chk F
-GLIBC_2.12 __fwritable F
-GLIBC_2.12 __fwriting F
-GLIBC_2.12 __fxstat F
-GLIBC_2.12 __fxstat64 F
-GLIBC_2.12 __fxstatat F
-GLIBC_2.12 __fxstatat64 F
-GLIBC_2.12 __getcwd_chk F
-GLIBC_2.12 __getdelim F
-GLIBC_2.12 __getdomainname_chk F
-GLIBC_2.12 __getgroups_chk F
-GLIBC_2.12 __gethostname_chk F
-GLIBC_2.12 __getlogin_r_chk F
-GLIBC_2.12 __getmntent_r F
-GLIBC_2.12 __getpagesize F
-GLIBC_2.12 __getpgid F
-GLIBC_2.12 __getpid F
-GLIBC_2.12 __gets_chk F
-GLIBC_2.12 __gettimeofday F
-GLIBC_2.12 __getwd_chk F
-GLIBC_2.12 __gmtime_r F
-GLIBC_2.12 __h_errno_location F
-GLIBC_2.12 __isalnum_l F
-GLIBC_2.12 __isalpha_l F
-GLIBC_2.12 __isascii_l F
-GLIBC_2.12 __isblank_l F
-GLIBC_2.12 __iscntrl_l F
-GLIBC_2.12 __isctype F
-GLIBC_2.12 __isdigit_l F
-GLIBC_2.12 __isgraph_l F
-GLIBC_2.12 __isinf F
-GLIBC_2.12 __isinff F
-GLIBC_2.12 __islower_l F
-GLIBC_2.12 __isnan F
-GLIBC_2.12 __isnanf F
-GLIBC_2.12 __isoc99_fscanf F
-GLIBC_2.12 __isoc99_fwscanf F
-GLIBC_2.12 __isoc99_scanf F
-GLIBC_2.12 __isoc99_sscanf F
-GLIBC_2.12 __isoc99_swscanf F
-GLIBC_2.12 __isoc99_vfscanf F
-GLIBC_2.12 __isoc99_vfwscanf F
-GLIBC_2.12 __isoc99_vscanf F
-GLIBC_2.12 __isoc99_vsscanf F
-GLIBC_2.12 __isoc99_vswscanf F
-GLIBC_2.12 __isoc99_vwscanf F
-GLIBC_2.12 __isoc99_wscanf F
-GLIBC_2.12 __isprint_l F
-GLIBC_2.12 __ispunct_l F
-GLIBC_2.12 __isspace_l F
-GLIBC_2.12 __isupper_l F
-GLIBC_2.12 __iswalnum_l F
-GLIBC_2.12 __iswalpha_l F
-GLIBC_2.12 __iswblank_l F
-GLIBC_2.12 __iswcntrl_l F
-GLIBC_2.12 __iswctype F
-GLIBC_2.12 __iswctype_l F
-GLIBC_2.12 __iswdigit_l F
-GLIBC_2.12 __iswgraph_l F
-GLIBC_2.12 __iswlower_l F
-GLIBC_2.12 __iswprint_l F
-GLIBC_2.12 __iswpunct_l F
-GLIBC_2.12 __iswspace_l F
-GLIBC_2.12 __iswupper_l F
-GLIBC_2.12 __iswxdigit_l F
-GLIBC_2.12 __isxdigit_l F
-GLIBC_2.12 __ivaliduser F
-GLIBC_2.12 __key_decryptsession_pk_LOCAL D 0x8
-GLIBC_2.12 __key_encryptsession_pk_LOCAL D 0x8
-GLIBC_2.12 __key_gendes_LOCAL D 0x8
-GLIBC_2.12 __libc_allocate_rtsig F
-GLIBC_2.12 __libc_calloc F
-GLIBC_2.12 __libc_current_sigrtmax F
-GLIBC_2.12 __libc_current_sigrtmin F
-GLIBC_2.12 __libc_free F
-GLIBC_2.12 __libc_freeres F
-GLIBC_2.12 __libc_init_first F
-GLIBC_2.12 __libc_mallinfo F
-GLIBC_2.12 __libc_malloc F
-GLIBC_2.12 __libc_mallopt F
-GLIBC_2.12 __libc_memalign F
-GLIBC_2.12 __libc_pvalloc F
-GLIBC_2.12 __libc_realloc F
-GLIBC_2.12 __libc_sa_len F
-GLIBC_2.12 __libc_start_main F
-GLIBC_2.12 __libc_valloc F
-GLIBC_2.12 __longjmp_chk F
-GLIBC_2.12 __lseek F
-GLIBC_2.12 __lxstat F
-GLIBC_2.12 __lxstat64 F
-GLIBC_2.12 __malloc_hook D 0x8
-GLIBC_2.12 __malloc_initialize_hook D 0x8
-GLIBC_2.12 __mbrlen F
-GLIBC_2.12 __mbrtowc F
-GLIBC_2.12 __mbsnrtowcs_chk F
-GLIBC_2.12 __mbsrtowcs_chk F
-GLIBC_2.12 __mbstowcs_chk F
-GLIBC_2.12 __mcount F
-GLIBC_2.12 __memalign_hook D 0x8
-GLIBC_2.12 __memcpy_chk F
-GLIBC_2.12 __memmove_chk F
-GLIBC_2.12 __mempcpy F
-GLIBC_2.12 __mempcpy_chk F
-GLIBC_2.12 __mempcpy_small F
-GLIBC_2.12 __memset_chk F
-GLIBC_2.12 __monstartup F
-GLIBC_2.12 __morecore D 0x8
-GLIBC_2.12 __nanosleep F
-GLIBC_2.12 __newlocale F
-GLIBC_2.12 __nl_langinfo_l F
-GLIBC_2.12 __nss_configure_lookup F
-GLIBC_2.12 __nss_database_lookup F
-GLIBC_2.12 __nss_group_lookup F
-GLIBC_2.12 __nss_hostname_digits_dots F
-GLIBC_2.12 __nss_hosts_lookup F
-GLIBC_2.12 __nss_next F
-GLIBC_2.12 __nss_passwd_lookup F
-GLIBC_2.12 __obstack_printf_chk F
-GLIBC_2.12 __obstack_vprintf_chk F
-GLIBC_2.12 __open F
-GLIBC_2.12 __open64 F
-GLIBC_2.12 __open64_2 F
-GLIBC_2.12 __open_2 F
-GLIBC_2.12 __openat64_2 F
-GLIBC_2.12 __openat_2 F
-GLIBC_2.12 __overflow F
-GLIBC_2.12 __pipe F
-GLIBC_2.12 __poll F
-GLIBC_2.12 __posix_getopt F
-GLIBC_2.12 __pread64 F
-GLIBC_2.12 __pread64_chk F
-GLIBC_2.12 __pread_chk F
-GLIBC_2.12 __printf_chk F
-GLIBC_2.12 __printf_fp F
-GLIBC_2.12 __profile_frequency F
-GLIBC_2.12 __progname D 0x8
-GLIBC_2.12 __progname_full D 0x8
-GLIBC_2.12 __ptsname_r_chk F
-GLIBC_2.12 __pwrite64 F
-GLIBC_2.12 __rawmemchr F
-GLIBC_2.12 __rcmd_errstr D 0x8
-GLIBC_2.12 __read F
-GLIBC_2.12 __read_chk F
-GLIBC_2.12 __readlink_chk F
-GLIBC_2.12 __readlinkat_chk F
-GLIBC_2.12 __realloc_hook D 0x8
-GLIBC_2.12 __realpath_chk F
-GLIBC_2.12 __recv_chk F
-GLIBC_2.12 __recvfrom_chk F
-GLIBC_2.12 __register_atfork F
-GLIBC_2.12 __res_init F
-GLIBC_2.12 __res_nclose F
-GLIBC_2.12 __res_ninit F
-GLIBC_2.12 __res_randomid F
-GLIBC_2.12 __res_state F
-GLIBC_2.12 __rpc_thread_createerr F
-GLIBC_2.12 __rpc_thread_svc_fdset F
-GLIBC_2.12 __rpc_thread_svc_max_pollfd F
-GLIBC_2.12 __rpc_thread_svc_pollfd F
-GLIBC_2.12 __sbrk F
-GLIBC_2.12 __sched_cpualloc F
-GLIBC_2.12 __sched_cpucount F
-GLIBC_2.12 __sched_cpufree F
-GLIBC_2.12 __sched_get_priority_max F
-GLIBC_2.12 __sched_get_priority_min F
-GLIBC_2.12 __sched_getparam F
-GLIBC_2.12 __sched_getscheduler F
-GLIBC_2.12 __sched_setscheduler F
-GLIBC_2.12 __sched_yield F
-GLIBC_2.12 __secure_getenv F
-GLIBC_2.12 __select F
-GLIBC_2.12 __setmntent F
-GLIBC_2.12 __setpgid F
-GLIBC_2.12 __sigaction F
-GLIBC_2.12 __sigaddset F
-GLIBC_2.12 __sigdelset F
-GLIBC_2.12 __sigismember F
-GLIBC_2.12 __signbit F
-GLIBC_2.12 __signbitf F
-GLIBC_2.12 __sigpause F
-GLIBC_2.12 __sigsetjmp F
-GLIBC_2.12 __sigsuspend F
-GLIBC_2.12 __snprintf_chk F
-GLIBC_2.12 __sprintf_chk F
-GLIBC_2.12 __stack_chk_fail F
-GLIBC_2.12 __statfs F
-GLIBC_2.12 __stpcpy F
-GLIBC_2.12 __stpcpy_chk F
-GLIBC_2.12 __stpcpy_small F
-GLIBC_2.12 __stpncpy F
-GLIBC_2.12 __stpncpy_chk F
-GLIBC_2.12 __strcasecmp F
-GLIBC_2.12 __strcasecmp_l F
-GLIBC_2.12 __strcasestr F
-GLIBC_2.12 __strcat_chk F
-GLIBC_2.12 __strcoll_l F
-GLIBC_2.12 __strcpy_chk F
-GLIBC_2.12 __strcpy_small F
-GLIBC_2.12 __strcspn_c1 F
-GLIBC_2.12 __strcspn_c2 F
-GLIBC_2.12 __strcspn_c3 F
-GLIBC_2.12 __strdup F
-GLIBC_2.12 __strerror_r F
-GLIBC_2.12 __strfmon_l F
-GLIBC_2.12 __strftime_l F
-GLIBC_2.12 __strncasecmp_l F
-GLIBC_2.12 __strncat_chk F
-GLIBC_2.12 __strncpy_chk F
-GLIBC_2.12 __strndup F
-GLIBC_2.12 __strpbrk_c2 F
-GLIBC_2.12 __strpbrk_c3 F
-GLIBC_2.12 __strsep_1c F
-GLIBC_2.12 __strsep_2c F
-GLIBC_2.12 __strsep_3c F
-GLIBC_2.12 __strsep_g F
-GLIBC_2.12 __strspn_c1 F
-GLIBC_2.12 __strspn_c2 F
-GLIBC_2.12 __strspn_c3 F
-GLIBC_2.12 __strtod_internal F
-GLIBC_2.12 __strtod_l F
-GLIBC_2.12 __strtof_internal F
-GLIBC_2.12 __strtof_l F
-GLIBC_2.12 __strtok_r F
-GLIBC_2.12 __strtok_r_1c F
-GLIBC_2.12 __strtol_internal F
-GLIBC_2.12 __strtol_l F
-GLIBC_2.12 __strtold_internal F
-GLIBC_2.12 __strtold_l F
-GLIBC_2.12 __strtoll_internal F
-GLIBC_2.12 __strtoll_l F
-GLIBC_2.12 __strtoul_internal F
-GLIBC_2.12 __strtoul_l F
-GLIBC_2.12 __strtoull_internal F
-GLIBC_2.12 __strtoull_l F
-GLIBC_2.12 __strverscmp F
-GLIBC_2.12 __strxfrm_l F
-GLIBC_2.12 __swprintf_chk F
-GLIBC_2.12 __sysconf F
-GLIBC_2.12 __syslog_chk F
-GLIBC_2.12 __sysv_signal F
-GLIBC_2.12 __timezone D 0x8
-GLIBC_2.12 __toascii_l F
-GLIBC_2.12 __tolower_l F
-GLIBC_2.12 __toupper_l F
-GLIBC_2.12 __towctrans F
-GLIBC_2.12 __towctrans_l F
-GLIBC_2.12 __towlower_l F
-GLIBC_2.12 __towupper_l F
-GLIBC_2.12 __ttyname_r_chk F
-GLIBC_2.12 __tzname D 0x10
-GLIBC_2.12 __uflow F
-GLIBC_2.12 __underflow F
-GLIBC_2.12 __uselocale F
-GLIBC_2.12 __vasprintf_chk F
-GLIBC_2.12 __vdprintf_chk F
-GLIBC_2.12 __vfork F
-GLIBC_2.12 __vfprintf_chk F
-GLIBC_2.12 __vfscanf F
-GLIBC_2.12 __vfwprintf_chk F
-GLIBC_2.12 __vprintf_chk F
-GLIBC_2.12 __vsnprintf F
-GLIBC_2.12 __vsnprintf_chk F
-GLIBC_2.12 __vsprintf_chk F
-GLIBC_2.12 __vsscanf F
-GLIBC_2.12 __vswprintf_chk F
-GLIBC_2.12 __vsyslog_chk F
-GLIBC_2.12 __vwprintf_chk F
-GLIBC_2.12 __wait F
-GLIBC_2.12 __waitpid F
-GLIBC_2.12 __wcpcpy_chk F
-GLIBC_2.12 __wcpncpy_chk F
-GLIBC_2.12 __wcrtomb_chk F
-GLIBC_2.12 __wcscasecmp_l F
-GLIBC_2.12 __wcscat_chk F
-GLIBC_2.12 __wcscoll_l F
-GLIBC_2.12 __wcscpy_chk F
-GLIBC_2.12 __wcsftime_l F
-GLIBC_2.12 __wcsncasecmp_l F
-GLIBC_2.12 __wcsncat_chk F
-GLIBC_2.12 __wcsncpy_chk F
-GLIBC_2.12 __wcsnrtombs_chk F
-GLIBC_2.12 __wcsrtombs_chk F
-GLIBC_2.12 __wcstod_internal F
-GLIBC_2.12 __wcstod_l F
-GLIBC_2.12 __wcstof_internal F
-GLIBC_2.12 __wcstof_l F
-GLIBC_2.12 __wcstol_internal F
-GLIBC_2.12 __wcstol_l F
-GLIBC_2.12 __wcstold_internal F
-GLIBC_2.12 __wcstold_l F
-GLIBC_2.12 __wcstoll_internal F
-GLIBC_2.12 __wcstoll_l F
-GLIBC_2.12 __wcstombs_chk F
-GLIBC_2.12 __wcstoul_internal F
-GLIBC_2.12 __wcstoul_l F
-GLIBC_2.12 __wcstoull_internal F
-GLIBC_2.12 __wcstoull_l F
-GLIBC_2.12 __wcsxfrm_l F
-GLIBC_2.12 __wctomb_chk F
-GLIBC_2.12 __wctrans_l F
-GLIBC_2.12 __wctype_l F
-GLIBC_2.12 __wmemcpy_chk F
-GLIBC_2.12 __wmemmove_chk F
-GLIBC_2.12 __wmempcpy_chk F
-GLIBC_2.12 __wmemset_chk F
-GLIBC_2.12 __woverflow F
-GLIBC_2.12 __wprintf_chk F
-GLIBC_2.12 __write F
-GLIBC_2.12 __wuflow F
-GLIBC_2.12 __wunderflow F
-GLIBC_2.12 __xmknod F
-GLIBC_2.12 __xmknodat F
-GLIBC_2.12 __xpg_basename F
-GLIBC_2.12 __xpg_sigpause F
-GLIBC_2.12 __xpg_strerror_r F
-GLIBC_2.12 __xstat F
-GLIBC_2.12 __xstat64 F
-GLIBC_2.12 _authenticate F
-GLIBC_2.12 _dl_mcount_wrapper F
-GLIBC_2.12 _dl_mcount_wrapper_check F
-GLIBC_2.12 _environ D 0x8
-GLIBC_2.12 _exit F
-GLIBC_2.12 _flush_cache F
-GLIBC_2.12 _flushlbf F
-GLIBC_2.12 _libc_intl_domainname D 0x5
-GLIBC_2.12 _longjmp F
-GLIBC_2.12 _mcleanup F
-GLIBC_2.12 _mcount F
-GLIBC_2.12 _nl_default_dirname D 0x12
-GLIBC_2.12 _nl_domain_bindings D 0x8
-GLIBC_2.12 _nl_msg_cat_cntr D 0x4
-GLIBC_2.12 _null_auth D 0x18
-GLIBC_2.12 _obstack_allocated_p F
-GLIBC_2.12 _obstack_begin F
-GLIBC_2.12 _obstack_begin_1 F
-GLIBC_2.12 _obstack_free F
-GLIBC_2.12 _obstack_memory_used F
-GLIBC_2.12 _obstack_newchunk F
-GLIBC_2.12 _res D 0x238
-GLIBC_2.12 _res_hconf D 0x48
-GLIBC_2.12 _rpc_dtablesize F
-GLIBC_2.12 _seterr_reply F
-GLIBC_2.12 _setjmp F
-GLIBC_2.12 _sys_errlist D 0x438
-GLIBC_2.12 _sys_nerr D 0x4
-GLIBC_2.12 _sys_siglist D 0x208
-GLIBC_2.12 _tolower F
-GLIBC_2.12 _toupper F
-GLIBC_2.12 a64l F
-GLIBC_2.12 abort F
-GLIBC_2.12 abs F
-GLIBC_2.12 accept F
-GLIBC_2.12 accept4 F
-GLIBC_2.12 access F
-GLIBC_2.12 acct F
-GLIBC_2.12 addmntent F
-GLIBC_2.12 addseverity F
-GLIBC_2.12 adjtime F
-GLIBC_2.12 adjtimex F
-GLIBC_2.12 advance F
-GLIBC_2.12 alarm F
-GLIBC_2.12 alphasort F
-GLIBC_2.12 alphasort64 F
-GLIBC_2.12 argp_err_exit_status D 0x4
-GLIBC_2.12 argp_error F
-GLIBC_2.12 argp_failure F
-GLIBC_2.12 argp_help F
-GLIBC_2.12 argp_parse F
-GLIBC_2.12 argp_program_bug_address D 0x8
-GLIBC_2.12 argp_program_version D 0x8
-GLIBC_2.12 argp_program_version_hook D 0x8
-GLIBC_2.12 argp_state_help F
-GLIBC_2.12 argp_usage F
-GLIBC_2.12 argz_add F
-GLIBC_2.12 argz_add_sep F
-GLIBC_2.12 argz_append F
-GLIBC_2.12 argz_count F
-GLIBC_2.12 argz_create F
-GLIBC_2.12 argz_create_sep F
-GLIBC_2.12 argz_delete F
-GLIBC_2.12 argz_extract F
-GLIBC_2.12 argz_insert F
-GLIBC_2.12 argz_next F
-GLIBC_2.12 argz_replace F
-GLIBC_2.12 argz_stringify F
-GLIBC_2.12 asctime F
-GLIBC_2.12 asctime_r F
-GLIBC_2.12 asprintf F
-GLIBC_2.12 atof F
-GLIBC_2.12 atoi F
-GLIBC_2.12 atol F
-GLIBC_2.12 atoll F
-GLIBC_2.12 authdes_create F
-GLIBC_2.12 authdes_getucred F
-GLIBC_2.12 authdes_pk_create F
-GLIBC_2.12 authnone_create F
-GLIBC_2.12 authunix_create F
-GLIBC_2.12 authunix_create_default F
-GLIBC_2.12 backtrace F
-GLIBC_2.12 backtrace_symbols F
-GLIBC_2.12 backtrace_symbols_fd F
-GLIBC_2.12 basename F
-GLIBC_2.12 bcmp F
-GLIBC_2.12 bcopy F
-GLIBC_2.12 bdflush F
-GLIBC_2.12 bind F
-GLIBC_2.12 bind_textdomain_codeset F
-GLIBC_2.12 bindresvport F
-GLIBC_2.12 bindtextdomain F
-GLIBC_2.12 brk F
-GLIBC_2.12 bsd_signal F
-GLIBC_2.12 bsearch F
-GLIBC_2.12 btowc F
-GLIBC_2.12 bzero F
-GLIBC_2.12 cacheflush F
-GLIBC_2.12 calloc F
-GLIBC_2.12 callrpc F
-GLIBC_2.12 canonicalize_file_name F
-GLIBC_2.12 capget F
-GLIBC_2.12 capset F
-GLIBC_2.12 catclose F
-GLIBC_2.12 catgets F
-GLIBC_2.12 catopen F
-GLIBC_2.12 cbc_crypt F
-GLIBC_2.12 cfgetispeed F
-GLIBC_2.12 cfgetospeed F
-GLIBC_2.12 cfmakeraw F
-GLIBC_2.12 cfree F
-GLIBC_2.12 cfsetispeed F
-GLIBC_2.12 cfsetospeed F
-GLIBC_2.12 cfsetspeed F
-GLIBC_2.12 chdir F
-GLIBC_2.12 chflags F
-GLIBC_2.12 chmod F
-GLIBC_2.12 chown F
-GLIBC_2.12 chroot F
-GLIBC_2.12 clearenv F
-GLIBC_2.12 clearerr F
-GLIBC_2.12 clearerr_unlocked F
-GLIBC_2.12 clnt_broadcast F
-GLIBC_2.12 clnt_create F
-GLIBC_2.12 clnt_pcreateerror F
-GLIBC_2.12 clnt_perrno F
-GLIBC_2.12 clnt_perror F
-GLIBC_2.12 clnt_spcreateerror F
-GLIBC_2.12 clnt_sperrno F
-GLIBC_2.12 clnt_sperror F
-GLIBC_2.12 clntraw_create F
-GLIBC_2.12 clnttcp_create F
-GLIBC_2.12 clntudp_bufcreate F
-GLIBC_2.12 clntudp_create F
-GLIBC_2.12 clntunix_create F
-GLIBC_2.12 clock F
-GLIBC_2.12 clone F
-GLIBC_2.12 close F
-GLIBC_2.12 closedir F
-GLIBC_2.12 closelog F
-GLIBC_2.12 confstr F
-GLIBC_2.12 connect F
-GLIBC_2.12 copysign F
-GLIBC_2.12 copysignf F
-GLIBC_2.12 copysignl F
-GLIBC_2.12 creat F
-GLIBC_2.12 creat64 F
-GLIBC_2.12 create_module F
-GLIBC_2.12 ctermid F
-GLIBC_2.12 ctime F
-GLIBC_2.12 ctime_r F
-GLIBC_2.12 cuserid F
-GLIBC_2.12 daemon F
-GLIBC_2.12 daylight D 0x4
-GLIBC_2.12 dcgettext F
-GLIBC_2.12 dcngettext F
-GLIBC_2.12 delete_module F
-GLIBC_2.12 des_setparity F
-GLIBC_2.12 dgettext F
-GLIBC_2.12 difftime F
-GLIBC_2.12 dirfd F
-GLIBC_2.12 dirname F
-GLIBC_2.12 div F
-GLIBC_2.12 dl_iterate_phdr F
-GLIBC_2.12 dngettext F
-GLIBC_2.12 dprintf F
-GLIBC_2.12 drand48 F
-GLIBC_2.12 drand48_r F
-GLIBC_2.12 dup F
-GLIBC_2.12 dup2 F
-GLIBC_2.12 dup3 F
-GLIBC_2.12 duplocale F
-GLIBC_2.12 dysize F
-GLIBC_2.12 eaccess F
-GLIBC_2.12 ecb_crypt F
-GLIBC_2.12 ecvt F
-GLIBC_2.12 ecvt_r F
-GLIBC_2.12 endaliasent F
-GLIBC_2.12 endfsent F
-GLIBC_2.12 endgrent F
-GLIBC_2.12 endhostent F
-GLIBC_2.12 endmntent F
-GLIBC_2.12 endnetent F
-GLIBC_2.12 endnetgrent F
-GLIBC_2.12 endprotoent F
-GLIBC_2.12 endpwent F
-GLIBC_2.12 endrpcent F
-GLIBC_2.12 endservent F
-GLIBC_2.12 endsgent F
-GLIBC_2.12 endspent F
-GLIBC_2.12 endttyent F
-GLIBC_2.12 endusershell F
-GLIBC_2.12 endutent F
-GLIBC_2.12 endutxent F
-GLIBC_2.12 environ D 0x8
-GLIBC_2.12 envz_add F
-GLIBC_2.12 envz_entry F
-GLIBC_2.12 envz_get F
-GLIBC_2.12 envz_merge F
-GLIBC_2.12 envz_remove F
-GLIBC_2.12 envz_strip F
-GLIBC_2.12 epoll_create F
-GLIBC_2.12 epoll_create1 F
-GLIBC_2.12 epoll_ctl F
-GLIBC_2.12 epoll_pwait F
-GLIBC_2.12 epoll_wait F
-GLIBC_2.12 erand48 F
-GLIBC_2.12 erand48_r F
-GLIBC_2.12 err F
-GLIBC_2.12 error F
-GLIBC_2.12 error_at_line F
-GLIBC_2.12 error_message_count D 0x4
-GLIBC_2.12 error_one_per_line D 0x4
-GLIBC_2.12 error_print_progname D 0x8
-GLIBC_2.12 errx F
-GLIBC_2.12 ether_aton F
-GLIBC_2.12 ether_aton_r F
-GLIBC_2.12 ether_hostton F
-GLIBC_2.12 ether_line F
-GLIBC_2.12 ether_ntoa F
-GLIBC_2.12 ether_ntoa_r F
-GLIBC_2.12 ether_ntohost F
-GLIBC_2.12 euidaccess F
-GLIBC_2.12 eventfd F
-GLIBC_2.12 eventfd_read F
-GLIBC_2.12 eventfd_write F
-GLIBC_2.12 execl F
-GLIBC_2.12 execle F
-GLIBC_2.12 execlp F
-GLIBC_2.12 execv F
-GLIBC_2.12 execve F
-GLIBC_2.12 execvp F
-GLIBC_2.12 execvpe F
-GLIBC_2.12 exit F
-GLIBC_2.12 faccessat F
-GLIBC_2.12 fallocate F
-GLIBC_2.12 fallocate64 F
-GLIBC_2.12 fattach F
-GLIBC_2.12 fchdir F
-GLIBC_2.12 fchflags F
-GLIBC_2.12 fchmod F
-GLIBC_2.12 fchmodat F
-GLIBC_2.12 fchown F
-GLIBC_2.12 fchownat F
-GLIBC_2.12 fclose F
-GLIBC_2.12 fcloseall F
-GLIBC_2.12 fcntl F
-GLIBC_2.12 fcvt F
-GLIBC_2.12 fcvt_r F
-GLIBC_2.12 fdatasync F
-GLIBC_2.12 fdetach F
-GLIBC_2.12 fdopen F
-GLIBC_2.12 fdopendir F
-GLIBC_2.12 feof F
-GLIBC_2.12 feof_unlocked F
-GLIBC_2.12 ferror F
-GLIBC_2.12 ferror_unlocked F
-GLIBC_2.12 fexecve F
-GLIBC_2.12 fflush F
-GLIBC_2.12 fflush_unlocked F
-GLIBC_2.12 ffs F
-GLIBC_2.12 ffsl F
-GLIBC_2.12 ffsll F
-GLIBC_2.12 fgetc F
-GLIBC_2.12 fgetc_unlocked F
-GLIBC_2.12 fgetgrent F
-GLIBC_2.12 fgetgrent_r F
-GLIBC_2.12 fgetpos F
-GLIBC_2.12 fgetpos64 F
-GLIBC_2.12 fgetpwent F
-GLIBC_2.12 fgetpwent_r F
-GLIBC_2.12 fgets F
-GLIBC_2.12 fgets_unlocked F
-GLIBC_2.12 fgetsgent F
-GLIBC_2.12 fgetsgent_r F
-GLIBC_2.12 fgetspent F
-GLIBC_2.12 fgetspent_r F
-GLIBC_2.12 fgetwc F
-GLIBC_2.12 fgetwc_unlocked F
-GLIBC_2.12 fgetws F
-GLIBC_2.12 fgetws_unlocked F
-GLIBC_2.12 fgetxattr F
-GLIBC_2.12 fileno F
-GLIBC_2.12 fileno_unlocked F
-GLIBC_2.12 finite F
-GLIBC_2.12 finitef F
-GLIBC_2.12 finitel F
-GLIBC_2.12 flistxattr F
-GLIBC_2.12 flock F
-GLIBC_2.12 flockfile F
-GLIBC_2.12 fmemopen F
-GLIBC_2.12 fmtmsg F
-GLIBC_2.12 fnmatch F
-GLIBC_2.12 fopen F
-GLIBC_2.12 fopen64 F
-GLIBC_2.12 fopencookie F
-GLIBC_2.12 fork F
-GLIBC_2.12 fpathconf F
-GLIBC_2.12 fprintf F
-GLIBC_2.12 fputc F
-GLIBC_2.12 fputc_unlocked F
-GLIBC_2.12 fputs F
-GLIBC_2.12 fputs_unlocked F
-GLIBC_2.12 fputwc F
-GLIBC_2.12 fputwc_unlocked F
-GLIBC_2.12 fputws F
-GLIBC_2.12 fputws_unlocked F
-GLIBC_2.12 fread F
-GLIBC_2.12 fread_unlocked F
-GLIBC_2.12 free F
-GLIBC_2.12 freeaddrinfo F
-GLIBC_2.12 freeifaddrs F
-GLIBC_2.12 freelocale F
-GLIBC_2.12 fremovexattr F
-GLIBC_2.12 freopen F
-GLIBC_2.12 freopen64 F
-GLIBC_2.12 frexp F
-GLIBC_2.12 frexpf F
-GLIBC_2.12 frexpl F
-GLIBC_2.12 fscanf F
-GLIBC_2.12 fseek F
-GLIBC_2.12 fseeko F
-GLIBC_2.12 fseeko64 F
-GLIBC_2.12 fsetpos F
-GLIBC_2.12 fsetpos64 F
-GLIBC_2.12 fsetxattr F
-GLIBC_2.12 fstatfs F
-GLIBC_2.12 fstatfs64 F
-GLIBC_2.12 fstatvfs F
-GLIBC_2.12 fstatvfs64 F
-GLIBC_2.12 fsync F
-GLIBC_2.12 ftell F
-GLIBC_2.12 ftello F
-GLIBC_2.12 ftello64 F
-GLIBC_2.12 ftime F
-GLIBC_2.12 ftok F
-GLIBC_2.12 ftruncate F
-GLIBC_2.12 ftruncate64 F
-GLIBC_2.12 ftrylockfile F
-GLIBC_2.12 fts_children F
-GLIBC_2.12 fts_close F
-GLIBC_2.12 fts_open F
-GLIBC_2.12 fts_read F
-GLIBC_2.12 fts_set F
-GLIBC_2.12 ftw F
-GLIBC_2.12 ftw64 F
-GLIBC_2.12 funlockfile F
-GLIBC_2.12 futimens F
-GLIBC_2.12 futimes F
-GLIBC_2.12 futimesat F
-GLIBC_2.12 fwide F
-GLIBC_2.12 fwprintf F
-GLIBC_2.12 fwrite F
-GLIBC_2.12 fwrite_unlocked F
-GLIBC_2.12 fwscanf F
-GLIBC_2.12 gai_strerror F
-GLIBC_2.12 gcvt F
-GLIBC_2.12 get_avphys_pages F
-GLIBC_2.12 get_current_dir_name F
-GLIBC_2.12 get_kernel_syms F
-GLIBC_2.12 get_myaddress F
-GLIBC_2.12 get_nprocs F
-GLIBC_2.12 get_nprocs_conf F
-GLIBC_2.12 get_phys_pages F
-GLIBC_2.12 getaddrinfo F
-GLIBC_2.12 getaliasbyname F
-GLIBC_2.12 getaliasbyname_r F
-GLIBC_2.12 getaliasent F
-GLIBC_2.12 getaliasent_r F
-GLIBC_2.12 getc F
-GLIBC_2.12 getc_unlocked F
-GLIBC_2.12 getchar F
-GLIBC_2.12 getchar_unlocked F
-GLIBC_2.12 getcontext F
-GLIBC_2.12 getcwd F
-GLIBC_2.12 getdate F
-GLIBC_2.12 getdate_err D 0x4
-GLIBC_2.12 getdate_r F
-GLIBC_2.12 getdelim F
-GLIBC_2.12 getdirentries F
-GLIBC_2.12 getdirentries64 F
-GLIBC_2.12 getdomainname F
-GLIBC_2.12 getdtablesize F
-GLIBC_2.12 getegid F
-GLIBC_2.12 getenv F
-GLIBC_2.12 geteuid F
-GLIBC_2.12 getfsent F
-GLIBC_2.12 getfsfile F
-GLIBC_2.12 getfsspec F
-GLIBC_2.12 getgid F
-GLIBC_2.12 getgrent F
-GLIBC_2.12 getgrent_r F
-GLIBC_2.12 getgrgid F
-GLIBC_2.12 getgrgid_r F
-GLIBC_2.12 getgrnam F
-GLIBC_2.12 getgrnam_r F
-GLIBC_2.12 getgrouplist F
-GLIBC_2.12 getgroups F
-GLIBC_2.12 gethostbyaddr F
-GLIBC_2.12 gethostbyaddr_r F
-GLIBC_2.12 gethostbyname F
-GLIBC_2.12 gethostbyname2 F
-GLIBC_2.12 gethostbyname2_r F
-GLIBC_2.12 gethostbyname_r F
-GLIBC_2.12 gethostent F
-GLIBC_2.12 gethostent_r F
-GLIBC_2.12 gethostid F
-GLIBC_2.12 gethostname F
-GLIBC_2.12 getifaddrs F
-GLIBC_2.12 getipv4sourcefilter F
-GLIBC_2.12 getitimer F
-GLIBC_2.12 getline F
-GLIBC_2.12 getloadavg F
-GLIBC_2.12 getlogin F
-GLIBC_2.12 getlogin_r F
-GLIBC_2.12 getmntent F
-GLIBC_2.12 getmntent_r F
-GLIBC_2.12 getmsg F
-GLIBC_2.12 getnameinfo F
-GLIBC_2.12 getnetbyaddr F
-GLIBC_2.12 getnetbyaddr_r F
-GLIBC_2.12 getnetbyname F
-GLIBC_2.12 getnetbyname_r F
-GLIBC_2.12 getnetent F
-GLIBC_2.12 getnetent_r F
-GLIBC_2.12 getnetgrent F
-GLIBC_2.12 getnetgrent_r F
-GLIBC_2.12 getnetname F
-GLIBC_2.12 getopt F
-GLIBC_2.12 getopt_long F
-GLIBC_2.12 getopt_long_only F
-GLIBC_2.12 getpagesize F
-GLIBC_2.12 getpass F
-GLIBC_2.12 getpeername F
-GLIBC_2.12 getpgid F
-GLIBC_2.12 getpgrp F
-GLIBC_2.12 getpid F
-GLIBC_2.12 getpmsg F
-GLIBC_2.12 getppid F
-GLIBC_2.12 getpriority F
-GLIBC_2.12 getprotobyname F
-GLIBC_2.12 getprotobyname_r F
-GLIBC_2.12 getprotobynumber F
-GLIBC_2.12 getprotobynumber_r F
-GLIBC_2.12 getprotoent F
-GLIBC_2.12 getprotoent_r F
-GLIBC_2.12 getpt F
-GLIBC_2.12 getpublickey F
-GLIBC_2.12 getpw F
-GLIBC_2.12 getpwent F
-GLIBC_2.12 getpwent_r F
-GLIBC_2.12 getpwnam F
-GLIBC_2.12 getpwnam_r F
-GLIBC_2.12 getpwuid F
-GLIBC_2.12 getpwuid_r F
-GLIBC_2.12 getresgid F
-GLIBC_2.12 getresuid F
-GLIBC_2.12 getrlimit F
-GLIBC_2.12 getrlimit64 F
-GLIBC_2.12 getrpcbyname F
-GLIBC_2.12 getrpcbyname_r F
-GLIBC_2.12 getrpcbynumber F
-GLIBC_2.12 getrpcbynumber_r F
-GLIBC_2.12 getrpcent F
-GLIBC_2.12 getrpcent_r F
-GLIBC_2.12 getrpcport F
-GLIBC_2.12 getrusage F
-GLIBC_2.12 gets F
-GLIBC_2.12 getsecretkey F
-GLIBC_2.12 getservbyname F
-GLIBC_2.12 getservbyname_r F
-GLIBC_2.12 getservbyport F
-GLIBC_2.12 getservbyport_r F
-GLIBC_2.12 getservent F
-GLIBC_2.12 getservent_r F
-GLIBC_2.12 getsgent F
-GLIBC_2.12 getsgent_r F
-GLIBC_2.12 getsgnam F
-GLIBC_2.12 getsgnam_r F
-GLIBC_2.12 getsid F
-GLIBC_2.12 getsockname F
-GLIBC_2.12 getsockopt F
-GLIBC_2.12 getsourcefilter F
-GLIBC_2.12 getspent F
-GLIBC_2.12 getspent_r F
-GLIBC_2.12 getspnam F
-GLIBC_2.12 getspnam_r F
-GLIBC_2.12 getsubopt F
-GLIBC_2.12 gettext F
-GLIBC_2.12 gettimeofday F
-GLIBC_2.12 getttyent F
-GLIBC_2.12 getttynam F
-GLIBC_2.12 getuid F
-GLIBC_2.12 getusershell F
-GLIBC_2.12 getutent F
-GLIBC_2.12 getutent_r F
-GLIBC_2.12 getutid F
-GLIBC_2.12 getutid_r F
-GLIBC_2.12 getutline F
-GLIBC_2.12 getutline_r F
-GLIBC_2.12 getutmp F
-GLIBC_2.12 getutmpx F
-GLIBC_2.12 getutxent F
-GLIBC_2.12 getutxid F
-GLIBC_2.12 getutxline F
-GLIBC_2.12 getw F
-GLIBC_2.12 getwc F
-GLIBC_2.12 getwc_unlocked F
-GLIBC_2.12 getwchar F
-GLIBC_2.12 getwchar_unlocked F
-GLIBC_2.12 getwd F
-GLIBC_2.12 getxattr F
-GLIBC_2.12 glob F
-GLIBC_2.12 glob64 F
-GLIBC_2.12 glob_pattern_p F
-GLIBC_2.12 globfree F
-GLIBC_2.12 globfree64 F
-GLIBC_2.12 gmtime F
-GLIBC_2.12 gmtime_r F
-GLIBC_2.12 gnu_dev_major F
-GLIBC_2.12 gnu_dev_makedev F
-GLIBC_2.12 gnu_dev_minor F
-GLIBC_2.12 gnu_get_libc_release F
-GLIBC_2.12 gnu_get_libc_version F
-GLIBC_2.12 grantpt F
-GLIBC_2.12 group_member F
-GLIBC_2.12 gsignal F
-GLIBC_2.12 gtty F
-GLIBC_2.12 h_errlist D 0x28
-GLIBC_2.12 h_nerr D 0x4
-GLIBC_2.12 hasmntopt F
-GLIBC_2.12 hcreate F
-GLIBC_2.12 hcreate_r F
-GLIBC_2.12 hdestroy F
-GLIBC_2.12 hdestroy_r F
-GLIBC_2.12 herror F
-GLIBC_2.12 host2netname F
-GLIBC_2.12 hsearch F
-GLIBC_2.12 hsearch_r F
-GLIBC_2.12 hstrerror F
-GLIBC_2.12 htonl F
-GLIBC_2.12 htons F
-GLIBC_2.12 iconv F
-GLIBC_2.12 iconv_close F
-GLIBC_2.12 iconv_open F
-GLIBC_2.12 if_freenameindex F
-GLIBC_2.12 if_indextoname F
-GLIBC_2.12 if_nameindex F
-GLIBC_2.12 if_nametoindex F
-GLIBC_2.12 imaxabs F
-GLIBC_2.12 imaxdiv F
-GLIBC_2.12 in6addr_any D 0x10
-GLIBC_2.12 in6addr_loopback D 0x10
-GLIBC_2.12 index F
-GLIBC_2.12 inet6_opt_append F
-GLIBC_2.12 inet6_opt_find F
-GLIBC_2.12 inet6_opt_finish F
-GLIBC_2.12 inet6_opt_get_val F
-GLIBC_2.12 inet6_opt_init F
-GLIBC_2.12 inet6_opt_next F
-GLIBC_2.12 inet6_opt_set_val F
-GLIBC_2.12 inet6_option_alloc F
-GLIBC_2.12 inet6_option_append F
-GLIBC_2.12 inet6_option_find F
-GLIBC_2.12 inet6_option_init F
-GLIBC_2.12 inet6_option_next F
-GLIBC_2.12 inet6_option_space F
-GLIBC_2.12 inet6_rth_add F
-GLIBC_2.12 inet6_rth_getaddr F
-GLIBC_2.12 inet6_rth_init F
-GLIBC_2.12 inet6_rth_reverse F
-GLIBC_2.12 inet6_rth_segments F
-GLIBC_2.12 inet6_rth_space F
-GLIBC_2.12 inet_addr F
-GLIBC_2.12 inet_aton F
-GLIBC_2.12 inet_lnaof F
-GLIBC_2.12 inet_makeaddr F
-GLIBC_2.12 inet_netof F
-GLIBC_2.12 inet_network F
-GLIBC_2.12 inet_nsap_addr F
-GLIBC_2.12 inet_nsap_ntoa F
-GLIBC_2.12 inet_ntoa F
-GLIBC_2.12 inet_ntop F
-GLIBC_2.12 inet_pton F
-GLIBC_2.12 init_module F
-GLIBC_2.12 initgroups F
-GLIBC_2.12 initstate F
-GLIBC_2.12 initstate_r F
-GLIBC_2.12 innetgr F
-GLIBC_2.12 inotify_add_watch F
-GLIBC_2.12 inotify_init F
-GLIBC_2.12 inotify_init1 F
-GLIBC_2.12 inotify_rm_watch F
-GLIBC_2.12 insque F
-GLIBC_2.12 ioctl F
-GLIBC_2.12 iruserok F
-GLIBC_2.12 iruserok_af F
-GLIBC_2.12 isalnum F
-GLIBC_2.12 isalnum_l F
-GLIBC_2.12 isalpha F
-GLIBC_2.12 isalpha_l F
-GLIBC_2.12 isascii F
-GLIBC_2.12 isastream F
-GLIBC_2.12 isatty F
-GLIBC_2.12 isblank F
-GLIBC_2.12 isblank_l F
-GLIBC_2.12 iscntrl F
-GLIBC_2.12 iscntrl_l F
-GLIBC_2.12 isctype F
-GLIBC_2.12 isdigit F
-GLIBC_2.12 isdigit_l F
-GLIBC_2.12 isfdtype F
-GLIBC_2.12 isgraph F
-GLIBC_2.12 isgraph_l F
-GLIBC_2.12 isinf F
-GLIBC_2.12 isinff F
-GLIBC_2.12 isinfl F
-GLIBC_2.12 islower F
-GLIBC_2.12 islower_l F
-GLIBC_2.12 isnan F
-GLIBC_2.12 isnanf F
-GLIBC_2.12 isnanl F
-GLIBC_2.12 isprint F
-GLIBC_2.12 isprint_l F
-GLIBC_2.12 ispunct F
-GLIBC_2.12 ispunct_l F
-GLIBC_2.12 isspace F
-GLIBC_2.12 isspace_l F
-GLIBC_2.12 isupper F
-GLIBC_2.12 isupper_l F
-GLIBC_2.12 iswalnum F
-GLIBC_2.12 iswalnum_l F
-GLIBC_2.12 iswalpha F
-GLIBC_2.12 iswalpha_l F
-GLIBC_2.12 iswblank F
-GLIBC_2.12 iswblank_l F
-GLIBC_2.12 iswcntrl F
-GLIBC_2.12 iswcntrl_l F
-GLIBC_2.12 iswctype F
-GLIBC_2.12 iswctype_l F
-GLIBC_2.12 iswdigit F
-GLIBC_2.12 iswdigit_l F
-GLIBC_2.12 iswgraph F
-GLIBC_2.12 iswgraph_l F
-GLIBC_2.12 iswlower F
-GLIBC_2.12 iswlower_l F
-GLIBC_2.12 iswprint F
-GLIBC_2.12 iswprint_l F
-GLIBC_2.12 iswpunct F
-GLIBC_2.12 iswpunct_l F
-GLIBC_2.12 iswspace F
-GLIBC_2.12 iswspace_l F
-GLIBC_2.12 iswupper F
-GLIBC_2.12 iswupper_l F
-GLIBC_2.12 iswxdigit F
-GLIBC_2.12 iswxdigit_l F
-GLIBC_2.12 isxdigit F
-GLIBC_2.12 isxdigit_l F
-GLIBC_2.12 jrand48 F
-GLIBC_2.12 jrand48_r F
-GLIBC_2.12 key_decryptsession F
-GLIBC_2.12 key_decryptsession_pk F
-GLIBC_2.12 key_encryptsession F
-GLIBC_2.12 key_encryptsession_pk F
-GLIBC_2.12 key_gendes F
-GLIBC_2.12 key_get_conv F
-GLIBC_2.12 key_secretkey_is_set F
-GLIBC_2.12 key_setnet F
-GLIBC_2.12 key_setsecret F
-GLIBC_2.12 kill F
-GLIBC_2.12 killpg F
-GLIBC_2.12 klogctl F
-GLIBC_2.12 l64a F
-GLIBC_2.12 labs F
-GLIBC_2.12 lchmod F
-GLIBC_2.12 lchown F
-GLIBC_2.12 lckpwdf F
-GLIBC_2.12 lcong48 F
-GLIBC_2.12 lcong48_r F
-GLIBC_2.12 ldexp F
-GLIBC_2.12 ldexpf F
-GLIBC_2.12 ldexpl F
-GLIBC_2.12 ldiv F
-GLIBC_2.12 lfind F
-GLIBC_2.12 lgetxattr F
-GLIBC_2.12 link F
-GLIBC_2.12 linkat F
-GLIBC_2.12 listen F
-GLIBC_2.12 listxattr F
-GLIBC_2.12 llabs F
-GLIBC_2.12 lldiv F
-GLIBC_2.12 llistxattr F
-GLIBC_2.12 llseek F
-GLIBC_2.12 loc1 D 0x8
-GLIBC_2.12 loc2 D 0x8
-GLIBC_2.12 localeconv F
-GLIBC_2.12 localtime F
-GLIBC_2.12 localtime_r F
-GLIBC_2.12 lockf F
-GLIBC_2.12 lockf64 F
-GLIBC_2.12 locs D 0x8
-GLIBC_2.12 longjmp F
-GLIBC_2.12 lrand48 F
-GLIBC_2.12 lrand48_r F
-GLIBC_2.12 lremovexattr F
-GLIBC_2.12 lsearch F
-GLIBC_2.12 lseek F
-GLIBC_2.12 lseek64 F
-GLIBC_2.12 lsetxattr F
-GLIBC_2.12 lutimes F
-GLIBC_2.12 madvise F
-GLIBC_2.12 makecontext F
-GLIBC_2.12 mallinfo F
-GLIBC_2.12 malloc F
-GLIBC_2.12 malloc_get_state F
-GLIBC_2.12 malloc_info F
-GLIBC_2.12 malloc_set_state F
-GLIBC_2.12 malloc_stats F
-GLIBC_2.12 malloc_trim F
-GLIBC_2.12 malloc_usable_size F
-GLIBC_2.12 mallopt F
-GLIBC_2.12 mallwatch D 0x8
-GLIBC_2.12 mblen F
-GLIBC_2.12 mbrlen F
-GLIBC_2.12 mbrtowc F
-GLIBC_2.12 mbsinit F
-GLIBC_2.12 mbsnrtowcs F
-GLIBC_2.12 mbsrtowcs F
-GLIBC_2.12 mbstowcs F
-GLIBC_2.12 mbtowc F
-GLIBC_2.12 mcheck F
-GLIBC_2.12 mcheck_check_all F
-GLIBC_2.12 mcheck_pedantic F
-GLIBC_2.12 mcount F
-GLIBC_2.12 memalign F
-GLIBC_2.12 memccpy F
-GLIBC_2.12 memchr F
-GLIBC_2.12 memcmp F
-GLIBC_2.12 memcpy F
-GLIBC_2.12 memfrob F
-GLIBC_2.12 memmem F
-GLIBC_2.12 memmove F
-GLIBC_2.12 mempcpy F
-GLIBC_2.12 memrchr F
-GLIBC_2.12 memset F
-GLIBC_2.12 mincore F
-GLIBC_2.12 mkdir F
-GLIBC_2.12 mkdirat F
-GLIBC_2.12 mkdtemp F
-GLIBC_2.12 mkfifo F
-GLIBC_2.12 mkfifoat F
-GLIBC_2.12 mkostemp F
-GLIBC_2.12 mkostemp64 F
-GLIBC_2.12 mkostemps F
-GLIBC_2.12 mkostemps64 F
-GLIBC_2.12 mkstemp F
-GLIBC_2.12 mkstemp64 F
-GLIBC_2.12 mkstemps F
-GLIBC_2.12 mkstemps64 F
-GLIBC_2.12 mktemp F
-GLIBC_2.12 mktime F
-GLIBC_2.12 mlock F
-GLIBC_2.12 mlockall F
-GLIBC_2.12 mmap F
-GLIBC_2.12 mmap64 F
-GLIBC_2.12 modf F
-GLIBC_2.12 modff F
-GLIBC_2.12 modfl F
-GLIBC_2.12 moncontrol F
-GLIBC_2.12 monstartup F
-GLIBC_2.12 mount F
-GLIBC_2.12 mprobe F
-GLIBC_2.12 mprotect F
-GLIBC_2.12 mrand48 F
-GLIBC_2.12 mrand48_r F
-GLIBC_2.12 mremap F
-GLIBC_2.12 msgctl F
-GLIBC_2.12 msgget F
-GLIBC_2.12 msgrcv F
-GLIBC_2.12 msgsnd F
-GLIBC_2.12 msync F
-GLIBC_2.12 mtrace F
-GLIBC_2.12 munlock F
-GLIBC_2.12 munlockall F
-GLIBC_2.12 munmap F
-GLIBC_2.12 muntrace F
-GLIBC_2.12 nanosleep F
-GLIBC_2.12 netname2host F
-GLIBC_2.12 netname2user F
-GLIBC_2.12 newlocale F
-GLIBC_2.12 nfsservctl F
-GLIBC_2.12 nftw F
-GLIBC_2.12 nftw64 F
-GLIBC_2.12 ngettext F
-GLIBC_2.12 nice F
-GLIBC_2.12 nl_langinfo F
-GLIBC_2.12 nl_langinfo_l F
-GLIBC_2.12 nrand48 F
-GLIBC_2.12 nrand48_r F
-GLIBC_2.12 ntohl F
-GLIBC_2.12 ntohs F
-GLIBC_2.12 ntp_adjtime F
-GLIBC_2.12 ntp_gettime F
-GLIBC_2.12 ntp_gettimex F
-GLIBC_2.12 obstack_alloc_failed_handler D 0x8
-GLIBC_2.12 obstack_exit_failure D 0x4
-GLIBC_2.12 obstack_free F
-GLIBC_2.12 obstack_printf F
-GLIBC_2.12 obstack_vprintf F
-GLIBC_2.12 on_exit F
-GLIBC_2.12 open F
-GLIBC_2.12 open64 F
-GLIBC_2.12 open_memstream F
-GLIBC_2.12 open_wmemstream F
-GLIBC_2.12 openat F
-GLIBC_2.12 openat64 F
-GLIBC_2.12 opendir F
-GLIBC_2.12 openlog F
-GLIBC_2.12 optarg D 0x8
-GLIBC_2.12 opterr D 0x4
-GLIBC_2.12 optind D 0x4
-GLIBC_2.12 optopt D 0x4
-GLIBC_2.12 parse_printf_format F
-GLIBC_2.12 passwd2des F
-GLIBC_2.12 pathconf F
-GLIBC_2.12 pause F
-GLIBC_2.12 pclose F
-GLIBC_2.12 perror F
-GLIBC_2.12 personality F
-GLIBC_2.12 pipe F
-GLIBC_2.12 pipe2 F
-GLIBC_2.12 pivot_root F
-GLIBC_2.12 pmap_getmaps F
-GLIBC_2.12 pmap_getport F
-GLIBC_2.12 pmap_rmtcall F
-GLIBC_2.12 pmap_set F
-GLIBC_2.12 pmap_unset F
-GLIBC_2.12 poll F
-GLIBC_2.12 popen F
-GLIBC_2.12 posix_fadvise F
-GLIBC_2.12 posix_fadvise64 F
-GLIBC_2.12 posix_fallocate F
-GLIBC_2.12 posix_fallocate64 F
-GLIBC_2.12 posix_madvise F
-GLIBC_2.12 posix_memalign F
-GLIBC_2.12 posix_openpt F
-GLIBC_2.12 posix_spawn F
-GLIBC_2.12 posix_spawn_file_actions_addclose F
-GLIBC_2.12 posix_spawn_file_actions_adddup2 F
-GLIBC_2.12 posix_spawn_file_actions_addopen F
-GLIBC_2.12 posix_spawn_file_actions_destroy F
-GLIBC_2.12 posix_spawn_file_actions_init F
-GLIBC_2.12 posix_spawnattr_destroy F
-GLIBC_2.12 posix_spawnattr_getflags F
-GLIBC_2.12 posix_spawnattr_getpgroup F
-GLIBC_2.12 posix_spawnattr_getschedparam F
-GLIBC_2.12 posix_spawnattr_getschedpolicy F
-GLIBC_2.12 posix_spawnattr_getsigdefault F
-GLIBC_2.12 posix_spawnattr_getsigmask F
-GLIBC_2.12 posix_spawnattr_init F
-GLIBC_2.12 posix_spawnattr_setflags F
-GLIBC_2.12 posix_spawnattr_setpgroup F
-GLIBC_2.12 posix_spawnattr_setschedparam F
-GLIBC_2.12 posix_spawnattr_setschedpolicy F
-GLIBC_2.12 posix_spawnattr_setsigdefault F
-GLIBC_2.12 posix_spawnattr_setsigmask F
-GLIBC_2.12 posix_spawnp F
-GLIBC_2.12 ppoll F
-GLIBC_2.12 prctl F
-GLIBC_2.12 pread F
-GLIBC_2.12 pread64 F
-GLIBC_2.12 preadv F
-GLIBC_2.12 preadv64 F
-GLIBC_2.12 printf F
-GLIBC_2.12 printf_size F
-GLIBC_2.12 printf_size_info F
-GLIBC_2.12 profil F
-GLIBC_2.12 program_invocation_name D 0x8
-GLIBC_2.12 program_invocation_short_name D 0x8
-GLIBC_2.12 pselect F
-GLIBC_2.12 psiginfo F
-GLIBC_2.12 psignal F
-GLIBC_2.12 pthread_attr_destroy F
-GLIBC_2.12 pthread_attr_getdetachstate F
-GLIBC_2.12 pthread_attr_getinheritsched F
-GLIBC_2.12 pthread_attr_getschedparam F
-GLIBC_2.12 pthread_attr_getschedpolicy F
-GLIBC_2.12 pthread_attr_getscope F
-GLIBC_2.12 pthread_attr_init F
-GLIBC_2.12 pthread_attr_setdetachstate F
-GLIBC_2.12 pthread_attr_setinheritsched F
-GLIBC_2.12 pthread_attr_setschedparam F
-GLIBC_2.12 pthread_attr_setschedpolicy F
-GLIBC_2.12 pthread_attr_setscope F
-GLIBC_2.12 pthread_cond_broadcast F
-GLIBC_2.12 pthread_cond_destroy F
-GLIBC_2.12 pthread_cond_init F
-GLIBC_2.12 pthread_cond_signal F
-GLIBC_2.12 pthread_cond_timedwait F
-GLIBC_2.12 pthread_cond_wait F
-GLIBC_2.12 pthread_condattr_destroy F
-GLIBC_2.12 pthread_condattr_init F
-GLIBC_2.12 pthread_equal F
-GLIBC_2.12 pthread_exit F
-GLIBC_2.12 pthread_getschedparam F
-GLIBC_2.12 pthread_mutex_destroy F
-GLIBC_2.12 pthread_mutex_init F
-GLIBC_2.12 pthread_mutex_lock F
-GLIBC_2.12 pthread_mutex_unlock F
-GLIBC_2.12 pthread_self F
-GLIBC_2.12 pthread_setcancelstate F
-GLIBC_2.12 pthread_setcanceltype F
-GLIBC_2.12 pthread_setschedparam F
-GLIBC_2.12 ptrace F
-GLIBC_2.12 ptsname F
-GLIBC_2.12 ptsname_r F
-GLIBC_2.12 putc F
-GLIBC_2.12 putc_unlocked F
-GLIBC_2.12 putchar F
-GLIBC_2.12 putchar_unlocked F
-GLIBC_2.12 putenv F
-GLIBC_2.12 putgrent F
-GLIBC_2.12 putmsg F
-GLIBC_2.12 putpmsg F
-GLIBC_2.12 putpwent F
-GLIBC_2.12 puts F
-GLIBC_2.12 putsgent F
-GLIBC_2.12 putspent F
-GLIBC_2.12 pututline F
-GLIBC_2.12 pututxline F
-GLIBC_2.12 putw F
-GLIBC_2.12 putwc F
-GLIBC_2.12 putwc_unlocked F
-GLIBC_2.12 putwchar F
-GLIBC_2.12 putwchar_unlocked F
-GLIBC_2.12 pvalloc F
-GLIBC_2.12 pwrite F
-GLIBC_2.12 pwrite64 F
-GLIBC_2.12 pwritev F
-GLIBC_2.12 pwritev64 F
-GLIBC_2.12 qecvt F
-GLIBC_2.12 qecvt_r F
-GLIBC_2.12 qfcvt F
-GLIBC_2.12 qfcvt_r F
-GLIBC_2.12 qgcvt F
-GLIBC_2.12 qsort F
-GLIBC_2.12 qsort_r F
-GLIBC_2.12 query_module F
-GLIBC_2.12 quick_exit F
-GLIBC_2.12 quotactl F
-GLIBC_2.12 raise F
-GLIBC_2.12 rand F
-GLIBC_2.12 rand_r F
-GLIBC_2.12 random F
-GLIBC_2.12 random_r F
-GLIBC_2.12 rawmemchr F
-GLIBC_2.12 rcmd F
-GLIBC_2.12 rcmd_af F
-GLIBC_2.12 re_comp F
-GLIBC_2.12 re_compile_fastmap F
-GLIBC_2.12 re_compile_pattern F
-GLIBC_2.12 re_exec F
-GLIBC_2.12 re_match F
-GLIBC_2.12 re_match_2 F
-GLIBC_2.12 re_search F
-GLIBC_2.12 re_search_2 F
-GLIBC_2.12 re_set_registers F
-GLIBC_2.12 re_set_syntax F
-GLIBC_2.12 re_syntax_options D 0x8
-GLIBC_2.12 read F
-GLIBC_2.12 readahead F
-GLIBC_2.12 readdir F
-GLIBC_2.12 readdir64 F
-GLIBC_2.12 readdir64_r F
-GLIBC_2.12 readdir_r F
-GLIBC_2.12 readlink F
-GLIBC_2.12 readlinkat F
-GLIBC_2.12 readv F
-GLIBC_2.12 realloc F
-GLIBC_2.12 realpath F
-GLIBC_2.12 reboot F
-GLIBC_2.12 recv F
-GLIBC_2.12 recvfrom F
-GLIBC_2.12 recvmmsg F
-GLIBC_2.12 recvmsg F
-GLIBC_2.12 regcomp F
-GLIBC_2.12 regerror F
-GLIBC_2.12 regexec F
-GLIBC_2.12 regfree F
-GLIBC_2.12 register_printf_function F
-GLIBC_2.12 register_printf_modifier F
-GLIBC_2.12 register_printf_specifier F
-GLIBC_2.12 register_printf_type F
-GLIBC_2.12 registerrpc F
-GLIBC_2.12 remap_file_pages F
-GLIBC_2.12 remove F
-GLIBC_2.12 removexattr F
-GLIBC_2.12 remque F
-GLIBC_2.12 rename F
-GLIBC_2.12 renameat F
-GLIBC_2.12 revoke F
-GLIBC_2.12 rewind F
-GLIBC_2.12 rewinddir F
-GLIBC_2.12 rexec F
-GLIBC_2.12 rexec_af F
-GLIBC_2.12 rexecoptions D 0x4
-GLIBC_2.12 rindex F
-GLIBC_2.12 rmdir F
-GLIBC_2.12 rpc_createerr D 0x20
-GLIBC_2.12 rpmatch F
-GLIBC_2.12 rresvport F
-GLIBC_2.12 rresvport_af F
-GLIBC_2.12 rtime F
-GLIBC_2.12 ruserok F
-GLIBC_2.12 ruserok_af F
-GLIBC_2.12 ruserpass F
-GLIBC_2.12 sbrk F
-GLIBC_2.12 scalbn F
-GLIBC_2.12 scalbnf F
-GLIBC_2.12 scalbnl F
-GLIBC_2.12 scandir F
-GLIBC_2.12 scandir64 F
-GLIBC_2.12 scanf F
-GLIBC_2.12 sched_get_priority_max F
-GLIBC_2.12 sched_get_priority_min F
-GLIBC_2.12 sched_getaffinity F
-GLIBC_2.12 sched_getcpu F
-GLIBC_2.12 sched_getparam F
-GLIBC_2.12 sched_getscheduler F
-GLIBC_2.12 sched_rr_get_interval F
-GLIBC_2.12 sched_setaffinity F
-GLIBC_2.12 sched_setparam F
-GLIBC_2.12 sched_setscheduler F
-GLIBC_2.12 sched_yield F
-GLIBC_2.12 seed48 F
-GLIBC_2.12 seed48_r F
-GLIBC_2.12 seekdir F
-GLIBC_2.12 select F
-GLIBC_2.12 semctl F
-GLIBC_2.12 semget F
-GLIBC_2.12 semop F
-GLIBC_2.12 semtimedop F
-GLIBC_2.12 send F
-GLIBC_2.12 sendfile F
-GLIBC_2.12 sendfile64 F
-GLIBC_2.12 sendmsg F
-GLIBC_2.12 sendto F
-GLIBC_2.12 set_dataplane F
-GLIBC_2.12 setaliasent F
-GLIBC_2.12 setbuf F
-GLIBC_2.12 setbuffer F
-GLIBC_2.12 setcontext F
-GLIBC_2.12 setdomainname F
-GLIBC_2.12 setegid F
-GLIBC_2.12 setenv F
-GLIBC_2.12 seteuid F
-GLIBC_2.12 setfsent F
-GLIBC_2.12 setfsgid F
-GLIBC_2.12 setfsuid F
-GLIBC_2.12 setgid F
-GLIBC_2.12 setgrent F
-GLIBC_2.12 setgroups F
-GLIBC_2.12 sethostent F
-GLIBC_2.12 sethostid F
-GLIBC_2.12 sethostname F
-GLIBC_2.12 setipv4sourcefilter F
-GLIBC_2.12 setitimer F
-GLIBC_2.12 setjmp F
-GLIBC_2.12 setlinebuf F
-GLIBC_2.12 setlocale F
-GLIBC_2.12 setlogin F
-GLIBC_2.12 setlogmask F
-GLIBC_2.12 setmntent F
-GLIBC_2.12 setnetent F
-GLIBC_2.12 setnetgrent F
-GLIBC_2.12 setpgid F
-GLIBC_2.12 setpgrp F
-GLIBC_2.12 setpriority F
-GLIBC_2.12 setprotoent F
-GLIBC_2.12 setpwent F
-GLIBC_2.12 setregid F
-GLIBC_2.12 setresgid F
-GLIBC_2.12 setresuid F
-GLIBC_2.12 setreuid F
-GLIBC_2.12 setrlimit F
-GLIBC_2.12 setrlimit64 F
-GLIBC_2.12 setrpcent F
-GLIBC_2.12 setservent F
-GLIBC_2.12 setsgent F
-GLIBC_2.12 setsid F
-GLIBC_2.12 setsockopt F
-GLIBC_2.12 setsourcefilter F
-GLIBC_2.12 setspent F
-GLIBC_2.12 setstate F
-GLIBC_2.12 setstate_r F
-GLIBC_2.12 settimeofday F
-GLIBC_2.12 setttyent F
-GLIBC_2.12 setuid F
-GLIBC_2.12 setusershell F
-GLIBC_2.12 setutent F
-GLIBC_2.12 setutxent F
-GLIBC_2.12 setvbuf F
-GLIBC_2.12 setxattr F
-GLIBC_2.12 sgetsgent F
-GLIBC_2.12 sgetsgent_r F
-GLIBC_2.12 sgetspent F
-GLIBC_2.12 sgetspent_r F
-GLIBC_2.12 shmat F
-GLIBC_2.12 shmctl F
-GLIBC_2.12 shmdt F
-GLIBC_2.12 shmget F
-GLIBC_2.12 shutdown F
-GLIBC_2.12 sigaction F
-GLIBC_2.12 sigaddset F
-GLIBC_2.12 sigaltstack F
-GLIBC_2.12 sigandset F
-GLIBC_2.12 sigblock F
-GLIBC_2.12 sigdelset F
-GLIBC_2.12 sigemptyset F
-GLIBC_2.12 sigfillset F
-GLIBC_2.12 siggetmask F
-GLIBC_2.12 sighold F
-GLIBC_2.12 sigignore F
-GLIBC_2.12 siginterrupt F
-GLIBC_2.12 sigisemptyset F
-GLIBC_2.12 sigismember F
-GLIBC_2.12 siglongjmp F
-GLIBC_2.12 signal F
-GLIBC_2.12 signalfd F
-GLIBC_2.12 sigorset F
-GLIBC_2.12 sigpause F
-GLIBC_2.12 sigpending F
-GLIBC_2.12 sigprocmask F
-GLIBC_2.12 sigqueue F
-GLIBC_2.12 sigrelse F
-GLIBC_2.12 sigreturn F
-GLIBC_2.12 sigset F
-GLIBC_2.12 sigsetmask F
-GLIBC_2.12 sigstack F
-GLIBC_2.12 sigsuspend F
-GLIBC_2.12 sigtimedwait F
-GLIBC_2.12 sigvec F
-GLIBC_2.12 sigwait F
-GLIBC_2.12 sigwaitinfo F
-GLIBC_2.12 sleep F
-GLIBC_2.12 snprintf F
-GLIBC_2.12 sockatmark F
-GLIBC_2.12 socket F
-GLIBC_2.12 socketpair F
-GLIBC_2.12 splice F
-GLIBC_2.12 sprintf F
-GLIBC_2.12 sprofil F
-GLIBC_2.12 srand F
-GLIBC_2.12 srand48 F
-GLIBC_2.12 srand48_r F
-GLIBC_2.12 srandom F
-GLIBC_2.12 srandom_r F
-GLIBC_2.12 sscanf F
-GLIBC_2.12 ssignal F
-GLIBC_2.12 sstk F
-GLIBC_2.12 statfs F
-GLIBC_2.12 statfs64 F
-GLIBC_2.12 statvfs F
-GLIBC_2.12 statvfs64 F
-GLIBC_2.12 stderr D 0x8
-GLIBC_2.12 stdin D 0x8
-GLIBC_2.12 stdout D 0x8
-GLIBC_2.12 step F
-GLIBC_2.12 stime F
-GLIBC_2.12 stpcpy F
-GLIBC_2.12 stpncpy F
-GLIBC_2.12 strcasecmp F
-GLIBC_2.12 strcasecmp_l F
-GLIBC_2.12 strcasestr F
-GLIBC_2.12 strcat F
-GLIBC_2.12 strchr F
-GLIBC_2.12 strchrnul F
-GLIBC_2.12 strcmp F
-GLIBC_2.12 strcoll F
-GLIBC_2.12 strcoll_l F
-GLIBC_2.12 strcpy F
-GLIBC_2.12 strcspn F
-GLIBC_2.12 strdup F
-GLIBC_2.12 strerror F
-GLIBC_2.12 strerror_l F
-GLIBC_2.12 strerror_r F
-GLIBC_2.12 strfmon F
-GLIBC_2.12 strfmon_l F
-GLIBC_2.12 strfry F
-GLIBC_2.12 strftime F
-GLIBC_2.12 strftime_l F
-GLIBC_2.12 strlen F
-GLIBC_2.12 strncasecmp F
-GLIBC_2.12 strncasecmp_l F
-GLIBC_2.12 strncat F
-GLIBC_2.12 strncmp F
-GLIBC_2.12 strncpy F
-GLIBC_2.12 strndup F
-GLIBC_2.12 strnlen F
-GLIBC_2.12 strpbrk F
-GLIBC_2.12 strptime F
-GLIBC_2.12 strptime_l F
-GLIBC_2.12 strrchr F
-GLIBC_2.12 strsep F
-GLIBC_2.12 strsignal F
-GLIBC_2.12 strspn F
-GLIBC_2.12 strstr F
-GLIBC_2.12 strtod F
-GLIBC_2.12 strtod_l F
-GLIBC_2.12 strtof F
-GLIBC_2.12 strtof_l F
-GLIBC_2.12 strtoimax F
-GLIBC_2.12 strtok F
-GLIBC_2.12 strtok_r F
-GLIBC_2.12 strtol F
-GLIBC_2.12 strtol_l F
-GLIBC_2.12 strtold F
-GLIBC_2.12 strtold_l F
-GLIBC_2.12 strtoll F
-GLIBC_2.12 strtoll_l F
-GLIBC_2.12 strtoq F
-GLIBC_2.12 strtoul F
-GLIBC_2.12 strtoul_l F
-GLIBC_2.12 strtoull F
-GLIBC_2.12 strtoull_l F
-GLIBC_2.12 strtoumax F
-GLIBC_2.12 strtouq F
-GLIBC_2.12 strverscmp F
-GLIBC_2.12 strxfrm F
-GLIBC_2.12 strxfrm_l F
-GLIBC_2.12 stty F
-GLIBC_2.12 svc_exit F
-GLIBC_2.12 svc_fdset D 0x80
-GLIBC_2.12 svc_getreq F
-GLIBC_2.12 svc_getreq_common F
-GLIBC_2.12 svc_getreq_poll F
-GLIBC_2.12 svc_getreqset F
-GLIBC_2.12 svc_max_pollfd D 0x4
-GLIBC_2.12 svc_pollfd D 0x8
-GLIBC_2.12 svc_register F
-GLIBC_2.12 svc_run F
-GLIBC_2.12 svc_sendreply F
-GLIBC_2.12 svc_unregister F
-GLIBC_2.12 svcauthdes_stats D 0x18
-GLIBC_2.12 svcerr_auth F
-GLIBC_2.12 svcerr_decode F
-GLIBC_2.12 svcerr_noproc F
-GLIBC_2.12 svcerr_noprog F
-GLIBC_2.12 svcerr_progvers F
-GLIBC_2.12 svcerr_systemerr F
-GLIBC_2.12 svcerr_weakauth F
-GLIBC_2.12 svcfd_create F
-GLIBC_2.12 svcraw_create F
-GLIBC_2.12 svctcp_create F
-GLIBC_2.12 svcudp_bufcreate F
-GLIBC_2.12 svcudp_create F
-GLIBC_2.12 svcudp_enablecache F
-GLIBC_2.12 svcunix_create F
-GLIBC_2.12 svcunixfd_create F
-GLIBC_2.12 swab F
-GLIBC_2.12 swapcontext F
-GLIBC_2.12 swapoff F
-GLIBC_2.12 swapon F
-GLIBC_2.12 swprintf F
-GLIBC_2.12 swscanf F
-GLIBC_2.12 symlink F
-GLIBC_2.12 symlinkat F
-GLIBC_2.12 sync F
-GLIBC_2.12 sync_file_range F
-GLIBC_2.12 sys_errlist D 0x438
-GLIBC_2.12 sys_nerr D 0x4
-GLIBC_2.12 sys_sigabbrev D 0x208
-GLIBC_2.12 sys_siglist D 0x208
-GLIBC_2.12 syscall F
-GLIBC_2.12 sysconf F
-GLIBC_2.12 sysctl F
-GLIBC_2.12 sysinfo F
-GLIBC_2.12 syslog F
-GLIBC_2.12 system F
-GLIBC_2.12 sysv_signal F
-GLIBC_2.12 tcdrain F
-GLIBC_2.12 tcflow F
-GLIBC_2.12 tcflush F
-GLIBC_2.12 tcgetattr F
-GLIBC_2.12 tcgetpgrp F
-GLIBC_2.12 tcgetsid F
-GLIBC_2.12 tcsendbreak F
-GLIBC_2.12 tcsetattr F
-GLIBC_2.12 tcsetpgrp F
-GLIBC_2.12 tdelete F
-GLIBC_2.12 tdestroy F
-GLIBC_2.12 tee F
-GLIBC_2.12 telldir F
-GLIBC_2.12 tempnam F
-GLIBC_2.12 textdomain F
-GLIBC_2.12 tfind F
-GLIBC_2.12 time F
-GLIBC_2.12 timegm F
-GLIBC_2.12 timelocal F
-GLIBC_2.12 timerfd_create F
-GLIBC_2.12 timerfd_gettime F
-GLIBC_2.12 timerfd_settime F
-GLIBC_2.12 times F
-GLIBC_2.12 timezone D 0x8
-GLIBC_2.12 tmpfile F
-GLIBC_2.12 tmpfile64 F
-GLIBC_2.12 tmpnam F
-GLIBC_2.12 tmpnam_r F
-GLIBC_2.12 toascii F
-GLIBC_2.12 tolower F
-GLIBC_2.12 tolower_l F
-GLIBC_2.12 toupper F
-GLIBC_2.12 toupper_l F
-GLIBC_2.12 towctrans F
-GLIBC_2.12 towctrans_l F
-GLIBC_2.12 towlower F
-GLIBC_2.12 towlower_l F
-GLIBC_2.12 towupper F
-GLIBC_2.12 towupper_l F
-GLIBC_2.12 tr_break F
-GLIBC_2.12 truncate F
-GLIBC_2.12 truncate64 F
-GLIBC_2.12 tsearch F
-GLIBC_2.12 ttyname F
-GLIBC_2.12 ttyname_r F
-GLIBC_2.12 ttyslot F
-GLIBC_2.12 twalk F
-GLIBC_2.12 tzname D 0x10
-GLIBC_2.12 tzset F
-GLIBC_2.12 ualarm F
-GLIBC_2.12 ulckpwdf F
-GLIBC_2.12 ulimit F
-GLIBC_2.12 umask F
-GLIBC_2.12 umount F
-GLIBC_2.12 umount2 F
-GLIBC_2.12 uname F
-GLIBC_2.12 ungetc F
-GLIBC_2.12 ungetwc F
-GLIBC_2.12 unlink F
-GLIBC_2.12 unlinkat F
-GLIBC_2.12 unlockpt F
-GLIBC_2.12 unsetenv F
-GLIBC_2.12 unshare F
-GLIBC_2.12 updwtmp F
-GLIBC_2.12 updwtmpx F
-GLIBC_2.12 uselib F
-GLIBC_2.12 uselocale F
-GLIBC_2.12 user2netname F
-GLIBC_2.12 usleep F
-GLIBC_2.12 ustat F
-GLIBC_2.12 utime F
-GLIBC_2.12 utimensat F
-GLIBC_2.12 utimes F
-GLIBC_2.12 utmpname F
-GLIBC_2.12 utmpxname F
-GLIBC_2.12 valloc F
-GLIBC_2.12 vasprintf F
-GLIBC_2.12 vdprintf F
-GLIBC_2.12 verr F
-GLIBC_2.12 verrx F
-GLIBC_2.12 versionsort F
-GLIBC_2.12 versionsort64 F
-GLIBC_2.12 vfork F
-GLIBC_2.12 vfprintf F
-GLIBC_2.12 vfscanf F
-GLIBC_2.12 vfwprintf F
-GLIBC_2.12 vfwscanf F
-GLIBC_2.12 vhangup F
-GLIBC_2.12 vlimit F
-GLIBC_2.12 vmsplice F
-GLIBC_2.12 vprintf F
-GLIBC_2.12 vscanf F
-GLIBC_2.12 vsnprintf F
-GLIBC_2.12 vsprintf F
-GLIBC_2.12 vsscanf F
-GLIBC_2.12 vswprintf F
-GLIBC_2.12 vswscanf F
-GLIBC_2.12 vsyslog F
-GLIBC_2.12 vtimes F
-GLIBC_2.12 vwarn F
-GLIBC_2.12 vwarnx F
-GLIBC_2.12 vwprintf F
-GLIBC_2.12 vwscanf F
-GLIBC_2.12 wait F
-GLIBC_2.12 wait3 F
-GLIBC_2.12 wait4 F
-GLIBC_2.12 waitid F
-GLIBC_2.12 waitpid F
-GLIBC_2.12 warn F
-GLIBC_2.12 warnx F
-GLIBC_2.12 wcpcpy F
-GLIBC_2.12 wcpncpy F
-GLIBC_2.12 wcrtomb F
-GLIBC_2.12 wcscasecmp F
-GLIBC_2.12 wcscasecmp_l F
-GLIBC_2.12 wcscat F
-GLIBC_2.12 wcschr F
-GLIBC_2.12 wcschrnul F
-GLIBC_2.12 wcscmp F
-GLIBC_2.12 wcscoll F
-GLIBC_2.12 wcscoll_l F
-GLIBC_2.12 wcscpy F
-GLIBC_2.12 wcscspn F
-GLIBC_2.12 wcsdup F
-GLIBC_2.12 wcsftime F
-GLIBC_2.12 wcsftime_l F
-GLIBC_2.12 wcslen F
-GLIBC_2.12 wcsncasecmp F
-GLIBC_2.12 wcsncasecmp_l F
-GLIBC_2.12 wcsncat F
-GLIBC_2.12 wcsncmp F
-GLIBC_2.12 wcsncpy F
-GLIBC_2.12 wcsnlen F
-GLIBC_2.12 wcsnrtombs F
-GLIBC_2.12 wcspbrk F
-GLIBC_2.12 wcsrchr F
-GLIBC_2.12 wcsrtombs F
-GLIBC_2.12 wcsspn F
-GLIBC_2.12 wcsstr F
-GLIBC_2.12 wcstod F
-GLIBC_2.12 wcstod_l F
-GLIBC_2.12 wcstof F
-GLIBC_2.12 wcstof_l F
-GLIBC_2.12 wcstoimax F
-GLIBC_2.12 wcstok F
-GLIBC_2.12 wcstol F
-GLIBC_2.12 wcstol_l F
-GLIBC_2.12 wcstold F
-GLIBC_2.12 wcstold_l F
-GLIBC_2.12 wcstoll F
-GLIBC_2.12 wcstoll_l F
-GLIBC_2.12 wcstombs F
-GLIBC_2.12 wcstoq F
-GLIBC_2.12 wcstoul F
-GLIBC_2.12 wcstoul_l F
-GLIBC_2.12 wcstoull F
-GLIBC_2.12 wcstoull_l F
-GLIBC_2.12 wcstoumax F
-GLIBC_2.12 wcstouq F
-GLIBC_2.12 wcswcs F
-GLIBC_2.12 wcswidth F
-GLIBC_2.12 wcsxfrm F
-GLIBC_2.12 wcsxfrm_l F
-GLIBC_2.12 wctob F
-GLIBC_2.12 wctomb F
-GLIBC_2.12 wctrans F
-GLIBC_2.12 wctrans_l F
-GLIBC_2.12 wctype F
-GLIBC_2.12 wctype_l F
-GLIBC_2.12 wcwidth F
-GLIBC_2.12 wmemchr F
-GLIBC_2.12 wmemcmp F
-GLIBC_2.12 wmemcpy F
-GLIBC_2.12 wmemmove F
-GLIBC_2.12 wmempcpy F
-GLIBC_2.12 wmemset F
-GLIBC_2.12 wordexp F
-GLIBC_2.12 wordfree F
-GLIBC_2.12 wprintf F
-GLIBC_2.12 write F
-GLIBC_2.12 writev F
-GLIBC_2.12 wscanf F
-GLIBC_2.12 xdecrypt F
-GLIBC_2.12 xdr_accepted_reply F
-GLIBC_2.12 xdr_array F
-GLIBC_2.12 xdr_authdes_cred F
-GLIBC_2.12 xdr_authdes_verf F
-GLIBC_2.12 xdr_authunix_parms F
-GLIBC_2.12 xdr_bool F
-GLIBC_2.12 xdr_bytes F
-GLIBC_2.12 xdr_callhdr F
-GLIBC_2.12 xdr_callmsg F
-GLIBC_2.12 xdr_char F
-GLIBC_2.12 xdr_cryptkeyarg F
-GLIBC_2.12 xdr_cryptkeyarg2 F
-GLIBC_2.12 xdr_cryptkeyres F
-GLIBC_2.12 xdr_des_block F
-GLIBC_2.12 xdr_double F
-GLIBC_2.12 xdr_enum F
-GLIBC_2.12 xdr_float F
-GLIBC_2.12 xdr_free F
-GLIBC_2.12 xdr_getcredres F
-GLIBC_2.12 xdr_hyper F
-GLIBC_2.12 xdr_int F
-GLIBC_2.12 xdr_int16_t F
-GLIBC_2.12 xdr_int32_t F
-GLIBC_2.12 xdr_int64_t F
-GLIBC_2.12 xdr_int8_t F
-GLIBC_2.12 xdr_key_netstarg F
-GLIBC_2.12 xdr_key_netstres F
-GLIBC_2.12 xdr_keybuf F
-GLIBC_2.12 xdr_keystatus F
-GLIBC_2.12 xdr_long F
-GLIBC_2.12 xdr_longlong_t F
-GLIBC_2.12 xdr_netnamestr F
-GLIBC_2.12 xdr_netobj F
-GLIBC_2.12 xdr_opaque F
-GLIBC_2.12 xdr_opaque_auth F
-GLIBC_2.12 xdr_pmap F
-GLIBC_2.12 xdr_pmaplist F
-GLIBC_2.12 xdr_pointer F
-GLIBC_2.12 xdr_quad_t F
-GLIBC_2.12 xdr_reference F
-GLIBC_2.12 xdr_rejected_reply F
-GLIBC_2.12 xdr_replymsg F
-GLIBC_2.12 xdr_rmtcall_args F
-GLIBC_2.12 xdr_rmtcallres F
-GLIBC_2.12 xdr_short F
-GLIBC_2.12 xdr_sizeof F
-GLIBC_2.12 xdr_string F
-GLIBC_2.12 xdr_u_char F
-GLIBC_2.12 xdr_u_hyper F
-GLIBC_2.12 xdr_u_int F
-GLIBC_2.12 xdr_u_long F
-GLIBC_2.12 xdr_u_longlong_t F
-GLIBC_2.12 xdr_u_quad_t F
-GLIBC_2.12 xdr_u_short F
-GLIBC_2.12 xdr_uint16_t F
-GLIBC_2.12 xdr_uint32_t F
-GLIBC_2.12 xdr_uint64_t F
-GLIBC_2.12 xdr_uint8_t F
-GLIBC_2.12 xdr_union F
-GLIBC_2.12 xdr_unixcred F
-GLIBC_2.12 xdr_vector F
-GLIBC_2.12 xdr_void F
-GLIBC_2.12 xdr_wrapstring F
-GLIBC_2.12 xdrmem_create F
-GLIBC_2.12 xdrrec_create F
-GLIBC_2.12 xdrrec_endofrecord F
-GLIBC_2.12 xdrrec_eof F
-GLIBC_2.12 xdrrec_skiprecord F
-GLIBC_2.12 xdrstdio_create F
-GLIBC_2.12 xencrypt F
-GLIBC_2.12 xprt_register F
-GLIBC_2.12 xprt_unregister F
-GLIBC_2.15 GLIBC_2.15 A
-GLIBC_2.15 __fdelt_chk F
-GLIBC_2.15 __fdelt_warn F
-GLIBC_2.15 clock_adjtime F
-GLIBC_2.15 fanotify_init F
-GLIBC_2.15 fanotify_mark F
-GLIBC_2.15 name_to_handle_at F
-GLIBC_2.15 open_by_handle_at F
-GLIBC_2.15 posix_spawn F
-GLIBC_2.15 posix_spawnp F
-GLIBC_2.15 prlimit F
-GLIBC_2.15 prlimit64 F
-GLIBC_2.15 process_vm_readv F
-GLIBC_2.15 process_vm_writev F
-GLIBC_2.15 scandirat F
-GLIBC_2.15 scandirat64 F
-GLIBC_2.15 sendmmsg F
-GLIBC_2.15 setns F
-GLIBC_2.15 syncfs F
-GLIBC_2.16 GLIBC_2.16 A
-GLIBC_2.16 __getauxval F
-GLIBC_2.16 __poll_chk F
-GLIBC_2.16 __ppoll_chk F
-GLIBC_2.16 aligned_alloc F
-GLIBC_2.16 c16rtomb F
-GLIBC_2.16 c32rtomb F
-GLIBC_2.16 getauxval F
-GLIBC_2.16 mbrtoc16 F
-GLIBC_2.16 mbrtoc32 F
-GLIBC_2.16 timespec_get F
-GLIBC_2.17 GLIBC_2.17 A
-GLIBC_2.17 clock_getcpuclockid F
-GLIBC_2.17 clock_getres F
-GLIBC_2.17 clock_gettime F
-GLIBC_2.17 clock_nanosleep F
-GLIBC_2.17 clock_settime F
-GLIBC_2.17 secure_getenv F
-GLIBC_2.18 GLIBC_2.18 A
-GLIBC_2.18 __cxa_thread_atexit_impl F
-GLIBC_2.22 GLIBC_2.22 A
-GLIBC_2.22 fmemopen F
-GLIBC_2.23 GLIBC_2.23 A
-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 GLIBC_2.24 A
-GLIBC_2.24 quick_exit F
-GLIBC_2.25 GLIBC_2.25 A
-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 GLIBC_2.26 A
-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 GLIBC_2.27 A
-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
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/libcrypt.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libcrypt.abilist
deleted file mode 100644
index d564380..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/libcrypt.abilist
+++ /dev/null
@@ -1,8 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 crypt F
-GLIBC_2.12 crypt_r F
-GLIBC_2.12 encrypt F
-GLIBC_2.12 encrypt_r F
-GLIBC_2.12 fcrypt F
-GLIBC_2.12 setkey F
-GLIBC_2.12 setkey_r F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/libdl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libdl.abilist
deleted file mode 100644
index cabc30c..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/libdl.abilist
+++ /dev/null
@@ -1,10 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 dladdr F
-GLIBC_2.12 dladdr1 F
-GLIBC_2.12 dlclose F
-GLIBC_2.12 dlerror F
-GLIBC_2.12 dlinfo F
-GLIBC_2.12 dlmopen F
-GLIBC_2.12 dlopen F
-GLIBC_2.12 dlsym F
-GLIBC_2.12 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist
deleted file mode 100644
index 73ceb5a..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist
+++ /dev/null
@@ -1,762 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 _LIB_VERSION D 0x4
-GLIBC_2.12 __clog10 F
-GLIBC_2.12 __clog10f F
-GLIBC_2.12 __clog10l F
-GLIBC_2.12 __finite F
-GLIBC_2.12 __finitef F
-GLIBC_2.12 __fpclassify F
-GLIBC_2.12 __fpclassifyf F
-GLIBC_2.12 __signbit F
-GLIBC_2.12 __signbitf F
-GLIBC_2.12 acos F
-GLIBC_2.12 acosf F
-GLIBC_2.12 acosh F
-GLIBC_2.12 acoshf F
-GLIBC_2.12 acoshl F
-GLIBC_2.12 acosl F
-GLIBC_2.12 asin F
-GLIBC_2.12 asinf F
-GLIBC_2.12 asinh F
-GLIBC_2.12 asinhf F
-GLIBC_2.12 asinhl F
-GLIBC_2.12 asinl F
-GLIBC_2.12 atan F
-GLIBC_2.12 atan2 F
-GLIBC_2.12 atan2f F
-GLIBC_2.12 atan2l F
-GLIBC_2.12 atanf F
-GLIBC_2.12 atanh F
-GLIBC_2.12 atanhf F
-GLIBC_2.12 atanhl F
-GLIBC_2.12 atanl F
-GLIBC_2.12 cabs F
-GLIBC_2.12 cabsf F
-GLIBC_2.12 cabsl F
-GLIBC_2.12 cacos F
-GLIBC_2.12 cacosf F
-GLIBC_2.12 cacosh F
-GLIBC_2.12 cacoshf F
-GLIBC_2.12 cacoshl F
-GLIBC_2.12 cacosl F
-GLIBC_2.12 carg F
-GLIBC_2.12 cargf F
-GLIBC_2.12 cargl F
-GLIBC_2.12 casin F
-GLIBC_2.12 casinf F
-GLIBC_2.12 casinh F
-GLIBC_2.12 casinhf F
-GLIBC_2.12 casinhl F
-GLIBC_2.12 casinl F
-GLIBC_2.12 catan F
-GLIBC_2.12 catanf F
-GLIBC_2.12 catanh F
-GLIBC_2.12 catanhf F
-GLIBC_2.12 catanhl F
-GLIBC_2.12 catanl F
-GLIBC_2.12 cbrt F
-GLIBC_2.12 cbrtf F
-GLIBC_2.12 cbrtl F
-GLIBC_2.12 ccos F
-GLIBC_2.12 ccosf F
-GLIBC_2.12 ccosh F
-GLIBC_2.12 ccoshf F
-GLIBC_2.12 ccoshl F
-GLIBC_2.12 ccosl F
-GLIBC_2.12 ceil F
-GLIBC_2.12 ceilf F
-GLIBC_2.12 ceill F
-GLIBC_2.12 cexp F
-GLIBC_2.12 cexpf F
-GLIBC_2.12 cexpl F
-GLIBC_2.12 cimag F
-GLIBC_2.12 cimagf F
-GLIBC_2.12 cimagl F
-GLIBC_2.12 clog F
-GLIBC_2.12 clog10 F
-GLIBC_2.12 clog10f F
-GLIBC_2.12 clog10l F
-GLIBC_2.12 clogf F
-GLIBC_2.12 clogl F
-GLIBC_2.12 conj F
-GLIBC_2.12 conjf F
-GLIBC_2.12 conjl F
-GLIBC_2.12 copysign F
-GLIBC_2.12 copysignf F
-GLIBC_2.12 copysignl F
-GLIBC_2.12 cos F
-GLIBC_2.12 cosf F
-GLIBC_2.12 cosh F
-GLIBC_2.12 coshf F
-GLIBC_2.12 coshl F
-GLIBC_2.12 cosl F
-GLIBC_2.12 cpow F
-GLIBC_2.12 cpowf F
-GLIBC_2.12 cpowl F
-GLIBC_2.12 cproj F
-GLIBC_2.12 cprojf F
-GLIBC_2.12 cprojl F
-GLIBC_2.12 creal F
-GLIBC_2.12 crealf F
-GLIBC_2.12 creall F
-GLIBC_2.12 csin F
-GLIBC_2.12 csinf F
-GLIBC_2.12 csinh F
-GLIBC_2.12 csinhf F
-GLIBC_2.12 csinhl F
-GLIBC_2.12 csinl F
-GLIBC_2.12 csqrt F
-GLIBC_2.12 csqrtf F
-GLIBC_2.12 csqrtl F
-GLIBC_2.12 ctan F
-GLIBC_2.12 ctanf F
-GLIBC_2.12 ctanh F
-GLIBC_2.12 ctanhf F
-GLIBC_2.12 ctanhl F
-GLIBC_2.12 ctanl F
-GLIBC_2.12 drem F
-GLIBC_2.12 dremf F
-GLIBC_2.12 dreml F
-GLIBC_2.12 erf F
-GLIBC_2.12 erfc F
-GLIBC_2.12 erfcf F
-GLIBC_2.12 erfcl F
-GLIBC_2.12 erff F
-GLIBC_2.12 erfl F
-GLIBC_2.12 exp F
-GLIBC_2.12 exp10 F
-GLIBC_2.12 exp10f F
-GLIBC_2.12 exp10l F
-GLIBC_2.12 exp2 F
-GLIBC_2.12 exp2f F
-GLIBC_2.12 exp2l F
-GLIBC_2.12 expf F
-GLIBC_2.12 expl F
-GLIBC_2.12 expm1 F
-GLIBC_2.12 expm1f F
-GLIBC_2.12 expm1l F
-GLIBC_2.12 fabs F
-GLIBC_2.12 fabsf F
-GLIBC_2.12 fabsl F
-GLIBC_2.12 fdim F
-GLIBC_2.12 fdimf F
-GLIBC_2.12 fdiml F
-GLIBC_2.12 feclearexcept F
-GLIBC_2.12 fedisableexcept F
-GLIBC_2.12 feenableexcept F
-GLIBC_2.12 fegetenv F
-GLIBC_2.12 fegetexcept F
-GLIBC_2.12 fegetexceptflag F
-GLIBC_2.12 fegetround F
-GLIBC_2.12 feholdexcept F
-GLIBC_2.12 feraiseexcept F
-GLIBC_2.12 fesetenv F
-GLIBC_2.12 fesetexceptflag F
-GLIBC_2.12 fesetround F
-GLIBC_2.12 fetestexcept F
-GLIBC_2.12 feupdateenv F
-GLIBC_2.12 finite F
-GLIBC_2.12 finitef F
-GLIBC_2.12 finitel F
-GLIBC_2.12 floor F
-GLIBC_2.12 floorf F
-GLIBC_2.12 floorl F
-GLIBC_2.12 fma F
-GLIBC_2.12 fmaf F
-GLIBC_2.12 fmal F
-GLIBC_2.12 fmax F
-GLIBC_2.12 fmaxf F
-GLIBC_2.12 fmaxl F
-GLIBC_2.12 fmin F
-GLIBC_2.12 fminf F
-GLIBC_2.12 fminl F
-GLIBC_2.12 fmod F
-GLIBC_2.12 fmodf F
-GLIBC_2.12 fmodl F
-GLIBC_2.12 frexp F
-GLIBC_2.12 frexpf F
-GLIBC_2.12 frexpl F
-GLIBC_2.12 gamma F
-GLIBC_2.12 gammaf F
-GLIBC_2.12 gammal F
-GLIBC_2.12 hypot F
-GLIBC_2.12 hypotf F
-GLIBC_2.12 hypotl F
-GLIBC_2.12 ilogb F
-GLIBC_2.12 ilogbf F
-GLIBC_2.12 ilogbl F
-GLIBC_2.12 j0 F
-GLIBC_2.12 j0f F
-GLIBC_2.12 j0l F
-GLIBC_2.12 j1 F
-GLIBC_2.12 j1f F
-GLIBC_2.12 j1l F
-GLIBC_2.12 jn F
-GLIBC_2.12 jnf F
-GLIBC_2.12 jnl F
-GLIBC_2.12 ldexp F
-GLIBC_2.12 ldexpf F
-GLIBC_2.12 ldexpl F
-GLIBC_2.12 lgamma F
-GLIBC_2.12 lgamma_r F
-GLIBC_2.12 lgammaf F
-GLIBC_2.12 lgammaf_r F
-GLIBC_2.12 lgammal F
-GLIBC_2.12 lgammal_r F
-GLIBC_2.12 llrint F
-GLIBC_2.12 llrintf F
-GLIBC_2.12 llrintl F
-GLIBC_2.12 llround F
-GLIBC_2.12 llroundf F
-GLIBC_2.12 llroundl F
-GLIBC_2.12 log F
-GLIBC_2.12 log10 F
-GLIBC_2.12 log10f F
-GLIBC_2.12 log10l F
-GLIBC_2.12 log1p F
-GLIBC_2.12 log1pf F
-GLIBC_2.12 log1pl F
-GLIBC_2.12 log2 F
-GLIBC_2.12 log2f F
-GLIBC_2.12 log2l F
-GLIBC_2.12 logb F
-GLIBC_2.12 logbf F
-GLIBC_2.12 logbl F
-GLIBC_2.12 logf F
-GLIBC_2.12 logl F
-GLIBC_2.12 lrint F
-GLIBC_2.12 lrintf F
-GLIBC_2.12 lrintl F
-GLIBC_2.12 lround F
-GLIBC_2.12 lroundf F
-GLIBC_2.12 lroundl F
-GLIBC_2.12 matherr F
-GLIBC_2.12 modf F
-GLIBC_2.12 modff F
-GLIBC_2.12 modfl F
-GLIBC_2.12 nan F
-GLIBC_2.12 nanf F
-GLIBC_2.12 nanl F
-GLIBC_2.12 nearbyint F
-GLIBC_2.12 nearbyintf F
-GLIBC_2.12 nearbyintl F
-GLIBC_2.12 nextafter F
-GLIBC_2.12 nextafterf F
-GLIBC_2.12 nextafterl F
-GLIBC_2.12 nexttoward F
-GLIBC_2.12 nexttowardf F
-GLIBC_2.12 nexttowardl F
-GLIBC_2.12 pow F
-GLIBC_2.12 pow10 F
-GLIBC_2.12 pow10f F
-GLIBC_2.12 pow10l F
-GLIBC_2.12 powf F
-GLIBC_2.12 powl F
-GLIBC_2.12 remainder F
-GLIBC_2.12 remainderf F
-GLIBC_2.12 remainderl F
-GLIBC_2.12 remquo F
-GLIBC_2.12 remquof F
-GLIBC_2.12 remquol F
-GLIBC_2.12 rint F
-GLIBC_2.12 rintf F
-GLIBC_2.12 rintl F
-GLIBC_2.12 round F
-GLIBC_2.12 roundf F
-GLIBC_2.12 roundl F
-GLIBC_2.12 scalb F
-GLIBC_2.12 scalbf F
-GLIBC_2.12 scalbl F
-GLIBC_2.12 scalbln F
-GLIBC_2.12 scalblnf F
-GLIBC_2.12 scalblnl F
-GLIBC_2.12 scalbn F
-GLIBC_2.12 scalbnf F
-GLIBC_2.12 scalbnl F
-GLIBC_2.12 signgam D 0x4
-GLIBC_2.12 significand F
-GLIBC_2.12 significandf F
-GLIBC_2.12 significandl F
-GLIBC_2.12 sin F
-GLIBC_2.12 sincos F
-GLIBC_2.12 sincosf F
-GLIBC_2.12 sincosl F
-GLIBC_2.12 sinf F
-GLIBC_2.12 sinh F
-GLIBC_2.12 sinhf F
-GLIBC_2.12 sinhl F
-GLIBC_2.12 sinl F
-GLIBC_2.12 sqrt F
-GLIBC_2.12 sqrtf F
-GLIBC_2.12 sqrtl F
-GLIBC_2.12 tan F
-GLIBC_2.12 tanf F
-GLIBC_2.12 tanh F
-GLIBC_2.12 tanhf F
-GLIBC_2.12 tanhl F
-GLIBC_2.12 tanl F
-GLIBC_2.12 tgamma F
-GLIBC_2.12 tgammaf F
-GLIBC_2.12 tgammal F
-GLIBC_2.12 trunc F
-GLIBC_2.12 truncf F
-GLIBC_2.12 truncl F
-GLIBC_2.12 y0 F
-GLIBC_2.12 y0f F
-GLIBC_2.12 y0l F
-GLIBC_2.12 y1 F
-GLIBC_2.12 y1f F
-GLIBC_2.12 y1l F
-GLIBC_2.12 yn F
-GLIBC_2.12 ynf F
-GLIBC_2.12 ynl F
-GLIBC_2.15 GLIBC_2.15 A
-GLIBC_2.15 __acos_finite F
-GLIBC_2.15 __acosf_finite F
-GLIBC_2.15 __acosh_finite F
-GLIBC_2.15 __acoshf_finite F
-GLIBC_2.15 __asin_finite F
-GLIBC_2.15 __asinf_finite F
-GLIBC_2.15 __atan2_finite F
-GLIBC_2.15 __atan2f_finite F
-GLIBC_2.15 __atanh_finite F
-GLIBC_2.15 __atanhf_finite F
-GLIBC_2.15 __cosh_finite F
-GLIBC_2.15 __coshf_finite F
-GLIBC_2.15 __exp10_finite F
-GLIBC_2.15 __exp10f_finite F
-GLIBC_2.15 __exp2_finite F
-GLIBC_2.15 __exp2f_finite F
-GLIBC_2.15 __exp_finite F
-GLIBC_2.15 __expf_finite F
-GLIBC_2.15 __fmod_finite F
-GLIBC_2.15 __fmodf_finite F
-GLIBC_2.15 __gamma_r_finite F
-GLIBC_2.15 __gammaf_r_finite F
-GLIBC_2.15 __hypot_finite F
-GLIBC_2.15 __hypotf_finite F
-GLIBC_2.15 __j0_finite F
-GLIBC_2.15 __j0f_finite F
-GLIBC_2.15 __j1_finite F
-GLIBC_2.15 __j1f_finite F
-GLIBC_2.15 __jn_finite F
-GLIBC_2.15 __jnf_finite F
-GLIBC_2.15 __lgamma_r_finite F
-GLIBC_2.15 __lgammaf_r_finite F
-GLIBC_2.15 __log10_finite F
-GLIBC_2.15 __log10f_finite F
-GLIBC_2.15 __log2_finite F
-GLIBC_2.15 __log2f_finite F
-GLIBC_2.15 __log_finite F
-GLIBC_2.15 __logf_finite F
-GLIBC_2.15 __pow_finite F
-GLIBC_2.15 __powf_finite F
-GLIBC_2.15 __remainder_finite F
-GLIBC_2.15 __remainderf_finite F
-GLIBC_2.15 __scalb_finite F
-GLIBC_2.15 __scalbf_finite F
-GLIBC_2.15 __sinh_finite F
-GLIBC_2.15 __sinhf_finite F
-GLIBC_2.15 __sqrt_finite F
-GLIBC_2.15 __sqrtf_finite F
-GLIBC_2.15 __y0_finite F
-GLIBC_2.15 __y0f_finite F
-GLIBC_2.15 __y1_finite F
-GLIBC_2.15 __y1f_finite F
-GLIBC_2.15 __yn_finite F
-GLIBC_2.15 __ynf_finite F
-GLIBC_2.18 GLIBC_2.18 A
-GLIBC_2.18 __issignaling F
-GLIBC_2.18 __issignalingf F
-GLIBC_2.23 GLIBC_2.23 A
-GLIBC_2.23 __signgam D 0x4
-GLIBC_2.23 lgamma F
-GLIBC_2.23 lgammaf F
-GLIBC_2.23 lgammal F
-GLIBC_2.24 GLIBC_2.24 A
-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 GLIBC_2.25 A
-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 GLIBC_2.27 A
-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 GLIBC_2.28 A
-GLIBC_2.28 daddl F
-GLIBC_2.28 dsubl F
-GLIBC_2.28 f32addf32x F
-GLIBC_2.28 f32addf64 F
-GLIBC_2.28 f32subf32x F
-GLIBC_2.28 f32subf64 F
-GLIBC_2.28 f32xaddf64 F
-GLIBC_2.28 f32xsubf64 F
-GLIBC_2.28 fadd F
-GLIBC_2.28 faddl F
-GLIBC_2.28 fsub F
-GLIBC_2.28 fsubl F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/libnsl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libnsl.abilist
deleted file mode 100644
index 0277e5c..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/libnsl.abilist
+++ /dev/null
@@ -1,122 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 __free_fdresult F
-GLIBC_2.12 __nis_default_access F
-GLIBC_2.12 __nis_default_group F
-GLIBC_2.12 __nis_default_owner F
-GLIBC_2.12 __nis_default_ttl F
-GLIBC_2.12 __nis_finddirectory F
-GLIBC_2.12 __nis_hash F
-GLIBC_2.12 __nisbind_connect F
-GLIBC_2.12 __nisbind_create F
-GLIBC_2.12 __nisbind_destroy F
-GLIBC_2.12 __nisbind_next F
-GLIBC_2.12 __yp_check F
-GLIBC_2.12 nis_add F
-GLIBC_2.12 nis_add_entry F
-GLIBC_2.12 nis_addmember F
-GLIBC_2.12 nis_checkpoint F
-GLIBC_2.12 nis_clone_directory F
-GLIBC_2.12 nis_clone_object F
-GLIBC_2.12 nis_clone_result F
-GLIBC_2.12 nis_creategroup F
-GLIBC_2.12 nis_destroy_object F
-GLIBC_2.12 nis_destroygroup F
-GLIBC_2.12 nis_dir_cmp F
-GLIBC_2.12 nis_domain_of F
-GLIBC_2.12 nis_domain_of_r F
-GLIBC_2.12 nis_first_entry F
-GLIBC_2.12 nis_free_directory F
-GLIBC_2.12 nis_free_object F
-GLIBC_2.12 nis_free_request F
-GLIBC_2.12 nis_freenames F
-GLIBC_2.12 nis_freeresult F
-GLIBC_2.12 nis_freeservlist F
-GLIBC_2.12 nis_freetags F
-GLIBC_2.12 nis_getnames F
-GLIBC_2.12 nis_getservlist F
-GLIBC_2.12 nis_ismember F
-GLIBC_2.12 nis_leaf_of F
-GLIBC_2.12 nis_leaf_of_r F
-GLIBC_2.12 nis_lerror F
-GLIBC_2.12 nis_list F
-GLIBC_2.12 nis_local_directory F
-GLIBC_2.12 nis_local_group F
-GLIBC_2.12 nis_local_host F
-GLIBC_2.12 nis_local_principal F
-GLIBC_2.12 nis_lookup F
-GLIBC_2.12 nis_mkdir F
-GLIBC_2.12 nis_modify F
-GLIBC_2.12 nis_modify_entry F
-GLIBC_2.12 nis_name_of F
-GLIBC_2.12 nis_name_of_r F
-GLIBC_2.12 nis_next_entry F
-GLIBC_2.12 nis_perror F
-GLIBC_2.12 nis_ping F
-GLIBC_2.12 nis_print_directory F
-GLIBC_2.12 nis_print_entry F
-GLIBC_2.12 nis_print_group F
-GLIBC_2.12 nis_print_group_entry F
-GLIBC_2.12 nis_print_link F
-GLIBC_2.12 nis_print_object F
-GLIBC_2.12 nis_print_result F
-GLIBC_2.12 nis_print_rights F
-GLIBC_2.12 nis_print_table F
-GLIBC_2.12 nis_read_obj F
-GLIBC_2.12 nis_remove F
-GLIBC_2.12 nis_remove_entry F
-GLIBC_2.12 nis_removemember F
-GLIBC_2.12 nis_rmdir F
-GLIBC_2.12 nis_servstate F
-GLIBC_2.12 nis_sperrno F
-GLIBC_2.12 nis_sperror F
-GLIBC_2.12 nis_sperror_r F
-GLIBC_2.12 nis_stats F
-GLIBC_2.12 nis_verifygroup F
-GLIBC_2.12 nis_write_obj F
-GLIBC_2.12 readColdStartFile F
-GLIBC_2.12 writeColdStartFile F
-GLIBC_2.12 xdr_cback_data F
-GLIBC_2.12 xdr_domainname F
-GLIBC_2.12 xdr_keydat F
-GLIBC_2.12 xdr_mapname F
-GLIBC_2.12 xdr_obj_p F
-GLIBC_2.12 xdr_peername F
-GLIBC_2.12 xdr_valdat F
-GLIBC_2.12 xdr_yp_buf F
-GLIBC_2.12 xdr_ypall F
-GLIBC_2.12 xdr_ypbind_binding F
-GLIBC_2.12 xdr_ypbind_resp F
-GLIBC_2.12 xdr_ypbind_resptype F
-GLIBC_2.12 xdr_ypbind_setdom F
-GLIBC_2.12 xdr_ypdelete_args F
-GLIBC_2.12 xdr_ypmap_parms F
-GLIBC_2.12 xdr_ypmaplist F
-GLIBC_2.12 xdr_yppush_status F
-GLIBC_2.12 xdr_yppushresp_xfr F
-GLIBC_2.12 xdr_ypreq_key F
-GLIBC_2.12 xdr_ypreq_nokey F
-GLIBC_2.12 xdr_ypreq_xfr F
-GLIBC_2.12 xdr_ypresp_all F
-GLIBC_2.12 xdr_ypresp_key_val F
-GLIBC_2.12 xdr_ypresp_maplist F
-GLIBC_2.12 xdr_ypresp_master F
-GLIBC_2.12 xdr_ypresp_order F
-GLIBC_2.12 xdr_ypresp_val F
-GLIBC_2.12 xdr_ypresp_xfr F
-GLIBC_2.12 xdr_ypstat F
-GLIBC_2.12 xdr_ypupdate_args F
-GLIBC_2.12 xdr_ypxfrstat F
-GLIBC_2.12 yp_all F
-GLIBC_2.12 yp_bind F
-GLIBC_2.12 yp_first F
-GLIBC_2.12 yp_get_default_domain F
-GLIBC_2.12 yp_maplist F
-GLIBC_2.12 yp_master F
-GLIBC_2.12 yp_match F
-GLIBC_2.12 yp_next F
-GLIBC_2.12 yp_order F
-GLIBC_2.12 yp_unbind F
-GLIBC_2.12 yp_update F
-GLIBC_2.12 ypbinderr_string F
-GLIBC_2.12 yperr_string F
-GLIBC_2.12 ypprot_err F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/libpthread.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libpthread.abilist
deleted file mode 100644
index d16158f..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/libpthread.abilist
+++ /dev/null
@@ -1,226 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 _IO_flockfile F
-GLIBC_2.12 _IO_ftrylockfile F
-GLIBC_2.12 _IO_funlockfile F
-GLIBC_2.12 __close F
-GLIBC_2.12 __connect F
-GLIBC_2.12 __errno_location F
-GLIBC_2.12 __fcntl F
-GLIBC_2.12 __fork F
-GLIBC_2.12 __h_errno_location F
-GLIBC_2.12 __libc_allocate_rtsig F
-GLIBC_2.12 __libc_current_sigrtmax F
-GLIBC_2.12 __libc_current_sigrtmin F
-GLIBC_2.12 __lseek F
-GLIBC_2.12 __nanosleep F
-GLIBC_2.12 __open F
-GLIBC_2.12 __open64 F
-GLIBC_2.12 __pread64 F
-GLIBC_2.12 __pthread_cleanup_routine F
-GLIBC_2.12 __pthread_getspecific F
-GLIBC_2.12 __pthread_key_create F
-GLIBC_2.12 __pthread_mutex_destroy F
-GLIBC_2.12 __pthread_mutex_init F
-GLIBC_2.12 __pthread_mutex_lock F
-GLIBC_2.12 __pthread_mutex_trylock F
-GLIBC_2.12 __pthread_mutex_unlock F
-GLIBC_2.12 __pthread_mutexattr_destroy F
-GLIBC_2.12 __pthread_mutexattr_init F
-GLIBC_2.12 __pthread_mutexattr_settype F
-GLIBC_2.12 __pthread_once F
-GLIBC_2.12 __pthread_register_cancel F
-GLIBC_2.12 __pthread_register_cancel_defer F
-GLIBC_2.12 __pthread_rwlock_destroy F
-GLIBC_2.12 __pthread_rwlock_init F
-GLIBC_2.12 __pthread_rwlock_rdlock F
-GLIBC_2.12 __pthread_rwlock_tryrdlock F
-GLIBC_2.12 __pthread_rwlock_trywrlock F
-GLIBC_2.12 __pthread_rwlock_unlock F
-GLIBC_2.12 __pthread_rwlock_wrlock F
-GLIBC_2.12 __pthread_setspecific F
-GLIBC_2.12 __pthread_unregister_cancel F
-GLIBC_2.12 __pthread_unregister_cancel_restore F
-GLIBC_2.12 __pthread_unwind_next F
-GLIBC_2.12 __pwrite64 F
-GLIBC_2.12 __read F
-GLIBC_2.12 __res_state F
-GLIBC_2.12 __send F
-GLIBC_2.12 __sigaction F
-GLIBC_2.12 __vfork F
-GLIBC_2.12 __wait F
-GLIBC_2.12 __write F
-GLIBC_2.12 _pthread_cleanup_pop F
-GLIBC_2.12 _pthread_cleanup_pop_restore F
-GLIBC_2.12 _pthread_cleanup_push F
-GLIBC_2.12 _pthread_cleanup_push_defer F
-GLIBC_2.12 accept F
-GLIBC_2.12 close F
-GLIBC_2.12 connect F
-GLIBC_2.12 fcntl F
-GLIBC_2.12 flockfile F
-GLIBC_2.12 fork F
-GLIBC_2.12 fsync F
-GLIBC_2.12 ftrylockfile F
-GLIBC_2.12 funlockfile F
-GLIBC_2.12 longjmp F
-GLIBC_2.12 lseek F
-GLIBC_2.12 lseek64 F
-GLIBC_2.12 msync F
-GLIBC_2.12 nanosleep F
-GLIBC_2.12 open F
-GLIBC_2.12 open64 F
-GLIBC_2.12 pause F
-GLIBC_2.12 pread F
-GLIBC_2.12 pread64 F
-GLIBC_2.12 pthread_attr_destroy F
-GLIBC_2.12 pthread_attr_getaffinity_np F
-GLIBC_2.12 pthread_attr_getdetachstate F
-GLIBC_2.12 pthread_attr_getguardsize F
-GLIBC_2.12 pthread_attr_getinheritsched F
-GLIBC_2.12 pthread_attr_getschedparam F
-GLIBC_2.12 pthread_attr_getschedpolicy F
-GLIBC_2.12 pthread_attr_getscope F
-GLIBC_2.12 pthread_attr_getstack F
-GLIBC_2.12 pthread_attr_getstackaddr F
-GLIBC_2.12 pthread_attr_getstacksize F
-GLIBC_2.12 pthread_attr_init F
-GLIBC_2.12 pthread_attr_setaffinity_np F
-GLIBC_2.12 pthread_attr_setdetachstate F
-GLIBC_2.12 pthread_attr_setguardsize F
-GLIBC_2.12 pthread_attr_setinheritsched F
-GLIBC_2.12 pthread_attr_setschedparam F
-GLIBC_2.12 pthread_attr_setschedpolicy F
-GLIBC_2.12 pthread_attr_setscope F
-GLIBC_2.12 pthread_attr_setstack F
-GLIBC_2.12 pthread_attr_setstackaddr F
-GLIBC_2.12 pthread_attr_setstacksize F
-GLIBC_2.12 pthread_barrier_destroy F
-GLIBC_2.12 pthread_barrier_init F
-GLIBC_2.12 pthread_barrier_wait F
-GLIBC_2.12 pthread_barrierattr_destroy F
-GLIBC_2.12 pthread_barrierattr_getpshared F
-GLIBC_2.12 pthread_barrierattr_init F
-GLIBC_2.12 pthread_barrierattr_setpshared F
-GLIBC_2.12 pthread_cancel F
-GLIBC_2.12 pthread_cond_broadcast F
-GLIBC_2.12 pthread_cond_destroy F
-GLIBC_2.12 pthread_cond_init F
-GLIBC_2.12 pthread_cond_signal F
-GLIBC_2.12 pthread_cond_timedwait F
-GLIBC_2.12 pthread_cond_wait F
-GLIBC_2.12 pthread_condattr_destroy F
-GLIBC_2.12 pthread_condattr_getclock F
-GLIBC_2.12 pthread_condattr_getpshared F
-GLIBC_2.12 pthread_condattr_init F
-GLIBC_2.12 pthread_condattr_setclock F
-GLIBC_2.12 pthread_condattr_setpshared F
-GLIBC_2.12 pthread_create F
-GLIBC_2.12 pthread_detach F
-GLIBC_2.12 pthread_equal F
-GLIBC_2.12 pthread_exit F
-GLIBC_2.12 pthread_getaffinity_np F
-GLIBC_2.12 pthread_getattr_np F
-GLIBC_2.12 pthread_getconcurrency F
-GLIBC_2.12 pthread_getcpuclockid F
-GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_getschedparam F
-GLIBC_2.12 pthread_getspecific F
-GLIBC_2.12 pthread_join F
-GLIBC_2.12 pthread_key_create F
-GLIBC_2.12 pthread_key_delete F
-GLIBC_2.12 pthread_kill F
-GLIBC_2.12 pthread_kill_other_threads_np F
-GLIBC_2.12 pthread_mutex_consistent F
-GLIBC_2.12 pthread_mutex_consistent_np F
-GLIBC_2.12 pthread_mutex_destroy F
-GLIBC_2.12 pthread_mutex_getprioceiling F
-GLIBC_2.12 pthread_mutex_init F
-GLIBC_2.12 pthread_mutex_lock F
-GLIBC_2.12 pthread_mutex_setprioceiling F
-GLIBC_2.12 pthread_mutex_timedlock F
-GLIBC_2.12 pthread_mutex_trylock F
-GLIBC_2.12 pthread_mutex_unlock F
-GLIBC_2.12 pthread_mutexattr_destroy F
-GLIBC_2.12 pthread_mutexattr_getkind_np F
-GLIBC_2.12 pthread_mutexattr_getprioceiling F
-GLIBC_2.12 pthread_mutexattr_getprotocol F
-GLIBC_2.12 pthread_mutexattr_getpshared F
-GLIBC_2.12 pthread_mutexattr_getrobust F
-GLIBC_2.12 pthread_mutexattr_getrobust_np F
-GLIBC_2.12 pthread_mutexattr_gettype F
-GLIBC_2.12 pthread_mutexattr_init F
-GLIBC_2.12 pthread_mutexattr_setkind_np F
-GLIBC_2.12 pthread_mutexattr_setprioceiling F
-GLIBC_2.12 pthread_mutexattr_setprotocol F
-GLIBC_2.12 pthread_mutexattr_setpshared F
-GLIBC_2.12 pthread_mutexattr_setrobust F
-GLIBC_2.12 pthread_mutexattr_setrobust_np F
-GLIBC_2.12 pthread_mutexattr_settype F
-GLIBC_2.12 pthread_once F
-GLIBC_2.12 pthread_rwlock_destroy F
-GLIBC_2.12 pthread_rwlock_init F
-GLIBC_2.12 pthread_rwlock_rdlock F
-GLIBC_2.12 pthread_rwlock_timedrdlock F
-GLIBC_2.12 pthread_rwlock_timedwrlock F
-GLIBC_2.12 pthread_rwlock_tryrdlock F
-GLIBC_2.12 pthread_rwlock_trywrlock F
-GLIBC_2.12 pthread_rwlock_unlock F
-GLIBC_2.12 pthread_rwlock_wrlock F
-GLIBC_2.12 pthread_rwlockattr_destroy F
-GLIBC_2.12 pthread_rwlockattr_getkind_np F
-GLIBC_2.12 pthread_rwlockattr_getpshared F
-GLIBC_2.12 pthread_rwlockattr_init F
-GLIBC_2.12 pthread_rwlockattr_setkind_np F
-GLIBC_2.12 pthread_rwlockattr_setpshared F
-GLIBC_2.12 pthread_self F
-GLIBC_2.12 pthread_setaffinity_np F
-GLIBC_2.12 pthread_setcancelstate F
-GLIBC_2.12 pthread_setcanceltype F
-GLIBC_2.12 pthread_setconcurrency F
-GLIBC_2.12 pthread_setname_np F
-GLIBC_2.12 pthread_setschedparam F
-GLIBC_2.12 pthread_setschedprio F
-GLIBC_2.12 pthread_setspecific F
-GLIBC_2.12 pthread_sigmask F
-GLIBC_2.12 pthread_sigqueue F
-GLIBC_2.12 pthread_spin_destroy F
-GLIBC_2.12 pthread_spin_init F
-GLIBC_2.12 pthread_spin_lock F
-GLIBC_2.12 pthread_spin_trylock F
-GLIBC_2.12 pthread_spin_unlock F
-GLIBC_2.12 pthread_testcancel F
-GLIBC_2.12 pthread_timedjoin_np F
-GLIBC_2.12 pthread_tryjoin_np F
-GLIBC_2.12 pthread_yield F
-GLIBC_2.12 pwrite F
-GLIBC_2.12 pwrite64 F
-GLIBC_2.12 raise F
-GLIBC_2.12 read F
-GLIBC_2.12 recv F
-GLIBC_2.12 recvfrom F
-GLIBC_2.12 recvmsg F
-GLIBC_2.12 sem_close F
-GLIBC_2.12 sem_destroy F
-GLIBC_2.12 sem_getvalue F
-GLIBC_2.12 sem_init F
-GLIBC_2.12 sem_open F
-GLIBC_2.12 sem_post F
-GLIBC_2.12 sem_timedwait F
-GLIBC_2.12 sem_trywait F
-GLIBC_2.12 sem_unlink F
-GLIBC_2.12 sem_wait F
-GLIBC_2.12 send F
-GLIBC_2.12 sendmsg F
-GLIBC_2.12 sendto F
-GLIBC_2.12 sigaction F
-GLIBC_2.12 siglongjmp F
-GLIBC_2.12 sigwait F
-GLIBC_2.12 system F
-GLIBC_2.12 tcdrain F
-GLIBC_2.12 vfork F
-GLIBC_2.12 wait F
-GLIBC_2.12 waitpid F
-GLIBC_2.12 write F
-GLIBC_2.18 GLIBC_2.18 A
-GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/libresolv.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libresolv.abilist
deleted file mode 100644
index bd81642..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/libresolv.abilist
+++ /dev/null
@@ -1,92 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 __b64_ntop F
-GLIBC_2.12 __b64_pton F
-GLIBC_2.12 __dn_comp F
-GLIBC_2.12 __dn_count_labels F
-GLIBC_2.12 __dn_expand F
-GLIBC_2.12 __dn_skipname F
-GLIBC_2.12 __fp_nquery F
-GLIBC_2.12 __fp_query F
-GLIBC_2.12 __fp_resstat F
-GLIBC_2.12 __hostalias F
-GLIBC_2.12 __loc_aton F
-GLIBC_2.12 __loc_ntoa F
-GLIBC_2.12 __p_cdname F
-GLIBC_2.12 __p_cdnname F
-GLIBC_2.12 __p_class F
-GLIBC_2.12 __p_class_syms D 0xa8
-GLIBC_2.12 __p_fqname F
-GLIBC_2.12 __p_fqnname F
-GLIBC_2.12 __p_option F
-GLIBC_2.12 __p_query F
-GLIBC_2.12 __p_rcode F
-GLIBC_2.12 __p_secstodate F
-GLIBC_2.12 __p_time F
-GLIBC_2.12 __p_type F
-GLIBC_2.12 __p_type_syms D 0x450
-GLIBC_2.12 __putlong F
-GLIBC_2.12 __putshort F
-GLIBC_2.12 __res_close F
-GLIBC_2.12 __res_dnok F
-GLIBC_2.12 __res_hnok F
-GLIBC_2.12 __res_hostalias F
-GLIBC_2.12 __res_isourserver F
-GLIBC_2.12 __res_mailok F
-GLIBC_2.12 __res_mkquery F
-GLIBC_2.12 __res_nameinquery F
-GLIBC_2.12 __res_nmkquery F
-GLIBC_2.12 __res_nquery F
-GLIBC_2.12 __res_nquerydomain F
-GLIBC_2.12 __res_nsearch F
-GLIBC_2.12 __res_nsend F
-GLIBC_2.12 __res_ownok F
-GLIBC_2.12 __res_queriesmatch F
-GLIBC_2.12 __res_query F
-GLIBC_2.12 __res_querydomain F
-GLIBC_2.12 __res_search F
-GLIBC_2.12 __res_send F
-GLIBC_2.12 __sym_ntop F
-GLIBC_2.12 __sym_ntos F
-GLIBC_2.12 __sym_ston F
-GLIBC_2.12 _gethtbyaddr F
-GLIBC_2.12 _gethtbyname F
-GLIBC_2.12 _gethtbyname2 F
-GLIBC_2.12 _gethtent F
-GLIBC_2.12 _getlong F
-GLIBC_2.12 _getshort F
-GLIBC_2.12 _res_opcodes D 0x80
-GLIBC_2.12 _sethtent F
-GLIBC_2.12 inet_net_ntop F
-GLIBC_2.12 inet_net_pton F
-GLIBC_2.12 inet_neta F
-GLIBC_2.12 ns_datetosecs F
-GLIBC_2.12 ns_format_ttl F
-GLIBC_2.12 ns_get16 F
-GLIBC_2.12 ns_get32 F
-GLIBC_2.12 ns_initparse F
-GLIBC_2.12 ns_makecanon F
-GLIBC_2.12 ns_msg_getflag F
-GLIBC_2.12 ns_name_compress F
-GLIBC_2.12 ns_name_ntol F
-GLIBC_2.12 ns_name_ntop F
-GLIBC_2.12 ns_name_pack F
-GLIBC_2.12 ns_name_pton F
-GLIBC_2.12 ns_name_rollback F
-GLIBC_2.12 ns_name_skip F
-GLIBC_2.12 ns_name_uncompress F
-GLIBC_2.12 ns_name_unpack F
-GLIBC_2.12 ns_parse_ttl F
-GLIBC_2.12 ns_parserr F
-GLIBC_2.12 ns_put16 F
-GLIBC_2.12 ns_put32 F
-GLIBC_2.12 ns_samedomain F
-GLIBC_2.12 ns_samename F
-GLIBC_2.12 ns_skiprr F
-GLIBC_2.12 ns_sprintrr F
-GLIBC_2.12 ns_sprintrrf F
-GLIBC_2.12 ns_subdomain F
-GLIBC_2.12 res_gethostbyaddr F
-GLIBC_2.12 res_gethostbyname F
-GLIBC_2.12 res_gethostbyname2 F
-GLIBC_2.12 res_send_setqhook F
-GLIBC_2.12 res_send_setrhook F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/librt.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/librt.abilist
deleted file mode 100644
index 14f5c82..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/librt.abilist
+++ /dev/null
@@ -1,41 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 __mq_open_2 F
-GLIBC_2.12 aio_cancel F
-GLIBC_2.12 aio_cancel64 F
-GLIBC_2.12 aio_error F
-GLIBC_2.12 aio_error64 F
-GLIBC_2.12 aio_fsync F
-GLIBC_2.12 aio_fsync64 F
-GLIBC_2.12 aio_init F
-GLIBC_2.12 aio_read F
-GLIBC_2.12 aio_read64 F
-GLIBC_2.12 aio_return F
-GLIBC_2.12 aio_return64 F
-GLIBC_2.12 aio_suspend F
-GLIBC_2.12 aio_suspend64 F
-GLIBC_2.12 aio_write F
-GLIBC_2.12 aio_write64 F
-GLIBC_2.12 clock_getcpuclockid F
-GLIBC_2.12 clock_getres F
-GLIBC_2.12 clock_gettime F
-GLIBC_2.12 clock_nanosleep F
-GLIBC_2.12 clock_settime F
-GLIBC_2.12 lio_listio F
-GLIBC_2.12 lio_listio64 F
-GLIBC_2.12 mq_close F
-GLIBC_2.12 mq_getattr F
-GLIBC_2.12 mq_notify F
-GLIBC_2.12 mq_open F
-GLIBC_2.12 mq_receive F
-GLIBC_2.12 mq_send F
-GLIBC_2.12 mq_setattr F
-GLIBC_2.12 mq_timedreceive F
-GLIBC_2.12 mq_timedsend F
-GLIBC_2.12 mq_unlink F
-GLIBC_2.12 shm_open F
-GLIBC_2.12 shm_unlink F
-GLIBC_2.12 timer_create F
-GLIBC_2.12 timer_delete F
-GLIBC_2.12 timer_getoverrun F
-GLIBC_2.12 timer_gettime F
-GLIBC_2.12 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/libthread_db.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libthread_db.abilist
deleted file mode 100644
index 4aade0b..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/libthread_db.abilist
+++ /dev/null
@@ -1,41 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 td_init F
-GLIBC_2.12 td_log F
-GLIBC_2.12 td_symbol_list F
-GLIBC_2.12 td_ta_clear_event F
-GLIBC_2.12 td_ta_delete F
-GLIBC_2.12 td_ta_enable_stats F
-GLIBC_2.12 td_ta_event_addr F
-GLIBC_2.12 td_ta_event_getmsg F
-GLIBC_2.12 td_ta_get_nthreads F
-GLIBC_2.12 td_ta_get_ph F
-GLIBC_2.12 td_ta_get_stats F
-GLIBC_2.12 td_ta_map_id2thr F
-GLIBC_2.12 td_ta_map_lwp2thr F
-GLIBC_2.12 td_ta_new F
-GLIBC_2.12 td_ta_reset_stats F
-GLIBC_2.12 td_ta_set_event F
-GLIBC_2.12 td_ta_setconcurrency F
-GLIBC_2.12 td_ta_thr_iter F
-GLIBC_2.12 td_ta_tsd_iter F
-GLIBC_2.12 td_thr_clear_event F
-GLIBC_2.12 td_thr_dbresume F
-GLIBC_2.12 td_thr_dbsuspend F
-GLIBC_2.12 td_thr_event_enable F
-GLIBC_2.12 td_thr_event_getmsg F
-GLIBC_2.12 td_thr_get_info F
-GLIBC_2.12 td_thr_getfpregs F
-GLIBC_2.12 td_thr_getgregs F
-GLIBC_2.12 td_thr_getxregs F
-GLIBC_2.12 td_thr_getxregsize F
-GLIBC_2.12 td_thr_set_event F
-GLIBC_2.12 td_thr_setfpregs F
-GLIBC_2.12 td_thr_setgregs F
-GLIBC_2.12 td_thr_setprio F
-GLIBC_2.12 td_thr_setsigpending F
-GLIBC_2.12 td_thr_setxregs F
-GLIBC_2.12 td_thr_sigsetmask F
-GLIBC_2.12 td_thr_tls_get_addr F
-GLIBC_2.12 td_thr_tlsbase F
-GLIBC_2.12 td_thr_tsd F
-GLIBC_2.12 td_thr_validate F
diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/libutil.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libutil.abilist
deleted file mode 100644
index e4d4326..0000000
--- a/sysdeps/unix/sysv/linux/tile/tilegx64/libutil.abilist
+++ /dev/null
@@ -1,7 +0,0 @@
-GLIBC_2.12 GLIBC_2.12 A
-GLIBC_2.12 forkpty F
-GLIBC_2.12 login F
-GLIBC_2.12 login_tty F
-GLIBC_2.12 logout F
-GLIBC_2.12 logwtmp F
-GLIBC_2.12 openpty F
diff --git a/sysdeps/unix/sysv/linux/tile/ucontext_i.h b/sysdeps/unix/sysv/linux/tile/ucontext_i.h
deleted file mode 100644
index 0d3ac42..0000000
--- a/sysdeps/unix/sysv/linux/tile/ucontext_i.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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/>. */
-
-/* Definitions of offsets within the ucontext_t structure. Note
- that for convenience we use __SIZEOF_POINTER__ for "long" and
- "ssize_t" fields (and their unsigned counterparts) as well. */
-
-#define UC_FLAGS_OFFSET 0
-#define UC_LINK_OFFSET (UC_FLAGS_OFFSET + __SIZEOF_POINTER__)
-#define UC_STACK_SP_OFFSET (UC_LINK_OFFSET + __SIZEOF_POINTER__)
-#define UC_STACK_FLAGS_OFFSET (UC_STACK_SP_OFFSET + __SIZEOF_POINTER__)
-#define UC_STACK_SIZE_OFFSET (UC_STACK_FLAGS_OFFSET + __SIZEOF_POINTER__)
-#define UC_STACK_MCONTEXT_OFFSET \
- ((UC_STACK_SIZE_OFFSET + __SIZEOF_POINTER__ + REGSIZE - 1) & -REGSIZE)
-#define UC_REG(i) (UC_STACK_MCONTEXT_OFFSET + ((i) * REGSIZE))
-#define UC_NREGS 64
-#define UC_SIGMASK_OFFSET UC_REG(UC_NREGS)
-#define UC_SIZE (UC_SIGMASK_OFFSET + (_NSIG / 8))
-
-/* From <asm/siginfo.h> */
-#define SI_MAX_SIZE 128
-
-/* From <asm/signal.h> */
-#define _NSIG 64
-#define SIG_BLOCK 0 /* for blocking signals */
-#define SIG_UNBLOCK 1 /* for unblocking signals */
-#define SIG_SETMASK 2 /* for setting the signal mask */
diff --git a/sysdeps/unix/sysv/linux/tile/vfork.S b/sysdeps/unix/sysv/linux/tile/vfork.S
deleted file mode 100644
index b4058f5..0000000
--- a/sysdeps/unix/sysv/linux/tile/vfork.S
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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>
-#define __ASSEMBLY__ /* for kernel headers */
-#include <linux/sched.h>
-#include <asm/signal.h>
-#include <tcb-offsets.h>
-
-/* Clone the calling process, but without copying the whole address space.
- The calling process is suspended until the new process exits or is
- replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
- and the process ID of the new process to the old process. */
-
- .text
-ENTRY (__vfork)
- {
- moveli r0, CLONE_VFORK | CLONE_VM | SIGCHLD
- move r1, zero
- }
- {
- move r2, zero
- move r3, zero
- }
- moveli TREG_SYSCALL_NR_NAME, __NR_clone
- swint1
-
- bnez r1, 0f
- jrp lr
-PSEUDO_END (__vfork)
-libc_hidden_def (__vfork)
-
-weak_alias (__vfork, vfork)
-strong_alias (__vfork, __libc_vfork)