aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2017-12-12 19:15:45 -0200
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2017-12-20 16:55:24 -0200
commited95f6114928f00f5f8fe76ccf2ec9e77872cbad (patch)
tree0161d2bc2599666e4dab69cfb07a75a445760f79
parent4735850f7a4f07f05ee9ff405238332f4bb3ab50 (diff)
downloadglibc-ed95f6114928f00f5f8fe76ccf2ec9e77872cbad.tar
glibc-ed95f6114928f00f5f8fe76ccf2ec9e77872cbad.tar.gz
glibc-ed95f6114928f00f5f8fe76ccf2ec9e77872cbad.tar.bz2
glibc-ed95f6114928f00f5f8fe76ccf2ec9e77872cbad.zip
Remove tilepro-*-linux-gnu support
As from previous discussions [1] this patch removes tileprox-*-linux-gnu support from GLIBC. This patch is a straigthfoward one, which just remove tilepro specific implementation and configurations (no sysdep simplfication or reorganization is done). * README: Remove tilepro-*-linux-gnu from supported architecture. * scripts/build-many-glibcs.py: Likewise. * sysdeps/tile/__tls_get_addr.S (__tls_get_addr): Likewise. * sysdeps/tile/crti.S (PREINIT_FUNCTION): Likewise. * sysdeps/tile/dl-machine.h (ELF_MACHINE_NAME, elf_machine_matches_host, elf_machine_dynamic, elf_machine_load_address, elf_machine_runtime_setup, reloc_howto howto, elf_machine_rela): Likewise * sysdeps/tile/dl-start.S (_start): Likewise. * sysdeps/tile/memcmp.c (DBLALIGN, REVBYTES): Likewise. * sysdeps/tile/memcopy.h (MEMCPY_OK_FOR_FWD_MEMMOVE, MEMCPY_OK_FOR_FWD_MEMMOVE, op_t): Likewise. * sysdeps/tile/nptl/pthread_spin_lock.c (TNS, CMPTNS): Likewise. * sysdeps/tile/nptl/pthread_spin_trylock.c (TNS): Likewise. * sysdeps/tile/nptl/pthread_spin_unlock.c (pthread_spin_unlock): Likewise. * sysdeps/tile/nptl/tls.h (DB_THREAD_SELF): Likewise. * sysdeps/tile/preconfigure: Likewise. * sysdeps/tile/stackguard-macros.h (STACK_CHK_GUARD, POINTER_CHK_GUARD): Likewise. * sysdeps/tile/stackinfo.h (__stackinfo_sub): Likewise. * sysdeps/tile/start.S (_start): Likewise. * sysdeps/tile/tls-macros.h (TLS_GD_OFFSET, TLS_IE_OFFSET, _TLS_LE): Likewise. * sysdeps/tile/sysdep.h (REGSIZE): Likewise. (LD, LD4U, ST, ST4, BNEZ, BEQZ, BEQZT, BGTZ, CMPEQI, CMPEQ, CMOVEQZ, CMOVNEZ): Remove. * sysdeps/unix/sysv/linux/tile/bits/environments.h (__ILP32_OFF32_CFLAGS, __ILP32_OFFBIG_CFLAGS, __ILP32_OFF32_LDFLAGS, __ILP32_OFFBIG_LDFLAGS, __LP64_OFF64_CFLAGS, __LP64_OFF64_LDFLAGS): Likewise. * sysdeps/tile/wordcopy.c (DBLALIGN): Likewise. * sysdeps/tile/tilepro/Implies: Remove file. * sysdeps/tile/tilepro/atomic-machine.h: Likewise. * sysdeps/tile/tilepro/bits/wordsize.h: Likewise. * sysdeps/tile/tilepro/memchr.c: Likewise. * sysdeps/tile/tilepro/memcpy.S: Likewise. * sysdeps/tile/tilepro/memset.c: Likewise. * sysdeps/tile/tilepro/memusage.h: Likewise. * sysdeps/tile/tilepro/rawmemchr.c: Likewise. * sysdeps/tile/tilepro/strchr.c: Likewise. * sysdeps/tile/tilepro/strchrnul.c: Likewise. * sysdeps/tile/tilepro/strlen.c: Likewise. * sysdeps/tile/tilepro/strrchr.c: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/Implies: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/c++-types.data: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/jmp_buf-macros.h: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h: Likewise. * sysdeps/unix/sysv/linux/tile/sysconf.c (linux_sysconf): Remove tilepro mention in comment. [1] https://sourceware.org/ml/libc-alpha/2017-12/msg00038.html
-rw-r--r--ChangeLog66
-rw-r--r--NEWS2
-rw-r--r--README1
-rwxr-xr-xscripts/build-many-glibcs.py2
-rw-r--r--sysdeps/tile/__tls_get_addr.S11
-rw-r--r--sysdeps/tile/crti.S13
-rw-r--r--sysdeps/tile/dl-machine.h248
-rw-r--r--sysdeps/tile/dl-start.S5
-rw-r--r--sysdeps/tile/memcmp.c5
-rw-r--r--sysdeps/tile/memcopy.h8
-rw-r--r--sysdeps/tile/nptl/pthread_spin_lock.c10
-rw-r--r--sysdeps/tile/nptl/pthread_spin_trylock.c4
-rw-r--r--sysdeps/tile/nptl/pthread_spin_unlock.c5
-rw-r--r--sysdeps/tile/nptl/tls.h7
-rw-r--r--sysdeps/tile/preconfigure2
-rw-r--r--sysdeps/tile/stackguard-macros.h17
-rw-r--r--sysdeps/tile/stackinfo.h2
-rw-r--r--sysdeps/tile/start.S25
-rw-r--r--sysdeps/tile/sysdep.h29
-rw-r--r--sysdeps/tile/tilepro/Implies2
-rw-r--r--sysdeps/tile/tilepro/atomic-machine.h99
-rw-r--r--sysdeps/tile/tilepro/bits/wordsize.h6
-rw-r--r--sysdeps/tile/tilepro/memchr.c76
-rw-r--r--sysdeps/tile/tilepro/memcpy.S397
-rw-r--r--sysdeps/tile/tilepro/memset.c151
-rw-r--r--sysdeps/tile/tilepro/memusage.h29
-rw-r--r--sysdeps/tile/tilepro/rawmemchr.c45
-rw-r--r--sysdeps/tile/tilepro/strchr.c68
-rw-r--r--sysdeps/tile/tilepro/strchrnul.c65
-rw-r--r--sysdeps/tile/tilepro/strlen.c39
-rw-r--r--sysdeps/tile/tilepro/strrchr.c73
-rw-r--r--sysdeps/tile/tls-macros.h19
-rw-r--r--sysdeps/tile/wordcopy.c4
-rw-r--r--sysdeps/unix/sysv/linux/tile/bits/environments.h4
-rw-r--r--sysdeps/unix/sysv/linux/tile/sysconf.c4
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/Implies3
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/c++-types.data67
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/jmp_buf-macros.h6
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/ld.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h25
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/libBrokenLocale.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/libanl.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist2137
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/libcrypt.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/libdl.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist749
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/libnsl.abilist122
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/libpthread.abilist226
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/libresolv.abilist92
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/librt.abilist41
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/libthread_db.abilist41
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/libutil.abilist7
-rw-r--r--sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h111
53 files changed, 98 insertions, 5106 deletions
diff --git a/ChangeLog b/ChangeLog
index 35d1d102f6..43dfbf2a5e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,71 @@
2017-12-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+ * README: Remove tilepro-*-linux-gnu from supported architecture.
+ * scripts/build-many-glibcs.py: Likewise.
+ * sysdeps/tile/__tls_get_addr.S (__tls_get_addr): Likewise.
+ * sysdeps/tile/crti.S (PREINIT_FUNCTION): Likewise.
+ * sysdeps/tile/dl-machine.h (ELF_MACHINE_NAME,
+ elf_machine_matches_host, elf_machine_dynamic,
+ elf_machine_load_address, elf_machine_runtime_setup, reloc_howto
+ howto, elf_machine_rela): Likewise.
+ * sysdeps/tile/dl-start.S (_start): Likewise.
+ * sysdeps/tile/memcmp.c (DBLALIGN, REVBYTES): Likewise.
+ * sysdeps/tile/memcopy.h (MEMCPY_OK_FOR_FWD_MEMMOVE,
+ MEMCPY_OK_FOR_FWD_MEMMOVE, op_t): Likewise.
+ * sysdeps/tile/nptl/pthread_spin_lock.c (TNS, CMPTNS): Likewise.
+ * sysdeps/tile/nptl/pthread_spin_trylock.c (TNS): Likewise.
+ * sysdeps/tile/nptl/pthread_spin_unlock.c (pthread_spin_unlock):
+ Likewise.
+ * sysdeps/tile/nptl/tls.h (DB_THREAD_SELF): Likewise.
+ * sysdeps/tile/preconfigure: Likewise.
+ * sysdeps/tile/stackguard-macros.h (STACK_CHK_GUARD,
+ POINTER_CHK_GUARD): Likewise.
+ * sysdeps/tile/stackinfo.h (__stackinfo_sub): Likewise.
+ * sysdeps/tile/start.S (_start): Likewise.
+ * sysdeps/tile/tls-macros.h (TLS_GD_OFFSET, TLS_IE_OFFSET, _TLS_LE):
+ Likewise.
+ * sysdeps/tile/sysdep.h (REGSIZE): Likewise.
+ (LD, LD4U, ST, ST4, BNEZ, BEQZ, BEQZT, BGTZ, CMPEQI, CMPEQ, CMOVEQZ,
+ CMOVNEZ): Remove.
+ * sysdeps/unix/sysv/linux/tile/bits/environments.h
+ (__ILP32_OFF32_CFLAGS, __ILP32_OFFBIG_CFLAGS, __ILP32_OFF32_LDFLAGS,
+ __ILP32_OFFBIG_LDFLAGS, __LP64_OFF64_CFLAGS, __LP64_OFF64_LDFLAGS):
+ Likewise.
+ * sysdeps/tile/wordcopy.c (DBLALIGN): Likewise.
+ * sysdeps/tile/tilepro/Implies: Remove file.
+ * sysdeps/tile/tilepro/atomic-machine.h: Likewise.
+ * sysdeps/tile/tilepro/bits/wordsize.h: Likewise.
+ * sysdeps/tile/tilepro/memchr.c: Likewise.
+ * sysdeps/tile/tilepro/memcpy.S: Likewise.
+ * sysdeps/tile/tilepro/memset.c: Likewise.
+ * sysdeps/tile/tilepro/memusage.h: Likewise.
+ * sysdeps/tile/tilepro/rawmemchr.c: Likewise.
+ * sysdeps/tile/tilepro/strchr.c: Likewise.
+ * sysdeps/tile/tilepro/strchrnul.c: Likewise.
+ * sysdeps/tile/tilepro/strlen.c: Likewise.
+ * sysdeps/tile/tilepro/strrchr.c: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/Implies: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/c++-types.data: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libBrokenLocale.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h: Likewise.
+ * sysdeps/unix/sysv/linux/tile/sysconf.c (linux_sysconf): Remove
+ tilepro mention in comment.
+
* nptl/Makefile (libpthread-routines): Add pthread_join_common.
* nptl/pthreadP.h (__pthread_timedjoin_ex): New prototype.
* nptl/pthread_join_common.c: New file: common function used on
diff --git a/NEWS b/NEWS
index a43ff26e83..d60b31575d 100644
--- a/NEWS
+++ b/NEWS
@@ -106,6 +106,8 @@ Deprecated and removed features, and other changes affecting compatibility:
* The libresolv function p_secstodate is no longer supported for new
programs.
+* The tilepro-*-linux-gnu configuration is no longer supported.
+
Changes to build and runtime requirements:
* bison version 2.7 or later is required to generate code in the 'intl'
diff --git a/README b/README
index c3d17d1378..d0e99ea7d5 100644
--- a/README
+++ b/README
@@ -43,7 +43,6 @@ The GNU C Library supports these configurations for using Linux kernels:
sparc*-*-linux-gnu
sparc64*-*-linux-gnu
tilegx-*-linux-gnu
- tilepro-*-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/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
index b86d6c1387..b183cd2696 100755
--- a/scripts/build-many-glibcs.py
+++ b/scripts/build-many-glibcs.py
@@ -359,8 +359,6 @@ class Context(object):
os_name='linux-gnu',
glibcs=[{},
{'variant': '32', 'ccopts': '-m32'}])
- self.add_config(arch='tilepro',
- os_name='linux-gnu')
self.add_config(arch='x86_64',
os_name='linux-gnu',
gcc_cfg=['--with-multilib-list=m64,m32,mx32'],
diff --git a/sysdeps/tile/__tls_get_addr.S b/sysdeps/tile/__tls_get_addr.S
index 3b2b95522f..2402bd1e9a 100644
--- a/sysdeps/tile/__tls_get_addr.S
+++ b/sysdeps/tile/__tls_get_addr.S
@@ -37,7 +37,6 @@ ENTRY (__tls_get_addr)
ADDI_PTR r27, tp, DTV_OFFSET
}
.Llnk:
-#ifdef __tilegx__
{
LD_PTR r27, r27 /* r27 = THREAD_DTV() */
moveli r26, hw1_last(_rtld_local + TLS_GENERATION_OFFSET - .Llnk)
@@ -47,16 +46,6 @@ ENTRY (__tls_get_addr)
ADD_PTR r25, r25, r26
LD_PTR r26, r0 /* r26 = ti_module */
}
-#else
- {
- LD_PTR r27, r27 /* r27 = THREAD_DTV() */
- addli r25, r25, lo16(_rtld_local + TLS_GENERATION_OFFSET - .Llnk)
- }
- {
- auli r25, r25, ha16(_rtld_local + TLS_GENERATION_OFFSET - .Llnk)
- LD_PTR r26, r0 /* r26 = ti_module */
- }
-#endif
LD_PTR r25, r25 /* r25 = DL(dl_tls_generation) */
{
LD_PTR r28, r27 /* r28 = THREAD_DTV()->counter */
diff --git a/sysdeps/tile/crti.S b/sysdeps/tile/crti.S
index 522373aff5..1d714ab483 100644
--- a/sysdeps/tile/crti.S
+++ b/sysdeps/tile/crti.S
@@ -70,7 +70,6 @@ _init:
#if PREINIT_FUNCTION_WEAK
lnk r2
0:
-# ifdef __tilegx__
moveli r1, hw2_last(_GLOBAL_OFFSET_TABLE_ - 0b)
{
shl16insli r1, r1, hw1(_GLOBAL_OFFSET_TABLE_ - 0b)
@@ -80,22 +79,12 @@ _init:
shl16insli r1, r1, hw0(_GLOBAL_OFFSET_TABLE_ - 0b)
shl16insli r0, r0, hw0_got(PREINIT_FUNCTION)
}
-# else
- {
- moveli r1, lo16(_GLOBAL_OFFSET_TABLE_ - 0b)
- moveli r0, got_lo16(PREINIT_FUNCTION)
- }
- {
- auli r1, r1, ha16(_GLOBAL_OFFSET_TABLE_ - 0b)
- auli r0, r0, got_ha16(PREINIT_FUNCTION)
- }
-# endif
ADD_PTR r0, r0, r1
ADD_PTR r0, r0, r2
LD_PTR r0, r0
BEQZ r0, .Lno_weak_fn
jalr r0
-#elif defined(__tilegx__) && !defined(NO_PLT_PCREL)
+#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
diff --git a/sysdeps/tile/dl-machine.h b/sysdeps/tile/dl-machine.h
index f7af7c3848..d745a9c07f 100644
--- a/sysdeps/tile/dl-machine.h
+++ b/sysdeps/tile/dl-machine.h
@@ -20,11 +20,7 @@
#ifndef dl_machine_h
#define dl_machine_h
-#ifdef __tilegx__
#define ELF_MACHINE_NAME "tilegx"
-#else
-#define ELF_MACHINE_NAME "tilepro"
-#endif
#include <sys/param.h>
#include <string.h>
@@ -37,18 +33,12 @@
static inline int
elf_machine_matches_host (const ElfW(Ehdr) *ehdr)
{
-#if defined __tilegx__
if (ehdr->e_machine != EM_TILEGX)
return 0;
-# if __WORDSIZE == 32
+#if __WORDSIZE == 32
return (ehdr->e_ident[EI_CLASS] == ELFCLASS32);
-# else
- return (ehdr->e_ident[EI_CLASS] == ELFCLASS64);
-# endif
-#elif defined __tilepro__
- return ehdr->e_machine == EM_TILEPRO;
#else
-# error "Unknown tile architecture."
+ return (ehdr->e_ident[EI_CLASS] == ELFCLASS64);
#endif
}
@@ -62,19 +52,12 @@ elf_machine_dynamic (void)
{
ElfW(Addr) *got;
-#ifdef __tilegx__
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));
-#else
- asm( " lnk %0\n"
- "1: addli %0, %0, lo16(_GLOBAL_OFFSET_TABLE_ - 1b)\n"
- " auli %0, %0, ha16(_GLOBAL_OFFSET_TABLE_ - 1b)"
- : "=r" (got));
-#endif
return *got;
}
@@ -86,9 +69,8 @@ elf_machine_load_address (void)
{
ElfW(Addr) *got;
ElfW(Addr) dynamic;
-
-#ifdef __tilegx__
ElfW(Addr) tmp;
+
asm( " lnk %2\n"
"1: {\n"
" moveli %0, hw2_last(_GLOBAL_OFFSET_TABLE_ - 1b)\n"
@@ -107,18 +89,6 @@ elf_machine_load_address (void)
" add %1, %1, %2\n"
" }"
: "=r" (got), "=r" (dynamic), "=r" (tmp));
-#else
- asm( " lnk %0\n"
- "1: {\n"
- " addli %0, %0, lo16(_GLOBAL_OFFSET_TABLE_ - 1b)\n"
- " addli %1, %0, lo16(_DYNAMIC - 1b)\n"
- " }\n"
- " {\n"
- " auli %0, %0, ha16(_GLOBAL_OFFSET_TABLE_ - 1b)\n"
- " auli %1, %1, ha16(_DYNAMIC - 1b)\n"
- " }\n"
- : "=r" (got), "=r" (dynamic));
-#endif
return dynamic - *got;
}
@@ -197,15 +167,10 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
#endif
/* Wrap a generic Tilera relocation type. */
-#ifdef __tilegx__
#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)
-#else
-#define R_TILE(x) R_TILEPRO_##x
-#define R_TILE_TLS(x) R_TILEPRO_TLS_##x##32
-#endif
/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or
TLS variable, so undefined references should not be allowed to
@@ -272,13 +237,8 @@ struct reloc_howto
/* Right shift operand by this number of bits. */
unsigned char right_shift;
-#ifdef __tilegx__
/* If nonzero, this is updating a code bundle. */
unsigned char is_bundle_update;
-#else
- /* If nonzero, add 0x8000 to the value. */
- unsigned char add_0x8000;
-#endif
/* If nonzero, subtract the containing address from the address. */
unsigned char is_pcrel;
@@ -291,19 +251,17 @@ struct reloc_howto
because then the table would not be position-independent. */
static const struct reloc_howto howto[] =
{
-#ifdef __tilegx__
-
-# if __WORDSIZE == 32
+#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
+# 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 },
@@ -417,93 +375,6 @@ static const struct reloc_howto howto[] =
/* R_TILEGX_TLS_DTPMOD32 */ { 0, 0, 0, 0 },
/* R_TILEGX_TLS_DTPOFF32 */ { 0, 0, 0, 0 },
/* R_TILEGX_TLS_TPOFF32 */ { 0, 0, 0, 0 }
-#else
- /* R_TILEPRO_NONE */ { 0, 0, 0, 0 },
- /* R_TILEPRO_32 */ { 0, 0, 0, 4 },
- /* R_TILEPRO_16 */ { 0, 0, 0, 2 },
- /* R_TILEPRO_8 */ { 0, 0, 0, 1 },
- /* R_TILEPRO_32_PCREL */ { 0, 0, 1, 4 },
- /* R_TILEPRO_16_PCREL */ { 0, 0, 1, 2 },
- /* R_TILEPRO_8_PCREL */ { 0, 0, 1, 1 },
- /* R_TILEPRO_LO16 */ { 0, 0, 0, 2 },
- /* R_TILEPRO_HI16 */ { 16, 0, 0, 2 },
- /* R_TILEPRO_HA16 */ { 16, 1, 0, 2 },
- /* R_TILEPRO_COPY */ { 0, 0, 0, 0 },
- /* R_TILEPRO_GLOB_DAT */ { 0, 0, 0, 4 },
- /* R_TILEPRO_JMP_SLOT */ { 0, 0, 0, 0 },
- /* R_TILEPRO_RELATIVE */ { 0, 0, 0, 0 },
- /* R_TILEPRO_BROFF_X1 */ { 3, 0, 1, 8 },
- /* R_TILEPRO_JOFFLONG_X1 */ { 3, 0, 1, 8 },
- /* R_TILEPRO_JOFFLONG_X1_PLT */ { 3, 0, 1, 8 },
- /* R_TILEPRO_IMM8_X0 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM8_Y0 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM8_X1 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM8_Y1 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_MT_IMM15_X1 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_MF_IMM15_X1 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X0 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X1 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X0_LO */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X1_LO */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X0_HI */ { 16, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X1_HI */ { 16, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X0_HA */ { 16, 1, 0, 8 },
- /* R_TILEPRO_IMM16_X1_HA */ { 16, 1, 0, 8 },
- /* R_TILEPRO_IMM16_X0_PCREL */ { 0, 0, 1, 8 },
- /* R_TILEPRO_IMM16_X1_PCREL */ { 0, 0, 1, 8 },
- /* R_TILEPRO_IMM16_X0_LO_PCREL */ { 0, 0, 1, 8 },
- /* R_TILEPRO_IMM16_X1_LO_PCREL */ { 0, 0, 1, 8 },
- /* R_TILEPRO_IMM16_X0_HI_PCREL */ { 16, 0, 1, 8 },
- /* R_TILEPRO_IMM16_X1_HI_PCREL */ { 16, 0, 1, 8 },
- /* R_TILEPRO_IMM16_X0_HA_PCREL */ { 16, 1, 1, 8 },
- /* R_TILEPRO_IMM16_X1_HA_PCREL */ { 16, 1, 1, 8 },
- /* R_TILEPRO_IMM16_X0_GOT */ { 0, 0, 0, 0 },
- /* R_TILEPRO_IMM16_X1_GOT */ { 0, 0, 0, 0 },
- /* R_TILEPRO_IMM16_X0_GOT_LO */ { 0, 0, 0, 0 },
- /* R_TILEPRO_IMM16_X1_GOT_LO */ { 0, 0, 0, 0 },
- /* R_TILEPRO_IMM16_X0_GOT_HI */ { 0, 0, 0, 0 },
- /* R_TILEPRO_IMM16_X1_GOT_HI */ { 0, 0, 0, 0 },
- /* R_TILEPRO_IMM16_X0_GOT_HA */ { 0, 0, 0, 0 },
- /* R_TILEPRO_IMM16_X1_GOT_HA */ { 0, 0, 0, 0 },
- /* R_TILEPRO_MMSTART_X0 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_MMEND_X0 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_MMSTART_X1 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_MMEND_X1 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_SHAMT_X0 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_SHAMT_X1 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_SHAMT_Y0 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_SHAMT_Y1 */ { 0, 0, 0, 8 },
- /* R_TILEPRO_SN_BROFF */ { 0, 0, 0, 0 },
- /* R_TILEPRO_SN_IMM8 */ { 0, 0, 0, 0 },
- /* R_TILEPRO_SN_UIMM8 */ { 0, 0, 0, 0 },
- /* R_TILEPRO_SN_BYTE0 */ { 0, 0, 0, 0 },
- /* R_TILEPRO_SN_BYTE1 */ { 0, 0, 0, 0 },
- /* R_TILEPRO_SN_BYTE2 */ { 0, 0, 0, 0 },
- /* R_TILEPRO_SN_BYTE3 */ { 0, 0, 0, 0 },
- /* R_TILEPRO_SN_SPCREL0 */ { 0, 0, 0, 0 },
- /* R_TILEPRO_SN_SPCREL1 */ { 0, 0, 0, 0 },
- /* R_TILEPRO_SN_SPCREL2 */ { 0, 0, 0, 0 },
- /* R_TILEPRO_SN_SPCREL3 */ { 0, 0, 0, 0 },
- /* R_TILEPRO_IMM16_X0_TLS_GD */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X1_TLS_GD */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X0_TLS_GD_LO */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X1_TLS_GD_LO */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X0_TLS_GD_HI */ { 16, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X1_TLS_GD_HI */ { 16, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X0_TLS_GD_HA */ { 16, 1, 0, 8 },
- /* R_TILEPRO_IMM16_X1_TLS_GD_HA */ { 16, 1, 0, 8 },
- /* R_TILEPRO_IMM16_X0_TLS_IE */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X1_TLS_IE */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X0_TLS_IE_LO */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X1_TLS_IE_LO */ { 0, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X0_TLS_IE_HI */ { 16, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X1_TLS_IE_HI */ { 16, 0, 0, 8 },
- /* R_TILEPRO_IMM16_X0_TLS_IE_HA */ { 16, 1, 0, 8 },
- /* R_TILEPRO_IMM16_X1_TLS_IE_HA */ { 16, 1, 0, 8 },
- /* R_TILEPRO_TLS_DTPMOD32 */ { 0, 0, 0, 0 },
- /* R_TILEPRO_TLS_DTPOFF32 */ { 0, 0, 0, 0 },
- /* R_TILEPRO_TLS_TPOFF32 */ { 0, 0, 0, 0 },
-#endif
};
#if __ELF_NATIVE_CLASS == 32
@@ -653,11 +524,6 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
if (h->is_pcrel)
value -= (ElfW(Addr)) reloc_addr;
-#ifndef __tilegx__
- if (h->add_0x8000)
- value += 0x8000;
-#endif
-
value = ((long) value) >> h->right_shift;
switch (h->byte_size)
@@ -671,14 +537,12 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
case 4:
*(int *) reloc_addr = value;
return;
-#ifdef __tilegx__
case 8:
if (!h->is_bundle_update)
{
*(ElfW(Addr) *) reloc_addr = value;
return;
}
-#endif
}
/* We are updating a bundle, so use the function pointer that
@@ -704,7 +568,6 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
switch (r_type)
{
-#ifdef __tilegx__
case R_TILEGX_BROFF_X1:
MUNGE_SIGNED (BrOff_X1, 17);
break;
@@ -796,97 +659,6 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
case R_TILEGX_SHAMT_Y1:
MUNGE (ShAmt_Y1);
break;
-#else
- case R_TILEPRO_BROFF_X1:
- MUNGE_SIGNED (BrOff_X1, 17);
- break;
- case R_TILEPRO_JOFFLONG_X1:
- case R_TILEPRO_JOFFLONG_X1_PLT:
- MUNGE_NOCHECK (JOffLong_X1); /* holds full 32-bit value */
- break;
- case R_TILEPRO_IMM8_X0:
- MUNGE_SIGNED (Imm8_X0, 8);
- break;
- case R_TILEPRO_IMM8_Y0:
- MUNGE_SIGNED (Imm8_Y0, 8);
- break;
- case R_TILEPRO_IMM8_X1:
- MUNGE_SIGNED (Imm8_X1, 8);
- break;
- case R_TILEPRO_IMM8_Y1:
- MUNGE_SIGNED (Imm8_Y1, 8);
- break;
- case R_TILEPRO_MT_IMM15_X1:
- MUNGE (MT_Imm15_X1);
- break;
- case R_TILEPRO_MF_IMM15_X1:
- MUNGE (MF_Imm15_X1);
- break;
- case R_TILEPRO_IMM16_X0_LO:
- case R_TILEPRO_IMM16_X0_HI:
- case R_TILEPRO_IMM16_X0_HA:
- case R_TILEPRO_IMM16_X0_LO_PCREL:
- case R_TILEPRO_IMM16_X0_HI_PCREL:
- case R_TILEPRO_IMM16_X0_HA_PCREL:
- case R_TILEPRO_IMM16_X0_TLS_GD_LO:
- case R_TILEPRO_IMM16_X0_TLS_GD_HI:
- case R_TILEPRO_IMM16_X0_TLS_GD_HA:
- case R_TILEPRO_IMM16_X0_TLS_IE_LO:
- case R_TILEPRO_IMM16_X0_TLS_IE_HI:
- case R_TILEPRO_IMM16_X0_TLS_IE_HA:
- MUNGE_NOCHECK (Imm16_X0);
- break;
- case R_TILEPRO_IMM16_X0:
- case R_TILEPRO_IMM16_X0_PCREL:
- case R_TILEPRO_IMM16_X0_TLS_GD:
- case R_TILEPRO_IMM16_X0_TLS_IE:
- MUNGE_SIGNED (Imm16_X0, 16);
- break;
- case R_TILEPRO_IMM16_X1_LO:
- case R_TILEPRO_IMM16_X1_HI:
- case R_TILEPRO_IMM16_X1_HA:
- case R_TILEPRO_IMM16_X1_LO_PCREL:
- case R_TILEPRO_IMM16_X1_HI_PCREL:
- case R_TILEPRO_IMM16_X1_HA_PCREL:
- case R_TILEPRO_IMM16_X1_TLS_GD_LO:
- case R_TILEPRO_IMM16_X1_TLS_GD_HI:
- case R_TILEPRO_IMM16_X1_TLS_GD_HA:
- case R_TILEPRO_IMM16_X1_TLS_IE_LO:
- case R_TILEPRO_IMM16_X1_TLS_IE_HI:
- case R_TILEPRO_IMM16_X1_TLS_IE_HA:
- MUNGE_NOCHECK (Imm16_X1);
- break;
- case R_TILEPRO_IMM16_X1:
- case R_TILEPRO_IMM16_X1_PCREL:
- case R_TILEPRO_IMM16_X1_TLS_GD:
- case R_TILEPRO_IMM16_X1_TLS_IE:
- MUNGE_SIGNED (Imm16_X1, 16);
- break;
- case R_TILEPRO_MMSTART_X0:
- MUNGE (MMStart_X0);
- break;
- case R_TILEPRO_MMEND_X0:
- MUNGE (MMEnd_X0);
- break;
- case R_TILEPRO_MMSTART_X1:
- MUNGE (MMStart_X1);
- break;
- case R_TILEPRO_MMEND_X1:
- MUNGE (MMEnd_X1);
- break;
- case R_TILEPRO_SHAMT_X0:
- MUNGE (ShAmt_X0);
- break;
- case R_TILEPRO_SHAMT_X1:
- MUNGE (ShAmt_X1);
- break;
- case R_TILEPRO_SHAMT_Y0:
- MUNGE (ShAmt_Y0);
- break;
- case R_TILEPRO_SHAMT_Y1:
- MUNGE (ShAmt_Y1);
- break;
-#endif
}
#undef MUNGE
*p = bits;
diff --git a/sysdeps/tile/dl-start.S b/sysdeps/tile/dl-start.S
index 4f807a9e64..1782c9cd00 100644
--- a/sysdeps/tile/dl-start.S
+++ b/sysdeps/tile/dl-start.S
@@ -20,14 +20,9 @@
/* Get address of "sym" in "reg" assuming r51 holds ".Llink". */
.macro pic_addr reg, sym
-#ifdef __tilegx__
moveli \reg, hw1_last(\sym - .Llink)
shl16insli \reg, \reg, hw0(\sym - .Llink)
ADD_PTR \reg, r51, \reg
-#else
- ADDLI_PTR \reg, r51, lo16(\sym - .Llink)
- auli \reg, \reg, ha16(\sym - .Llink)
-#endif
.endm
.text
diff --git a/sysdeps/tile/memcmp.c b/sysdeps/tile/memcmp.c
index c3ed88bca7..07305d04f2 100644
--- a/sysdeps/tile/memcmp.c
+++ b/sysdeps/tile/memcmp.c
@@ -59,13 +59,8 @@ typedef unsigned char byte;
/* 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. */
-#ifdef __tilegx__
#define DBLALIGN __insn_dblalign
#define REVBYTES __insn_revbytes
-#else
-#define DBLALIGN __insn_dword_align
-#define REVBYTES __insn_bytex
-#endif
#ifdef WORDS_BIGENDIAN
# define CMP_LT_OR_GT(a, b) ((a) > (b) ? 1 : -1)
diff --git a/sysdeps/tile/memcopy.h b/sysdeps/tile/memcopy.h
index d934165d98..1579beeb7a 100644
--- a/sysdeps/tile/memcopy.h
+++ b/sysdeps/tile/memcopy.h
@@ -20,14 +20,12 @@
#include <bits/wordsize.h>
/* The tilegx implementation of memcpy is safe to use for memmove. */
-#ifdef __tilegx__
-# undef MEMCPY_OK_FOR_FWD_MEMMOVE
-# define MEMCPY_OK_FOR_FWD_MEMMOVE 1
-#endif
+#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 defined (__tilegx__) && __WORDSIZE == 32
+#if __WORDSIZE == 32
# undef op_t
# define op_t unsigned long long int
#endif
diff --git a/sysdeps/tile/nptl/pthread_spin_lock.c b/sysdeps/tile/nptl/pthread_spin_lock.c
index 16ef021de0..21c5ed4c0e 100644
--- a/sysdeps/tile/nptl/pthread_spin_lock.c
+++ b/sysdeps/tile/nptl/pthread_spin_lock.c
@@ -26,16 +26,10 @@
/* Initial cycle delay for exponential backoff */
#define BACKOFF_START 32
-#ifdef __tilegx__
/* 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)
-#else
-# define TNS(p) __insn_tns(p)
-# define CMPTNS(p) __insn_tns(p)
-# define SPR_CYCLE SPR_CYCLE_LOW /* The low 32 bits are sufficient. */
-#endif
+#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)
diff --git a/sysdeps/tile/nptl/pthread_spin_trylock.c b/sysdeps/tile/nptl/pthread_spin_trylock.c
index c2d6766fd1..6974a09983 100644
--- a/sysdeps/tile/nptl/pthread_spin_trylock.c
+++ b/sysdeps/tile/nptl/pthread_spin_trylock.c
@@ -19,11 +19,7 @@
#include "pthreadP.h"
#include <errno.h>
-#ifdef __tilegx__
#define TNS(p) __insn_exch4((p), 1)
-#else
-#define TNS(p) __insn_tns(p)
-#endif
int
pthread_spin_trylock (pthread_spinlock_t *lock)
diff --git a/sysdeps/tile/nptl/pthread_spin_unlock.c b/sysdeps/tile/nptl/pthread_spin_unlock.c
index 63bc814985..be23478e39 100644
--- a/sysdeps/tile/nptl/pthread_spin_unlock.c
+++ b/sysdeps/tile/nptl/pthread_spin_unlock.c
@@ -22,12 +22,7 @@
int
pthread_spin_unlock (pthread_spinlock_t *lock)
{
-#ifdef __tilegx__
/* Use exchange() to bypass the write buffer. */
atomic_exchange_rel (lock, 0);
-#else
- atomic_full_barrier ();
- *lock = 0;
-#endif
return 0;
}
diff --git a/sysdeps/tile/nptl/tls.h b/sysdeps/tile/nptl/tls.h
index 7314843cfb..5ddae18d15 100644
--- a/sysdeps/tile/nptl/tls.h
+++ b/sysdeps/tile/nptl/tls.h
@@ -113,13 +113,8 @@ register void *__thread_pointer asm ("tp");
- TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE))
/* Magic for libthread_db to know how to do THREAD_SELF. */
-#ifdef __tilegx__
# define DB_THREAD_SELF \
- REGISTER (64, 64, REG_TP * 8, - TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE)
-#else
-# define DB_THREAD_SELF \
- REGISTER (32, 32, REG_TP * 4, - TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE)
-#endif
+ 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)
diff --git a/sysdeps/tile/preconfigure b/sysdeps/tile/preconfigure
index f3e5d7edae..d2165c301d 100644
--- a/sysdeps/tile/preconfigure
+++ b/sysdeps/tile/preconfigure
@@ -1,7 +1,5 @@
# This is a -*- sh -*-
case "$machine" in
- tilepro)
- base_machine=tile machine=tile/tilepro ;;
tilegx*)
base_machine=tile
if $CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | grep -q __LP64__; then
diff --git a/sysdeps/tile/stackguard-macros.h b/sysdeps/tile/stackguard-macros.h
index f2e041b99b..c3ea0add70 100644
--- a/sysdeps/tile/stackguard-macros.h
+++ b/sysdeps/tile/stackguard-macros.h
@@ -1,20 +1,13 @@
#include <bits/wordsize.h>
-#ifdef __tilegx__
-# if __WORDSIZE == 64
-# define STACK_CHK_GUARD \
+#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 \
+# 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
#else
# define STACK_CHK_GUARD \
- ({ uintptr_t x; asm ("addi %0, tp, -8; lw %0, %0" : "=r" (x)); x; })
+ ({ 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; lw %0, %0" : "=r" (x)); x; })
+ ({ 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
index 0bef407941..d79c6b0570 100644
--- a/sysdeps/tile/stackinfo.h
+++ b/sysdeps/tile/stackinfo.h
@@ -35,7 +35,7 @@
(unnecessary) parameters. */
#define stackinfo_get_sp() \
({ void *p__; asm volatile ("move %0, sp" : "=r" (p__)); p__; })
-#if defined __tilegx__ && __WORDSIZE == 32
+#if __WORDSIZE == 32
#define __stackinfo_sub "subx"
#else
#define __stackinfo_sub "sub"
diff --git a/sysdeps/tile/start.S b/sysdeps/tile/start.S
index c790c265e3..da3ba9c013 100644
--- a/sysdeps/tile/start.S
+++ b/sysdeps/tile/start.S
@@ -129,7 +129,6 @@ _start:
/* Pass address of main() in r0, and of our own entry
points to .fini and .init in r3 and r4. */
-#ifdef __tilegx__
moveli r0, hw2_last(main - .Lmy_pc)
}
{
@@ -162,30 +161,12 @@ _start:
}
{
ADD_PTR r4, r4, r13
-# ifdef NO_PLT_PCREL
+#ifdef NO_PLT_PCREL
j plt(__libc_start_main)
-# else
- jr r12
-# endif
- }
#else
- addli r0, r13, lo16(main - .Lmy_pc)
- }
- {
- auli r0, r0, ha16(main - .Lmy_pc)
- addli r3, r13, lo16(__libc_csu_init - .Lmy_pc)
- }
- {
- auli r3, r3, ha16(__libc_csu_init - .Lmy_pc)
- addli r4, r13, lo16(__libc_csu_fini - .Lmy_pc)
- }
- {
- auli r4, r4, ha16(__libc_csu_fini - .Lmy_pc)
- /* Call the user's main function, and exit with its value.
- But let the libc call main. */
- j plt(__libc_start_main)
- }
+ jr r12
#endif
+ }
{
/* Tell backtracer to give up (_start has no caller). */
diff --git a/sysdeps/tile/sysdep.h b/sysdeps/tile/sysdep.h
index cd94e7745b..0f4b64d9f7 100644
--- a/sysdeps/tile/sysdep.h
+++ b/sysdeps/tile/sysdep.h
@@ -60,34 +60,11 @@
#define L(name) .L##name
/* Specify the size in bytes of a machine register. */
-#ifdef __tilegx__
#define REGSIZE 8
-#else
-#define REGSIZE 4
-#endif
-
-/* Support a limited form of shared assembly between tilepro and tilegx.
- The presumption is that LD/ST are used for manipulating registers.
- Since opcode parsing is case-insensitive, we don't need to provide
- definitions for these on tilegx. */
-#ifndef __tilegx__
-#define LD lw
-#define LD4U lw
-#define ST sw
-#define ST4 sw
-#define BNEZ bnz
-#define BEQZ bz
-#define BEQZT bzt
-#define BGTZ bgz
-#define CMPEQI seqi
-#define CMPEQ seq
-#define CMOVEQZ mvz
-#define CMOVNEZ mvnz
-#endif
/* Provide "pointer-oriented" instruction variants. These differ not
just for tilepro vs tilegx, but also for tilegx -m64 vs -m32. */
-#if defined __tilegx__ && __WORDSIZE == 32
+#if __WORDSIZE == 32
#define ADD_PTR addx
#define ADDI_PTR addxi
#define ADDLI_PTR addxli
@@ -100,11 +77,7 @@
#define ADDLI_PTR addli
#define LD_PTR LD
#define ST_PTR ST
-#ifdef __tilegx__
#define SHL_PTR_ADD shl3add
-#else
-#define SHL_PTR_ADD s2a
-#endif
#endif
#endif /* __ASSEMBLER__ */
diff --git a/sysdeps/tile/tilepro/Implies b/sysdeps/tile/tilepro/Implies
deleted file mode 100644
index 709e1dc122..0000000000
--- a/sysdeps/tile/tilepro/Implies
+++ /dev/null
@@ -1,2 +0,0 @@
-tile
-wordsize-32
diff --git a/sysdeps/tile/tilepro/atomic-machine.h b/sysdeps/tile/tilepro/atomic-machine.h
deleted file mode 100644
index 45e36de1e4..0000000000
--- a/sysdeps/tile/tilepro/atomic-machine.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Copyright (C) 2011-2017 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 <asm/unistd.h>
-
-#define __HAVE_64B_ATOMICS 0
-#define USE_ATOMIC_COMPILER_BUILTINS 0
-#define ATOMIC_EXCHANGE_USES_CAS 0
-
-/* 32-bit integer compare-and-exchange. */
-static __inline __attribute__ ((always_inline))
-int __atomic_cmpxchg_32 (volatile int *mem, int newval, int oldval)
-{
- int result;
- __asm__ __volatile__ ("swint1"
- : "=R00" (result), "=m" (*mem)
- : "R10" (__NR_FAST_cmpxchg), "R00" (mem),
- "R01" (oldval), "R02" (newval), "m" (*mem)
- : "r20", "r21", "r22", "r23", "r24",
- "r25", "r26", "r27", "r28", "r29", "memory");
- return result;
-}
-
-#define atomic_compare_and_exchange_val_acq(mem, n, o) \
- ({ \
- if (sizeof (*(mem)) != 4) \
- __atomic_error_bad_argument_size (); \
- (__typeof (*(mem))) \
- __atomic_cmpxchg_32 ((int *) (mem), (int) (n), (int) (o)); \
- })
-
-/* Atomically compute:
- int old = *ptr;
- *ptr = (old & mask) + addend;
- return old; */
-
-static __inline __attribute__ ((always_inline))
-int __atomic_update_32 (volatile int *mem, int mask, int addend)
-{
- int result;
- __asm__ __volatile__ ("swint1"
- : "=R00" (result), "=m" (*mem)
- : "R10" (__NR_FAST_atomic_update), "R00" (mem),
- "R01" (mask), "R02" (addend), "m" (*mem)
- : "r20", "r21", "r22", "r23", "r24",
- "r25", "r26", "r27", "r28", "r29", "memory");
- return result;
-}
-
-/* Size-checked verson of __atomic_update_32. */
-#define __atomic_update(mem, mask, addend) \
- ({ \
- if (sizeof (*(mem)) != 4) \
- __atomic_error_bad_argument_size (); \
- (__typeof (*(mem))) \
- __atomic_update_32 ((int *) (mem), (int) (mask), (int) (addend)); \
- })
-
-#define atomic_exchange_acq(mem, newvalue) \
- __atomic_update ((mem), 0, (newvalue))
-#define atomic_exchange_and_add(mem, value) \
- __atomic_update ((mem), -1, (value))
-#define atomic_and_val(mem, mask) \
- __atomic_update ((mem), (mask), 0)
-#define atomic_or_val(mem, mask) \
- ({ __typeof (mask) __att1_v = (mask); \
- __atomic_update ((mem), ~__att1_v, __att1_v); })
-
-/*
- * We must use the kernel atomics for atomic_store, since otherwise an
- * unsynchronized store could become visible after another core's
- * kernel-atomic implementation had read the memory word in question,
- * but before it had written the updated value to it, which would
- * cause the unsynchronized store to be lost.
- */
-#define atomic_store_relaxed(mem, val) atomic_exchange_acq (mem, val)
-#define atomic_store_release(mem, val) atomic_exchange_rel (mem, val)
-
-#include <sysdeps/tile/atomic-machine.h>
-
-#endif /* atomic-machine.h */
diff --git a/sysdeps/tile/tilepro/bits/wordsize.h b/sysdeps/tile/tilepro/bits/wordsize.h
deleted file mode 100644
index d2c4a354a7..0000000000
--- a/sysdeps/tile/tilepro/bits/wordsize.h
+++ /dev/null
@@ -1,6 +0,0 @@
-/* Determine the wordsize from the preprocessor defines. */
-
-#define __WORDSIZE 32
-#define __WORDSIZE_TIME64_COMPAT32 0
-#define __WORDSIZE32_SIZE_ULONG 0
-#define __WORDSIZE32_PTRDIFF_LONG 0
diff --git a/sysdeps/tile/tilepro/memchr.c b/sysdeps/tile/tilepro/memchr.c
deleted file mode 100644
index fba1f70c2c..0000000000
--- a/sysdeps/tile/tilepro/memchr.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (C) 2011-2017 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>
-
-void *
-__memchr (const void *s, int c, size_t n)
-{
- const uint32_t *last_word_ptr;
- const uint32_t *p;
- const char *last_byte_ptr;
- uintptr_t s_int;
- uint32_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 uint32_t *) (s_int & -4);
-
- /* Create four copies of the byte for which we are looking. */
- goal = 0x01010101 * (uint8_t) c;
-
- /* Read the first word, but munge it so that bytes before the array
- will not match goal. Note that this shift count expression works
- because we know shift counts are taken mod 32. */
- before_mask = (1 << (s_int << 3)) - 1;
- 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 uint32_t *) ((uintptr_t) last_byte_ptr & -4);
-
- while ((bits = __insn_seqb (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) + (__insn_ctz (bits) >> 3);
- return (ret <= last_byte_ptr) ? ret : NULL;
-}
-weak_alias (__memchr, memchr)
-libc_hidden_builtin_def (memchr)
diff --git a/sysdeps/tile/tilepro/memcpy.S b/sysdeps/tile/tilepro/memcpy.S
deleted file mode 100644
index 0f73ccbc2f..0000000000
--- a/sysdeps/tile/tilepro/memcpy.S
+++ /dev/null
@@ -1,397 +0,0 @@
-/* Copyright (C) 2011-2017 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 <sysdep.h>
-
- .text
-ENTRY (__memcpy)
- FEEDBACK_ENTER(__memcpy)
-
- /* r0 is the dest, r1 is the source, r2 is the size. */
-
- /* Save aside original dest so we can return it at the end. */
- { sw sp, lr; move r23, r0; or r4, r0, r1 }
- cfi_offset (lr, 0)
-
- /* Check for an empty size. */
- { bz r2, .Ldone; andi r4, r4, 3 }
-
- /* Check for an unaligned source or dest. */
- { bnz r4, .Lcopy_unaligned_maybe_many; addli r4, r2, -256 }
-
-.Lcheck_aligned_copy_size:
- /* If we are copying < 256 bytes, branch to simple case. */
- { blzt r4, .Lcopy_8_check; slti_u r8, r2, 8 }
-
- /* Copying >= 256 bytes, so jump to complex prefetching loop. */
- { andi r6, r1, 63; j .Lcopy_many }
-
-/* Aligned 4 byte at a time copy loop. */
-
-.Lcopy_8_loop:
- /* Copy two words at a time to hide load latency. */
- { lw r3, r1; addi r1, r1, 4; slti_u r8, r2, 16 }
- { lw r4, r1; addi r1, r1, 4 }
- { sw r0, r3; addi r0, r0, 4; addi r2, r2, -4 }
- { sw r0, r4; addi r0, r0, 4; addi r2, r2, -4 }
-.Lcopy_8_check:
- { bzt r8, .Lcopy_8_loop; slti_u r4, r2, 4 }
-
- /* Copy odd leftover word, if any. */
- { bnzt r4, .Lcheck_odd_stragglers }
- { lw r3, r1; addi r1, r1, 4 }
- { sw r0, r3; addi r0, r0, 4; addi r2, r2, -4 }
-
-.Lcheck_odd_stragglers:
- { bnz r2, .Lcopy_unaligned_few }
-
-.Ldone:
- { move r0, r23; jrp lr }
-
-/* Prefetching multiple cache line copy handler (for large transfers). */
-
- /* Copy words until r1 is cache-line-aligned. */
-.Lalign_loop:
- { lw r3, r1; addi r1, r1, 4 }
- { andi r6, r1, 63 }
- { sw r0, r3; addi r0, r0, 4; addi r2, r2, -4 }
-.Lcopy_many:
- { bnzt r6, .Lalign_loop; addi r9, r0, 63 }
-
- { addi r3, r1, 60; andi r9, r9, -64 }
-
- /* No need to prefetch dst, we'll just do the wh64
- right before we copy a line. */
- { lw r5, r3; addi r3, r3, 64; movei r4, 1 }
- /* Intentionally stall for a few cycles to leave L2 cache alone. */
- { bnzt zero, .; move r27, lr }
- { lw r6, r3; addi r3, r3, 64 }
- /* Intentionally stall for a few cycles to leave L2 cache alone. */
- { bnzt zero, . }
- { lw r7, r3; addi r3, r3, 64 }
- /* Intentionally stall for a few cycles to leave L2 cache alone. */
- { bz zero, .Lbig_loop2 }
-
- /* On entry to this loop:
- - r0 points to the start of dst line 0
- - r1 points to start of src line 0
- - r2 >= (256 - 60), only the first time the loop trips.
- - r3 contains r1 + 128 + 60 [pointer to end of source line 2]
- This is our prefetch address. When we get near the end
- rather than prefetching off the end this is changed to point
- to some "safe" recently loaded address.
- - r5 contains *(r1 + 60) [i.e. last word of source line 0]
- - r6 contains *(r1 + 64 + 60) [i.e. last word of source line 1]
- - r9 contains ((r0 + 63) & -64)
- [start of next dst cache line.] */
-
-.Lbig_loop:
- { jal .Lcopy_line2; add r15, r1, r2 }
-
-.Lbig_loop2:
- /* Copy line 0, first stalling until r5 is ready. */
- { move r12, r5; lw r16, r1 }
- { bz r4, .Lcopy_8_check; slti_u r8, r2, 8 }
- /* Prefetch several lines ahead. */
- { lw r5, r3; addi r3, r3, 64 }
- { jal .Lcopy_line }
-
- /* Copy line 1, first stalling until r6 is ready. */
- { move r12, r6; lw r16, r1 }
- { bz r4, .Lcopy_8_check; slti_u r8, r2, 8 }
- /* Prefetch several lines ahead. */
- { lw r6, r3; addi r3, r3, 64 }
- { jal .Lcopy_line }
-
- /* Copy line 2, first stalling until r7 is ready. */
- { move r12, r7; lw r16, r1 }
- { bz r4, .Lcopy_8_check; slti_u r8, r2, 8 }
- /* Prefetch several lines ahead. */
- { lw r7, r3; addi r3, r3, 64 }
- /* Use up a caches-busy cycle by jumping back to the top of the
- loop. Might as well get it out of the way now. */
- { j .Lbig_loop }
-
-
- /* On entry:
- - r0 points to the destination line.
- - r1 points to the source line.
- - r3 is the next prefetch address.
- - r9 holds the last address used for wh64.
- - r12 = WORD_15
- - r16 = WORD_0.
- - r17 == r1 + 16.
- - r27 holds saved lr to restore.
-
- On exit:
- - r0 is incremented by 64.
- - r1 is incremented by 64, unless that would point to a word
- beyond the end of the source array, in which case it is redirected
- to point to an arbitrary word already in the cache.
- - r2 is decremented by 64.
- - r3 is unchanged, unless it points to a word beyond the
- end of the source array, in which case it is redirected
- to point to an arbitrary word already in the cache.
- Redirecting is OK since if we are that close to the end
- of the array we will not come back to this subroutine
- and use the contents of the prefetched address.
- - r4 is nonzero iff r2 >= 64.
- - r9 is incremented by 64, unless it points beyond the
- end of the last full destination cache line, in which
- case it is redirected to a "safe address" that can be
- clobbered (sp - 64)
- - lr contains the value in r27. */
-
-/* r26 unused */
-
-.Lcopy_line:
- /* TODO: when r3 goes past the end, we would like to redirect it
- to prefetch the last partial cache line (if any) just once, for the
- benefit of the final cleanup loop. But we don't want to
- prefetch that line more than once, or subsequent prefetches
- will go into the RTF. But then .Lbig_loop should unconditionally
- branch to top of loop to execute final prefetch, and its
- nop should become a conditional branch. */
-
- /* We need two non-memory cycles here to cover the resources
- used by the loads initiated by the caller. */
- { add r15, r1, r2 }
-.Lcopy_line2:
- { slt_u r13, r3, r15; addi r17, r1, 16 }
-
- /* NOTE: this will stall for one cycle as L1 is busy. */
-
- /* Fill second L1D line. */
- { lw r17, r17; addi r1, r1, 48; mvz r3, r13, r1 } /* r17 = WORD_4 */
-
- /* Prepare destination line for writing. */
- { wh64 r9; addi r9, r9, 64 }
-
- /* Load seven words that are L1D hits to cover wh64 L2 usage. */
-
- /* Load the three remaining words from the last L1D line, which
- we know has already filled the L1D. */
- { lw r4, r1; addi r1, r1, 4; addi r20, r1, 16 } /* r4 = WORD_12 */
- { lw r8, r1; addi r1, r1, 4; slt_u r13, r20, r15 }/* r8 = WORD_13 */
- { lw r11, r1; addi r1, r1, -52; mvz r20, r13, r1 } /* r11 = WORD_14 */
-
- /* Load the three remaining words from the first L1D line, first
- stalling until it has filled by "looking at" r16. */
- { lw r13, r1; addi r1, r1, 4; move zero, r16 } /* r13 = WORD_1 */
- { lw r14, r1; addi r1, r1, 4 } /* r14 = WORD_2 */
- { lw r15, r1; addi r1, r1, 8; addi r10, r0, 60 } /* r15 = WORD_3 */
-
- /* Load second word from the second L1D line, first
- stalling until it has filled by "looking at" r17. */
- { lw r19, r1; addi r1, r1, 4; move zero, r17 } /* r19 = WORD_5 */
-
- /* Store last word to the destination line, potentially dirtying it
- for the first time, which keeps the L2 busy for two cycles. */
- { sw r10, r12 } /* store(WORD_15) */
-
- /* Use two L1D hits to cover the sw L2 access above. */
- { lw r10, r1; addi r1, r1, 4 } /* r10 = WORD_6 */
- { lw r12, r1; addi r1, r1, 4 } /* r12 = WORD_7 */
-
- /* Fill third L1D line. */
- { lw r18, r1; addi r1, r1, 4 } /* r18 = WORD_8 */
-
- /* Store first L1D line. */
- { sw r0, r16; addi r0, r0, 4; add r16, r0, r2 } /* store(WORD_0) */
- { sw r0, r13; addi r0, r0, 4; andi r16, r16, -64 } /* store(WORD_1) */
- { sw r0, r14; addi r0, r0, 4; slt_u r16, r9, r16 } /* store(WORD_2) */
- { sw r0, r15; addi r0, r0, 4; addi r13, sp, -64 } /* store(WORD_3) */
-
- /* Store second L1D line. */
- { sw r0, r17; addi r0, r0, 4; mvz r9, r16, r13 }/* store(WORD_4) */
- { sw r0, r19; addi r0, r0, 4 } /* store(WORD_5) */
- { sw r0, r10; addi r0, r0, 4 } /* store(WORD_6) */
- { sw r0, r12; addi r0, r0, 4 } /* store(WORD_7) */
-
- { lw r13, r1; addi r1, r1, 4; move zero, r18 } /* r13 = WORD_9 */
- { lw r14, r1; addi r1, r1, 4 } /* r14 = WORD_10 */
- { lw r15, r1; move r1, r20 } /* r15 = WORD_11 */
-
- /* Store third L1D line. */
- { sw r0, r18; addi r0, r0, 4 } /* store(WORD_8) */
- { sw r0, r13; addi r0, r0, 4 } /* store(WORD_9) */
- { sw r0, r14; addi r0, r0, 4 } /* store(WORD_10) */
- { sw r0, r15; addi r0, r0, 4 } /* store(WORD_11) */
-
- /* Store rest of fourth L1D line. */
- { sw r0, r4; addi r0, r0, 4 } /* store(WORD_12) */
- {
- sw r0, r8 /* store(WORD_13) */
- addi r0, r0, 4
- /* Will r2 be > 64 after we subtract 64 below? */
- shri r4, r2, 7
- }
- {
- sw r0, r11 /* store(WORD_14) */
- addi r0, r0, 8
- /* Record 64 bytes successfully copied. */
- addi r2, r2, -64
- }
-
- { jrp lr; move lr, r27 }
-
- /* Convey to the backtrace library that the stack frame is
- size zero, and the real return address is on the stack
- rather than in 'lr'. */
- { info 8 }
-
- .align 64
-.Lcopy_unaligned_maybe_many:
- /* Skip the setup overhead if we aren't copying many bytes. */
- { slti_u r8, r2, 20; sub r4, zero, r0 }
- { bnzt r8, .Lcopy_unaligned_few; andi r4, r4, 3 }
- { bz r4, .Ldest_is_word_aligned; add r18, r1, r2 }
-
-/* Unaligned 4 byte at a time copy handler. */
-
- /* Copy single bytes until r0 == 0 mod 4, so we can store words. */
-.Lalign_dest_loop:
- { lb_u r3, r1; addi r1, r1, 1; addi r4, r4, -1 }
- { sb r0, r3; addi r0, r0, 1; addi r2, r2, -1 }
- { bnzt r4, .Lalign_dest_loop; andi r3, r1, 3 }
-
- /* If source and dest are now *both* aligned, do an aligned copy. */
- { bz r3, .Lcheck_aligned_copy_size; addli r4, r2, -256 }
-
-.Ldest_is_word_aligned:
-
- { andi r8, r0, 63; lwadd_na r6, r1, 4}
- { slti_u r9, r2, 64; bz r8, .Ldest_is_L2_line_aligned }
-
- /* This copies unaligned words until either there are fewer
- than 4 bytes left to copy, or until the destination pointer
- is cache-aligned, whichever comes first.
-
- On entry:
- - r0 is the next store address.
- - r1 points 4 bytes past the load address corresponding to r0.
- - r2 >= 4
- - r6 is the next aligned word loaded. */
-.Lcopy_unaligned_src_words:
- { lwadd_na r7, r1, 4; slti_u r8, r2, 4 + 4 }
- /* stall */
- { dword_align r6, r7, r1; slti_u r9, r2, 64 + 4 }
- { swadd r0, r6, 4; addi r2, r2, -4 }
- { bnz r8, .Lcleanup_unaligned_words; andi r8, r0, 63 }
- { bnzt r8, .Lcopy_unaligned_src_words; move r6, r7 }
-
- /* On entry:
- - r0 is the next store address.
- - r1 points 4 bytes past the load address corresponding to r0.
- - r2 >= 4 (# of bytes left to store).
- - r6 is the next aligned src word value.
- - r9 = (r2 < 64U).
- - r18 points one byte past the end of source memory. */
-.Ldest_is_L2_line_aligned:
-
- {
- /* Not a full cache line remains. */
- bnz r9, .Lcleanup_unaligned_words
- move r7, r6
- }
-
- /* r2 >= 64 */
-
- /* Kick off two prefetches, but don't go past the end. */
- { addi r3, r1, 63 - 4; addi r8, r1, 64 + 63 - 4 }
- { prefetch r3; move r3, r8; slt_u r8, r8, r18 }
- { mvz r3, r8, r1; addi r8, r3, 64 }
- { prefetch r3; move r3, r8; slt_u r8, r8, r18 }
- { mvz r3, r8, r1; movei r17, 0 }
-
-.Lcopy_unaligned_line:
- /* Prefetch another line. */
- { prefetch r3; addi r15, r1, 60; addi r3, r3, 64 }
- /* Fire off a load of the last word we are about to copy. */
- { lw_na r15, r15; slt_u r8, r3, r18 }
-
- { mvz r3, r8, r1; wh64 r0 }
-
- /* This loop runs twice.
-
- On entry:
- - r17 is even before the first iteration, and odd before
- the second. It is incremented inside the loop. Encountering
- an even value at the end of the loop makes it stop. */
-.Lcopy_half_an_unaligned_line:
- {
- /* Stall until the last byte is ready. In the steady state this
- guarantees all words to load below will be in the L2 cache, which
- avoids shunting the loads to the RTF. */
- move zero, r15
- lwadd_na r7, r1, 16
- }
- { lwadd_na r11, r1, 12 }
- { lwadd_na r14, r1, -24 }
- { lwadd_na r8, r1, 4 }
- { lwadd_na r9, r1, 4 }
- {
- lwadd_na r10, r1, 8
- /* r16 = (r2 < 64), after we subtract 32 from r2 below. */
- slti_u r16, r2, 64 + 32
- }
- { lwadd_na r12, r1, 4; addi r17, r17, 1 }
- { lwadd_na r13, r1, 8; dword_align r6, r7, r1 }
- { swadd r0, r6, 4; dword_align r7, r8, r1 }
- { swadd r0, r7, 4; dword_align r8, r9, r1 }
- { swadd r0, r8, 4; dword_align r9, r10, r1 }
- { swadd r0, r9, 4; dword_align r10, r11, r1 }
- { swadd r0, r10, 4; dword_align r11, r12, r1 }
- { swadd r0, r11, 4; dword_align r12, r13, r1 }
- { swadd r0, r12, 4; dword_align r13, r14, r1 }
- { swadd r0, r13, 4; addi r2, r2, -32 }
- { move r6, r14; bbst r17, .Lcopy_half_an_unaligned_line }
-
- { bzt r16, .Lcopy_unaligned_line; move r7, r6 }
-
- /* On entry:
- - r0 is the next store address.
- - r1 points 4 bytes past the load address corresponding to r0.
- - r2 >= 0 (# of bytes left to store).
- - r7 is the next aligned src word value. */
-.Lcleanup_unaligned_words:
- /* Handle any trailing bytes. */
- { bz r2, .Lcopy_unaligned_done; slti_u r8, r2, 4 }
- { bzt r8, .Lcopy_unaligned_src_words; move r6, r7 }
-
- /* Move r1 back to the point where it corresponds to r0. */
- { addi r1, r1, -4 }
-
- /* Fall through */
-
-/* 1 byte at a time copy handler. */
-
-.Lcopy_unaligned_few:
- { lb_u r3, r1; addi r1, r1, 1 }
- { sb r0, r3; addi r0, r0, 1; addi r2, r2, -1 }
- { bnzt r2, .Lcopy_unaligned_few }
-
-.Lcopy_unaligned_done:
-
- { move r0, r23; jrp lr }
-
-END (__memcpy)
-
-weak_alias (__memcpy, memcpy)
-libc_hidden_builtin_def (memcpy)
diff --git a/sysdeps/tile/tilepro/memset.c b/sysdeps/tile/tilepro/memset.c
deleted file mode 100644
index aaeaacaacc..0000000000
--- a/sysdeps/tile/tilepro/memset.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright (C) 2011-2017 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 <arch/chip.h>
-
-void * inhibit_loop_to_libcall
-__memset (void *s, int c, size_t n)
-{
- uint32_t *out32;
- int n32;
- uint32_t v16, v32;
- uint8_t *out8 = s;
- int to_align32;
-
- /* 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 < 3
- /* 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 >= 3 so this won't write past the end. */
- while (((uintptr_t) out8 & 3) != 0)
- {
- *out8++ = c;
- --n;
- }
-
- /* Align 'n'. */
- while (n & 3)
- out8[--n] = c;
-
- out32 = (uint32_t *) out8;
- n32 = n >> 2;
-
- /* Tile input byte out to 32 bits. */
- v16 = __insn_intlb (c, c);
- v32 = __insn_intlh (v16, v16);
-
- /* This must be at least 8 or the following loop doesn't work. */
-#define CACHE_LINE_SIZE_IN_WORDS (CHIP_L2_LINE_SIZE() / 4)
-
- /* Determine how many words we need to emit before the 'out32'
- pointer becomes aligned modulo the cache line size. */
- to_align32 = (-((uintptr_t) out32 >> 2)) & (CACHE_LINE_SIZE_IN_WORDS - 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_align32 <= n32 - CACHE_LINE_SIZE_IN_WORDS)
- {
- int lines_left;
-
- /* Align out32 mod the cache line size so we can use wh64. */
- n32 -= to_align32;
- for (; to_align32 != 0; to_align32--)
- {
- *out32 = v32;
- out32++;
- }
-
- /* Use unsigned divide to turn this into a right shift. */
- lines_left = (unsigned) n32 / CACHE_LINE_SIZE_IN_WORDS;
-
- 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 ());
- uint32_t *wh = out32;
- int i = x;
- int j;
-
- lines_left -= x;
-
- do
- {
- __insn_wh64 (wh);
- wh += CACHE_LINE_SIZE_IN_WORDS;
- }
- while (--i);
-
- for (j = x * (CACHE_LINE_SIZE_IN_WORDS / 4); j != 0; j--)
- {
- *out32++ = v32;
- *out32++ = v32;
- *out32++ = v32;
- *out32++ = v32;
- }
- }
- while (lines_left != 0);
-
- /* We processed all full lines above, so only this many words
- remain to be processed. */
- n32 &= CACHE_LINE_SIZE_IN_WORDS - 1;
- }
-
- /* Now handle any leftover values. */
- if (n32 != 0)
- {
- do
- {
- *out32 = v32;
- out32++;
- }
- while (--n32 != 0);
- }
-
- return s;
-}
-weak_alias (__memset, memset)
-libc_hidden_builtin_def (memset)
diff --git a/sysdeps/tile/tilepro/memusage.h b/sysdeps/tile/tilepro/memusage.h
deleted file mode 100644
index 9ed4600f13..0000000000
--- a/sysdeps/tile/tilepro/memusage.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2011-2017 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/spr_def.h>
-
-#define GETSP() ({ register uintptr_t stack_ptr asm ("sp"); stack_ptr; })
-
-#define GETTIME(low,high) \
- { \
- low = __insn_mfspr (SPR_CYCLE_LOW); \
- high = __insn_mfspr (SPR_CYCLE_HIGH); \
- }
-
-#include <sysdeps/generic/memusage.h>
diff --git a/sysdeps/tile/tilepro/rawmemchr.c b/sysdeps/tile/tilepro/rawmemchr.c
deleted file mode 100644
index a5e714407d..0000000000
--- a/sysdeps/tile/tilepro/rawmemchr.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 2011-2017 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>
-
-void *
-__rawmemchr (const void *s, int c)
-{
- /* Get an aligned pointer. */
- const uintptr_t s_int = (uintptr_t) s;
- const uint32_t *p = (const uint32_t *) (s_int & -4);
-
- /* Create four copies of the byte for which we are looking. */
- const uint32_t goal = 0x01010101 * (uint8_t) c;
-
- /* Read the first word, but munge it so that bytes before the array
- will not match goal. Note that this shift count expression works
- because we know shift counts are taken mod 32. */
- const uint32_t before_mask = (1 << (s_int << 3)) - 1;
- uint32_t v = (*p | before_mask) ^ (goal & before_mask);
-
- uint32_t bits;
- while ((bits = __insn_seqb (v, goal)) == 0)
- v = *++p;
-
- return ((char *) p) + (__insn_ctz (bits) >> 3);
-}
-libc_hidden_def (__rawmemchr)
-weak_alias (__rawmemchr, rawmemchr)
diff --git a/sysdeps/tile/tilepro/strchr.c b/sysdeps/tile/tilepro/strchr.c
deleted file mode 100644
index 11f8cda418..0000000000
--- a/sysdeps/tile/tilepro/strchr.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright (C) 2011-2017 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>
-
-#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 uint32_t *p = (const uint32_t *) (s_int & -4);
-
- /* Create four copies of the byte for which we are looking. */
- const uint32_t goal = 0x01010101 * (uint8_t) 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). Note that this shift count expression works because we
- know shift counts are taken mod 32. */
- const uint32_t before_mask = (1 << (s_int << 3)) - 1;
- uint32_t v = (*p | before_mask) ^ (goal & __insn_shrib (before_mask, 1));
-
- uint32_t zero_matches, goal_matches;
- while (1)
- {
- /* Look for a terminating '\0'. */
- zero_matches = __insn_seqb (v, 0);
-
- /* Look for the goal byte. */
- goal_matches = __insn_seqb (v, goal);
-
- if (__builtin_expect ((zero_matches | goal_matches) != 0, 0))
- break;
-
- v = *++p;
- }
-
- z = __insn_ctz (zero_matches);
- g = __insn_ctz (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/tilepro/strchrnul.c b/sysdeps/tile/tilepro/strchrnul.c
deleted file mode 100644
index 3220ad7970..0000000000
--- a/sysdeps/tile/tilepro/strchrnul.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright (C) 2011-2017 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>
-
-char *
-__strchrnul (const char *s, int c)
-{
- int z, g;
-
- /* Get an aligned pointer. */
- const uintptr_t s_int = (uintptr_t) s;
- const uint32_t *p = (const uint32_t *) (s_int & -4);
-
- /* Create four copies of the byte for which we are looking. */
- const uint32_t goal = 0x01010101 * (uint8_t) 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). Note that this shift count expression works because we
- know shift counts are taken mod 32. */
- const uint32_t before_mask = (1 << (s_int << 3)) - 1;
- uint32_t v = (*p | before_mask) ^ (goal & __insn_shrib (before_mask, 1));
-
- uint32_t zero_matches, goal_matches;
- while (1)
- {
- /* Look for a terminating '\0'. */
- zero_matches = __insn_seqb (v, 0);
-
- /* Look for the goal byte. */
- goal_matches = __insn_seqb (v, goal);
-
- if (__builtin_expect ((zero_matches | goal_matches) != 0, 0))
- break;
-
- v = *++p;
- }
-
- z = __insn_ctz (zero_matches);
- g = __insn_ctz (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/tilepro/strlen.c b/sysdeps/tile/tilepro/strlen.c
deleted file mode 100644
index adad3d80e4..0000000000
--- a/sysdeps/tile/tilepro/strlen.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2011-2017 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>
-
-size_t
-strlen (const char *s)
-{
- /* Get an aligned pointer. */
- const uintptr_t s_int = (uintptr_t) s;
- const uint32_t *p = (const uint32_t *) (s_int & -4);
-
- /* Read the first word, but force bytes before the string to be nonzero.
- This expression works because we know shift counts are taken mod 32. */
- uint32_t v = *p | ((1 << (s_int << 3)) - 1);
-
- uint32_t bits;
- while ((bits = __insn_seqb (v, 0)) == 0)
- v = *++p;
-
- return ((const char *) p) + (__insn_ctz (bits) >> 3) - s;
-}
-libc_hidden_builtin_def (strlen)
diff --git a/sysdeps/tile/tilepro/strrchr.c b/sysdeps/tile/tilepro/strrchr.c
deleted file mode 100644
index b30d259773..0000000000
--- a/sysdeps/tile/tilepro/strrchr.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright (C) 2011-2017 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>
-
-char *
-strrchr (const char *s, int c)
-{
- /* Get an aligned pointer. */
- const uintptr_t s_int = (uintptr_t) s;
- const uint32_t *p = (const uint32_t *) (s_int & -4);
-
- /* Create four copies of the byte for which we are looking. */
- const uint32_t goal = 0x01010101 * (uint8_t) 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). Note that this shift count expression works because we
- know shift counts are taken mod 32. */
- const uint32_t before_mask = (1 << (s_int << 3)) - 1;
- uint32_t v = (*p | before_mask) ^ (goal & __insn_shrib (before_mask, 1));
- const char *found = NULL;
- uint32_t zero_matches, goal_matches;
- while (1)
- {
- /* Look for a terminating '\0'. */
- zero_matches = __insn_seqb (v, 0);
-
- /* Look for the goal byte. */
- goal_matches = __insn_seqb (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 = __insn_ctz (zero_matches);
- /* The number of top bits we need to clear is
- 32 - (first_nul + 8). */
- int shift_amt = (24 - first_nul);
- goal_matches <<= shift_amt;
- goal_matches >>= shift_amt;
- }
- if (__builtin_expect (goal_matches != 0, 1))
- found = ((char *) p) + 3 - (__insn_clz (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/tls-macros.h b/sysdeps/tile/tls-macros.h
index 878358a731..47689b38f9 100644
--- a/sysdeps/tile/tls-macros.h
+++ b/sysdeps/tile/tls-macros.h
@@ -16,16 +16,10 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
-#ifdef __tilegx__
#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"
-#else
-#define TLS_GD_OFFSET(x) \
- "auli r0, %1, tls_gd_ha16(" #x ")\n\t" \
- "addli r0, r0, tls_gd_lo16(" #x ")\n\t"
-#endif
#define TLS_GD(x) \
({ \
@@ -42,18 +36,11 @@
/* No special support for LD mode. */
#define TLS_LD TLS_GD
-#ifdef __tilegx__
#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"
-#else
-#define TLS_IE_OFFSET(x) \
- "auli %0, %1, tls_ie_ha16(" #x ")\n\t" \
- "addli %0, %0, tls_ie_lo16(" #x ")\n\t"
-#define LD_TLS "lw_tls"
-#endif
#define TLS_IE(x) \
({ \
@@ -66,16 +53,10 @@
"=&r" (__retval) : "r" (_GLOBAL_OFFSET_TABLE_)); \
__retval; })
-#ifdef __tilegx__
#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"
-#else
-#define _TLS_LE(x) \
- "auli %0, tp, tls_le_ha16(" #x ")\n\t" \
- "addli %0, %0, tls_le_lo16(" #x ")\n\t"
-#endif
#define TLS_LE(x) \
({ \
diff --git a/sysdeps/tile/wordcopy.c b/sysdeps/tile/wordcopy.c
index 2f93e5a5d1..027a4d6be6 100644
--- a/sysdeps/tile/wordcopy.c
+++ b/sysdeps/tile/wordcopy.c
@@ -31,11 +31,7 @@
/* Provide the appropriate dblalign builtin to shift two registers
based on the alignment of a pointer held in a third register. */
-#ifdef __tilegx__
#define DBLALIGN __insn_dblalign
-#else
-#define DBLALIGN __insn_dword_align
-#endif
/* _wordcopy_fwd_aligned -- Copy block beginning at SRCP to
block beginning at DSTP with LEN `op_t' words (not LEN bytes!).
diff --git a/sysdeps/unix/sysv/linux/tile/bits/environments.h b/sysdeps/unix/sysv/linux/tile/bits/environments.h
index 67cfc846ca..7632901bdd 100644
--- a/sysdeps/unix/sysv/linux/tile/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/tile/bits/environments.h
@@ -89,12 +89,10 @@
#endif /* __WORDSIZE == 32 */
-#ifdef __tilegx__
-/* Only TILE-Gx has the ability to choose 32- or 64-bit. */
+/* 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"
-#endif
diff --git a/sysdeps/unix/sysv/linux/tile/sysconf.c b/sysdeps/unix/sysv/linux/tile/sysconf.c
index a2241935a2..ee3188f853 100644
--- a/sysdeps/unix/sysv/linux/tile/sysconf.c
+++ b/sysdeps/unix/sysv/linux/tile/sysconf.c
@@ -25,8 +25,8 @@ static long int linux_sysconf (int name);
long int
__sysconf (int name)
{
- /* Currently we support only tilepro and tilegx, which have
- statically-known cache sizes. */
+ /* Currently we support only tilegx, which have statically-known cache
+ sizes. */
switch (name)
{
/* Level 1 cache. */
diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/Implies b/sysdeps/unix/sysv/linux/tile/tilepro/Implies
deleted file mode 100644
index 0023bb77aa..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/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/tilepro/c++-types.data b/sysdeps/unix/sysv/linux/tile/tilepro/c++-types.data
deleted file mode 100644
index 303f4570c8..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/c++-types.data
+++ /dev/null
@@ -1,67 +0,0 @@
-blkcnt64_t:x
-blkcnt_t:l
-blksize_t:i
-caddr_t:Pc
-clockid_t:i
-clock_t:l
-daddr_t:i
-dev_t:y
-fd_mask:l
-fsblkcnt64_t:y
-fsblkcnt_t:m
-fsfilcnt64_t:y
-fsfilcnt_t:m
-fsid_t:8__fsid_t
-gid_t:j
-id_t:j
-ino64_t:y
-ino_t:m
-int16_t:s
-int32_t:i
-int64_t:x
-int8_t:a
-intptr_t:i
-key_t:i
-loff_t:x
-mode_t:j
-nlink_t:j
-off64_t:x
-off_t:l
-pid_t:i
-pthread_attr_t:14pthread_attr_t
-pthread_barrier_t:17pthread_barrier_t
-pthread_barrierattr_t:21pthread_barrierattr_t
-pthread_cond_t:14pthread_cond_t
-pthread_condattr_t:18pthread_condattr_t
-pthread_key_t:j
-pthread_mutex_t:15pthread_mutex_t
-pthread_mutexattr_t:19pthread_mutexattr_t
-pthread_once_t:i
-pthread_rwlock_t:16pthread_rwlock_t
-pthread_rwlockattr_t:20pthread_rwlockattr_t
-pthread_spinlock_t:i
-pthread_t:m
-quad_t:x
-register_t:i
-rlim64_t:y
-rlim_t:m
-sigset_t:10__sigset_t
-size_t:j
-socklen_t:j
-ssize_t:i
-suseconds_t:l
-time_t:l
-u_char:h
-uid_t:j
-uint:j
-u_int:j
-u_int16_t:t
-u_int32_t:j
-u_int64_t:y
-u_int8_t:h
-ulong:m
-u_long:m
-u_quad_t:y
-useconds_t:j
-ushort:t
-u_short:t
diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/jmp_buf-macros.h b/sysdeps/unix/sysv/linux/tile/tilepro/jmp_buf-macros.h
deleted file mode 100644
index 411e62a047..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/jmp_buf-macros.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#define JMP_BUF_SIZE 260
-#define SIGJMP_BUF_SIZE 260
-#define JMP_BUF_ALIGN 4
-#define SIGJMP_BUF_ALIGN 4
-#define MASK_WAS_SAVED_OFFSET 128
-#define SAVED_MASK_OFFSET 132
diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/ld.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/ld.abilist
deleted file mode 100644
index f166310147..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/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/tilepro/ldconfig.h b/sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h
deleted file mode 100644
index 527825c106..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2011-2017 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 },
-#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/tilepro/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libBrokenLocale.abilist
deleted file mode 100644
index 0d64827515..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/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/tilepro/libanl.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libanl.abilist
deleted file mode 100644
index a3b1cc08bf..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/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/tilepro/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist
deleted file mode 100644
index dcbfbc05ac..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist
+++ /dev/null
@@ -1,2137 +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 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/tilepro/libcrypt.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libcrypt.abilist
deleted file mode 100644
index d5643802b7..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/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/tilepro/libdl.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libdl.abilist
deleted file mode 100644
index cabc30c239..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/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/tilepro/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist
deleted file mode 100644
index 6b375f5152..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist
+++ /dev/null
@@ -1,749 +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
diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libnsl.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libnsl.abilist
deleted file mode 100644
index 0277e5c1a8..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/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/tilepro/libpthread.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libpthread.abilist
deleted file mode 100644
index d16158f938..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/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/tilepro/libresolv.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libresolv.abilist
deleted file mode 100644
index aa2fefa6e4..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/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/tilepro/librt.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/librt.abilist
deleted file mode 100644
index 14f5c8245d..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/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/tilepro/libthread_db.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libthread_db.abilist
deleted file mode 100644
index 4aade0b7e0..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/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/tilepro/libutil.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libutil.abilist
deleted file mode 100644
index e4d432643c..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/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/tilepro/register-dump.h b/sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h
deleted file mode 100644
index da48526c83..0000000000
--- a/sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright (C) 2011-2017 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@cygnus.com>, 1998.
-
- 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: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
- R8: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
- R16: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
- R24: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
- R32: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
- R40: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
- R48: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
- R52: XXXXXXXX TP: XXXXXXXX SP: XXXXXXXX LR: XXXXXXXX
-
- PC: XXXXXXXX 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][8];
- struct iovec iov[143];
- 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], 8);
- hexvalue (ctx->pc, regs[56], 8);
- hexvalue (ctx->ics, regs[57], 1);
- hexvalue (ctx->faultnum, regs[58], 2);
-
- /* Generate the output. */
- for (i = 0; i < 52;)
- {
- const char *prefixes[] = {
- "Register dump:\n\n R0: ",
- "\n R8: ",
- "\n R16: ",
- "\n R24: ",
- "\n R32: ",
- "\n R40: ",
- "\n R48: "
- };
- ADD_STRING (prefixes[i / 8]);
- do
- {
- ADD_MEM (regs[i], 8);
- ADD_STRING (" ");
- }
- while (++i % 8 && i < 52);
- }
- ADD_STRING ("\n R52: ");
- ADD_MEM (regs[52], 8);
- ADD_STRING (" TP: ");
- ADD_MEM (regs[53], 8);
- ADD_STRING (" SP: ");
- ADD_MEM (regs[54], 8);
- ADD_STRING (" LR: ");
- ADD_MEM (regs[55], 8);
- ADD_STRING ("\n\n PC: ");
- ADD_MEM (regs[56], 8);
- 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)