summaryrefslogtreecommitdiffstats
path: root/bsp/meta-synopsys/recipes-core/glibc/files/0031-Add-ARC-architecture.patch
diff options
context:
space:
mode:
Diffstat (limited to 'bsp/meta-synopsys/recipes-core/glibc/files/0031-Add-ARC-architecture.patch')
-rw-r--r--bsp/meta-synopsys/recipes-core/glibc/files/0031-Add-ARC-architecture.patch8475
1 files changed, 0 insertions, 8475 deletions
diff --git a/bsp/meta-synopsys/recipes-core/glibc/files/0031-Add-ARC-architecture.patch b/bsp/meta-synopsys/recipes-core/glibc/files/0031-Add-ARC-architecture.patch
deleted file mode 100644
index 46f8de8e..00000000
--- a/bsp/meta-synopsys/recipes-core/glibc/files/0031-Add-ARC-architecture.patch
+++ /dev/null
@@ -1,8475 +0,0 @@
-glibc: Update to arc-2018.09-rc2 tag
-
-This was generated from Synopsys GitHub Glibc WIP fork [1] this way:
------------------>8-----------------
-git diff glibc-2.28..arc-2018.09-rc2 ':!NEWS'
------------------>8-----------------
-
-[1] https://github.com/foss-for-synopsys-dwc-arc-processors/glibc
-
-Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
-
-Upstream-Status: Pending
----
-diff --git a/elf/elf.h b/elf/elf.h
-index 7e2b072a7f75..5b0b20d58934 100644
---- a/elf/elf.h
-+++ b/elf/elf.h
-@@ -330,7 +330,7 @@ typedef struct
- #define EM_CLOUDSHIELD 192 /* CloudShield */
- #define EM_COREA_1ST 193 /* KIPO-KAIST Core-A 1st gen. */
- #define EM_COREA_2ND 194 /* KIPO-KAIST Core-A 2nd gen. */
--#define EM_ARC_COMPACT2 195 /* Synopsys ARCompact V2 */
-+#define EM_ARCV2 195 /* Synopsys ARCv2 ISA */
- #define EM_OPEN8 196 /* Open8 RISC */
- #define EM_RL78 197 /* Renesas RL78 */
- #define EM_VIDEOCORE5 198 /* Broadcom VideoCore V */
-@@ -3925,6 +3925,74 @@ enum
- #define R_NDS32_TLS_TPOFF 102
- #define R_NDS32_TLS_DESC 119
-
-+/* ARCompact/ARCv2 specific relocs */
-+#define R_ARC_NONE 0x0
-+#define R_ARC_8 0x1
-+#define R_ARC_16 0x2
-+#define R_ARC_24 0x3
-+#define R_ARC_32 0x4
-+#define R_ARC_B26 0x5
-+#define R_ARC_B22_PCREL 0x6
-+#define R_ARC_H30 0x7
-+#define R_ARC_N8 0x8
-+#define R_ARC_N16 0x9
-+#define R_ARC_N24 0xA
-+#define R_ARC_N32 0xB
-+#define R_ARC_SDA 0xC
-+#define R_ARC_SECTOFF 0xD
-+#define R_ARC_S21H_PCREL 0xE
-+#define R_ARC_S21W_PCREL 0xF
-+#define R_ARC_S25H_PCREL 0x10
-+#define R_ARC_S25W_PCREL 0x11
-+#define R_ARC_SDA32 0x12
-+#define R_ARC_SDA_LDST 0x13
-+#define R_ARC_SDA_LDST1 0x14
-+#define R_ARC_SDA_LDST2 0x15
-+#define R_ARC_SDA16_LD 0x16
-+#define R_ARC_SDA16_LD1 0x17
-+#define R_ARC_SDA16_LD2 0x18
-+#define R_ARC_S13_PCREL 0x19
-+#define R_ARC_W 0x1A
-+#define R_ARC_32_ME 0x1B
-+#define R_ARC_N32_ME 0x1C
-+#define R_ARC_SECTOFF_ME 0x1D
-+#define R_ARC_SDA32_ME 0x1E
-+#define R_ARC_W_ME 0x1F
-+#define R_ARC_H30_ME 0x20
-+#define R_ARC_SECTOFF_U8 0x21
-+#define R_ARC_SECTOFF_S9 0x22
-+#define R_AC_SECTOFF_U8 0x23
-+#define R_AC_SECTOFF_U8_1 0x24
-+#define R_AC_SECTOFF_U8_2 0x25
-+#define R_AC_SECTOFF_S9 0x26
-+#define R_AC_SECTOFF_S9_1 0x27
-+#define R_AC_SECTOFF_S9_2 0x28
-+#define R_ARC_SECTOFF_ME_1 0x29
-+#define R_ARC_SECTOFF_ME_2 0x2A
-+#define R_ARC_SECTOFF_1 0x2B
-+#define R_ARC_SECTOFF_2 0x2C
-+#define R_ARC_PC32 0x32
-+#define R_ARC_GOTPC32 0x33
-+#define R_ARC_PLT32 0x34
-+#define R_ARC_COPY 0x35
-+#define R_ARC_GLOB_DAT 0x36
-+#define R_ARC_JUMP_SLOT 0x37
-+#define R_ARC_RELATIVE 0x38
-+#define R_ARC_GOTOFF 0x39
-+#define R_ARC_GOTPC 0x3A
-+#define R_ARC_GOT32 0x3B
-+
-+#define R_ARC_TLS_DTPMOD 0x42
-+#define R_ARC_TLS_DTPOFF 0x43
-+#define R_ARC_TLS_TPOFF 0x44
-+#define R_ARC_TLS_GD_GOT 0x45
-+#define R_ARC_TLS_GD_LD 0x46
-+#define R_ARC_TLS_GD_CALL 0x47
-+#define R_ARC_TLS_IE_GOT 0x48
-+#define R_ARC_TLS_DTPOFF_S9 0x4a
-+#define R_ARC_TLS_LE_S9 0x4a
-+#define R_ARC_TLS_LE_32 0x4b
-+
- __END_DECLS
-
- #endif /* elf.h */
-diff --git a/posix/tst-getaddrinfo4.c b/posix/tst-getaddrinfo4.c
-index dc9e423448af..0139dee777a1 100644
---- a/posix/tst-getaddrinfo4.c
-+++ b/posix/tst-getaddrinfo4.c
-@@ -39,6 +39,7 @@ try (const char *service, int family, int flags)
- case 0:
- case EAI_AGAIN:
- case EAI_NONAME:
-+ case EAI_NODATA:
- printf ("SUCCESS getaddrinfo(service=%s, family=%d, flags=%d): %s: %m\n",
- service ?: "NULL", family, flags, gai_strerror (res));
- return 0;
-diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
-index 8ef463f57ad6..07171a7ad7b7 100755
---- a/scripts/build-many-glibcs.py
-+++ b/scripts/build-many-glibcs.py
-@@ -165,6 +165,9 @@ class Context(object):
- 'cfg': ['--disable-multi-arch']}])
- self.add_config(arch='aarch64_be',
- os_name='linux-gnu')
-+ self.add_config(arch='arc',
-+ os_name='linux-gnu',
-+ gcc_cfg=['--disable-multilib', '--with-cpu=archs'])
- self.add_config(arch='alpha',
- os_name='linux-gnu')
- self.add_config(arch='arm',
-@@ -778,13 +781,13 @@ class Context(object):
- git_branch = 'binutils-%s-branch' % version.translate(trans)
- return self.git_checkout(component, git_url, git_branch, update)
- elif component == 'gcc':
-+ git_url = 'git://gcc.gnu.org/git/gcc.git'
- if version == 'mainline':
-- branch = 'trunk'
-+ branch = 'master'
- else:
- trans = str.maketrans({'.': '_'})
-- branch = 'branches/gcc-%s-branch' % version.translate(trans)
-- svn_url = 'svn://gcc.gnu.org/svn/gcc/%s' % branch
-- return self.gcc_checkout(svn_url, update)
-+ branch = 'gcc-%s-branch' % version.translate(trans)
-+ return self.git_checkout(component, git_url, branch, update)
- elif component == 'glibc':
- git_url = 'git://sourceware.org/git/glibc.git'
- if version == 'mainline':
-@@ -1245,6 +1248,7 @@ class Config(object):
- def install_linux_headers(self, cmdlist):
- """Install Linux kernel headers."""
- arch_map = {'aarch64': 'arm64',
-+ 'arc': 'arc',
- 'alpha': 'alpha',
- 'arm': 'arm',
- 'hppa': 'parisc',
-@@ -1640,11 +1644,11 @@ def get_parser():
- parser = argparse.ArgumentParser(description=__doc__)
- parser.add_argument('-j', dest='parallelism',
- help='Run this number of jobs in parallel',
-- type=int, default=os.cpu_count())
-+ type=int, default=1)
- parser.add_argument('--keep', dest='keep',
- help='Whether to keep all build directories, '
- 'none or only those from failed builds',
-- default='none', choices=('none', 'all', 'failed'))
-+ default='all', choices=('none', 'all', 'failed'))
- parser.add_argument('--replace-sources', action='store_true',
- help='Remove and replace source directories '
- 'with the wrong version of a component')
-diff --git a/stdlib/longlong.h b/stdlib/longlong.h
-index c7c6977c9fd6..fb982dd530c9 100644
---- a/stdlib/longlong.h
-+++ b/stdlib/longlong.h
-@@ -197,17 +197,17 @@ extern UDItype __udiv_qrnnd (UDItype *, UDItype, UDItype, UDItype);
- : "=r" ((USItype) (sh)), \
- "=&r" ((USItype) (sl)) \
- : "%r" ((USItype) (ah)), \
-- "rIJ" ((USItype) (bh)), \
-+ "rICal" ((USItype) (bh)), \
- "%r" ((USItype) (al)), \
-- "rIJ" ((USItype) (bl)))
-+ "rICal" ((USItype) (bl)))
- #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("sub.f %1, %4, %5\n\tsbc %0, %2, %3" \
- : "=r" ((USItype) (sh)), \
- "=&r" ((USItype) (sl)) \
- : "r" ((USItype) (ah)), \
-- "rIJ" ((USItype) (bh)), \
-+ "rICal" ((USItype) (bh)), \
- "r" ((USItype) (al)), \
-- "rIJ" ((USItype) (bl)))
-+ "rICal" ((USItype) (bl)))
-
- #define __umulsidi3(u,v) ((UDItype)(USItype)u*(USItype)v)
- #ifdef __ARC_NORM__
-@@ -221,8 +221,8 @@ extern UDItype __udiv_qrnnd (UDItype *, UDItype, UDItype, UDItype);
- } \
- while (0)
- #define COUNT_LEADING_ZEROS_0 32
--#endif
--#endif
-+#endif /* __ARC_NORM__ */
-+#endif /* __arc__ */
-
- #if defined (__arm__) && (defined (__thumb2__) || !defined (__thumb__)) \
- && W_TYPE_SIZE == 32
-@@ -858,42 +858,6 @@ extern UDItype __umulsidi3 (USItype, USItype);
- #endif
- #endif /* __mips__ */
-
--#if defined (__ns32000__) && W_TYPE_SIZE == 32
--#define umul_ppmm(w1, w0, u, v) \
-- ({union {UDItype __ll; \
-- struct {USItype __l, __h;} __i; \
-- } __xx; \
-- __asm__ ("meid %2,%0" \
-- : "=g" (__xx.__ll) \
-- : "%0" ((USItype) (u)), \
-- "g" ((USItype) (v))); \
-- (w1) = __xx.__i.__h; (w0) = __xx.__i.__l;})
--#define __umulsidi3(u, v) \
-- ({UDItype __w; \
-- __asm__ ("meid %2,%0" \
-- : "=g" (__w) \
-- : "%0" ((USItype) (u)), \
-- "g" ((USItype) (v))); \
-- __w; })
--#define udiv_qrnnd(q, r, n1, n0, d) \
-- ({union {UDItype __ll; \
-- struct {USItype __l, __h;} __i; \
-- } __xx; \
-- __xx.__i.__h = (n1); __xx.__i.__l = (n0); \
-- __asm__ ("deid %2,%0" \
-- : "=g" (__xx.__ll) \
-- : "0" (__xx.__ll), \
-- "g" ((USItype) (d))); \
-- (r) = __xx.__i.__l; (q) = __xx.__i.__h; })
--#define count_trailing_zeros(count,x) \
-- do { \
-- __asm__ ("ffsd %2,%0" \
-- : "=r" ((USItype) (count)) \
-- : "0" ((USItype) 0), \
-- "r" ((USItype) (x))); \
-- } while (0)
--#endif /* __ns32000__ */
--
- /* FIXME: We should test _IBMR2 here when we add assembly support for the
- system vendor compilers.
- FIXME: What's needed for gcc PowerPC VxWorks? __vxworks__ is not good
-@@ -1086,7 +1050,7 @@ extern UDItype __umulsidi3 (USItype, USItype);
- } while (0)
- #endif
-
--#if defined(__sh__) && (!defined (__SHMEDIA__) || !__SHMEDIA__) && W_TYPE_SIZE == 32
-+#if defined(__sh__) && W_TYPE_SIZE == 32
- #ifndef __sh1__
- #define umul_ppmm(w1, w0, u, v) \
- __asm__ ( \
-@@ -1159,21 +1123,6 @@ extern UDItype __umulsidi3 (USItype, USItype);
-
- #endif /* __sh__ */
-
--#if defined (__SH5__) && defined (__SHMEDIA__) && __SHMEDIA__ && W_TYPE_SIZE == 32
--#define __umulsidi3(u,v) ((UDItype)(USItype)u*(USItype)v)
--#define count_leading_zeros(count, x) \
-- do \
-- { \
-- UDItype x_ = (USItype)(x); \
-- SItype c_; \
-- \
-- __asm__ ("nsb %1, %0" : "=r" (c_) : "r" (x_)); \
-- (count) = c_ - 31; \
-- } \
-- while (0)
--#define COUNT_LEADING_ZEROS_0 32
--#endif
--
- #if defined (__sparc__) && !defined (__arch64__) && !defined (__sparcv9) \
- && W_TYPE_SIZE == 32
- #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
-diff --git a/sysdeps/arc/Implies b/sysdeps/arc/Implies
-new file mode 100644
-index 000000000000..7d69983412d8
---- /dev/null
-+++ b/sysdeps/arc/Implies
-@@ -0,0 +1,4 @@
-+wordsize-32
-+ieee754/soft-fp
-+ieee754/dbl-64
-+ieee754/flt-32
-diff --git a/sysdeps/arc/Makefile b/sysdeps/arc/Makefile
-new file mode 100644
-index 000000000000..a88eda115b95
---- /dev/null
-+++ b/sysdeps/arc/Makefile
-@@ -0,0 +1,25 @@
-+# ARC Makefile
-+# Copyright (C) 1993-2018 Free Software Foundation, Inc.
-+# This file is part of the GNU C Library.
-+
-+# The GNU C Library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License as published by the Free Software Foundation; either
-+# version 2.1 of the License, or (at your option) any later version.
-+
-+# The GNU C Library is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+# Lesser General Public License for more details.
-+
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with the GNU C Library. If not, see
-+# <http://www.gnu.org/licenses/>.
-+
-+# We don't support long doubles as a distinct type. We don't need to set
-+# this variable; it's here mostly for documentational purposes.
-+long-double-fcts = no
-+
-+ifeq ($(subdir),debug)
-+CFLAGS-backtrace.c += -funwind-tables
-+endif
-diff --git a/sysdeps/arc/Versions b/sysdeps/arc/Versions
-new file mode 100644
-index 000000000000..1041bccc1f1a
---- /dev/null
-+++ b/sysdeps/arc/Versions
-@@ -0,0 +1,14 @@
-+libc {
-+ GLIBC_2.27 {
-+ __adddf3; __addsf3; __divdf3; __divsf3; __eqdf2; __eqsf2; __extendsfdf2;
-+ __fixdfdi; __fixdfsi; __fixsfdi; __fixsfsi;
-+ __fixunsdfdi; __fixunsdfsi; __fixunssfdi; __fixunssfsi;
-+ __floatdidf; __floatdisf; __floatsidf; __floatsisf;
-+ __floatundidf; __floatundisf; __floatunsidf; __floatunsisf;
-+ __gedf2; __gesf2; __gtdf2; __gtsf2; __ledf2; __lesf2; __ltdf2; __ltsf2;
-+ __muldf3; __mulsf3; __nedf2; __nesf2; __negdf2; __negsf2;
-+ __subdf3; __subsf3; __truncdfsf2; __unorddf2; __unordsf2;
-+ __syscall_error;
-+ __mcount;
-+ }
-+}
-diff --git a/sysdeps/arc/__longjmp.S b/sysdeps/arc/__longjmp.S
-new file mode 100644
-index 000000000000..5ef271536bcc
---- /dev/null
-+++ b/sysdeps/arc/__longjmp.S
-@@ -0,0 +1,50 @@
-+/* longjmp for ARC.
-+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public License as
-+ published by the Free Software Foundation; either version 2.1 of the
-+ License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+#include <jmpbuf-offsets.h>
-+
-+;@ r0 = jump buffer from which regs will be restored
-+;@ r1 = value that setjmp( ) will return due to this longjmp
-+
-+ENTRY(__longjmp)
-+
-+ ld_s r13, [r0]
-+ ld_s r14, [r0,4]
-+ ld r15, [r0,8]
-+ ld r16, [r0,12]
-+ ld r17, [r0,16]
-+ ld r18, [r0,20]
-+ ld r19, [r0,24]
-+ ld r20, [r0,28]
-+ ld r21, [r0,32]
-+ ld r22, [r0,36]
-+ ld r23, [r0,40]
-+ ld r24, [r0,44]
-+ ld r25, [r0,48]
-+
-+ ld blink, [r0,60]
-+ ld fp, [r0,52]
-+ ld sp, [r0,56]
-+
-+ mov.f r0, r1 ; get the setjmp return value(due to longjmp) in place
-+
-+ j.d [blink] ; to caller of setjmp location, right after the call
-+ mov.z r0, 1 ; can't let setjmp return 0 when it is due to longjmp
-+
-+END(__longjmp)
-diff --git a/sysdeps/arc/abort-instr.h b/sysdeps/arc/abort-instr.h
-new file mode 100644
-index 000000000000..474098e9a819
---- /dev/null
-+++ b/sysdeps/arc/abort-instr.h
-@@ -0,0 +1,2 @@
-+/* FLAG 1 is privilege mode only instruction, hence will crash any program */
-+#define ABORT_INSTRUCTION asm ("flag 1")
-diff --git a/sysdeps/arc/atomic-machine.h b/sysdeps/arc/atomic-machine.h
-new file mode 100644
-index 000000000000..1a8d976794d0
---- /dev/null
-+++ b/sysdeps/arc/atomic-machine.h
-@@ -0,0 +1,89 @@
-+/* Low-level functions for atomic operations. ARC version.
-+ Copyright (C) 2012-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _ARC_BITS_ATOMIC_H
-+#define _ARC_BITS_ATOMIC_H 1
-+
-+#include <stdint.h>
-+
-+typedef int32_t atomic32_t;
-+typedef uint32_t uatomic32_t;
-+typedef int_fast32_t atomic_fast32_t;
-+typedef uint_fast32_t uatomic_fast32_t;
-+
-+typedef intptr_t atomicptr_t;
-+typedef uintptr_t uatomicptr_t;
-+typedef intmax_t atomic_max_t;
-+typedef uintmax_t uatomic_max_t;
-+
-+#define __HAVE_64B_ATOMICS 0
-+#define USE_ATOMIC_COMPILER_BUILTINS 0
-+#define ATOMIC_EXCHANGE_USES_CAS 1
-+
-+#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
-+ (abort (), (__typeof (*mem)) 0)
-+#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
-+ (abort (), (__typeof (*mem)) 0)
-+#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
-+ (abort (), (__typeof (*mem)) 0)
-+
-+#define __arch_compare_and_exchange_bool_8_acq(mem, newval, oldval) \
-+ (abort (), 0)
-+#define __arch_compare_and_exchange_bool_16_acq(mem, newval, oldval) \
-+ (abort (), 0)
-+#define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
-+ (abort (), 0)
-+
-+#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
-+ ({ \
-+ __typeof(*(mem)) prev; \
-+ \
-+ __asm__ __volatile__( \
-+ "1: llock %0, [%1] \n" \
-+ " brne %0, %2, 2f \n" \
-+ " scond %3, [%1] \n" \
-+ " bnz 1b \n" \
-+ "2: \n" \
-+ : "=&r"(prev) \
-+ : "r"(mem), "ir"(oldval), \
-+ "r"(newval) /* can't be "ir". scond can't take limm for "b" */\
-+ : "cc", "memory"); \
-+ \
-+ prev; \
-+ })
-+
-+# define atomic_exchange_acq(mem, newvalue) \
-+ ({ \
-+ __typeof(*(mem)) __val = (newvalue); \
-+ \
-+ __asm__ __volatile__( \
-+ "1: ex %0, [%1] \n" \
-+ : "+r"(__val) \
-+ : "r"(mem) \
-+ : "memory"); \
-+ \
-+ __val; \
-+ })
-+
-+#ifdef __ARC700__
-+#define atomic_full_barrier() ({ asm volatile ("sync":::"memory"); })
-+#else
-+#define atomic_full_barrier() ({ asm volatile ("dmb 3":::"memory"); })
-+#endif
-+
-+#endif /* _ARC_BITS_ATOMIC_H */
-diff --git a/sysdeps/arc/bits/endian.h b/sysdeps/arc/bits/endian.h
-new file mode 100644
-index 000000000000..88fbcf39a58a
---- /dev/null
-+++ b/sysdeps/arc/bits/endian.h
-@@ -0,0 +1,12 @@
-+/* The ARC architecture has selectable endianness. */
-+
-+#ifndef _ENDIAN_H
-+# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-+#endif
-+
-+#ifdef __BIG_ENDIAN__
-+# define __BYTE_ORDER __BIG_ENDIAN
-+#endif
-+#ifdef __LITTLE_ENDIAN__
-+# define __BYTE_ORDER __LITTLE_ENDIAN
-+#endif
-diff --git a/sysdeps/arc/bits/fenv.h b/sysdeps/arc/bits/fenv.h
-new file mode 100644
-index 000000000000..df576e8dd5e3
---- /dev/null
-+++ b/sysdeps/arc/bits/fenv.h
-@@ -0,0 +1,52 @@
-+/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _FENV_H
-+# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-+#endif
-+
-+/* ARC hardware FPU does not support exceptions,
-+ nor does the software floating-point support. */
-+#define FE_ALL_EXCEPT 0
-+
-+/* ARC supports only round-to-nearest. The software
-+ floating-point support also acts this way. */
-+enum
-+ {
-+ __FE_UNDEFINED = 0,
-+
-+ FE_TONEAREST =
-+#define FE_TONEAREST 1
-+ FE_TONEAREST,
-+ };
-+
-+/* Type representing exception flags. */
-+typedef unsigned int fexcept_t;
-+
-+/* Type representing floating-point environment. */
-+typedef unsigned int fenv_t;
-+
-+/* If the default argument is used we use this value. */
-+#define FE_DFL_ENV ((const fenv_t *) -1)
-+
-+#if __GLIBC_USE (IEC_60559_BFP_EXT)
-+/* Type representing floating-point control modes. */
-+typedef unsigned int femode_t;
-+
-+/* Default floating-point control modes. */
-+# define FE_DFL_MODE ((const femode_t *) -1L)
-+#endif
-diff --git a/sysdeps/arc/bits/link.h b/sysdeps/arc/bits/link.h
-new file mode 100644
-index 000000000000..1f4da2d9941c
---- /dev/null
-+++ b/sysdeps/arc/bits/link.h
-@@ -0,0 +1,52 @@
-+/* Machine-specific declarations for dynamic linker interface, ARC version.
-+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _LINK_H
-+# error "Never include <bits/link.h> directly; use <link.h> instead."
-+#endif
-+
-+/* Registers for entry into PLT on ARC. */
-+typedef struct La_arc_regs
-+{
-+ uint32_t lr_reg[8]; /* r0 through r7 (upto 8 args) */
-+} La_arc_regs;
-+
-+/* Return values for calls from PLT on ARC. */
-+typedef struct La_arc_retval
-+{
-+ /* For ARCv2, a 64-bit integer return value can use 2 regs */
-+ uint32_t lrv_reg[2];
-+} La_arc_retval;
-+
-+__BEGIN_DECLS
-+
-+extern Elf32_Addr la_arc_gnu_pltenter (Elf32_Sym *__sym, unsigned int __ndx,
-+ uintptr_t *__refcook,
-+ uintptr_t *__defcook,
-+ La_arc_regs *__regs,
-+ unsigned int *__flags,
-+ const char *__symname,
-+ long int *__framesizep);
-+extern unsigned int la_arc_gnu_pltexit (Elf32_Sym *__sym, unsigned int __ndx,
-+ uintptr_t *__refcook,
-+ uintptr_t *__defcook,
-+ const La_arc_regs *__inregs,
-+ La_arc_retval *__outregs,
-+ const char *symname);
-+
-+__END_DECLS
-diff --git a/sysdeps/arc/bits/setjmp.h b/sysdeps/arc/bits/setjmp.h
-new file mode 100644
-index 000000000000..3a014955ee5a
---- /dev/null
-+++ b/sysdeps/arc/bits/setjmp.h
-@@ -0,0 +1,33 @@
-+/* Define the machine-dependent type `jmp_buf'. ARC version.
-+ Copyright (C) 1992-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _BITS_SETJMP_H
-+#define _BITS_SETJMP_H 1
-+
-+#if !defined(_SETJMP_H) && !defined(_PTHREAD_H)
-+# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
-+#endif
-+
-+#ifndef __ASSEMBLER__
-+
-+/* Saves r13-r25 (callee-saved), fp (frame pointer), sp (stack pointer),
-+ * blink (branch-n-link) */
-+typedef int __jmp_buf[32];
-+#endif
-+
-+#endif
-diff --git a/sysdeps/arc/bsd-_setjmp.S b/sysdeps/arc/bsd-_setjmp.S
-new file mode 100644
-index 000000000000..4e6a2da560c4
---- /dev/null
-+++ b/sysdeps/arc/bsd-_setjmp.S
-@@ -0,0 +1 @@
-+/* _setjmp is in setjmp.S */
-diff --git a/sysdeps/arc/bsd-setjmp.S b/sysdeps/arc/bsd-setjmp.S
-new file mode 100644
-index 000000000000..1da848d2f1ee
---- /dev/null
-+++ b/sysdeps/arc/bsd-setjmp.S
-@@ -0,0 +1 @@
-+/* setjmp is in setjmp.S */
-diff --git a/sysdeps/arc/configure b/sysdeps/arc/configure
-new file mode 100644
-index 000000000000..2033957d0d9f
---- /dev/null
-+++ b/sysdeps/arc/configure
-@@ -0,0 +1,17 @@
-+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
-+ # Local configure fragment for sysdeps/arc.
-+
-+$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-+
-+libc_cv_have_sdata_section=no
-+
-+# For ARC, historically ; was used for comments and not newline
-+# Later # also got added to comment list, but ; couldn't be switched to
-+# canonical newline as there's lots of code out there which will break
-+libc_cv_asm_line_sep='`'
-+cat >>confdefs.h <<_ACEOF
-+#define ASM_LINE_SEP $libc_cv_asm_line_sep
-+_ACEOF
-+
-+
-+libc_cv_fpie=no
-diff --git a/sysdeps/arc/configure.ac b/sysdeps/arc/configure.ac
-new file mode 100644
-index 000000000000..91e58efb35c8
---- /dev/null
-+++ b/sysdeps/arc/configure.ac
-@@ -0,0 +1,13 @@
-+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-+# Local configure fragment for sysdeps/arc.
-+
-+AC_DEFINE(PI_STATIC_AND_HIDDEN)
-+libc_cv_have_sdata_section=no
-+
-+# For ARC, historically ; was used for comments and not newline
-+# Later # also got added to comment list, but ; couldn't be switched to
-+# canonical newline as there's lots of code out there which will break
-+libc_cv_asm_line_sep='`'
-+AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
-+
-+libc_cv_fpie=no
-diff --git a/sysdeps/arc/crti.S b/sysdeps/arc/crti.S
-new file mode 100644
-index 000000000000..ea741b30e3cf
---- /dev/null
-+++ b/sysdeps/arc/crti.S
-@@ -0,0 +1,79 @@
-+/* Special .init and .fini section support for ARC.
-+ Copyright (C) 2012-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ In addition to the permissions in the GNU Lesser General Public
-+ License, the Free Software Foundation gives you unlimited
-+ permission to link the compiled version of this file with other
-+ programs, and to distribute those programs without any restriction
-+ coming from the use of this file. (The GNU Lesser General Public
-+ License restrictions do apply in other respects; for example, they
-+ cover modification of the file, and distribution when not linked
-+ into another program.)
-+
-+ Note that people who make modified versions of this file are not
-+ obligated to grant this special exception for their modified
-+ versions; it is their choice whether to do so. The GNU Lesser
-+ General Public License gives permission to release a modified
-+ version without this exception; this exception also makes it
-+ possible to release a modified version which carries forward this
-+ exception.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <libc-symbols.h>
-+#include <sysdep.h>
-+
-+#ifndef PREINIT_FUNCTION
-+# define PREINIT_FUNCTION __gmon_start__
-+#endif
-+
-+#ifndef PREINIT_FUNCTION_WEAK
-+# define PREINIT_FUNCTION_WEAK 1
-+#endif
-+
-+#if PREINIT_FUNCTION_WEAK
-+ weak_extern (PREINIT_FUNCTION)
-+#else
-+ .hidden PREINIT_FUNCTION
-+#endif
-+
-+ .section .init
-+ .align 4
-+ .global _init
-+ .hidden _init
-+ .type _init,@function
-+_init:
-+ st.a blink, [sp,-4]
-+ st.a fp, [sp,-4]
-+ mov fp, sp
-+#if PREINIT_FUNCTION_WEAK
-+ ld r0, [pcl, @PREINIT_FUNCTION@gotpc]
-+ tst r0, r0
-+ jlnz [r0]
-+#else
-+ bl PREINIT_FUNCTION
-+#endif
-+
-+ .section .fini
-+ .align 4
-+ .global _fini
-+ .hidden _fini
-+ .type _fini,@function
-+_fini:
-+ st.a blink,[sp,-4]
-+ st.a fp,[sp,-4]
-+ mov fp,sp
-+ .align 4
-diff --git a/sysdeps/arc/crtn.S b/sysdeps/arc/crtn.S
-new file mode 100644
-index 000000000000..c6c58c5593c9
---- /dev/null
-+++ b/sysdeps/arc/crtn.S
-@@ -0,0 +1,56 @@
-+/* Special .init and .fini section support for ARC.
-+ Copyright (C) 2012-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ In addition to the permissions in the GNU Lesser General Public
-+ License, the Free Software Foundation gives you unlimited
-+ permission to link the compiled version of this file with other
-+ programs, and to distribute those programs without any restriction
-+ coming from the use of this file. (The GNU Lesser General Public
-+ License restrictions do apply in other respects; for example, they
-+ cover modification of the file, and distribution when not linked
-+ into another program.)
-+
-+ Note that people who make modified versions of this file are not
-+ obligated to grant this special exception for their modified
-+ versions; it is their choice whether to do so. The GNU Lesser
-+ General Public License gives permission to release a modified
-+ version without this exception; this exception also makes it
-+ possible to release a modified version which carries forward this
-+ exception.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+ .section .init
-+ .align 4
-+ .global _init
-+ .type _init,@function
-+ ; EPILOGUE
-+ ld.ab fp,[sp,4]
-+ ld blink,[sp,0]
-+ j.d [blink]
-+ add sp,sp,4
-+; .size _init,.-_init
-+
-+ .section .fini
-+ .align 4
-+ .global _fini
-+ .type _fini,@function
-+ ; EPILOGUE
-+ ld.ab fp,[sp,4]
-+ ld blink,[sp,0]
-+ j.d [blink]
-+ add sp,sp,4
-+; .size _fini,.-_fini
-diff --git a/sysdeps/arc/dl-machine.h b/sysdeps/arc/dl-machine.h
-new file mode 100644
-index 000000000000..f4757904084a
---- /dev/null
-+++ b/sysdeps/arc/dl-machine.h
-@@ -0,0 +1,339 @@
-+/* Machine-dependent ELF dynamic relocation inline functions. ARC version.
-+ Copyright (C) 1995-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef dl_machine_h
-+#define dl_machine_h
-+
-+#define ELF_MACHINE_NAME "arc"
-+
-+#include <entry.h>
-+
-+#ifndef ENTRY_POINT
-+#error ENTRY_POINT needs to be defined for ARC
-+#endif
-+
-+#include <string.h>
-+#include <link.h>
-+#include <dl-tls.h>
-+
-+/*
-+ * Dynamic Linking ABI for ARCv2 ISA
-+ *
-+ * PLT
-+ * -------------------------------- <---- DT_PLTGOT
-+ * | ld r11, [pcl, off-to-GOT[1] | 0
-+ * | | 4
-+ * plt0 | ld r10, [pcl, off-to-GOT[2] | 8
-+ * | | 12
-+ * | j [r10] | 16
-+ * --------------------------------
-+ * | Base address of GOT | 20
-+ * --------------------------------
-+ * | ld r12, [pcl, off-to-GOT[3] | 24
-+ * plt1 | |
-+ * | j.d [r12] | 32
-+ * | mov r12, pcl | 36
-+ * --------------------------------
-+ * | | 40
-+ * ~ ~
-+ * ~ ~
-+ * | |
-+ * --------------------------------
-+ *
-+ * .got
-+ * --------------
-+ * | [0] |
-+ * | ... | Runtime address for data symbols
-+ * | [n] |
-+ * --------------
-+ *
-+ * .got.plt
-+ * --------------
-+ * | [0] | Build address of .dynamic
-+ * --------------
-+ * | [1] | Module info - setup by ld.so
-+ * --------------
-+ * | [2] | resolver entry point
-+ * --------------
-+ * | [3] |
-+ * | ... | Runtime address for function symbols
-+ * | [f] |
-+ * --------------
-+ *
-+ * For ARCompact, the PLT is 12 bytes due to short instructions
-+ *
-+ * --------------------------------
-+ * | ld r12, [pcl, off-to-GOT[3] | 24 (12 bytes each)
-+ * plt1 | |
-+ * | j_s.d [r12] | 32
-+ * | mov_s r12, pcl | 34
-+ * --------------------------------
-+ * | | 36
-+ *
-+ */
-+
-+/* Return nonzero iff ELF header is compatible with the running host. */
-+static inline int
-+elf_machine_matches_host (const Elf32_Ehdr *ehdr)
-+{
-+ return (ehdr->e_machine == EM_ARCV2 /* ARC HS */
-+ || ehdr->e_machine == EM_ARC_COMPACT); /* ARC 700 */
-+}
-+
-+/*
-+ * Get build time address of .dynamic as setup in GOT[0]
-+ * This is called very early in _dl_start() so it has not been relocated to
-+ * runtime value
-+ */
-+static inline Elf32_Addr
-+elf_machine_dynamic (void)
-+{
-+ extern const Elf32_Addr _GLOBAL_OFFSET_TABLE_[] attribute_hidden;
-+ return _GLOBAL_OFFSET_TABLE_[0];
-+}
-+
-+
-+/* Return the run-time load address of the shared object. */
-+static inline Elf32_Addr
-+elf_machine_load_address (void)
-+{
-+ Elf32_Addr build_addr, run_addr;
-+
-+ /* For build address, below generates
-+ * ld r0, [pcl, _GLOBAL_OFFSET_TABLE_@pcl]
-+ */
-+ build_addr = elf_machine_dynamic();
-+ __asm__ ("add %0, pcl, _DYNAMIC@pcl \n" : "=r" (run_addr));
-+
-+ return run_addr - build_addr;
-+}
-+
-+/* Set up the loaded object described by L so its unrelocated PLT
-+ entries will jump to the on-demand fixup code in dl-runtime.c. */
-+
-+static inline int __attribute__ ((always_inline))
-+elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
-+{
-+ extern void _dl_runtime_resolve (Elf32_Word);
-+
-+ if (l->l_info[DT_JMPREL] && lazy)
-+ {
-+ /* On ARC DT_PLTGOT point to .plt whose 5th word (after the PLT header)
-+ * contains the address of .got */
-+ Elf32_Addr *plt_base = (Elf32_Addr *) D_PTR (l, l_info[DT_PLTGOT]);
-+ Elf32_Addr *got = (Elf32_Addr *) (plt_base[5] + l->l_addr);
-+
-+ got[1] = (Elf32_Addr) l; /* Identify this shared object. */
-+
-+ /* This function will get called to fix up the GOT entry indicated by
-+ the offset on the stack, and then jump to the resolved address. */
-+ got[2] = (Elf32_Addr) &_dl_runtime_resolve;
-+ }
-+
-+ return lazy;
-+}
-+
-+/* What this code does:
-+ -ldso starts execution here when kernel returns from execve()
-+ -calls into generic ldso entry point _dl_start( )
-+ -optionally adjusts argc for executable if exec passed as cmd
-+ -calls into app main with address of finaliser */
-+
-+#define RTLD_START asm ("\
-+.text \n\
-+.globl __start \n\
-+.type __start, @function \n\
-+__start: \n\
-+ ; (1). bootstrap ld.so \n\
-+ bl.d _dl_start \n\
-+ mov_s r0, sp ; pass ptr to aux vector tbl \n\
-+ mov r13, r0 ; safekeep app elf entry point \n\
-+ \n\
-+ ; (2). If ldso ran with executable as arg \n\
-+ ; skip the extra args calc by dl_start() \n\
-+ ld_s r1, [sp] ; orig argc \n\
-+ ld r12, [pcl, _dl_skip_args@pcl] \n\
-+ breq r12, 0, 1f \n\
-+ \n\
-+ add2 sp, sp, r12 ; discard argv entries from stack\n\
-+ sub_s r1, r1, r12 ; adjusted argc, on stack \n\
-+ st_s r1, [sp] \n\
-+ add r2, sp, 4 \n\
-+ ld r3, [pcl, _dl_argv@gotpc] ; ST doesn't support this addressing mode \n\
-+ st r2, [r3] \n\
-+1: \n\
-+ ; (3). call preinit stuff \n\
-+ ld r0, [pcl, _rtld_local@pcl] \n\
-+ add r2, sp, 4 ; argv \n\
-+ add2 r3, r2, r1 \n\
-+ add r3, r3, 4 ; env \n\
-+ bl _dl_init@plt \n\
-+ \n\
-+ ; (4) call app elf entry point \n\
-+ add r0, pcl, _dl_fini@pcl \n\
-+ j [r13] \n\
-+ \n\
-+ .size __start,.-__start \n\
-+ .previous \n\
-+");
-+
-+/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
-+ PLT entries should not be allowed to define the value.
-+ ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
-+ of the main executable's symbols, as for a COPY reloc. */
-+#define elf_machine_type_class(type) \
-+ ((((type) == R_ARC_JUMP_SLOT \
-+ || (type) == R_ARC_TLS_DTPMOD \
-+ || (type) == R_ARC_TLS_DTPOFF \
-+ || (type) == R_ARC_TLS_TPOFF) * ELF_RTYPE_CLASS_PLT) \
-+ | (((type) == R_ARC_COPY) * ELF_RTYPE_CLASS_COPY))
-+
-+/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */
-+#define ELF_MACHINE_JMP_SLOT R_ARC_JUMP_SLOT
-+
-+/* ARC uses Elf32_Rela relocations. */
-+#define ELF_MACHINE_NO_REL 1
-+#define ELF_MACHINE_NO_RELA 0
-+
-+/* Fixup a PLT entry to bounce directly to the function at VALUE. */
-+
-+static inline Elf32_Addr
-+elf_machine_fixup_plt (struct link_map *map, lookup_t t,
-+ const ElfW(Sym) *refsym, const ElfW(Sym) *sym,
-+ const Elf32_Rela *reloc,
-+ Elf32_Addr *reloc_addr, Elf32_Addr value)
-+{
-+ return *reloc_addr = value;
-+}
-+
-+/* Return the final value of a plt relocation. */
-+static inline Elf32_Addr
-+elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,
-+ Elf32_Addr value)
-+{
-+ return value;
-+}
-+
-+/* Names of the architecture-specific auditing callback functions. */
-+#define ARCH_LA_PLTENTER arc_gnu_pltenter
-+#define ARCH_LA_PLTEXIT arc_gnu_pltexit
-+
-+#endif /* dl_machine_h */
-+
-+#ifdef RESOLVE_MAP
-+
-+auto inline void __attribute__ ((always_inline))
-+elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
-+ const ElfW(Sym) *sym, const struct r_found_version *version,
-+ void *const reloc_addr_arg, int skip_ifunc)
-+{
-+ Elf32_Addr *const reloc_addr = reloc_addr_arg;
-+ const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
-+
-+ if (__glibc_unlikely (r_type == R_ARC_RELATIVE))
-+ *reloc_addr += map->l_addr;
-+ else if (__glibc_unlikely (r_type == R_ARC_NONE))
-+ return;
-+ else
-+ {
-+ const Elf32_Sym *const refsym = sym;
-+ struct link_map *sym_map = RESOLVE_MAP (&sym, version, r_type);
-+ Elf32_Addr value = SYMBOL_ADDRESS (sym_map, sym, true);
-+
-+ switch (r_type)
-+ {
-+ case R_ARC_COPY:
-+ if (sym == NULL)
-+ /* This can happen in trace mode if an object could not be
-+ found. */
-+ break;
-+ if (sym->st_size > refsym->st_size
-+ || (sym->st_size < refsym->st_size && GLRO(dl_verbose)))
-+ {
-+ const char *strtab;
-+
-+ strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
-+ _dl_error_printf ("\
-+%s: Symbol `%s' has different size in shared object, consider re-linking\n",
-+ rtld_progname ?: "<program name unknown>",
-+ strtab + refsym->st_name);
-+ }
-+ memcpy (reloc_addr_arg, (void *) value,
-+ MIN (sym->st_size, refsym->st_size));
-+ break;
-+ case R_ARC_GLOB_DAT:
-+ case R_ARC_JUMP_SLOT:
-+ *reloc_addr = value;
-+ break;
-+ case R_ARC_TLS_DTPMOD:
-+ /* Get the information from the link map returned by the
-+ resolv function. */
-+ if (sym_map != NULL)
-+ *reloc_addr = sym_map->l_tls_modid;
-+ break;
-+
-+ case R_ARC_TLS_DTPOFF:
-+ if (sym != NULL)
-+ {
-+ *reloc_addr += sym->st_value;
-+ }
-+ break;
-+
-+ case R_ARC_TLS_TPOFF:
-+ if (sym != NULL)
-+ {
-+ CHECK_STATIC_TLS (map, sym_map);
-+ *reloc_addr = sym_map->l_tls_offset + sym->st_value + reloc->r_addend;
-+ }
-+ break;
-+ case R_ARC_32:
-+ *reloc_addr += value + reloc->r_addend;
-+ break;
-+
-+ case R_ARC_PC32:
-+ *reloc_addr += value + reloc->r_addend - (unsigned long) reloc_addr;
-+ break;
-+
-+ default:
-+ _dl_reloc_bad_type (map, r_type, 0);
-+ break;
-+ }
-+ }
-+}
-+
-+auto inline void __attribute__((always_inline))
-+elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
-+ void *const reloc_addr_arg)
-+{
-+ Elf32_Addr *const reloc_addr = reloc_addr_arg;
-+ *reloc_addr += l_addr; // + reloc->r_addend;
-+}
-+
-+auto inline void __attribute__((always_inline))
-+elf_machine_lazy_rel (struct link_map *map,
-+ ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
-+ int skip_ifunc)
-+{
-+ Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset);
-+ if (ELF32_R_TYPE (reloc->r_info) == R_ARC_JUMP_SLOT)
-+ *reloc_addr += l_addr;
-+ else
-+ _dl_reloc_bad_type (map, ELF32_R_TYPE (reloc->r_info), 1);
-+}
-+
-+#endif /* RESOLVE_MAP */
-diff --git a/sysdeps/arc/dl-runtime.c b/sysdeps/arc/dl-runtime.c
-new file mode 100644
-index 000000000000..76d39fab5ab8
---- /dev/null
-+++ b/sysdeps/arc/dl-runtime.c
-@@ -0,0 +1,21 @@
-+/* PLT jump into resolver passes PC of PLTn, while _dl_fixup expects the
-+ address of corresponding .rela.plt entry */
-+
-+#ifdef __A7__
-+#define ARC_PLT_SIZE 12
-+#else
-+#define ARC_PLT_SIZE 16
-+#endif
-+
-+#define reloc_index \
-+({ \
-+ unsigned long plt0 = D_PTR (l, l_info[DT_PLTGOT]); \
-+ unsigned long pltn = reloc_arg; \
-+ /* exclude PL0 and PLT1 */ \
-+ unsigned long idx = (pltn - plt0)/ARC_PLT_SIZE - 2; \
-+ idx; \
-+})
-+
-+#define reloc_offset reloc_index * sizeof (PLTREL)
-+
-+#include <elf/dl-runtime.c>
-diff --git a/sysdeps/arc/dl-sysdep.h b/sysdeps/arc/dl-sysdep.h
-new file mode 100644
-index 000000000000..a3e734c1020c
---- /dev/null
-+++ b/sysdeps/arc/dl-sysdep.h
-@@ -0,0 +1,25 @@
-+/* System-specific settings for dynamic linker code. ARC version.
-+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include_next <dl-sysdep.h>
-+
-+/* _dl_argv cannot be attribute_relro, because _dl_start_user
-+ might write into it after _dl_start returns. */
-+#define DL_ARGV_NOT_RELRO 1
-+
-+#define DL_EXTERN_PROTECTED_DATA
-diff --git a/sysdeps/arc/dl-tls.h b/sysdeps/arc/dl-tls.h
-new file mode 100644
-index 000000000000..42b5df9ca4da
---- /dev/null
-+++ b/sysdeps/arc/dl-tls.h
-@@ -0,0 +1,30 @@
-+/* Thread-local storage handling in the ELF dynamic linker. ARC version.
-+ Copyright (C) 2012-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+
-+/* Type used for the representation of TLS information in the GOT. */
-+typedef struct
-+{
-+ unsigned long int ti_module;
-+ unsigned long int ti_offset;
-+} tls_index;
-+
-+extern void *__tls_get_addr (tls_index *ti);
-+
-+/* Value used for dtv entries for which the allocation is delayed. */
-+#define TLS_DTV_UNALLOCATED ((void *) -1l)
-diff --git a/sysdeps/arc/dl-trampoline.S b/sysdeps/arc/dl-trampoline.S
-new file mode 100644
-index 000000000000..0fc9786ec1d3
---- /dev/null
-+++ b/sysdeps/arc/dl-trampoline.S
-@@ -0,0 +1,81 @@
-+/* PLT trampolines. ARC version.
-+ Copyright (C) 2005-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+#include <libc-symbols.h>
-+
-+#include <sysdep.h>
-+#include <sys/syscall.h>
-+
-+; Save the registers which resolver could possibly clobber
-+; r0-r9: args to the function - symbol being resolved
-+; r10-r12 are already clobbered by PLTn, PLT0 thus neednot be saved
-+
-+.macro SAVE_CALLER_SAVED
-+ push_s r0
-+ push_s r1
-+ push_s r2
-+ push_s r3
-+ st.a r4, [sp, -4]
-+ st.a r5, [sp, -4]
-+ st.a r6, [sp, -4]
-+ st.a r7, [sp, -4]
-+ st.a r8, [sp, -4]
-+ st.a r9, [sp, -4]
-+ cfi_adjust_cfa_offset (40)
-+ push_s blink
-+ cfi_adjust_cfa_offset (4)
-+ cfi_rel_offset (blink, 0)
-+.endm
-+
-+.macro RESTORE_CALLER_SAVED_BUT_R0
-+ ld.ab blink,[sp, 4]
-+ cfi_adjust_cfa_offset (-4)
-+ cfi_restore (blink)
-+ ld.ab r9, [sp, 4]
-+ ld.ab r8, [sp, 4]
-+ ld.ab r7, [sp, 4]
-+ ld.ab r6, [sp, 4]
-+ ld.ab r5, [sp, 4]
-+ ld.ab r4, [sp, 4]
-+ pop_s r3
-+ pop_s r2
-+ pop_s r1
-+ cfi_adjust_cfa_offset (-36)
-+.endm
-+
-+; Upon entry, PLTn, which led us here, sets up the following regs
-+; r11 = Module info (tpnt pointer as expected by resolver)
-+; r12 = PC of the PLTn itself - needed by resolver to find
-+; corresponding .rela.plt entry
-+
-+ENTRY(_dl_runtime_resolve)
-+ ; args to func being resolved, which resolver might clobber
-+ SAVE_CALLER_SAVED
-+
-+ mov_s r1, r12
-+ bl.d _dl_fixup
-+ mov r0, r11
-+
-+ RESTORE_CALLER_SAVED_BUT_R0
-+ j_s.d [r0] ; r0 has resolved function addr
-+ pop_s r0 ; restore first arg to resolved call
-+ cfi_adjust_cfa_offset (-4)
-+ cfi_restore (r0)
-+
-+END(_dl_runtime_resolve)
-diff --git a/sysdeps/arc/entry.h b/sysdeps/arc/entry.h
-new file mode 100644
-index 000000000000..adb01d981afd
---- /dev/null
-+++ b/sysdeps/arc/entry.h
-@@ -0,0 +1,5 @@
-+#ifndef __ASSEMBLY__
-+extern void __start (void) attribute_hidden;
-+#endif
-+
-+#define ENTRY_POINT __start
-diff --git a/sysdeps/arc/gccframe.h b/sysdeps/arc/gccframe.h
-new file mode 100644
-index 000000000000..54a1225284b6
---- /dev/null
-+++ b/sysdeps/arc/gccframe.h
-@@ -0,0 +1,21 @@
-+/* Definition of object in frame unwind info. ARC version.
-+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#define FIRST_PSEUDO_REGISTER 40
-+
-+#include <sysdeps/generic/gccframe.h>
-diff --git a/sysdeps/arc/gmp-mparam.h b/sysdeps/arc/gmp-mparam.h
-new file mode 100644
-index 000000000000..2b09517766e3
---- /dev/null
-+++ b/sysdeps/arc/gmp-mparam.h
-@@ -0,0 +1,23 @@
-+/* gmp-mparam.h -- Compiler/machine parameter header file.
-+
-+Copyright (C) 2017-2018 Free Software Foundation, Inc.
-+
-+This file is part of the GNU MP Library.
-+
-+The GNU MP 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 MP 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 MP Library; see the file COPYING.LIB. If not, see
-+<http://www.gnu.org/licenses/>. */
-+
-+#include <sysdeps/generic/gmp-mparam.h>
-+
-+#define IEEE_DOUBLE_BIG_ENDIAN 0
-diff --git a/sysdeps/arc/jmpbuf-offsets.h b/sysdeps/arc/jmpbuf-offsets.h
-new file mode 100644
-index 000000000000..c9cf4bc2e355
---- /dev/null
-+++ b/sysdeps/arc/jmpbuf-offsets.h
-@@ -0,0 +1,46 @@
-+/* Private macros for accessing __jmp_buf contents. ARC version.
-+ Copyright (C) 2006-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+/* Save offsets within __jmp_buf. */
-+/* We don't use most of these symbols; they are here for documentation. */
-+
-+/* Callee Regs */
-+#define JB_R13 0
-+#define JB_R14 1
-+#define JB_R15 2
-+#define JB_R16 3
-+#define JB_R17 4
-+#define JB_R18 5
-+#define JB_R19 6
-+#define JB_R20 7
-+#define JB_R21 8
-+#define JB_R22 9
-+#define JB_R23 10
-+#define JB_R24 11
-+#define JB_R25 12
-+
-+/* Frame Pointer, Stack Pointer, Branch-n-link */
-+#define JB_FP 13
-+#define JB_SP 14
-+#define JB_BLINK 15
-+
-+/* We save space for some extra state to accommodate future changes. */
-+#define JB_NUM 32 /* words */
-+
-+/* Helper for generic ____longjmp_chk(). */
-+#define JB_FRAME_ADDRESS(buf) ((void *) (unsigned long) (buf[JB_SP]))
-diff --git a/sysdeps/arc/jmpbuf-unwind.h b/sysdeps/arc/jmpbuf-unwind.h
-new file mode 100644
-index 000000000000..d87ac13b3416
---- /dev/null
-+++ b/sysdeps/arc/jmpbuf-unwind.h
-@@ -0,0 +1,47 @@
-+/* Examine __jmp_buf for unwinding frames. ARC version.
-+ Copyright (C) 2005-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <setjmp.h>
-+#include <jmpbuf-offsets.h>
-+#include <stdint.h>
-+#include <unwind.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+
-+#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \
-+ ((void *) (address) < (void *) demangle (jmpbuf[JB_SP]))
-+
-+#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
-+ _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
-+
-+static inline uintptr_t __attribute__ ((unused))
-+_jmpbuf_sp (__jmp_buf jmpbuf)
-+{
-+ uintptr_t sp = jmpbuf[JB_SP];
-+#ifdef PTR_DEMANGLE
-+ PTR_DEMANGLE (sp);
-+#endif
-+ return sp;
-+}
-+
-+#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
-+ ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf_sp (_jmpbuf) - (_adj)))
-+
-+/* We use the normal longjmp for unwinding. */
-+#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
-diff --git a/sysdeps/arc/ldsodefs.h b/sysdeps/arc/ldsodefs.h
-new file mode 100644
-index 000000000000..3fafc683da2e
---- /dev/null
-+++ b/sysdeps/arc/ldsodefs.h
-@@ -0,0 +1,43 @@
-+/* Run-time dynamic linker data structures for loaded ELF shared objects.
-+ Copyright (C) 2000-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _ARC_LDSODEFS_H
-+#define _ARC_LDSODEFS_H 1
-+
-+#include <elf.h>
-+
-+struct La_arc_regs;
-+struct La_arc_retval;
-+
-+#define ARCH_PLTENTER_MEMBERS \
-+ ElfW(Addr) (*arc_gnu_pltenter) (ElfW(Sym) *, unsigned int, \
-+ uintptr_t *, uintptr_t *, \
-+ const struct La_arc_regs *, \
-+ unsigned int *, const char *, \
-+ long int *);
-+
-+#define ARCH_PLTEXIT_MEMBERS \
-+ unsigned int (*arc_gnu_pltexit) (ElfW(Sym) *, unsigned int, \
-+ uintptr_t *, uintptr_t *, \
-+ const struct La_arc_regs *, \
-+ struct La_arc_retval *, \
-+ const char *);
-+
-+#include_next <ldsodefs.h>
-+
-+#endif
-diff --git a/sysdeps/arc/libc-tls.c b/sysdeps/arc/libc-tls.c
-new file mode 100644
-index 000000000000..c6c865daac3e
---- /dev/null
-+++ b/sysdeps/arc/libc-tls.c
-@@ -0,0 +1,27 @@
-+/* Thread-local storage handling in the ELF dynamic linker. ARC version.
-+ Copyright (C) 2005-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <csu/libc-tls.c>
-+#include <dl-tls.h>
-+
-+void *
-+__tls_get_addr (tls_index *ti)
-+{
-+ dtv_t *dtv = THREAD_DTV ();
-+ return (char *) dtv[1].pointer.val + ti->ti_offset;
-+}
-diff --git a/sysdeps/arc/libm-test-ulps b/sysdeps/arc/libm-test-ulps
-new file mode 100644
-index 000000000000..0e8ef313fa94
---- /dev/null
-+++ b/sysdeps/arc/libm-test-ulps
-@@ -0,0 +1,390 @@
-+# Begin of automatic generation
-+
-+# Maximal error of functions:
-+Function: "acos":
-+float: 1
-+ifloat: 1
-+
-+Function: "acosh":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: "asin":
-+float: 1
-+ifloat: 1
-+
-+Function: "asinh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "atan":
-+float: 1
-+ifloat: 1
-+
-+Function: "atan2":
-+float: 1
-+ifloat: 1
-+
-+Function: "atanh":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: "cabs":
-+double: 1
-+idouble: 1
-+
-+Function: Real part of "cacos":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Imaginary part of "cacos":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: Real part of "cacosh":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: Imaginary part of "cacosh":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: "carg":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "casin":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "casin":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: Real part of "casinh":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: Imaginary part of "casinh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "catan":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "catan":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "catanh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "catanh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "cbrt":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+
-+Function: Real part of "ccos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ccos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "ccosh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ccosh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "cexp":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: Imaginary part of "cexp":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Real part of "clog":
-+double: 3
-+float: 3
-+idouble: 3
-+ifloat: 3
-+
-+Function: Imaginary part of "clog":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "clog10":
-+double: 3
-+float: 4
-+idouble: 3
-+ifloat: 4
-+
-+Function: Imaginary part of "clog10":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: "cos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "cosh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "cpow":
-+double: 2
-+float: 5
-+idouble: 2
-+ifloat: 5
-+
-+Function: Imaginary part of "cpow":
-+float: 2
-+ifloat: 2
-+
-+Function: Real part of "csin":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "csinh":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "csinh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "csqrt":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: Imaginary part of "csqrt":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: Real part of "ctan":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctan":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: Real part of "ctanh":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: Imaginary part of "ctanh":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: "erf":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "erfc":
-+double: 3
-+float: 2
-+idouble: 3
-+ifloat: 2
-+
-+Function: "exp10":
-+double: 2
-+idouble: 2
-+
-+Function: "exp2":
-+double: 1
-+idouble: 1
-+
-+Function: "expm1":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "gamma":
-+double: 4
-+float: 3
-+idouble: 4
-+ifloat: 3
-+
-+Function: "hypot":
-+double: 1
-+idouble: 1
-+
-+Function: "j0":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: "j1":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: "jn":
-+double: 4
-+float: 4
-+idouble: 4
-+ifloat: 4
-+
-+Function: "lgamma":
-+double: 4
-+float: 3
-+idouble: 4
-+ifloat: 3
-+
-+Function: "log10":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: "log1p":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "log2":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: "pow":
-+double: 1
-+idouble: 1
-+
-+Function: "sin":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "sincos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "sinh":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: "tan":
-+float: 1
-+ifloat: 1
-+
-+Function: "tanh":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: "tgamma":
-+double: 5
-+float: 4
-+idouble: 5
-+ifloat: 4
-+
-+Function: "y0":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: "y1":
-+double: 3
-+float: 2
-+idouble: 3
-+ifloat: 2
-+
-+Function: "yn":
-+double: 3
-+float: 3
-+idouble: 3
-+ifloat: 3
-+
-+# end of automatic generation
-diff --git a/sysdeps/arc/libm-test-ulps-name b/sysdeps/arc/libm-test-ulps-name
-new file mode 100644
-index 000000000000..8c4fba4f9ae0
---- /dev/null
-+++ b/sysdeps/arc/libm-test-ulps-name
-@@ -0,0 +1 @@
-+ARC
-diff --git a/sysdeps/arc/machine-gmon.h b/sysdeps/arc/machine-gmon.h
-new file mode 100644
-index 000000000000..55facf77a858
---- /dev/null
-+++ b/sysdeps/arc/machine-gmon.h
-@@ -0,0 +1,33 @@
-+/* Machine-dependent definitions for profiling support. ARC version.
-+ Copyright (C) 1996-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+
-+#define _MCOUNT_DECL(frompc, selfpc)
-+static void __mcount_internal (unsigned long frompc, unsigned long selfpc)
-+
-+/* this is very simple as gcc does all the heavy lifting at _mcount call site
-+ * - sets up caller's blink in r0, so frompc is setup correctly
-+ * - preserve argument registers for original call */
-+
-+#define MCOUNT \
-+void _mcount (void *frompc) \
-+{ \
-+ __mcount_internal ((unsigned long int) frompc, \
-+ (unsigned long int) __builtin_return_address(0)); \
-+}
-diff --git a/sysdeps/arc/math-tests.h b/sysdeps/arc/math-tests.h
-new file mode 100644
-index 000000000000..2fe08698ff49
---- /dev/null
-+++ b/sysdeps/arc/math-tests.h
-@@ -0,0 +1,28 @@
-+/* Configuration for math tests. ARC version.
-+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+/* Current ARC soft-float does not support exceptions or rounding
-+ modes. */
-+#define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST)
-+#define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST)
-+#define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST)
-+#define EXCEPTION_TESTS_float 0
-+#define EXCEPTION_TESTS_double 0
-+#define EXCEPTION_TESTS_long_double 0
-+
-+#include_next <math-tests.h>
-diff --git a/sysdeps/arc/math_private.h b/sysdeps/arc/math_private.h
-new file mode 100644
-index 000000000000..35046d842533
---- /dev/null
-+++ b/sysdeps/arc/math_private.h
-@@ -0,0 +1,6 @@
-+#ifndef ARC_MATH_PRIVATE_H
-+#define ARC_MATH_PRIVATE_H
-+
-+#include_next <math_private.h>
-+
-+#endif
-diff --git a/sysdeps/arc/memusage.h b/sysdeps/arc/memusage.h
-new file mode 100644
-index 000000000000..536f1fdbf614
---- /dev/null
-+++ b/sysdeps/arc/memusage.h
-@@ -0,0 +1,23 @@
-+/* Machine-specific definitions for memory usage profiling, ARC version.
-+ Copyright (C) 2000-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#define GETSP() ({ register uintptr_t stack_ptr asm ("sp"); stack_ptr; })
-+
-+#define uatomic32_t unsigned int
-+
-+#include <sysdeps/generic/memusage.h>
-diff --git a/sysdeps/arc/nptl/Makefile b/sysdeps/arc/nptl/Makefile
-new file mode 100644
-index 000000000000..afeb58a8c1cb
---- /dev/null
-+++ b/sysdeps/arc/nptl/Makefile
-@@ -0,0 +1,22 @@
-+# NPTL makefile fragment for ARC.
-+# Copyright (C) 2005-2018 Free Software Foundation, Inc.
-+#
-+# This file is part of the GNU C Library.
-+#
-+# The GNU C Library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License as published by the Free Software Foundation; either
-+# version 2.1 of the License, or (at your option) any later version.
-+#
-+# The GNU C Library is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+# Lesser General Public License for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with the GNU C Library. If not, see
-+# <http://www.gnu.org/licenses/>.
-+
-+ifeq ($(subdir),csu)
-+gen-as-const-headers += tcb-offsets.sym
-+endif
-diff --git a/sysdeps/arc/nptl/bits/pthreadtypes-arch.h b/sysdeps/arc/nptl/bits/pthreadtypes-arch.h
-new file mode 100644
-index 000000000000..473d9ec2bf0d
---- /dev/null
-+++ b/sysdeps/arc/nptl/bits/pthreadtypes-arch.h
-@@ -0,0 +1,72 @@
-+/* Machine-specific pthread type layouts. ARC version.
-+ Copyright (C) 2012-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _BITS_PTHREADTYPES_ARCH_H
-+#define _BITS_PTHREADTYPES_ARCH_H 1
-+
-+#include <endian.h>
-+
-+#define __SIZEOF_PTHREAD_ATTR_T 36
-+#define __SIZEOF_PTHREAD_MUTEX_T 24
-+#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-+#define __SIZEOF_PTHREAD_COND_T 48
-+#define __SIZEOF_PTHREAD_CONDATTR_T 4
-+#define __SIZEOF_PTHREAD_RWLOCK_T 32
-+#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-+#define __SIZEOF_PTHREAD_BARRIER_T 20
-+#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-+
-+/* Data structure for mutex handling. */
-+#define __PTHREAD_COMPAT_PADDING_MID
-+#define __PTHREAD_COMPAT_PADDING_END
-+#define __PTHREAD_MUTEX_LOCK_ELISION 0
-+#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 1
-+#define __PTHREAD_MUTEX_USE_UNION 1
-+
-+#define __LOCK_ALIGNMENT
-+#define __ONCE_ALIGNMENT
-+
-+struct __pthread_rwlock_arch_t
-+{
-+ unsigned int __readers;
-+ unsigned int __writers;
-+ unsigned int __wrphase_futex;
-+ unsigned int __writers_futex;
-+ unsigned int __pad3;
-+ unsigned int __pad4;
-+#if __BYTE_ORDER == __BIG_ENDIAN
-+ unsigned char __pad1;
-+ unsigned char __pad2;
-+ unsigned char __shared;
-+ /* FLAGS must stay at this position in the structure to maintain
-+ binary compatibility. */
-+ unsigned char __flags;
-+#else
-+ /* FLAGS must stay at this position in the structure to maintain
-+ binary compatibility. */
-+ unsigned char __flags;
-+ unsigned char __shared;
-+ unsigned char __pad1;
-+ unsigned char __pad2;
-+#endif
-+ int __cur_writer;
-+};
-+
-+#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-+
-+#endif /* bits/pthreadtypes-arch.h */
-diff --git a/sysdeps/arc/nptl/bits/semaphore.h b/sysdeps/arc/nptl/bits/semaphore.h
-new file mode 100644
-index 000000000000..1ecc8ab8a65b
---- /dev/null
-+++ b/sysdeps/arc/nptl/bits/semaphore.h
-@@ -0,0 +1,32 @@
-+/* Machine-specific POSIX semaphore type layouts. ARC version.
-+ Copyright (C) 2002-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SEMAPHORE_H
-+# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-+#endif
-+
-+#define __SIZEOF_SEM_T 16
-+
-+/* Value returned if `sem_open' failed. */
-+#define SEM_FAILED ((sem_t *) 0)
-+
-+typedef union
-+{
-+ char __size[__SIZEOF_SEM_T];
-+ long int __align;
-+} sem_t;
-diff --git a/sysdeps/arc/nptl/pthread-offsets.h b/sysdeps/arc/nptl/pthread-offsets.h
-new file mode 100644
-index 000000000000..9617354dc7e3
---- /dev/null
-+++ b/sysdeps/arc/nptl/pthread-offsets.h
-@@ -0,0 +1,5 @@
-+#define __PTHREAD_MUTEX_NUSERS_OFFSET 16
-+#define __PTHREAD_MUTEX_KIND_OFFSET 12
-+#define __PTHREAD_MUTEX_SPINS_OFFSET 20
-+#define __PTHREAD_MUTEX_ELISION_OFFSET 22
-+#define __PTHREAD_MUTEX_LIST_OFFSET 20
-diff --git a/sysdeps/arc/nptl/pthreaddef.h b/sysdeps/arc/nptl/pthreaddef.h
-new file mode 100644
-index 000000000000..41e13c53038c
---- /dev/null
-+++ b/sysdeps/arc/nptl/pthreaddef.h
-@@ -0,0 +1,32 @@
-+/* pthread machine parameter definitions, ARC version.
-+ Copyright (C) 2002-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+/* Default stack size. */
-+#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
-+
-+/* Required stack pointer alignment at beginning. */
-+#define STACK_ALIGN 4
-+
-+/* Minimal stack size after allocating thread descriptor and guard size. */
-+#define MINIMAL_REST_STACK 2048
-+
-+/* Alignment requirement for TCB. */
-+#define TCB_ALIGNMENT 4
-+
-+/* Location of current stack frame. */
-+#define CURRENT_STACK_FRAME __builtin_frame_address (0)
-diff --git a/sysdeps/arc/nptl/tcb-offsets.sym b/sysdeps/arc/nptl/tcb-offsets.sym
-new file mode 100644
-index 000000000000..56950e0676ed
---- /dev/null
-+++ b/sysdeps/arc/nptl/tcb-offsets.sym
-@@ -0,0 +1,11 @@
-+#include <sysdep.h>
-+#include <tls.h>
-+
-+-- Derive offsets relative to the thread register.
-+#define thread_offsetof(mem) (long)(offsetof(struct pthread, mem) - sizeof(struct pthread))
-+
-+MULTIPLE_THREADS_OFFSET offsetof (struct pthread, header.multiple_threads)
-+TLS_PRE_TCB_SIZE sizeof (struct pthread)
-+TLS_TCB_SIZE sizeof(tcbhead_t)
-+
-+PTHREAD_TID offsetof(struct pthread, tid)
-diff --git a/sysdeps/arc/nptl/tls.h b/sysdeps/arc/nptl/tls.h
-new file mode 100644
-index 000000000000..b6c2023ef3f6
---- /dev/null
-+++ b/sysdeps/arc/nptl/tls.h
-@@ -0,0 +1,150 @@
-+/* Definition for thread-local data handling. NPTL/ARC version.
-+ Copyright (C) 2012-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _ARC_NPTL_TLS_H
-+#define _ARC_NPTL_TLS_H 1
-+
-+#include <dl-sysdep.h>
-+
-+#ifndef __ASSEMBLER__
-+# include <stdbool.h>
-+# include <stddef.h>
-+# include <stdint.h>
-+
-+#include <dl-dtv.h>
-+
-+/* Get system call information. */
-+# include <sysdep.h>
-+
-+/* The TLS blocks start right after the TCB. */
-+# define TLS_DTV_AT_TP 1
-+# define TLS_TCB_AT_TP 0
-+
-+/* Get the thread descriptor definition. */
-+# include <nptl/descr.h>
-+
-+typedef struct
-+{
-+ dtv_t *dtv;
-+ uintptr_t pointer_guard;
-+} tcbhead_t;
-+
-+register struct pthread *__thread_self __asm__("r25");
-+
-+/* This is the size of the initial TCB. */
-+# define TLS_INIT_TCB_SIZE sizeof (tcbhead_t)
-+
-+/* Alignment requirements for the initial TCB. */
-+# define TLS_INIT_TCB_ALIGN __alignof__ (struct pthread)
-+
-+/* This is the size of the TCB. */
-+#ifndef TLS_TCB_SIZE
-+# define TLS_TCB_SIZE sizeof (tcbhead_t)
-+#endif
-+
-+/* Alignment requirements for the TCB. */
-+# define TLS_TCB_ALIGN __alignof__ (struct pthread)
-+
-+/* This is the size we need before TCB. */
-+# define TLS_PRE_TCB_SIZE sizeof (struct pthread)
-+
-+/* Install the dtv pointer. The pointer passed is to the element with
-+ index -1 which contain the length. */
-+# define INSTALL_DTV(tcbp, dtvp) \
-+ (((tcbhead_t *) (tcbp))->dtv = (dtvp) + 1)
-+
-+/* Install new dtv for current thread. */
-+# define INSTALL_NEW_DTV(dtv) \
-+ (THREAD_DTV() = (dtv))
-+
-+/* Return dtv of given thread descriptor. */
-+# define GET_DTV(tcbp) \
-+ (((tcbhead_t *) (tcbp))->dtv)
-+
-+/* Code to initially initialize the thread pointer. */
-+# define TLS_INIT_TP(tcbp) \
-+ ({ \
-+ long result_var; \
-+ __builtin_set_thread_pointer(tcbp); \
-+ result_var = INTERNAL_SYSCALL (arc_settls, err, 1, (tcbp)); \
-+ INTERNAL_SYSCALL_ERROR_P (result_var, err) \
-+ ? "unknown error" : NULL; \
-+ })
-+
-+/* Value passed to 'clone' for initialization of the thread register. */
-+# define TLS_DEFINE_INIT_TP(tp, pd) void *tp = (pd) + 1
-+
-+/* Return the address of the dtv for the current thread. */
-+# define THREAD_DTV() \
-+ (((tcbhead_t *) __builtin_thread_pointer ())->dtv)
-+
-+/* Return the thread descriptor for the current thread. */
-+# define THREAD_SELF \
-+ ((struct pthread *)__builtin_thread_pointer () - 1)
-+
-+/* Magic for libthread_db to know how to do THREAD_SELF. */
-+# define DB_THREAD_SELF \
-+ CONST_THREAD_AREA (32, sizeof (struct pthread))
-+
-+/* Access to data in the thread descriptor is easy. */
-+# define THREAD_GETMEM(descr, member) \
-+ descr->member
-+# define THREAD_GETMEM_NC(descr, member, idx) \
-+ descr->member[idx]
-+# define THREAD_SETMEM(descr, member, value) \
-+ descr->member = (value)
-+# define THREAD_SETMEM_NC(descr, member, idx, value) \
-+ descr->member[idx] = (value)
-+
-+/* Get and set the global scope generation counter in struct pthread. */
-+#define THREAD_GSCOPE_IN_TCB 1
-+#define THREAD_GSCOPE_FLAG_UNUSED 0
-+#define THREAD_GSCOPE_FLAG_USED 1
-+#define THREAD_GSCOPE_FLAG_WAIT 2
-+#define THREAD_GSCOPE_RESET_FLAG() \
-+ do \
-+ { int __res \
-+ = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \
-+ THREAD_GSCOPE_FLAG_UNUSED); \
-+ if (__res == THREAD_GSCOPE_FLAG_WAIT) \
-+ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \
-+ } \
-+ while (0)
-+#define THREAD_GSCOPE_SET_FLAG() \
-+ do \
-+ { \
-+ THREAD_SELF->header.gscope_flag = THREAD_GSCOPE_FLAG_USED; \
-+ atomic_write_barrier (); \
-+ } \
-+ while (0)
-+#define THREAD_GSCOPE_WAIT() \
-+ GL(dl_wait_lookup_done) ()
-+
-+#else
-+
-+# include <tcb-offsets.h>
-+
-+# r25 is dedicated TLS register for ARC
-+.macro THREAD_SELF reg
-+ # struct pthread is just ahead of TCB
-+ sub \reg, r25, TLS_PRE_TCB_SIZE
-+.endm
-+
-+#endif /* __ASSEMBLER__ */
-+
-+#endif /* tls.h */
-diff --git a/sysdeps/arc/preconfigure b/sysdeps/arc/preconfigure
-new file mode 100644
-index 000000000000..8a24fcb18319
---- /dev/null
-+++ b/sysdeps/arc/preconfigure
-@@ -0,0 +1,6 @@
-+case "$machine" in
-+arc*)
-+ base_machine=arc
-+ machine=arc
-+ ;;
-+esac
-diff --git a/sysdeps/arc/setjmp.S b/sysdeps/arc/setjmp.S
-new file mode 100644
-index 000000000000..cbd44e538339
---- /dev/null
-+++ b/sysdeps/arc/setjmp.S
-@@ -0,0 +1,64 @@
-+/* setjmp for ARC.
-+ Copyright (C) 1991-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+
-+#include <sysdep.h>
-+
-+;@ r0 = jump buffer into which regs will be saved
-+ENTRY(setjmp)
-+ b.d __sigsetjmp
-+ mov r1, 1 ; save signals
-+END(setjmp)
-+
-+;@ r0 = jump buffer into which regs will be saved
-+ENTRY(_setjmp)
-+ b.d __sigsetjmp
-+ mov r1, 0 ; don't save signals
-+END(_setjmp)
-+libc_hidden_def(_setjmp)
-+
-+;@ r0 = jump buffer into which regs will be saved
-+;@ r1 = do we need to save signals
-+ENTRY(__sigsetjmp)
-+
-+ st_s r13, [r0]
-+ st_s r14, [r0,4]
-+ st r15, [r0,8]
-+ st r16, [r0,12]
-+ st r17, [r0,16]
-+ st r18, [r0,20]
-+ st r19, [r0,24]
-+ st r20, [r0,28]
-+ st r21, [r0,32]
-+ st r22, [r0,36]
-+ st r23, [r0,40]
-+ st r24, [r0,44]
-+ st r25, [r0,48]
-+ st fp, [r0,52]
-+ st sp, [r0,56]
-+
-+ ; make a note of where longjmp will return to.
-+ ; that will be right next to this setjmp call-site which will be
-+ ; contained in blink, since "C" caller of this routine will do
-+ ; a branch-n-link
-+
-+ st blink, [r0,60]
-+ b __sigjmp_save
-+
-+END(__sigsetjmp)
-+libc_hidden_def(__sigsetjmp)
-diff --git a/sysdeps/arc/sfp-machine.h b/sysdeps/arc/sfp-machine.h
-new file mode 100644
-index 000000000000..95eefc187430
---- /dev/null
-+++ b/sysdeps/arc/sfp-machine.h
-@@ -0,0 +1,51 @@
-+#define _FP_W_TYPE_SIZE 32
-+#define _FP_W_TYPE unsigned long
-+#define _FP_WS_TYPE signed long
-+#define _FP_I_TYPE long
-+
-+#define _FP_MUL_MEAT_S(R,X,Y) \
-+ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
-+#define _FP_MUL_MEAT_D(R,X,Y) \
-+ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
-+#define _FP_MUL_MEAT_Q(R,X,Y) \
-+ _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
-+
-+#define _FP_MUL_MEAT_DW_S(R,X,Y) \
-+ _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
-+#define _FP_MUL_MEAT_DW_D(R,X,Y) \
-+ _FP_MUL_MEAT_DW_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
-+#define _FP_MUL_MEAT_DW_Q(R,X,Y) \
-+ _FP_MUL_MEAT_DW_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
-+
-+#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
-+#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
-+#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
-+
-+#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
-+#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
-+#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
-+#define _FP_NANSIGN_S 0
-+#define _FP_NANSIGN_D 0
-+#define _FP_NANSIGN_Q 0
-+
-+#define _FP_KEEPNANFRACP 1
-+#define _FP_QNANNEGATEDP 0
-+
-+/* This is arbitrarily taken from the PowerPC version. */
-+#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
-+ do { \
-+ if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
-+ && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
-+ { \
-+ R##_s = Y##_s; \
-+ _FP_FRAC_COPY_##wc(R,Y); \
-+ } \
-+ else \
-+ { \
-+ R##_s = X##_s; \
-+ _FP_FRAC_COPY_##wc(R,X); \
-+ } \
-+ R##_c = FP_CLS_NAN; \
-+ } while (0)
-+
-+#define _FP_TININESS_AFTER_ROUNDING 0
-diff --git a/sysdeps/arc/sotruss-lib.c b/sysdeps/arc/sotruss-lib.c
-new file mode 100644
-index 000000000000..fc6a009e913a
---- /dev/null
-+++ b/sysdeps/arc/sotruss-lib.c
-@@ -0,0 +1,51 @@
-+/* Override generic sotruss-lib.c to define actual functions for ARC.
-+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
-+
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#define HAVE_ARCH_PLTENTER
-+#define HAVE_ARCH_PLTEXIT
-+
-+#include <elf/sotruss-lib.c>
-+
-+ElfW(Addr)
-+la_arc_gnu_pltenter (ElfW(Sym) *sym __attribute__ ((unused)),
-+ unsigned int ndx __attribute__ ((unused)),
-+ uintptr_t *refcook, uintptr_t *defcook,
-+ La_arc_regs *regs, unsigned int *flags,
-+ const char *symname, long int *framesizep)
-+{
-+ print_enter (refcook, defcook, symname,
-+ regs->lr_reg[0], regs->lr_reg[1], regs->lr_reg[2],
-+ *flags);
-+
-+ /* No need to copy anything, we will not need the parameters in any case. */
-+ *framesizep = 0;
-+
-+ return sym->st_value;
-+}
-+
-+unsigned int
-+la_arc_gnu_pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
-+ uintptr_t *defcook,
-+ const struct La_arc_regs *inregs,
-+ struct La_arc_retval *outregs, const char *symname)
-+{
-+ print_exit (refcook, defcook, symname, outregs->lrv_reg[0]);
-+
-+ return 0;
-+}
-diff --git a/sysdeps/arc/stackinfo.h b/sysdeps/arc/stackinfo.h
-new file mode 100644
-index 000000000000..42821ada1027
---- /dev/null
-+++ b/sysdeps/arc/stackinfo.h
-@@ -0,0 +1,33 @@
-+/* Stack environment definitions for ARC.
-+ Copyright (C) 2012-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+/* This file contains a bit of information about the stack allocation
-+ of the processor. */
-+
-+#ifndef _STACKINFO_H
-+#define _STACKINFO_H 1
-+
-+#include <elf.h>
-+
-+/* On ARC the stack grows down. */
-+#define _STACK_GROWS_DOWN 1
-+
-+/* Default to a non-executable stack. */
-+#define DEFAULT_STACK_PERMS (PF_R|PF_W)
-+
-+#endif /* stackinfo.h */
-diff --git a/sysdeps/arc/start.S b/sysdeps/arc/start.S
-new file mode 100644
-index 000000000000..79e73e27d00d
---- /dev/null
-+++ b/sysdeps/arc/start.S
-@@ -0,0 +1,89 @@
-+/* Startup code for ARC
-+ Copyright (C) 1995-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ In addition to the permissions in the GNU Lesser General Public
-+ License, the Free Software Foundation gives you unlimited
-+ permission to link the compiled version of this file with other
-+ programs, and to distribute those programs without any restriction
-+ coming from the use of this file. (The GNU Lesser General Public
-+ License restrictions do apply in other respects; for example, they
-+ cover modification of the file, and distribution when not linked
-+ into another program.)
-+
-+ Note that people who make modified versions of this file are not
-+ obligated to grant this special exception for their modified
-+ versions; it is their choice whether to do so. The GNU Lesser
-+ General Public License gives permission to release a modified
-+ version without this exception; this exception also makes it
-+ possible to release a modified version which carries forward this
-+ exception.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+
-+#define __ASSEMBLY__ 1
-+#include <entry.h>
-+#ifndef ENTRY_POINT
-+#error ENTRY_POINT needs to be defined for ARC
-+#endif
-+
-+/* When we enter this piece of code, the program stack looks like this:
-+
-+ argc argument counter (integer)
-+ argv[0] program name (pointer)
-+ argv[1...N] program args (pointers)
-+ argv[argc-1] end of args (integer)
-+ NULL
-+ env[0...N] environment variables (pointers)
-+ NULL
-+*/
-+ .text
-+ .align 4
-+ .global __start
-+ .type __start,@function
-+__start:
-+ mov fp, 0
-+ ld_s r1, [sp] ; argc
-+
-+ mov_s r5, r0 ; rltd_fini
-+ add_s r2, sp, 4 ; argv
-+ and sp, sp, -8
-+ mov r6, sp
-+
-+#ifdef SHARED
-+ ld r0, [pcl, @main@gotpc]
-+ ld r3, [pcl, @__libc_csu_init@gotpc]
-+ ld r4, [pcl, @__libc_csu_fini@gotpc]
-+ bl __libc_start_main@plt
-+#else
-+ mov_s r0, main
-+ mov_s r3, __libc_csu_init
-+ mov r4, __libc_csu_fini
-+ bl __libc_start_main
-+#endif
-+ /* __libc_start_main (main, argc, argv, init, fini, rtld_fini, stack_end) */
-+
-+ /* Should never get here.... */
-+ flag 1
-+ .size __start,.-__start
-+
-+/* Define a symbol for the first piece of initialized data. */
-+ .data
-+ .globl __data_start
-+__data_start:
-+ .long 0
-+ .weak data_start
-+ data_start = __data_start
-diff --git a/sysdeps/arc/sysdep.h b/sysdeps/arc/sysdep.h
-new file mode 100644
-index 000000000000..920611277089
---- /dev/null
-+++ b/sysdeps/arc/sysdep.h
-@@ -0,0 +1,51 @@
-+/* Assembler macros for ARC.
-+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public License as
-+ published by the Free Software Foundation; either version 2.1 of the
-+ License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdeps/generic/sysdep.h>
-+
-+#ifdef __ASSEMBLER__
-+
-+/* Syntactic details of assembler.
-+ * One weirness is ; is not newline but comment
-+ * Although # is also for comment
-+ */
-+
-+#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
-+
-+#define ENTRY(name) \
-+ .align 4 ASM_LINE_SEP \
-+ .globl C_SYMBOL_NAME(name) ASM_LINE_SEP \
-+ .type C_SYMBOL_NAME(name),%function ASM_LINE_SEP \
-+ C_LABEL(name) ASM_LINE_SEP \
-+ cfi_startproc ASM_LINE_SEP \
-+ CALL_MCOUNT
-+
-+#undef END
-+#define END(name) \
-+ cfi_endproc ASM_LINE_SEP \
-+ ASM_SIZE_DIRECTIVE(name)
-+
-+#ifdef SHARED
-+#define PLTJMP(_x) _x##@plt
-+#else
-+#define PLTJMP(_x) _x
-+#endif
-+
-+# define CALL_MCOUNT /* Do nothing for now. */
-+
-+#endif /* __ASSEMBLER__ */
-diff --git a/sysdeps/arc/tls-macros.h b/sysdeps/arc/tls-macros.h
-new file mode 100644
-index 000000000000..51855edef6e7
---- /dev/null
-+++ b/sysdeps/arc/tls-macros.h
-@@ -0,0 +1,29 @@
-+/* Macros to support TLS testing in times of missing compiler support. */
-+
-+/* For now */
-+#define TLS_LD(x) TLS_IE(x)
-+
-+#define TLS_GD(x) \
-+ ({ int *__result; \
-+ __asm__ ("add r0, pcl, @" #x "@tlsgd \n" \
-+ ".tls_gd_ld " #x "`bl __tls_get_addr@plt \n" \
-+ "mov %0, r0 \n" \
-+ : "=&r" (__result) \
-+ ::"r0","r1","r2","r3","r4","r5","r6","r7", \
-+ "r8","r9","r10","r11","r12"); \
-+ __result; })
-+
-+#define TLS_LE(x) \
-+ ({ int *__result; \
-+ void *tp = __builtin_thread_pointer(); \
-+ __asm__ ("add %0, %1, @" #x "@tpoff \n" \
-+ : "=r" (__result) : "r"(tp)); \
-+ __result; })
-+
-+#define TLS_IE(x) \
-+ ({ int *__result; \
-+ void *tp = __builtin_thread_pointer(); \
-+ __asm__ ("ld %0, [pcl, @" #x "@tlsie] \n" \
-+ "add %0, %1, %0 \n" \
-+ : "=&r" (__result) : "r" (tp)); \
-+ __result; })
-diff --git a/sysdeps/arc/tst-audit.h b/sysdeps/arc/tst-audit.h
-new file mode 100644
-index 000000000000..8ae3734cd50c
---- /dev/null
-+++ b/sysdeps/arc/tst-audit.h
-@@ -0,0 +1,23 @@
-+/* Definitions for testing PLT entry/exit auditing. ARC version.
-+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#define pltenter la_arc_gnu_pltenter
-+#define pltexit la_arc_gnu_pltexit
-+#define La_regs La_arc_regs
-+#define La_retval La_arc_retval
-+#define int_retval lrv_reg[0]
-diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh
-index e39b2d6d5214..6a5c10d54e87 100644
---- a/sysdeps/unix/make-syscalls.sh
-+++ b/sysdeps/unix/make-syscalls.sh
-@@ -7,7 +7,7 @@
- #
- # This script is used to process the syscall data encoded in the various
- # syscalls.list files to produce thin assembly syscall wrappers around the
--# appropriate OS syscall. See syscall-template.s for more details on the
-+# appropriate OS syscall. See syscall-template.S for more details on the
- # actual wrapper.
- #
- # Syscall Signature Prefixes:
-diff --git a/sysdeps/unix/sysv/linux/arc/Implies b/sysdeps/unix/sysv/linux/arc/Implies
-new file mode 100644
-index 000000000000..7f739a0340b6
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/Implies
-@@ -0,0 +1,3 @@
-+arc/nptl
-+unix/sysv/linux/generic/wordsize-32
-+unix/sysv/linux/generic
-diff --git a/sysdeps/unix/sysv/linux/arc/Makefile b/sysdeps/unix/sysv/linux/arc/Makefile
-new file mode 100644
-index 000000000000..a6c6dfc6ec64
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/Makefile
-@@ -0,0 +1,20 @@
-+ifeq ($(subdir),stdlib)
-+gen-as-const-headers += ucontext_i.sym
-+endif
-+
-+ifeq ($(subdir),signal)
-+sysdep_routines += sigrestorer
-+endif
-+
-+ifeq ($(subdir),misc)
-+# MIPS/Tile-style cacheflush routine
-+sysdep_headers += sys/cachectl.h
-+sysdep_routines += cacheflush
-+endif
-+
-+ifeq ($(subdir),elf)
-+ifeq ($(build-shared),yes)
-+# This is needed for DSO loading from static binaries.
-+sysdep-dl-routines += dl-static
-+endif
-+endif
-diff --git a/sysdeps/unix/sysv/linux/arc/Versions b/sysdeps/unix/sysv/linux/arc/Versions
-new file mode 100644
-index 000000000000..87974e40aa75
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/Versions
-@@ -0,0 +1,16 @@
-+ld {
-+ GLIBC_PRIVATE {
-+ # used for loading by static libraries
-+ _dl_var_init;
-+ }
-+}
-+libc {
-+ GLIBC_2.27 {
-+ _flush_cache;
-+ cacheflush;
-+ }
-+ GLIBC_PRIVATE {
-+ # A copy of sigaction lives in libpthread, and needs these.
-+ __default_rt_sa_restorer;
-+ }
-+}
-diff --git a/sysdeps/unix/sysv/linux/arc/bits/mman.h b/sysdeps/unix/sysv/linux/arc/bits/mman.h
-new file mode 100644
-index 000000000000..d52a82eae4ad
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/bits/mman.h
-@@ -0,0 +1,42 @@
-+/* Definitions for POSIX memory map interface. Linux/ARC version.
-+
-+ Copyright (C) 1997-2018 Free Software Foundation, Inc.
-+
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SYS_MMAN_H
-+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-+#endif
-+
-+/* The following definitions basically come from the kernel headers.
-+ But the kernel header is not namespace clean. */
-+
-+/* These are Linux-specific. */
-+#ifdef __USE_MISC
-+# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
-+# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
-+# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
-+# define MAP_LOCKED 0x02000 /* Lock the mapping. */
-+# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
-+# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
-+# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
-+# define MAP_STACK 0x20000 /* Allocation is for a stack. */
-+# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
-+#endif
-+
-+/* Include generic Linux declarations. */
-+#include <bits/mman-linux.h>
-diff --git a/sysdeps/unix/sysv/linux/arc/bits/sigaction.h b/sysdeps/unix/sysv/linux/arc/bits/sigaction.h
-new file mode 100644
-index 000000000000..47e86c06ce98
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/bits/sigaction.h
-@@ -0,0 +1,85 @@
-+/* The proper definitions for Linux's sigaction.
-+ Copyright (C) 1993-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _BITS_SIGACTION_H
-+#define _BITS_SIGACTION_H 1
-+
-+#ifndef _SIGNAL_H
-+# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
-+#endif
-+
-+/* Structure describing the action to be taken when a signal arrives.
-+ * The generic struct is NOT ABI compatible with asm-generic Linux syscall variant*/
-+
-+struct sigaction
-+ {
-+ /* Signal handler. */
-+#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
-+ union
-+ {
-+ /* Used if SA_SIGINFO is not set. */
-+ __sighandler_t sa_handler;
-+ /* Used if SA_SIGINFO is set. */
-+ void (*sa_sigaction) (int, siginfo_t *, void *);
-+ }
-+ __sigaction_handler;
-+# define sa_handler __sigaction_handler.sa_handler
-+# define sa_sigaction __sigaction_handler.sa_sigaction
-+#else
-+ __sighandler_t sa_handler;
-+#endif
-+
-+ /* Special flags. */
-+ int sa_flags;
-+
-+ /* Restore handler. */
-+ void (*sa_restorer) (void);
-+
-+ /* Additional set of signals to be blocked. */
-+ __sigset_t sa_mask;
-+ };
-+
-+/* Bits in `sa_flags'. */
-+#define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */
-+#define SA_NOCLDWAIT 2 /* Don't create zombie on child death. */
-+#define SA_SIGINFO 4 /* Invoke signal-catching function with
-+ three arguments instead of one. */
-+#if defined __USE_XOPEN_EXTENDED || defined __USE_MISC
-+# define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */
-+#endif
-+#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
-+# define SA_RESTART 0x10000000 /* Restart syscall on signal return. */
-+# define SA_NODEFER 0x40000000 /* Don't automatically block the signal when
-+ its handler is being executed. */
-+# define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler. */
-+#endif
-+#ifdef __USE_MISC
-+# define SA_INTERRUPT 0x20000000 /* Historical no-op. */
-+
-+/* Some aliases for the SA_ constants. */
-+# define SA_NOMASK SA_NODEFER
-+# define SA_ONESHOT SA_RESETHAND
-+# define SA_STACK SA_ONSTACK
-+#endif
-+
-+/* Values for the HOW argument to `sigprocmask'. */
-+#define SIG_BLOCK 0 /* Block signals. */
-+#define SIG_UNBLOCK 1 /* Unblock signals. */
-+#define SIG_SETMASK 2 /* Set the set of blocked signals. */
-+
-+#endif
-\ No newline at end of file
-diff --git a/sysdeps/unix/sysv/linux/arc/c++-types.data b/sysdeps/unix/sysv/linux/arc/c++-types.data
-new file mode 100644
-index 000000000000..303f4570c8ee
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/c++-types.data
-@@ -0,0 +1,67 @@
-+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/arc/cacheflush.c b/sysdeps/unix/sysv/linux/arc/cacheflush.c
-new file mode 100644
-index 000000000000..7b14211eccf7
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/cacheflush.c
-@@ -0,0 +1,29 @@
-+/* cacheflush system call for ARC Linux.
-+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+#include <stddef.h>
-+#include <unistd.h>
-+
-+/* Flush cache(s). */
-+int
-+_flush_cache (char *addr, const int nbytes, const int op)
-+{
-+ return INLINE_SYSCALL (cacheflush, 3, addr, nbytes, op);
-+}
-+weak_alias (_flush_cache, cacheflush)
-diff --git a/sysdeps/unix/sysv/linux/arc/clone.S b/sysdeps/unix/sysv/linux/arc/clone.S
-new file mode 100644
-index 000000000000..04f2df5ef06d
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/clone.S
-@@ -0,0 +1,100 @@
-+/* clone() implementation for ARC.
-+ Copyright (C) 2008-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Andrew Jenner <andrew@codesourcery.com>, 2008.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+
-+#include <sysdep.h>
-+#define _ERRNO_H 1
-+#include <bits/errno.h>
-+#include <tcb-offsets.h>
-+
-+#define CLONE_SETTLS 0x00080000
-+
-+; int clone(int (*fn)(void *), void *child_stack,
-+; int flags, void *arg, ...
-+; /* pid_t *ptid, struct user_desc *tls, pid_t *ctid */);
-+;
-+; NOTE: I'm assuming that the last 3 args are NOT var-args and in case all
-+; 3 are not relevant, caller will nevertheless pass those as NULL.
-+; Current (Jul 2012) upstream powerpc/clone.S assumes similarly.
-+; Our LTP (from 2007) doesn't seem to have tests to prove otherwise
-+
-+; clone syscall in kernel (ABI: CONFIG_CLONE_BACKWARDS)
-+;
-+; int sys_clone(unsigned long clone_flags,
-+; unsigned long newsp,
-+; int __user *parent_tidptr,
-+; void *tls,
-+; int __user *child_tidptr)
-+
-+ENTRY(__clone)
-+ cmp r0, 0 ; @fn can't be NULL
-+ cmp.ne r1, 0 ; @child_stack can't be NULL
-+ bz .L__sys_err
-+
-+ ; save some of the orig args
-+ ; r0 containg @fn will be clobbered AFTER syscall (with ret val)
-+ ; rest are clobbered BEFORE syscall due to different arg ordering
-+ mov r10, r0 ; @fn
-+ mov r11, r3 ; @args
-+ mov r12, r2 ; @clone_flags
-+ mov r9, r5 ; @tls
-+
-+ ; adjust libc args for syscall
-+
-+ mov r0, r2 ; libc @flags is 1st syscall arg
-+ mov r2, r4 ; libc @ptid
-+ mov r3, r5 ; libc @tls
-+ mov r4, r6 ; libc @ctid
-+ mov r8, __NR_clone
-+ ARC_TRAP_INSN
-+
-+ cmp r0, 0 ; return code : 0 new process, !0 parent
-+ blt .L__sys_err2 ; < 0 (signed) error
-+ jnz [blink] ; Parent returns
-+
-+ ; ----- child starts here ---------
-+
-+ ; Setup TP register (only recent kernels v4.19+ do that)
-+ and.f 0, r12, CLONE_SETTLS
-+ mov.nz r25, r9
-+
-+ ; child jumps off to @fn with @arg as argument, and returns here
-+ jl.d [r10]
-+ mov r0, r11
-+
-+ ; exit() with result from @fn (already in r0)
-+ mov r8, __NR_exit
-+ ARC_TRAP_INSN
-+ ; In case it ever came back
-+ flag 1
-+
-+.L__sys_err:
-+ mov r0, -EINVAL
-+.L__sys_err2:
-+ ; (1) No need to make -ve kernel error code as positive errno
-+ ; __syscall_error expects the -ve error code returned by kernel
-+ ; (2) r0 still had orig -ve kernel error code
-+ ; (3) Tail call to __syscall_error so we dont have to come back
-+ ; here hence instead of jmp-n-link (reg push/pop) we do jmp
-+ ; (4) No need to route __syscall_error via PLT, B is inherently
-+ ; position independent
-+ b __syscall_error
-+PSEUDO_END (__clone)
-+libc_hidden_def (__clone)
-+weak_alias (__clone, clone)
-diff --git a/sysdeps/unix/sysv/linux/arc/configure b/sysdeps/unix/sysv/linux/arc/configure
-new file mode 100644
-index 000000000000..f74fa7cb0259
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/configure
-@@ -0,0 +1,4 @@
-+# This file is generated from configure.in by Autoconf. DO NOT EDIT!
-+ # Local configure fragment for sysdeps/unix/sysv/linux/arc.
-+
-+arch_minimum_kernel=3.9.0
-diff --git a/sysdeps/unix/sysv/linux/arc/configure.ac b/sysdeps/unix/sysv/linux/arc/configure.ac
-new file mode 100644
-index 000000000000..a9528032d32a
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/configure.ac
-@@ -0,0 +1,4 @@
-+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-+# Local configure fragment for sysdeps/unix/sysv/linux/arc.
-+
-+arch_minimum_kernel=3.9.0
-diff --git a/sysdeps/unix/sysv/linux/arc/dl-static.c b/sysdeps/unix/sysv/linux/arc/dl-static.c
-new file mode 100644
-index 000000000000..2683ee5e7e2a
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/dl-static.c
-@@ -0,0 +1,84 @@
-+/* Variable initialization. ARC version.
-+ Copyright (C) 2001-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <ldsodefs.h>
-+
-+#ifdef SHARED
-+
-+void
-+_dl_var_init (void *array[])
-+{
-+ /* It has to match "variables" below. */
-+ enum
-+ {
-+ DL_PAGESIZE = 0
-+ };
-+
-+ GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
-+}
-+
-+#else
-+
-+static void *variables[] =
-+{
-+ &GLRO(dl_pagesize)
-+};
-+
-+static void
-+_dl_unprotect_relro (struct link_map *l)
-+{
-+ ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
-+ & ~(GLRO(dl_pagesize) - 1));
-+ ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
-+ & ~(GLRO(dl_pagesize) - 1));
-+
-+ if (start != end)
-+ __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
-+}
-+
-+void
-+_dl_static_init (struct link_map *l)
-+{
-+ struct link_map *rtld_map = l;
-+ struct r_scope_elem **scope;
-+ const ElfW(Sym) *ref = NULL;
-+ lookup_t loadbase;
-+ void (*f) (void *[]);
-+ size_t i;
-+
-+ loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
-+ NULL, 0, 1, NULL);
-+
-+ for (scope = l->l_local_scope; *scope != NULL; scope++)
-+ for (i = 0; i < (*scope)->r_nlist; i++)
-+ if ((*scope)->r_list[i] == loadbase)
-+ {
-+ rtld_map = (*scope)->r_list[i];
-+ break;
-+ }
-+
-+ if (ref != NULL)
-+ {
-+ f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
-+ _dl_unprotect_relro (rtld_map);
-+ f (variables);
-+ _dl_protect_relro (rtld_map);
-+ }
-+}
-+
-+#endif
-diff --git a/sysdeps/unix/sysv/linux/arc/getcontext.S b/sysdeps/unix/sysv/linux/arc/getcontext.S
-new file mode 100644
-index 000000000000..af31f581e846
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/getcontext.S
-@@ -0,0 +1,65 @@
-+/* Save current context for ARC
-+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include "ucontext-macros.h"
-+
-+/* int getcontext (ucontext_t *ucp)
-+
-+ Save machine context in @ucp and return 0 on success, -1 on error
-+ - saves callee saved registers only
-+ - layout mandated by uncontext_t:m_context (hence different from setjmp)
-+*/
-+
-+ENTRY(__getcontext)
-+
-+ /* callee saved registers */
-+ SAVE_REG(r13, r0, 37)
-+ SAVE_REG(r14, r0, 36)
-+ SAVE_REG(r15, r0, 35)
-+ SAVE_REG(r16, r0, 34)
-+ SAVE_REG(r17, r0, 33)
-+ SAVE_REG(r18, r0, 32)
-+ SAVE_REG(r19, r0, 31)
-+ SAVE_REG(r20, r0, 30)
-+ SAVE_REG(r21, r0, 29)
-+ SAVE_REG(r22, r0, 28)
-+ SAVE_REG(r23, r0, 27)
-+ SAVE_REG(r24, r0, 26)
-+ SAVE_REG(r25, r0, 25)
-+
-+ SAVE_REG(blink, r0, 7)
-+ SAVE_REG(fp, r0, 8)
-+ SAVE_REG(sp, r0, 23)
-+
-+ /* save 0 in r0 placeholder to return 0 when this @ucp activated */
-+ mov r9, 0
-+ SAVE_REG(r9, r0, 22)
-+
-+ /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
-+ mov r3, _NSIG8
-+ add r2, r0, UCONTEXT_SIGMASK
-+ mov r1, 0
-+ mov r0, SIG_BLOCK
-+ mov r8, __NR_rt_sigprocmask
-+ ARC_TRAP_INSN
-+ brhi r0, -1024, .Lcall_syscall_err
-+ j.d [blink]
-+ mov r0, 0 ; success ; error case handled in .Lcall_syscall_err
-+
-+PSEUDO_END(__getcontext)
-+weak_alias(__getcontext, getcontext)
-diff --git a/sysdeps/unix/sysv/linux/arc/ipc_priv.h b/sysdeps/unix/sysv/linux/arc/ipc_priv.h
-new file mode 100644
-index 000000000000..5f6e9815d169
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/ipc_priv.h
-@@ -0,0 +1,21 @@
-+/* Old SysV permission definition for Linux. ARC version.
-+ Copyright (C) 2016-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sys/ipc.h> /* For __key_t */
-+
-+#define __IPC_64 0x0
-diff --git a/sysdeps/unix/sysv/linux/arc/jmp_buf-macros.h b/sysdeps/unix/sysv/linux/arc/jmp_buf-macros.h
-new file mode 100644
-index 000000000000..2fec69d21657
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/jmp_buf-macros.h
-@@ -0,0 +1,6 @@
-+#define JMP_BUF_SIZE (32 + 1 + 1024/32) * 4
-+#define SIGJMP_BUF_SIZE (32 + 1 + 1024/32) * 4
-+#define JMP_BUF_ALIGN 4
-+#define SIGJMP_BUF_ALIGN 4
-+#define MASK_WAS_SAVED_OFFSET 32 * 4
-+#define SAVED_MASK_OFFSET 33 * 4
-diff --git a/sysdeps/unix/sysv/linux/arc/kernel-features.h b/sysdeps/unix/sysv/linux/arc/kernel-features.h
-new file mode 100644
-index 000000000000..d8f667ca4759
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/kernel-features.h
-@@ -0,0 +1,28 @@
-+/* Set flags signalling availability of kernel features based on given
-+ kernel version number.
-+
-+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
-+
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+/* The minimum supported kernel version for ARC is 3.9,
-+ guaranteeing many kernel features. */
-+
-+#include_next <kernel-features.h>
-+
-+#undef __ASSUME_CLONE_DEFAULT
-+#define __ASSUME_CLONE_BACKWARDS 1
-diff --git a/sysdeps/unix/sysv/linux/arc/ld.abilist b/sysdeps/unix/sysv/linux/arc/ld.abilist
-new file mode 100644
-index 000000000000..1aad547f8a4b
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/ld.abilist
-@@ -0,0 +1,9 @@
-+GLIBC_2.27 __libc_stack_end D 0x4
-+GLIBC_2.27 __stack_chk_guard D 0x4
-+GLIBC_2.27 __tls_get_addr F
-+GLIBC_2.27 _dl_mcount F
-+GLIBC_2.27 _r_debug D 0x14
-+GLIBC_2.27 calloc F
-+GLIBC_2.27 free F
-+GLIBC_2.27 malloc F
-+GLIBC_2.27 realloc F
-diff --git a/sysdeps/unix/sysv/linux/arc/ldconfig.h b/sysdeps/unix/sysv/linux/arc/ldconfig.h
-new file mode 100644
-index 000000000000..c38ce20edaea
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/ldconfig.h
-@@ -0,0 +1,25 @@
-+/* dynamic linker names for ARC
-+ Copyright (C) 2001-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdeps/generic/ldconfig.h>
-+
-+#define SYSDEP_KNOWN_INTERPRETER_NAMES \
-+ { "/lib/ld-linux.so.2", 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/arc/ldsodefs.h b/sysdeps/unix/sysv/linux/arc/ldsodefs.h
-new file mode 100644
-index 000000000000..005c49a7b7cd
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/ldsodefs.h
-@@ -0,0 +1,32 @@
-+/* Run-time dynamic linker data structures for loaded ELF shared objects. ARC
-+ Copyright (C) 2001-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _LDSODEFS_H
-+
-+/* Get the real definitions. */
-+#include_next <ldsodefs.h>
-+
-+/* Now define our stuff. */
-+
-+/* We need special support to initialize DSO loaded for statically linked
-+ binaries. */
-+extern void _dl_static_init (struct link_map *map);
-+#undef DL_STATIC_INIT
-+#define DL_STATIC_INIT(map) _dl_static_init (map)
-+
-+#endif /* ldsodefs.h */
-diff --git a/sysdeps/unix/sysv/linux/arc/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/arc/libBrokenLocale.abilist
-new file mode 100644
-index 000000000000..18968d3c01d1
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/libBrokenLocale.abilist
-@@ -0,0 +1 @@
-+GLIBC_2.27 __ctype_get_mb_cur_max F
-diff --git a/sysdeps/unix/sysv/linux/arc/libanl.abilist b/sysdeps/unix/sysv/linux/arc/libanl.abilist
-new file mode 100644
-index 000000000000..711fc87c2af1
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/libanl.abilist
-@@ -0,0 +1,4 @@
-+GLIBC_2.27 gai_cancel F
-+GLIBC_2.27 gai_error F
-+GLIBC_2.27 gai_suspend F
-+GLIBC_2.27 getaddrinfo_a F
-diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
-new file mode 100644
-index 000000000000..b25e35d50280
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
-@@ -0,0 +1,2091 @@
-+GLIBC_2.27 _Exit F
-+GLIBC_2.27 _IO_2_1_stderr_ D 0x98
-+GLIBC_2.27 _IO_2_1_stdin_ D 0x98
-+GLIBC_2.27 _IO_2_1_stdout_ D 0x98
-+GLIBC_2.27 _IO_adjust_column F
-+GLIBC_2.27 _IO_adjust_wcolumn F
-+GLIBC_2.27 _IO_default_doallocate F
-+GLIBC_2.27 _IO_default_finish F
-+GLIBC_2.27 _IO_default_pbackfail F
-+GLIBC_2.27 _IO_default_uflow F
-+GLIBC_2.27 _IO_default_xsgetn F
-+GLIBC_2.27 _IO_default_xsputn F
-+GLIBC_2.27 _IO_do_write F
-+GLIBC_2.27 _IO_doallocbuf F
-+GLIBC_2.27 _IO_fclose F
-+GLIBC_2.27 _IO_fdopen F
-+GLIBC_2.27 _IO_feof F
-+GLIBC_2.27 _IO_ferror F
-+GLIBC_2.27 _IO_fflush F
-+GLIBC_2.27 _IO_fgetpos F
-+GLIBC_2.27 _IO_fgetpos64 F
-+GLIBC_2.27 _IO_fgets F
-+GLIBC_2.27 _IO_file_attach F
-+GLIBC_2.27 _IO_file_close F
-+GLIBC_2.27 _IO_file_close_it F
-+GLIBC_2.27 _IO_file_doallocate F
-+GLIBC_2.27 _IO_file_finish F
-+GLIBC_2.27 _IO_file_fopen F
-+GLIBC_2.27 _IO_file_init F
-+GLIBC_2.27 _IO_file_jumps D 0x54
-+GLIBC_2.27 _IO_file_open F
-+GLIBC_2.27 _IO_file_overflow F
-+GLIBC_2.27 _IO_file_read F
-+GLIBC_2.27 _IO_file_seek F
-+GLIBC_2.27 _IO_file_seekoff F
-+GLIBC_2.27 _IO_file_setbuf F
-+GLIBC_2.27 _IO_file_stat F
-+GLIBC_2.27 _IO_file_sync F
-+GLIBC_2.27 _IO_file_underflow F
-+GLIBC_2.27 _IO_file_write F
-+GLIBC_2.27 _IO_file_xsputn F
-+GLIBC_2.27 _IO_flockfile F
-+GLIBC_2.27 _IO_flush_all F
-+GLIBC_2.27 _IO_flush_all_linebuffered F
-+GLIBC_2.27 _IO_fopen F
-+GLIBC_2.27 _IO_fprintf F
-+GLIBC_2.27 _IO_fputs F
-+GLIBC_2.27 _IO_fread F
-+GLIBC_2.27 _IO_free_backup_area F
-+GLIBC_2.27 _IO_free_wbackup_area F
-+GLIBC_2.27 _IO_fsetpos F
-+GLIBC_2.27 _IO_fsetpos64 F
-+GLIBC_2.27 _IO_ftell F
-+GLIBC_2.27 _IO_ftrylockfile F
-+GLIBC_2.27 _IO_funlockfile F
-+GLIBC_2.27 _IO_fwrite F
-+GLIBC_2.27 _IO_getc F
-+GLIBC_2.27 _IO_getline F
-+GLIBC_2.27 _IO_getline_info F
-+GLIBC_2.27 _IO_gets F
-+GLIBC_2.27 _IO_init F
-+GLIBC_2.27 _IO_init_marker F
-+GLIBC_2.27 _IO_init_wmarker F
-+GLIBC_2.27 _IO_iter_begin F
-+GLIBC_2.27 _IO_iter_end F
-+GLIBC_2.27 _IO_iter_file F
-+GLIBC_2.27 _IO_iter_next F
-+GLIBC_2.27 _IO_least_wmarker F
-+GLIBC_2.27 _IO_link_in F
-+GLIBC_2.27 _IO_list_all D 0x4
-+GLIBC_2.27 _IO_list_lock F
-+GLIBC_2.27 _IO_list_resetlock F
-+GLIBC_2.27 _IO_list_unlock F
-+GLIBC_2.27 _IO_marker_delta F
-+GLIBC_2.27 _IO_marker_difference F
-+GLIBC_2.27 _IO_padn F
-+GLIBC_2.27 _IO_peekc_locked F
-+GLIBC_2.27 _IO_popen F
-+GLIBC_2.27 _IO_printf F
-+GLIBC_2.27 _IO_proc_close F
-+GLIBC_2.27 _IO_proc_open F
-+GLIBC_2.27 _IO_putc F
-+GLIBC_2.27 _IO_puts F
-+GLIBC_2.27 _IO_remove_marker F
-+GLIBC_2.27 _IO_seekmark F
-+GLIBC_2.27 _IO_seekoff F
-+GLIBC_2.27 _IO_seekpos F
-+GLIBC_2.27 _IO_seekwmark F
-+GLIBC_2.27 _IO_setb F
-+GLIBC_2.27 _IO_setbuffer F
-+GLIBC_2.27 _IO_setvbuf F
-+GLIBC_2.27 _IO_sgetn F
-+GLIBC_2.27 _IO_sprintf F
-+GLIBC_2.27 _IO_sputbackc F
-+GLIBC_2.27 _IO_sputbackwc F
-+GLIBC_2.27 _IO_sscanf F
-+GLIBC_2.27 _IO_str_init_readonly F
-+GLIBC_2.27 _IO_str_init_static F
-+GLIBC_2.27 _IO_str_overflow F
-+GLIBC_2.27 _IO_str_pbackfail F
-+GLIBC_2.27 _IO_str_seekoff F
-+GLIBC_2.27 _IO_str_underflow F
-+GLIBC_2.27 _IO_sungetc F
-+GLIBC_2.27 _IO_sungetwc F
-+GLIBC_2.27 _IO_switch_to_get_mode F
-+GLIBC_2.27 _IO_switch_to_main_wget_area F
-+GLIBC_2.27 _IO_switch_to_wbackup_area F
-+GLIBC_2.27 _IO_switch_to_wget_mode F
-+GLIBC_2.27 _IO_un_link F
-+GLIBC_2.27 _IO_ungetc F
-+GLIBC_2.27 _IO_unsave_markers F
-+GLIBC_2.27 _IO_unsave_wmarkers F
-+GLIBC_2.27 _IO_vfprintf F
-+GLIBC_2.27 _IO_vfscanf F
-+GLIBC_2.27 _IO_vsprintf F
-+GLIBC_2.27 _IO_wdefault_doallocate F
-+GLIBC_2.27 _IO_wdefault_finish F
-+GLIBC_2.27 _IO_wdefault_pbackfail F
-+GLIBC_2.27 _IO_wdefault_uflow F
-+GLIBC_2.27 _IO_wdefault_xsgetn F
-+GLIBC_2.27 _IO_wdefault_xsputn F
-+GLIBC_2.27 _IO_wdo_write F
-+GLIBC_2.27 _IO_wdoallocbuf F
-+GLIBC_2.27 _IO_wfile_jumps D 0x54
-+GLIBC_2.27 _IO_wfile_overflow F
-+GLIBC_2.27 _IO_wfile_seekoff F
-+GLIBC_2.27 _IO_wfile_sync F
-+GLIBC_2.27 _IO_wfile_underflow F
-+GLIBC_2.27 _IO_wfile_xsputn F
-+GLIBC_2.27 _IO_wmarker_delta F
-+GLIBC_2.27 _IO_wsetb F
-+GLIBC_2.27 ___brk_addr D 0x4
-+GLIBC_2.27 __adjtimex F
-+GLIBC_2.27 __after_morecore_hook D 0x4
-+GLIBC_2.27 __argz_count F
-+GLIBC_2.27 __argz_next F
-+GLIBC_2.27 __argz_stringify F
-+GLIBC_2.27 __asprintf F
-+GLIBC_2.27 __asprintf_chk F
-+GLIBC_2.27 __assert F
-+GLIBC_2.27 __assert_fail F
-+GLIBC_2.27 __assert_perror_fail F
-+GLIBC_2.27 __backtrace F
-+GLIBC_2.27 __backtrace_symbols F
-+GLIBC_2.27 __backtrace_symbols_fd F
-+GLIBC_2.27 __bsd_getpgrp F
-+GLIBC_2.27 __bzero F
-+GLIBC_2.27 __check_rhosts_file D 0x4
-+GLIBC_2.27 __chk_fail F
-+GLIBC_2.27 __clone F
-+GLIBC_2.27 __close F
-+GLIBC_2.27 __cmsg_nxthdr F
-+GLIBC_2.27 __confstr_chk F
-+GLIBC_2.27 __connect F
-+GLIBC_2.27 __ctype_b_loc F
-+GLIBC_2.27 __ctype_get_mb_cur_max F
-+GLIBC_2.27 __ctype_tolower_loc F
-+GLIBC_2.27 __ctype_toupper_loc F
-+GLIBC_2.27 __curbrk D 0x4
-+GLIBC_2.27 __cxa_at_quick_exit F
-+GLIBC_2.27 __cxa_atexit F
-+GLIBC_2.27 __cxa_finalize F
-+GLIBC_2.27 __cxa_thread_atexit_impl F
-+GLIBC_2.27 __cyg_profile_func_enter F
-+GLIBC_2.27 __cyg_profile_func_exit F
-+GLIBC_2.27 __daylight D 0x4
-+GLIBC_2.27 __dcgettext F
-+GLIBC_2.27 __default_morecore F
-+GLIBC_2.27 __dgettext F
-+GLIBC_2.27 __dprintf_chk F
-+GLIBC_2.27 __dup2 F
-+GLIBC_2.27 __duplocale F
-+GLIBC_2.27 __endmntent F
-+GLIBC_2.27 __environ D 0x4
-+GLIBC_2.27 __errno_location F
-+GLIBC_2.27 __explicit_bzero_chk F
-+GLIBC_2.27 __fbufsize F
-+GLIBC_2.27 __fcntl F
-+GLIBC_2.27 __fdelt_chk F
-+GLIBC_2.27 __fdelt_warn F
-+GLIBC_2.27 __ffs F
-+GLIBC_2.27 __fgets_chk F
-+GLIBC_2.27 __fgets_unlocked_chk F
-+GLIBC_2.27 __fgetws_chk F
-+GLIBC_2.27 __fgetws_unlocked_chk F
-+GLIBC_2.27 __finite F
-+GLIBC_2.27 __finitef F
-+GLIBC_2.27 __flbf F
-+GLIBC_2.27 __fork F
-+GLIBC_2.27 __fpending F
-+GLIBC_2.27 __fprintf_chk F
-+GLIBC_2.27 __fpu_control D 0x4
-+GLIBC_2.27 __fpurge F
-+GLIBC_2.27 __fread_chk F
-+GLIBC_2.27 __fread_unlocked_chk F
-+GLIBC_2.27 __freadable F
-+GLIBC_2.27 __freading F
-+GLIBC_2.27 __free_hook D 0x4
-+GLIBC_2.27 __freelocale F
-+GLIBC_2.27 __fsetlocking F
-+GLIBC_2.27 __fwprintf_chk F
-+GLIBC_2.27 __fwritable F
-+GLIBC_2.27 __fwriting F
-+GLIBC_2.27 __fxstat F
-+GLIBC_2.27 __fxstat64 F
-+GLIBC_2.27 __fxstatat F
-+GLIBC_2.27 __fxstatat64 F
-+GLIBC_2.27 __getauxval F
-+GLIBC_2.27 __getcwd_chk F
-+GLIBC_2.27 __getdelim F
-+GLIBC_2.27 __getdomainname_chk F
-+GLIBC_2.27 __getgroups_chk F
-+GLIBC_2.27 __gethostname_chk F
-+GLIBC_2.27 __getlogin_r_chk F
-+GLIBC_2.27 __getmntent_r F
-+GLIBC_2.27 __getpagesize F
-+GLIBC_2.27 __getpgid F
-+GLIBC_2.27 __getpid F
-+GLIBC_2.27 __gets_chk F
-+GLIBC_2.27 __gettimeofday F
-+GLIBC_2.27 __getwd_chk F
-+GLIBC_2.27 __gmtime_r F
-+GLIBC_2.27 __h_errno_location F
-+GLIBC_2.27 __isalnum_l F
-+GLIBC_2.27 __isalpha_l F
-+GLIBC_2.27 __isascii_l F
-+GLIBC_2.27 __isblank_l F
-+GLIBC_2.27 __iscntrl_l F
-+GLIBC_2.27 __isctype F
-+GLIBC_2.27 __isdigit_l F
-+GLIBC_2.27 __isgraph_l F
-+GLIBC_2.27 __isinf F
-+GLIBC_2.27 __isinff F
-+GLIBC_2.27 __islower_l F
-+GLIBC_2.27 __isnan F
-+GLIBC_2.27 __isnanf F
-+GLIBC_2.27 __isoc99_fscanf F
-+GLIBC_2.27 __isoc99_fwscanf F
-+GLIBC_2.27 __isoc99_scanf F
-+GLIBC_2.27 __isoc99_sscanf F
-+GLIBC_2.27 __isoc99_swscanf F
-+GLIBC_2.27 __isoc99_vfscanf F
-+GLIBC_2.27 __isoc99_vfwscanf F
-+GLIBC_2.27 __isoc99_vscanf F
-+GLIBC_2.27 __isoc99_vsscanf F
-+GLIBC_2.27 __isoc99_vswscanf F
-+GLIBC_2.27 __isoc99_vwscanf F
-+GLIBC_2.27 __isoc99_wscanf F
-+GLIBC_2.27 __isprint_l F
-+GLIBC_2.27 __ispunct_l F
-+GLIBC_2.27 __isspace_l F
-+GLIBC_2.27 __isupper_l F
-+GLIBC_2.27 __iswalnum_l F
-+GLIBC_2.27 __iswalpha_l F
-+GLIBC_2.27 __iswblank_l F
-+GLIBC_2.27 __iswcntrl_l F
-+GLIBC_2.27 __iswctype F
-+GLIBC_2.27 __iswctype_l F
-+GLIBC_2.27 __iswdigit_l F
-+GLIBC_2.27 __iswgraph_l F
-+GLIBC_2.27 __iswlower_l F
-+GLIBC_2.27 __iswprint_l F
-+GLIBC_2.27 __iswpunct_l F
-+GLIBC_2.27 __iswspace_l F
-+GLIBC_2.27 __iswupper_l F
-+GLIBC_2.27 __iswxdigit_l F
-+GLIBC_2.27 __isxdigit_l F
-+GLIBC_2.27 __ivaliduser F
-+GLIBC_2.27 __key_decryptsession_pk_LOCAL D 0x4
-+GLIBC_2.27 __key_encryptsession_pk_LOCAL D 0x4
-+GLIBC_2.27 __key_gendes_LOCAL D 0x4
-+GLIBC_2.27 __libc_allocate_rtsig F
-+GLIBC_2.27 __libc_calloc F
-+GLIBC_2.27 __libc_current_sigrtmax F
-+GLIBC_2.27 __libc_current_sigrtmin F
-+GLIBC_2.27 __libc_free F
-+GLIBC_2.27 __libc_freeres F
-+GLIBC_2.27 __libc_init_first F
-+GLIBC_2.27 __libc_mallinfo F
-+GLIBC_2.27 __libc_malloc F
-+GLIBC_2.27 __libc_mallopt F
-+GLIBC_2.27 __libc_memalign F
-+GLIBC_2.27 __libc_pvalloc F
-+GLIBC_2.27 __libc_realloc F
-+GLIBC_2.27 __libc_sa_len F
-+GLIBC_2.27 __libc_start_main F
-+GLIBC_2.27 __libc_valloc F
-+GLIBC_2.27 __longjmp_chk F
-+GLIBC_2.27 __lseek F
-+GLIBC_2.27 __lxstat F
-+GLIBC_2.27 __lxstat64 F
-+GLIBC_2.27 __malloc_hook D 0x4
-+GLIBC_2.27 __mbrlen F
-+GLIBC_2.27 __mbrtowc F
-+GLIBC_2.27 __mbsnrtowcs_chk F
-+GLIBC_2.27 __mbsrtowcs_chk F
-+GLIBC_2.27 __mbstowcs_chk F
-+GLIBC_2.27 __memalign_hook D 0x4
-+GLIBC_2.27 __memcpy_chk F
-+GLIBC_2.27 __memmove_chk F
-+GLIBC_2.27 __mempcpy F
-+GLIBC_2.27 __mempcpy_chk F
-+GLIBC_2.27 __memset_chk F
-+GLIBC_2.27 __monstartup F
-+GLIBC_2.27 __morecore D 0x4
-+GLIBC_2.27 __nanosleep F
-+GLIBC_2.27 __newlocale F
-+GLIBC_2.27 __nl_langinfo_l F
-+GLIBC_2.27 __nss_configure_lookup F
-+GLIBC_2.27 __nss_database_lookup F
-+GLIBC_2.27 __nss_hostname_digits_dots F
-+GLIBC_2.27 __nss_next F
-+GLIBC_2.27 __obstack_printf_chk F
-+GLIBC_2.27 __obstack_vprintf_chk F
-+GLIBC_2.27 __open F
-+GLIBC_2.27 __open64 F
-+GLIBC_2.27 __open64_2 F
-+GLIBC_2.27 __open_2 F
-+GLIBC_2.27 __openat64_2 F
-+GLIBC_2.27 __openat_2 F
-+GLIBC_2.27 __overflow F
-+GLIBC_2.27 __pipe F
-+GLIBC_2.27 __poll F
-+GLIBC_2.27 __poll_chk F
-+GLIBC_2.27 __posix_getopt F
-+GLIBC_2.27 __ppoll_chk F
-+GLIBC_2.27 __pread64 F
-+GLIBC_2.27 __pread64_chk F
-+GLIBC_2.27 __pread_chk F
-+GLIBC_2.27 __printf_chk F
-+GLIBC_2.27 __printf_fp F
-+GLIBC_2.27 __profile_frequency F
-+GLIBC_2.27 __progname D 0x4
-+GLIBC_2.27 __progname_full D 0x4
-+GLIBC_2.27 __ptsname_r_chk F
-+GLIBC_2.27 __pwrite64 F
-+GLIBC_2.27 __rawmemchr F
-+GLIBC_2.27 __rcmd_errstr D 0x4
-+GLIBC_2.27 __read F
-+GLIBC_2.27 __read_chk F
-+GLIBC_2.27 __readlink_chk F
-+GLIBC_2.27 __readlinkat_chk F
-+GLIBC_2.27 __realloc_hook D 0x4
-+GLIBC_2.27 __realpath_chk F
-+GLIBC_2.27 __recv_chk F
-+GLIBC_2.27 __recvfrom_chk F
-+GLIBC_2.27 __register_atfork F
-+GLIBC_2.27 __res_init F
-+GLIBC_2.27 __res_nclose F
-+GLIBC_2.27 __res_ninit F
-+GLIBC_2.27 __res_randomid F
-+GLIBC_2.27 __res_state F
-+GLIBC_2.27 __rpc_thread_createerr F
-+GLIBC_2.27 __rpc_thread_svc_fdset F
-+GLIBC_2.27 __rpc_thread_svc_max_pollfd F
-+GLIBC_2.27 __rpc_thread_svc_pollfd F
-+GLIBC_2.27 __sbrk F
-+GLIBC_2.27 __sched_cpualloc F
-+GLIBC_2.27 __sched_cpucount F
-+GLIBC_2.27 __sched_cpufree F
-+GLIBC_2.27 __sched_get_priority_max F
-+GLIBC_2.27 __sched_get_priority_min F
-+GLIBC_2.27 __sched_getparam F
-+GLIBC_2.27 __sched_getscheduler F
-+GLIBC_2.27 __sched_setscheduler F
-+GLIBC_2.27 __sched_yield F
-+GLIBC_2.27 __select F
-+GLIBC_2.27 __send F
-+GLIBC_2.27 __setmntent F
-+GLIBC_2.27 __setpgid F
-+GLIBC_2.27 __sigaction F
-+GLIBC_2.27 __signbit F
-+GLIBC_2.27 __signbitf F
-+GLIBC_2.27 __sigpause F
-+GLIBC_2.27 __sigsetjmp F
-+GLIBC_2.27 __sigsuspend F
-+GLIBC_2.27 __snprintf_chk F
-+GLIBC_2.27 __sprintf_chk F
-+GLIBC_2.27 __stack_chk_fail F
-+GLIBC_2.27 __statfs F
-+GLIBC_2.27 __stpcpy F
-+GLIBC_2.27 __stpcpy_chk F
-+GLIBC_2.27 __stpncpy F
-+GLIBC_2.27 __stpncpy_chk F
-+GLIBC_2.27 __strcasecmp F
-+GLIBC_2.27 __strcasecmp_l F
-+GLIBC_2.27 __strcasestr F
-+GLIBC_2.27 __strcat_chk F
-+GLIBC_2.27 __strcoll_l F
-+GLIBC_2.27 __strcpy_chk F
-+GLIBC_2.27 __strdup F
-+GLIBC_2.27 __strerror_r F
-+GLIBC_2.27 __strfmon_l F
-+GLIBC_2.27 __strftime_l F
-+GLIBC_2.27 __strncasecmp_l F
-+GLIBC_2.27 __strncat_chk F
-+GLIBC_2.27 __strncpy_chk F
-+GLIBC_2.27 __strndup F
-+GLIBC_2.27 __strsep_g F
-+GLIBC_2.27 __strtod_internal F
-+GLIBC_2.27 __strtod_l F
-+GLIBC_2.27 __strtof_internal F
-+GLIBC_2.27 __strtof_l F
-+GLIBC_2.27 __strtok_r F
-+GLIBC_2.27 __strtol_internal F
-+GLIBC_2.27 __strtol_l F
-+GLIBC_2.27 __strtold_internal F
-+GLIBC_2.27 __strtold_l F
-+GLIBC_2.27 __strtoll_internal F
-+GLIBC_2.27 __strtoll_l F
-+GLIBC_2.27 __strtoul_internal F
-+GLIBC_2.27 __strtoul_l F
-+GLIBC_2.27 __strtoull_internal F
-+GLIBC_2.27 __strtoull_l F
-+GLIBC_2.27 __strverscmp F
-+GLIBC_2.27 __strxfrm_l F
-+GLIBC_2.27 __swprintf_chk F
-+GLIBC_2.27 __syscall_error F
-+GLIBC_2.27 __sysconf F
-+GLIBC_2.27 __syslog_chk F
-+GLIBC_2.27 __sysv_signal F
-+GLIBC_2.27 __timezone D 0x4
-+GLIBC_2.27 __toascii_l F
-+GLIBC_2.27 __tolower_l F
-+GLIBC_2.27 __toupper_l F
-+GLIBC_2.27 __towctrans F
-+GLIBC_2.27 __towctrans_l F
-+GLIBC_2.27 __towlower_l F
-+GLIBC_2.27 __towupper_l F
-+GLIBC_2.27 __ttyname_r_chk F
-+GLIBC_2.27 __tzname D 0x8
-+GLIBC_2.27 __uflow F
-+GLIBC_2.27 __underflow F
-+GLIBC_2.27 __uselocale F
-+GLIBC_2.27 __vasprintf_chk F
-+GLIBC_2.27 __vdprintf_chk F
-+GLIBC_2.27 __vfork F
-+GLIBC_2.27 __vfprintf_chk F
-+GLIBC_2.27 __vfscanf F
-+GLIBC_2.27 __vfwprintf_chk F
-+GLIBC_2.27 __vprintf_chk F
-+GLIBC_2.27 __vsnprintf F
-+GLIBC_2.27 __vsnprintf_chk F
-+GLIBC_2.27 __vsprintf_chk F
-+GLIBC_2.27 __vsscanf F
-+GLIBC_2.27 __vswprintf_chk F
-+GLIBC_2.27 __vsyslog_chk F
-+GLIBC_2.27 __vwprintf_chk F
-+GLIBC_2.27 __wait F
-+GLIBC_2.27 __waitpid F
-+GLIBC_2.27 __wcpcpy_chk F
-+GLIBC_2.27 __wcpncpy_chk F
-+GLIBC_2.27 __wcrtomb_chk F
-+GLIBC_2.27 __wcscasecmp_l F
-+GLIBC_2.27 __wcscat_chk F
-+GLIBC_2.27 __wcscoll_l F
-+GLIBC_2.27 __wcscpy_chk F
-+GLIBC_2.27 __wcsftime_l F
-+GLIBC_2.27 __wcsncasecmp_l F
-+GLIBC_2.27 __wcsncat_chk F
-+GLIBC_2.27 __wcsncpy_chk F
-+GLIBC_2.27 __wcsnrtombs_chk F
-+GLIBC_2.27 __wcsrtombs_chk F
-+GLIBC_2.27 __wcstod_internal F
-+GLIBC_2.27 __wcstod_l F
-+GLIBC_2.27 __wcstof_internal F
-+GLIBC_2.27 __wcstof_l F
-+GLIBC_2.27 __wcstol_internal F
-+GLIBC_2.27 __wcstol_l F
-+GLIBC_2.27 __wcstold_internal F
-+GLIBC_2.27 __wcstold_l F
-+GLIBC_2.27 __wcstoll_internal F
-+GLIBC_2.27 __wcstoll_l F
-+GLIBC_2.27 __wcstombs_chk F
-+GLIBC_2.27 __wcstoul_internal F
-+GLIBC_2.27 __wcstoul_l F
-+GLIBC_2.27 __wcstoull_internal F
-+GLIBC_2.27 __wcstoull_l F
-+GLIBC_2.27 __wcsxfrm_l F
-+GLIBC_2.27 __wctomb_chk F
-+GLIBC_2.27 __wctrans_l F
-+GLIBC_2.27 __wctype_l F
-+GLIBC_2.27 __wmemcpy_chk F
-+GLIBC_2.27 __wmemmove_chk F
-+GLIBC_2.27 __wmempcpy_chk F
-+GLIBC_2.27 __wmemset_chk F
-+GLIBC_2.27 __woverflow F
-+GLIBC_2.27 __wprintf_chk F
-+GLIBC_2.27 __write F
-+GLIBC_2.27 __wuflow F
-+GLIBC_2.27 __wunderflow F
-+GLIBC_2.27 __xmknod F
-+GLIBC_2.27 __xmknodat F
-+GLIBC_2.27 __xpg_basename F
-+GLIBC_2.27 __xpg_sigpause F
-+GLIBC_2.27 __xpg_strerror_r F
-+GLIBC_2.27 __xstat F
-+GLIBC_2.27 __xstat64 F
-+GLIBC_2.27 _authenticate F
-+GLIBC_2.27 _dl_mcount_wrapper F
-+GLIBC_2.27 _dl_mcount_wrapper_check F
-+GLIBC_2.27 _environ D 0x4
-+GLIBC_2.27 _exit F
-+GLIBC_2.27 _flush_cache F
-+GLIBC_2.27 _flushlbf F
-+GLIBC_2.27 _libc_intl_domainname D 0x5
-+GLIBC_2.27 _longjmp F
-+GLIBC_2.27 _mcleanup F
-+GLIBC_2.27 _mcount F
-+GLIBC_2.27 _nl_default_dirname D 0x12
-+GLIBC_2.27 _nl_domain_bindings D 0x4
-+GLIBC_2.27 _nl_msg_cat_cntr D 0x4
-+GLIBC_2.27 _null_auth D 0xc
-+GLIBC_2.27 _obstack_allocated_p F
-+GLIBC_2.27 _obstack_begin F
-+GLIBC_2.27 _obstack_begin_1 F
-+GLIBC_2.27 _obstack_free F
-+GLIBC_2.27 _obstack_memory_used F
-+GLIBC_2.27 _obstack_newchunk F
-+GLIBC_2.27 _res D 0x200
-+GLIBC_2.27 _res_hconf D 0x30
-+GLIBC_2.27 _rpc_dtablesize F
-+GLIBC_2.27 _seterr_reply F
-+GLIBC_2.27 _setjmp F
-+GLIBC_2.27 _sys_errlist D 0x21c
-+GLIBC_2.27 _sys_nerr D 0x4
-+GLIBC_2.27 _sys_siglist D 0x104
-+GLIBC_2.27 _tolower F
-+GLIBC_2.27 _toupper F
-+GLIBC_2.27 a64l F
-+GLIBC_2.27 abort F
-+GLIBC_2.27 abs F
-+GLIBC_2.27 accept F
-+GLIBC_2.27 accept4 F
-+GLIBC_2.27 access F
-+GLIBC_2.27 acct F
-+GLIBC_2.27 addmntent F
-+GLIBC_2.27 addseverity F
-+GLIBC_2.27 adjtime F
-+GLIBC_2.27 adjtimex F
-+GLIBC_2.27 alarm F
-+GLIBC_2.27 aligned_alloc F
-+GLIBC_2.27 alphasort F
-+GLIBC_2.27 alphasort64 F
-+GLIBC_2.27 argp_err_exit_status D 0x4
-+GLIBC_2.27 argp_error F
-+GLIBC_2.27 argp_failure F
-+GLIBC_2.27 argp_help F
-+GLIBC_2.27 argp_parse F
-+GLIBC_2.27 argp_program_bug_address D 0x4
-+GLIBC_2.27 argp_program_version D 0x4
-+GLIBC_2.27 argp_program_version_hook D 0x4
-+GLIBC_2.27 argp_state_help F
-+GLIBC_2.27 argp_usage F
-+GLIBC_2.27 argz_add F
-+GLIBC_2.27 argz_add_sep F
-+GLIBC_2.27 argz_append F
-+GLIBC_2.27 argz_count F
-+GLIBC_2.27 argz_create F
-+GLIBC_2.27 argz_create_sep F
-+GLIBC_2.27 argz_delete F
-+GLIBC_2.27 argz_extract F
-+GLIBC_2.27 argz_insert F
-+GLIBC_2.27 argz_next F
-+GLIBC_2.27 argz_replace F
-+GLIBC_2.27 argz_stringify F
-+GLIBC_2.27 asctime F
-+GLIBC_2.27 asctime_r F
-+GLIBC_2.27 asprintf F
-+GLIBC_2.27 atof F
-+GLIBC_2.27 atoi F
-+GLIBC_2.27 atol F
-+GLIBC_2.27 atoll F
-+GLIBC_2.27 authdes_create F
-+GLIBC_2.27 authdes_getucred F
-+GLIBC_2.27 authdes_pk_create F
-+GLIBC_2.27 authnone_create F
-+GLIBC_2.27 authunix_create F
-+GLIBC_2.27 authunix_create_default F
-+GLIBC_2.27 backtrace F
-+GLIBC_2.27 backtrace_symbols F
-+GLIBC_2.27 backtrace_symbols_fd F
-+GLIBC_2.27 basename F
-+GLIBC_2.27 bcmp F
-+GLIBC_2.27 bcopy F
-+GLIBC_2.27 bind F
-+GLIBC_2.27 bind_textdomain_codeset F
-+GLIBC_2.27 bindresvport F
-+GLIBC_2.27 bindtextdomain F
-+GLIBC_2.27 brk F
-+GLIBC_2.27 bsd_signal F
-+GLIBC_2.27 bsearch F
-+GLIBC_2.27 btowc F
-+GLIBC_2.27 bzero F
-+GLIBC_2.27 c16rtomb F
-+GLIBC_2.27 c32rtomb F
-+GLIBC_2.27 cacheflush F
-+GLIBC_2.27 calloc F
-+GLIBC_2.27 callrpc F
-+GLIBC_2.27 canonicalize_file_name F
-+GLIBC_2.27 capget F
-+GLIBC_2.27 capset F
-+GLIBC_2.27 catclose F
-+GLIBC_2.27 catgets F
-+GLIBC_2.27 catopen F
-+GLIBC_2.27 cbc_crypt F
-+GLIBC_2.27 cfgetispeed F
-+GLIBC_2.27 cfgetospeed F
-+GLIBC_2.27 cfmakeraw F
-+GLIBC_2.27 cfsetispeed F
-+GLIBC_2.27 cfsetospeed F
-+GLIBC_2.27 cfsetspeed F
-+GLIBC_2.27 chdir F
-+GLIBC_2.27 chflags F
-+GLIBC_2.27 chmod F
-+GLIBC_2.27 chown F
-+GLIBC_2.27 chroot F
-+GLIBC_2.27 clearenv F
-+GLIBC_2.27 clearerr F
-+GLIBC_2.27 clearerr_unlocked F
-+GLIBC_2.27 clnt_broadcast F
-+GLIBC_2.27 clnt_create F
-+GLIBC_2.27 clnt_pcreateerror F
-+GLIBC_2.27 clnt_perrno F
-+GLIBC_2.27 clnt_perror F
-+GLIBC_2.27 clnt_spcreateerror F
-+GLIBC_2.27 clnt_sperrno F
-+GLIBC_2.27 clnt_sperror F
-+GLIBC_2.27 clntraw_create F
-+GLIBC_2.27 clnttcp_create F
-+GLIBC_2.27 clntudp_bufcreate F
-+GLIBC_2.27 clntudp_create F
-+GLIBC_2.27 clntunix_create F
-+GLIBC_2.27 clock F
-+GLIBC_2.27 clock_adjtime F
-+GLIBC_2.27 clock_getcpuclockid F
-+GLIBC_2.27 clock_getres F
-+GLIBC_2.27 clock_gettime F
-+GLIBC_2.27 clock_nanosleep F
-+GLIBC_2.27 clock_settime F
-+GLIBC_2.27 clone F
-+GLIBC_2.27 close F
-+GLIBC_2.27 closedir F
-+GLIBC_2.27 closelog F
-+GLIBC_2.27 confstr F
-+GLIBC_2.27 connect F
-+GLIBC_2.27 copy_file_range F
-+GLIBC_2.27 copysign F
-+GLIBC_2.27 copysignf F
-+GLIBC_2.27 copysignl F
-+GLIBC_2.27 creat F
-+GLIBC_2.27 creat64 F
-+GLIBC_2.27 ctermid F
-+GLIBC_2.27 ctime F
-+GLIBC_2.27 ctime_r F
-+GLIBC_2.27 cuserid F
-+GLIBC_2.27 daemon F
-+GLIBC_2.27 daylight D 0x4
-+GLIBC_2.27 dcgettext F
-+GLIBC_2.27 dcngettext F
-+GLIBC_2.27 delete_module F
-+GLIBC_2.27 des_setparity F
-+GLIBC_2.27 dgettext F
-+GLIBC_2.27 difftime F
-+GLIBC_2.27 dirfd F
-+GLIBC_2.27 dirname F
-+GLIBC_2.27 div F
-+GLIBC_2.27 dl_iterate_phdr F
-+GLIBC_2.27 dngettext F
-+GLIBC_2.27 dprintf F
-+GLIBC_2.27 drand48 F
-+GLIBC_2.27 drand48_r F
-+GLIBC_2.27 dup F
-+GLIBC_2.27 dup2 F
-+GLIBC_2.27 dup3 F
-+GLIBC_2.27 duplocale F
-+GLIBC_2.27 dysize F
-+GLIBC_2.27 eaccess F
-+GLIBC_2.27 ecb_crypt F
-+GLIBC_2.27 ecvt F
-+GLIBC_2.27 ecvt_r F
-+GLIBC_2.27 endaliasent F
-+GLIBC_2.27 endfsent F
-+GLIBC_2.27 endgrent F
-+GLIBC_2.27 endhostent F
-+GLIBC_2.27 endmntent F
-+GLIBC_2.27 endnetent F
-+GLIBC_2.27 endnetgrent F
-+GLIBC_2.27 endprotoent F
-+GLIBC_2.27 endpwent F
-+GLIBC_2.27 endrpcent F
-+GLIBC_2.27 endservent F
-+GLIBC_2.27 endsgent F
-+GLIBC_2.27 endspent F
-+GLIBC_2.27 endttyent F
-+GLIBC_2.27 endusershell F
-+GLIBC_2.27 endutent F
-+GLIBC_2.27 endutxent F
-+GLIBC_2.27 environ D 0x4
-+GLIBC_2.27 envz_add F
-+GLIBC_2.27 envz_entry F
-+GLIBC_2.27 envz_get F
-+GLIBC_2.27 envz_merge F
-+GLIBC_2.27 envz_remove F
-+GLIBC_2.27 envz_strip F
-+GLIBC_2.27 epoll_create F
-+GLIBC_2.27 epoll_create1 F
-+GLIBC_2.27 epoll_ctl F
-+GLIBC_2.27 epoll_pwait F
-+GLIBC_2.27 epoll_wait F
-+GLIBC_2.27 erand48 F
-+GLIBC_2.27 erand48_r F
-+GLIBC_2.27 err F
-+GLIBC_2.27 error F
-+GLIBC_2.27 error_at_line F
-+GLIBC_2.27 error_message_count D 0x4
-+GLIBC_2.27 error_one_per_line D 0x4
-+GLIBC_2.27 error_print_progname D 0x4
-+GLIBC_2.27 errx F
-+GLIBC_2.27 ether_aton F
-+GLIBC_2.27 ether_aton_r F
-+GLIBC_2.27 ether_hostton F
-+GLIBC_2.27 ether_line F
-+GLIBC_2.27 ether_ntoa F
-+GLIBC_2.27 ether_ntoa_r F
-+GLIBC_2.27 ether_ntohost F
-+GLIBC_2.27 euidaccess F
-+GLIBC_2.27 eventfd F
-+GLIBC_2.27 eventfd_read F
-+GLIBC_2.27 eventfd_write F
-+GLIBC_2.27 execl F
-+GLIBC_2.27 execle F
-+GLIBC_2.27 execlp F
-+GLIBC_2.27 execv F
-+GLIBC_2.27 execve F
-+GLIBC_2.27 execvp F
-+GLIBC_2.27 execvpe F
-+GLIBC_2.27 exit F
-+GLIBC_2.27 explicit_bzero F
-+GLIBC_2.27 faccessat F
-+GLIBC_2.27 fallocate F
-+GLIBC_2.27 fallocate64 F
-+GLIBC_2.27 fanotify_init F
-+GLIBC_2.27 fanotify_mark F
-+GLIBC_2.27 fattach F
-+GLIBC_2.27 fchdir F
-+GLIBC_2.27 fchflags F
-+GLIBC_2.27 fchmod F
-+GLIBC_2.27 fchmodat F
-+GLIBC_2.27 fchown F
-+GLIBC_2.27 fchownat F
-+GLIBC_2.27 fclose F
-+GLIBC_2.27 fcloseall F
-+GLIBC_2.27 fcntl F
-+GLIBC_2.27 fcvt F
-+GLIBC_2.27 fcvt_r F
-+GLIBC_2.27 fdatasync F
-+GLIBC_2.27 fdetach F
-+GLIBC_2.27 fdopen F
-+GLIBC_2.27 fdopendir F
-+GLIBC_2.27 feof F
-+GLIBC_2.27 feof_unlocked F
-+GLIBC_2.27 ferror F
-+GLIBC_2.27 ferror_unlocked F
-+GLIBC_2.27 fexecve F
-+GLIBC_2.27 fflush F
-+GLIBC_2.27 fflush_unlocked F
-+GLIBC_2.27 ffs F
-+GLIBC_2.27 ffsl F
-+GLIBC_2.27 ffsll F
-+GLIBC_2.27 fgetc F
-+GLIBC_2.27 fgetc_unlocked F
-+GLIBC_2.27 fgetgrent F
-+GLIBC_2.27 fgetgrent_r F
-+GLIBC_2.27 fgetpos F
-+GLIBC_2.27 fgetpos64 F
-+GLIBC_2.27 fgetpwent F
-+GLIBC_2.27 fgetpwent_r F
-+GLIBC_2.27 fgets F
-+GLIBC_2.27 fgets_unlocked F
-+GLIBC_2.27 fgetsgent F
-+GLIBC_2.27 fgetsgent_r F
-+GLIBC_2.27 fgetspent F
-+GLIBC_2.27 fgetspent_r F
-+GLIBC_2.27 fgetwc F
-+GLIBC_2.27 fgetwc_unlocked F
-+GLIBC_2.27 fgetws F
-+GLIBC_2.27 fgetws_unlocked F
-+GLIBC_2.27 fgetxattr F
-+GLIBC_2.27 fileno F
-+GLIBC_2.27 fileno_unlocked F
-+GLIBC_2.27 finite F
-+GLIBC_2.27 finitef F
-+GLIBC_2.27 finitel F
-+GLIBC_2.27 flistxattr F
-+GLIBC_2.27 flock F
-+GLIBC_2.27 flockfile F
-+GLIBC_2.27 fmemopen F
-+GLIBC_2.27 fmtmsg F
-+GLIBC_2.27 fnmatch F
-+GLIBC_2.27 fopen F
-+GLIBC_2.27 fopen64 F
-+GLIBC_2.27 fopencookie F
-+GLIBC_2.27 fork F
-+GLIBC_2.27 fpathconf F
-+GLIBC_2.27 fprintf F
-+GLIBC_2.27 fputc F
-+GLIBC_2.27 fputc_unlocked F
-+GLIBC_2.27 fputs F
-+GLIBC_2.27 fputs_unlocked F
-+GLIBC_2.27 fputwc F
-+GLIBC_2.27 fputwc_unlocked F
-+GLIBC_2.27 fputws F
-+GLIBC_2.27 fputws_unlocked F
-+GLIBC_2.27 fread F
-+GLIBC_2.27 fread_unlocked F
-+GLIBC_2.27 free F
-+GLIBC_2.27 freeaddrinfo F
-+GLIBC_2.27 freeifaddrs F
-+GLIBC_2.27 freelocale F
-+GLIBC_2.27 fremovexattr F
-+GLIBC_2.27 freopen F
-+GLIBC_2.27 freopen64 F
-+GLIBC_2.27 frexp F
-+GLIBC_2.27 frexpf F
-+GLIBC_2.27 frexpl F
-+GLIBC_2.27 fscanf F
-+GLIBC_2.27 fseek F
-+GLIBC_2.27 fseeko F
-+GLIBC_2.27 fseeko64 F
-+GLIBC_2.27 fsetpos F
-+GLIBC_2.27 fsetpos64 F
-+GLIBC_2.27 fsetxattr F
-+GLIBC_2.27 fstatfs F
-+GLIBC_2.27 fstatfs64 F
-+GLIBC_2.27 fstatvfs F
-+GLIBC_2.27 fstatvfs64 F
-+GLIBC_2.27 fsync F
-+GLIBC_2.27 ftell F
-+GLIBC_2.27 ftello F
-+GLIBC_2.27 ftello64 F
-+GLIBC_2.27 ftime F
-+GLIBC_2.27 ftok F
-+GLIBC_2.27 ftruncate F
-+GLIBC_2.27 ftruncate64 F
-+GLIBC_2.27 ftrylockfile F
-+GLIBC_2.27 fts64_children F
-+GLIBC_2.27 fts64_close F
-+GLIBC_2.27 fts64_open F
-+GLIBC_2.27 fts64_read F
-+GLIBC_2.27 fts64_set F
-+GLIBC_2.27 fts_children F
-+GLIBC_2.27 fts_close F
-+GLIBC_2.27 fts_open F
-+GLIBC_2.27 fts_read F
-+GLIBC_2.27 fts_set F
-+GLIBC_2.27 ftw F
-+GLIBC_2.27 ftw64 F
-+GLIBC_2.27 funlockfile F
-+GLIBC_2.27 futimens F
-+GLIBC_2.27 futimes F
-+GLIBC_2.27 futimesat F
-+GLIBC_2.27 fwide F
-+GLIBC_2.27 fwprintf F
-+GLIBC_2.27 fwrite F
-+GLIBC_2.27 fwrite_unlocked F
-+GLIBC_2.27 fwscanf F
-+GLIBC_2.27 gai_strerror F
-+GLIBC_2.27 gcvt F
-+GLIBC_2.27 get_avphys_pages F
-+GLIBC_2.27 get_current_dir_name F
-+GLIBC_2.27 get_myaddress F
-+GLIBC_2.27 get_nprocs F
-+GLIBC_2.27 get_nprocs_conf F
-+GLIBC_2.27 get_phys_pages F
-+GLIBC_2.27 getaddrinfo F
-+GLIBC_2.27 getaliasbyname F
-+GLIBC_2.27 getaliasbyname_r F
-+GLIBC_2.27 getaliasent F
-+GLIBC_2.27 getaliasent_r F
-+GLIBC_2.27 getauxval F
-+GLIBC_2.27 getc F
-+GLIBC_2.27 getc_unlocked F
-+GLIBC_2.27 getchar F
-+GLIBC_2.27 getchar_unlocked F
-+GLIBC_2.27 getcontext F
-+GLIBC_2.27 getcwd F
-+GLIBC_2.27 getdate F
-+GLIBC_2.27 getdate_err D 0x4
-+GLIBC_2.27 getdate_r F
-+GLIBC_2.27 getdelim F
-+GLIBC_2.27 getdirentries F
-+GLIBC_2.27 getdirentries64 F
-+GLIBC_2.27 getdomainname F
-+GLIBC_2.27 getdtablesize F
-+GLIBC_2.27 getegid F
-+GLIBC_2.27 getentropy F
-+GLIBC_2.27 getenv F
-+GLIBC_2.27 geteuid F
-+GLIBC_2.27 getfsent F
-+GLIBC_2.27 getfsfile F
-+GLIBC_2.27 getfsspec F
-+GLIBC_2.27 getgid F
-+GLIBC_2.27 getgrent F
-+GLIBC_2.27 getgrent_r F
-+GLIBC_2.27 getgrgid F
-+GLIBC_2.27 getgrgid_r F
-+GLIBC_2.27 getgrnam F
-+GLIBC_2.27 getgrnam_r F
-+GLIBC_2.27 getgrouplist F
-+GLIBC_2.27 getgroups F
-+GLIBC_2.27 gethostbyaddr F
-+GLIBC_2.27 gethostbyaddr_r F
-+GLIBC_2.27 gethostbyname F
-+GLIBC_2.27 gethostbyname2 F
-+GLIBC_2.27 gethostbyname2_r F
-+GLIBC_2.27 gethostbyname_r F
-+GLIBC_2.27 gethostent F
-+GLIBC_2.27 gethostent_r F
-+GLIBC_2.27 gethostid F
-+GLIBC_2.27 gethostname F
-+GLIBC_2.27 getifaddrs F
-+GLIBC_2.27 getipv4sourcefilter F
-+GLIBC_2.27 getitimer F
-+GLIBC_2.27 getline F
-+GLIBC_2.27 getloadavg F
-+GLIBC_2.27 getlogin F
-+GLIBC_2.27 getlogin_r F
-+GLIBC_2.27 getmntent F
-+GLIBC_2.27 getmntent_r F
-+GLIBC_2.27 getmsg F
-+GLIBC_2.27 getnameinfo F
-+GLIBC_2.27 getnetbyaddr F
-+GLIBC_2.27 getnetbyaddr_r F
-+GLIBC_2.27 getnetbyname F
-+GLIBC_2.27 getnetbyname_r F
-+GLIBC_2.27 getnetent F
-+GLIBC_2.27 getnetent_r F
-+GLIBC_2.27 getnetgrent F
-+GLIBC_2.27 getnetgrent_r F
-+GLIBC_2.27 getnetname F
-+GLIBC_2.27 getopt F
-+GLIBC_2.27 getopt_long F
-+GLIBC_2.27 getopt_long_only F
-+GLIBC_2.27 getpagesize F
-+GLIBC_2.27 getpass F
-+GLIBC_2.27 getpeername F
-+GLIBC_2.27 getpgid F
-+GLIBC_2.27 getpgrp F
-+GLIBC_2.27 getpid F
-+GLIBC_2.27 getpmsg F
-+GLIBC_2.27 getppid F
-+GLIBC_2.27 getpriority F
-+GLIBC_2.27 getprotobyname F
-+GLIBC_2.27 getprotobyname_r F
-+GLIBC_2.27 getprotobynumber F
-+GLIBC_2.27 getprotobynumber_r F
-+GLIBC_2.27 getprotoent F
-+GLIBC_2.27 getprotoent_r F
-+GLIBC_2.27 getpt F
-+GLIBC_2.27 getpublickey F
-+GLIBC_2.27 getpw F
-+GLIBC_2.27 getpwent F
-+GLIBC_2.27 getpwent_r F
-+GLIBC_2.27 getpwnam F
-+GLIBC_2.27 getpwnam_r F
-+GLIBC_2.27 getpwuid F
-+GLIBC_2.27 getpwuid_r F
-+GLIBC_2.27 getrandom F
-+GLIBC_2.27 getresgid F
-+GLIBC_2.27 getresuid F
-+GLIBC_2.27 getrlimit F
-+GLIBC_2.27 getrlimit64 F
-+GLIBC_2.27 getrpcbyname F
-+GLIBC_2.27 getrpcbyname_r F
-+GLIBC_2.27 getrpcbynumber F
-+GLIBC_2.27 getrpcbynumber_r F
-+GLIBC_2.27 getrpcent F
-+GLIBC_2.27 getrpcent_r F
-+GLIBC_2.27 getrpcport F
-+GLIBC_2.27 getrusage F
-+GLIBC_2.27 gets F
-+GLIBC_2.27 getsecretkey F
-+GLIBC_2.27 getservbyname F
-+GLIBC_2.27 getservbyname_r F
-+GLIBC_2.27 getservbyport F
-+GLIBC_2.27 getservbyport_r F
-+GLIBC_2.27 getservent F
-+GLIBC_2.27 getservent_r F
-+GLIBC_2.27 getsgent F
-+GLIBC_2.27 getsgent_r F
-+GLIBC_2.27 getsgnam F
-+GLIBC_2.27 getsgnam_r F
-+GLIBC_2.27 getsid F
-+GLIBC_2.27 getsockname F
-+GLIBC_2.27 getsockopt F
-+GLIBC_2.27 getsourcefilter F
-+GLIBC_2.27 getspent F
-+GLIBC_2.27 getspent_r F
-+GLIBC_2.27 getspnam F
-+GLIBC_2.27 getspnam_r F
-+GLIBC_2.27 getsubopt F
-+GLIBC_2.27 gettext F
-+GLIBC_2.27 gettimeofday F
-+GLIBC_2.27 getttyent F
-+GLIBC_2.27 getttynam F
-+GLIBC_2.27 getuid F
-+GLIBC_2.27 getusershell F
-+GLIBC_2.27 getutent F
-+GLIBC_2.27 getutent_r F
-+GLIBC_2.27 getutid F
-+GLIBC_2.27 getutid_r F
-+GLIBC_2.27 getutline F
-+GLIBC_2.27 getutline_r F
-+GLIBC_2.27 getutmp F
-+GLIBC_2.27 getutmpx F
-+GLIBC_2.27 getutxent F
-+GLIBC_2.27 getutxid F
-+GLIBC_2.27 getutxline F
-+GLIBC_2.27 getw F
-+GLIBC_2.27 getwc F
-+GLIBC_2.27 getwc_unlocked F
-+GLIBC_2.27 getwchar F
-+GLIBC_2.27 getwchar_unlocked F
-+GLIBC_2.27 getwd F
-+GLIBC_2.27 getxattr F
-+GLIBC_2.27 glob F
-+GLIBC_2.27 glob64 F
-+GLIBC_2.27 glob_pattern_p F
-+GLIBC_2.27 globfree F
-+GLIBC_2.27 globfree64 F
-+GLIBC_2.27 gmtime F
-+GLIBC_2.27 gmtime_r F
-+GLIBC_2.27 gnu_dev_major F
-+GLIBC_2.27 gnu_dev_makedev F
-+GLIBC_2.27 gnu_dev_minor F
-+GLIBC_2.27 gnu_get_libc_release F
-+GLIBC_2.27 gnu_get_libc_version F
-+GLIBC_2.27 grantpt F
-+GLIBC_2.27 group_member F
-+GLIBC_2.27 gsignal F
-+GLIBC_2.27 gtty F
-+GLIBC_2.27 h_errlist D 0x14
-+GLIBC_2.27 h_nerr D 0x4
-+GLIBC_2.27 hasmntopt F
-+GLIBC_2.27 hcreate F
-+GLIBC_2.27 hcreate_r F
-+GLIBC_2.27 hdestroy F
-+GLIBC_2.27 hdestroy_r F
-+GLIBC_2.27 herror F
-+GLIBC_2.27 host2netname F
-+GLIBC_2.27 hsearch F
-+GLIBC_2.27 hsearch_r F
-+GLIBC_2.27 hstrerror F
-+GLIBC_2.27 htonl F
-+GLIBC_2.27 htons F
-+GLIBC_2.27 iconv F
-+GLIBC_2.27 iconv_close F
-+GLIBC_2.27 iconv_open F
-+GLIBC_2.27 if_freenameindex F
-+GLIBC_2.27 if_indextoname F
-+GLIBC_2.27 if_nameindex F
-+GLIBC_2.27 if_nametoindex F
-+GLIBC_2.27 imaxabs F
-+GLIBC_2.27 imaxdiv F
-+GLIBC_2.27 in6addr_any D 0x10
-+GLIBC_2.27 in6addr_loopback D 0x10
-+GLIBC_2.27 index F
-+GLIBC_2.27 inet6_opt_append F
-+GLIBC_2.27 inet6_opt_find F
-+GLIBC_2.27 inet6_opt_finish F
-+GLIBC_2.27 inet6_opt_get_val F
-+GLIBC_2.27 inet6_opt_init F
-+GLIBC_2.27 inet6_opt_next F
-+GLIBC_2.27 inet6_opt_set_val F
-+GLIBC_2.27 inet6_option_alloc F
-+GLIBC_2.27 inet6_option_append F
-+GLIBC_2.27 inet6_option_find F
-+GLIBC_2.27 inet6_option_init F
-+GLIBC_2.27 inet6_option_next F
-+GLIBC_2.27 inet6_option_space F
-+GLIBC_2.27 inet6_rth_add F
-+GLIBC_2.27 inet6_rth_getaddr F
-+GLIBC_2.27 inet6_rth_init F
-+GLIBC_2.27 inet6_rth_reverse F
-+GLIBC_2.27 inet6_rth_segments F
-+GLIBC_2.27 inet6_rth_space F
-+GLIBC_2.27 inet_addr F
-+GLIBC_2.27 inet_aton F
-+GLIBC_2.27 inet_lnaof F
-+GLIBC_2.27 inet_makeaddr F
-+GLIBC_2.27 inet_netof F
-+GLIBC_2.27 inet_network F
-+GLIBC_2.27 inet_nsap_addr F
-+GLIBC_2.27 inet_nsap_ntoa F
-+GLIBC_2.27 inet_ntoa F
-+GLIBC_2.27 inet_ntop F
-+GLIBC_2.27 inet_pton F
-+GLIBC_2.27 init_module F
-+GLIBC_2.27 initgroups F
-+GLIBC_2.27 initstate F
-+GLIBC_2.27 initstate_r F
-+GLIBC_2.27 innetgr F
-+GLIBC_2.27 inotify_add_watch F
-+GLIBC_2.27 inotify_init F
-+GLIBC_2.27 inotify_init1 F
-+GLIBC_2.27 inotify_rm_watch F
-+GLIBC_2.27 insque F
-+GLIBC_2.27 ioctl F
-+GLIBC_2.27 iruserok F
-+GLIBC_2.27 iruserok_af F
-+GLIBC_2.27 isalnum F
-+GLIBC_2.27 isalnum_l F
-+GLIBC_2.27 isalpha F
-+GLIBC_2.27 isalpha_l F
-+GLIBC_2.27 isascii F
-+GLIBC_2.27 isastream F
-+GLIBC_2.27 isatty F
-+GLIBC_2.27 isblank F
-+GLIBC_2.27 isblank_l F
-+GLIBC_2.27 iscntrl F
-+GLIBC_2.27 iscntrl_l F
-+GLIBC_2.27 isctype F
-+GLIBC_2.27 isdigit F
-+GLIBC_2.27 isdigit_l F
-+GLIBC_2.27 isfdtype F
-+GLIBC_2.27 isgraph F
-+GLIBC_2.27 isgraph_l F
-+GLIBC_2.27 isinf F
-+GLIBC_2.27 isinff F
-+GLIBC_2.27 isinfl F
-+GLIBC_2.27 islower F
-+GLIBC_2.27 islower_l F
-+GLIBC_2.27 isnan F
-+GLIBC_2.27 isnanf F
-+GLIBC_2.27 isnanl F
-+GLIBC_2.27 isprint F
-+GLIBC_2.27 isprint_l F
-+GLIBC_2.27 ispunct F
-+GLIBC_2.27 ispunct_l F
-+GLIBC_2.27 isspace F
-+GLIBC_2.27 isspace_l F
-+GLIBC_2.27 isupper F
-+GLIBC_2.27 isupper_l F
-+GLIBC_2.27 iswalnum F
-+GLIBC_2.27 iswalnum_l F
-+GLIBC_2.27 iswalpha F
-+GLIBC_2.27 iswalpha_l F
-+GLIBC_2.27 iswblank F
-+GLIBC_2.27 iswblank_l F
-+GLIBC_2.27 iswcntrl F
-+GLIBC_2.27 iswcntrl_l F
-+GLIBC_2.27 iswctype F
-+GLIBC_2.27 iswctype_l F
-+GLIBC_2.27 iswdigit F
-+GLIBC_2.27 iswdigit_l F
-+GLIBC_2.27 iswgraph F
-+GLIBC_2.27 iswgraph_l F
-+GLIBC_2.27 iswlower F
-+GLIBC_2.27 iswlower_l F
-+GLIBC_2.27 iswprint F
-+GLIBC_2.27 iswprint_l F
-+GLIBC_2.27 iswpunct F
-+GLIBC_2.27 iswpunct_l F
-+GLIBC_2.27 iswspace F
-+GLIBC_2.27 iswspace_l F
-+GLIBC_2.27 iswupper F
-+GLIBC_2.27 iswupper_l F
-+GLIBC_2.27 iswxdigit F
-+GLIBC_2.27 iswxdigit_l F
-+GLIBC_2.27 isxdigit F
-+GLIBC_2.27 isxdigit_l F
-+GLIBC_2.27 jrand48 F
-+GLIBC_2.27 jrand48_r F
-+GLIBC_2.27 key_decryptsession F
-+GLIBC_2.27 key_decryptsession_pk F
-+GLIBC_2.27 key_encryptsession F
-+GLIBC_2.27 key_encryptsession_pk F
-+GLIBC_2.27 key_gendes F
-+GLIBC_2.27 key_get_conv F
-+GLIBC_2.27 key_secretkey_is_set F
-+GLIBC_2.27 key_setnet F
-+GLIBC_2.27 key_setsecret F
-+GLIBC_2.27 kill F
-+GLIBC_2.27 killpg F
-+GLIBC_2.27 klogctl F
-+GLIBC_2.27 l64a F
-+GLIBC_2.27 labs F
-+GLIBC_2.27 lchmod F
-+GLIBC_2.27 lchown F
-+GLIBC_2.27 lckpwdf F
-+GLIBC_2.27 lcong48 F
-+GLIBC_2.27 lcong48_r F
-+GLIBC_2.27 ldexp F
-+GLIBC_2.27 ldexpf F
-+GLIBC_2.27 ldexpl F
-+GLIBC_2.27 ldiv F
-+GLIBC_2.27 lfind F
-+GLIBC_2.27 lgetxattr F
-+GLIBC_2.27 link F
-+GLIBC_2.27 linkat F
-+GLIBC_2.27 listen F
-+GLIBC_2.27 listxattr F
-+GLIBC_2.27 llabs F
-+GLIBC_2.27 lldiv F
-+GLIBC_2.27 llistxattr F
-+GLIBC_2.27 llseek F
-+GLIBC_2.27 localeconv F
-+GLIBC_2.27 localtime F
-+GLIBC_2.27 localtime_r F
-+GLIBC_2.27 lockf F
-+GLIBC_2.27 lockf64 F
-+GLIBC_2.27 longjmp F
-+GLIBC_2.27 lrand48 F
-+GLIBC_2.27 lrand48_r F
-+GLIBC_2.27 lremovexattr F
-+GLIBC_2.27 lsearch F
-+GLIBC_2.27 lseek F
-+GLIBC_2.27 lseek64 F
-+GLIBC_2.27 lsetxattr F
-+GLIBC_2.27 lutimes F
-+GLIBC_2.27 madvise F
-+GLIBC_2.27 makecontext F
-+GLIBC_2.27 mallinfo F
-+GLIBC_2.27 malloc F
-+GLIBC_2.27 malloc_info F
-+GLIBC_2.27 malloc_stats F
-+GLIBC_2.27 malloc_trim F
-+GLIBC_2.27 malloc_usable_size F
-+GLIBC_2.27 mallopt F
-+GLIBC_2.27 mallwatch D 0x4
-+GLIBC_2.27 mblen F
-+GLIBC_2.27 mbrlen F
-+GLIBC_2.27 mbrtoc16 F
-+GLIBC_2.27 mbrtoc32 F
-+GLIBC_2.27 mbrtowc F
-+GLIBC_2.27 mbsinit F
-+GLIBC_2.27 mbsnrtowcs F
-+GLIBC_2.27 mbsrtowcs F
-+GLIBC_2.27 mbstowcs F
-+GLIBC_2.27 mbtowc F
-+GLIBC_2.27 mcheck F
-+GLIBC_2.27 mcheck_check_all F
-+GLIBC_2.27 mcheck_pedantic F
-+GLIBC_2.27 memalign F
-+GLIBC_2.27 memccpy F
-+GLIBC_2.27 memchr F
-+GLIBC_2.27 memcmp F
-+GLIBC_2.27 memcpy F
-+GLIBC_2.27 memfd_create F
-+GLIBC_2.27 memfrob F
-+GLIBC_2.27 memmem F
-+GLIBC_2.27 memmove F
-+GLIBC_2.27 mempcpy F
-+GLIBC_2.27 memrchr F
-+GLIBC_2.27 memset F
-+GLIBC_2.27 mincore F
-+GLIBC_2.27 mkdir F
-+GLIBC_2.27 mkdirat F
-+GLIBC_2.27 mkdtemp F
-+GLIBC_2.27 mkfifo F
-+GLIBC_2.27 mkfifoat F
-+GLIBC_2.27 mkostemp F
-+GLIBC_2.27 mkostemp64 F
-+GLIBC_2.27 mkostemps F
-+GLIBC_2.27 mkostemps64 F
-+GLIBC_2.27 mkstemp F
-+GLIBC_2.27 mkstemp64 F
-+GLIBC_2.27 mkstemps F
-+GLIBC_2.27 mkstemps64 F
-+GLIBC_2.27 mktemp F
-+GLIBC_2.27 mktime F
-+GLIBC_2.27 mlock F
-+GLIBC_2.27 mlock2 F
-+GLIBC_2.27 mlockall F
-+GLIBC_2.27 mmap F
-+GLIBC_2.27 mmap64 F
-+GLIBC_2.27 modf F
-+GLIBC_2.27 modff F
-+GLIBC_2.27 modfl F
-+GLIBC_2.27 moncontrol F
-+GLIBC_2.27 monstartup F
-+GLIBC_2.27 mount F
-+GLIBC_2.27 mprobe F
-+GLIBC_2.27 mprotect F
-+GLIBC_2.27 mrand48 F
-+GLIBC_2.27 mrand48_r F
-+GLIBC_2.27 mremap F
-+GLIBC_2.27 msgctl F
-+GLIBC_2.27 msgget F
-+GLIBC_2.27 msgrcv F
-+GLIBC_2.27 msgsnd F
-+GLIBC_2.27 msync F
-+GLIBC_2.27 mtrace F
-+GLIBC_2.27 munlock F
-+GLIBC_2.27 munlockall F
-+GLIBC_2.27 munmap F
-+GLIBC_2.27 muntrace F
-+GLIBC_2.27 name_to_handle_at F
-+GLIBC_2.27 nanosleep F
-+GLIBC_2.27 netname2host F
-+GLIBC_2.27 netname2user F
-+GLIBC_2.27 newlocale F
-+GLIBC_2.27 nfsservctl F
-+GLIBC_2.27 nftw F
-+GLIBC_2.27 nftw64 F
-+GLIBC_2.27 ngettext F
-+GLIBC_2.27 nice F
-+GLIBC_2.27 nl_langinfo F
-+GLIBC_2.27 nl_langinfo_l F
-+GLIBC_2.27 nrand48 F
-+GLIBC_2.27 nrand48_r F
-+GLIBC_2.27 ntohl F
-+GLIBC_2.27 ntohs F
-+GLIBC_2.27 ntp_adjtime F
-+GLIBC_2.27 ntp_gettime F
-+GLIBC_2.27 ntp_gettimex F
-+GLIBC_2.27 obstack_alloc_failed_handler D 0x4
-+GLIBC_2.27 obstack_exit_failure D 0x4
-+GLIBC_2.27 obstack_free F
-+GLIBC_2.27 obstack_printf F
-+GLIBC_2.27 obstack_vprintf F
-+GLIBC_2.27 on_exit F
-+GLIBC_2.27 open F
-+GLIBC_2.27 open64 F
-+GLIBC_2.27 open_by_handle_at F
-+GLIBC_2.27 open_memstream F
-+GLIBC_2.27 open_wmemstream F
-+GLIBC_2.27 openat F
-+GLIBC_2.27 openat64 F
-+GLIBC_2.27 opendir F
-+GLIBC_2.27 openlog F
-+GLIBC_2.27 optarg D 0x4
-+GLIBC_2.27 opterr D 0x4
-+GLIBC_2.27 optind D 0x4
-+GLIBC_2.27 optopt D 0x4
-+GLIBC_2.27 parse_printf_format F
-+GLIBC_2.27 passwd2des F
-+GLIBC_2.27 pathconf F
-+GLIBC_2.27 pause F
-+GLIBC_2.27 pclose F
-+GLIBC_2.27 perror F
-+GLIBC_2.27 personality F
-+GLIBC_2.27 pipe F
-+GLIBC_2.27 pipe2 F
-+GLIBC_2.27 pivot_root 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 pmap_getmaps F
-+GLIBC_2.27 pmap_getport F
-+GLIBC_2.27 pmap_rmtcall F
-+GLIBC_2.27 pmap_set F
-+GLIBC_2.27 pmap_unset F
-+GLIBC_2.27 poll F
-+GLIBC_2.27 popen F
-+GLIBC_2.27 posix_fadvise F
-+GLIBC_2.27 posix_fadvise64 F
-+GLIBC_2.27 posix_fallocate F
-+GLIBC_2.27 posix_fallocate64 F
-+GLIBC_2.27 posix_madvise F
-+GLIBC_2.27 posix_memalign F
-+GLIBC_2.27 posix_openpt F
-+GLIBC_2.27 posix_spawn F
-+GLIBC_2.27 posix_spawn_file_actions_addclose F
-+GLIBC_2.27 posix_spawn_file_actions_adddup2 F
-+GLIBC_2.27 posix_spawn_file_actions_addopen F
-+GLIBC_2.27 posix_spawn_file_actions_destroy F
-+GLIBC_2.27 posix_spawn_file_actions_init F
-+GLIBC_2.27 posix_spawnattr_destroy F
-+GLIBC_2.27 posix_spawnattr_getflags F
-+GLIBC_2.27 posix_spawnattr_getpgroup F
-+GLIBC_2.27 posix_spawnattr_getschedparam F
-+GLIBC_2.27 posix_spawnattr_getschedpolicy F
-+GLIBC_2.27 posix_spawnattr_getsigdefault F
-+GLIBC_2.27 posix_spawnattr_getsigmask F
-+GLIBC_2.27 posix_spawnattr_init F
-+GLIBC_2.27 posix_spawnattr_setflags F
-+GLIBC_2.27 posix_spawnattr_setpgroup F
-+GLIBC_2.27 posix_spawnattr_setschedparam F
-+GLIBC_2.27 posix_spawnattr_setschedpolicy F
-+GLIBC_2.27 posix_spawnattr_setsigdefault F
-+GLIBC_2.27 posix_spawnattr_setsigmask F
-+GLIBC_2.27 posix_spawnp F
-+GLIBC_2.27 ppoll F
-+GLIBC_2.27 prctl F
-+GLIBC_2.27 pread F
-+GLIBC_2.27 pread64 F
-+GLIBC_2.27 preadv F
-+GLIBC_2.27 preadv2 F
-+GLIBC_2.27 preadv64 F
-+GLIBC_2.27 preadv64v2 F
-+GLIBC_2.27 printf F
-+GLIBC_2.27 printf_size F
-+GLIBC_2.27 printf_size_info F
-+GLIBC_2.27 prlimit F
-+GLIBC_2.27 prlimit64 F
-+GLIBC_2.27 process_vm_readv F
-+GLIBC_2.27 process_vm_writev F
-+GLIBC_2.27 profil F
-+GLIBC_2.27 program_invocation_name D 0x4
-+GLIBC_2.27 program_invocation_short_name D 0x4
-+GLIBC_2.27 pselect F
-+GLIBC_2.27 psiginfo F
-+GLIBC_2.27 psignal F
-+GLIBC_2.27 pthread_attr_destroy F
-+GLIBC_2.27 pthread_attr_getdetachstate F
-+GLIBC_2.27 pthread_attr_getinheritsched F
-+GLIBC_2.27 pthread_attr_getschedparam F
-+GLIBC_2.27 pthread_attr_getschedpolicy F
-+GLIBC_2.27 pthread_attr_getscope F
-+GLIBC_2.27 pthread_attr_init F
-+GLIBC_2.27 pthread_attr_setdetachstate F
-+GLIBC_2.27 pthread_attr_setinheritsched F
-+GLIBC_2.27 pthread_attr_setschedparam F
-+GLIBC_2.27 pthread_attr_setschedpolicy F
-+GLIBC_2.27 pthread_attr_setscope F
-+GLIBC_2.27 pthread_cond_broadcast F
-+GLIBC_2.27 pthread_cond_destroy F
-+GLIBC_2.27 pthread_cond_init F
-+GLIBC_2.27 pthread_cond_signal F
-+GLIBC_2.27 pthread_cond_timedwait F
-+GLIBC_2.27 pthread_cond_wait F
-+GLIBC_2.27 pthread_condattr_destroy F
-+GLIBC_2.27 pthread_condattr_init F
-+GLIBC_2.27 pthread_equal F
-+GLIBC_2.27 pthread_exit F
-+GLIBC_2.27 pthread_getschedparam F
-+GLIBC_2.27 pthread_mutex_destroy F
-+GLIBC_2.27 pthread_mutex_init F
-+GLIBC_2.27 pthread_mutex_lock F
-+GLIBC_2.27 pthread_mutex_unlock F
-+GLIBC_2.27 pthread_self F
-+GLIBC_2.27 pthread_setcancelstate F
-+GLIBC_2.27 pthread_setcanceltype F
-+GLIBC_2.27 pthread_setschedparam F
-+GLIBC_2.27 ptrace F
-+GLIBC_2.27 ptsname F
-+GLIBC_2.27 ptsname_r F
-+GLIBC_2.27 putc F
-+GLIBC_2.27 putc_unlocked F
-+GLIBC_2.27 putchar F
-+GLIBC_2.27 putchar_unlocked F
-+GLIBC_2.27 putenv F
-+GLIBC_2.27 putgrent F
-+GLIBC_2.27 putmsg F
-+GLIBC_2.27 putpmsg F
-+GLIBC_2.27 putpwent F
-+GLIBC_2.27 puts F
-+GLIBC_2.27 putsgent F
-+GLIBC_2.27 putspent F
-+GLIBC_2.27 pututline F
-+GLIBC_2.27 pututxline F
-+GLIBC_2.27 putw F
-+GLIBC_2.27 putwc F
-+GLIBC_2.27 putwc_unlocked F
-+GLIBC_2.27 putwchar F
-+GLIBC_2.27 putwchar_unlocked F
-+GLIBC_2.27 pvalloc F
-+GLIBC_2.27 pwrite F
-+GLIBC_2.27 pwrite64 F
-+GLIBC_2.27 pwritev F
-+GLIBC_2.27 pwritev2 F
-+GLIBC_2.27 pwritev64 F
-+GLIBC_2.27 pwritev64v2 F
-+GLIBC_2.27 qecvt F
-+GLIBC_2.27 qecvt_r F
-+GLIBC_2.27 qfcvt F
-+GLIBC_2.27 qfcvt_r F
-+GLIBC_2.27 qgcvt F
-+GLIBC_2.27 qsort F
-+GLIBC_2.27 qsort_r F
-+GLIBC_2.27 quick_exit F
-+GLIBC_2.27 quotactl F
-+GLIBC_2.27 raise F
-+GLIBC_2.27 rand F
-+GLIBC_2.27 rand_r F
-+GLIBC_2.27 random F
-+GLIBC_2.27 random_r F
-+GLIBC_2.27 rawmemchr F
-+GLIBC_2.27 rcmd F
-+GLIBC_2.27 rcmd_af F
-+GLIBC_2.27 re_comp F
-+GLIBC_2.27 re_compile_fastmap F
-+GLIBC_2.27 re_compile_pattern F
-+GLIBC_2.27 re_exec F
-+GLIBC_2.27 re_match F
-+GLIBC_2.27 re_match_2 F
-+GLIBC_2.27 re_search F
-+GLIBC_2.27 re_search_2 F
-+GLIBC_2.27 re_set_registers F
-+GLIBC_2.27 re_set_syntax F
-+GLIBC_2.27 re_syntax_options D 0x4
-+GLIBC_2.27 read F
-+GLIBC_2.27 readahead F
-+GLIBC_2.27 readdir F
-+GLIBC_2.27 readdir64 F
-+GLIBC_2.27 readdir64_r F
-+GLIBC_2.27 readdir_r F
-+GLIBC_2.27 readlink F
-+GLIBC_2.27 readlinkat F
-+GLIBC_2.27 readv F
-+GLIBC_2.27 realloc F
-+GLIBC_2.27 reallocarray F
-+GLIBC_2.27 realpath F
-+GLIBC_2.27 reboot F
-+GLIBC_2.27 recv F
-+GLIBC_2.27 recvfrom F
-+GLIBC_2.27 recvmmsg F
-+GLIBC_2.27 recvmsg F
-+GLIBC_2.27 regcomp F
-+GLIBC_2.27 regerror F
-+GLIBC_2.27 regexec F
-+GLIBC_2.27 regfree F
-+GLIBC_2.27 register_printf_function F
-+GLIBC_2.27 register_printf_modifier F
-+GLIBC_2.27 register_printf_specifier F
-+GLIBC_2.27 register_printf_type F
-+GLIBC_2.27 registerrpc F
-+GLIBC_2.27 remap_file_pages F
-+GLIBC_2.27 remove F
-+GLIBC_2.27 removexattr F
-+GLIBC_2.27 remque F
-+GLIBC_2.27 rename F
-+GLIBC_2.27 renameat F
-+GLIBC_2.27 revoke F
-+GLIBC_2.27 rewind F
-+GLIBC_2.27 rewinddir F
-+GLIBC_2.27 rexec F
-+GLIBC_2.27 rexec_af F
-+GLIBC_2.27 rexecoptions D 0x4
-+GLIBC_2.27 rindex F
-+GLIBC_2.27 rmdir F
-+GLIBC_2.27 rpc_createerr D 0x10
-+GLIBC_2.27 rpmatch F
-+GLIBC_2.27 rresvport F
-+GLIBC_2.27 rresvport_af F
-+GLIBC_2.27 rtime F
-+GLIBC_2.27 ruserok F
-+GLIBC_2.27 ruserok_af F
-+GLIBC_2.27 ruserpass F
-+GLIBC_2.27 sbrk F
-+GLIBC_2.27 scalbn F
-+GLIBC_2.27 scalbnf F
-+GLIBC_2.27 scalbnl F
-+GLIBC_2.27 scandir F
-+GLIBC_2.27 scandir64 F
-+GLIBC_2.27 scandirat F
-+GLIBC_2.27 scandirat64 F
-+GLIBC_2.27 scanf F
-+GLIBC_2.27 sched_get_priority_max F
-+GLIBC_2.27 sched_get_priority_min F
-+GLIBC_2.27 sched_getaffinity F
-+GLIBC_2.27 sched_getcpu F
-+GLIBC_2.27 sched_getparam F
-+GLIBC_2.27 sched_getscheduler F
-+GLIBC_2.27 sched_rr_get_interval F
-+GLIBC_2.27 sched_setaffinity F
-+GLIBC_2.27 sched_setparam F
-+GLIBC_2.27 sched_setscheduler F
-+GLIBC_2.27 sched_yield F
-+GLIBC_2.27 secure_getenv F
-+GLIBC_2.27 seed48 F
-+GLIBC_2.27 seed48_r F
-+GLIBC_2.27 seekdir F
-+GLIBC_2.27 select F
-+GLIBC_2.27 semctl F
-+GLIBC_2.27 semget F
-+GLIBC_2.27 semop F
-+GLIBC_2.27 semtimedop F
-+GLIBC_2.27 send F
-+GLIBC_2.27 sendfile F
-+GLIBC_2.27 sendfile64 F
-+GLIBC_2.27 sendmmsg F
-+GLIBC_2.27 sendmsg F
-+GLIBC_2.27 sendto F
-+GLIBC_2.27 setaliasent F
-+GLIBC_2.27 setbuf F
-+GLIBC_2.27 setbuffer F
-+GLIBC_2.27 setcontext F
-+GLIBC_2.27 setdomainname F
-+GLIBC_2.27 setegid F
-+GLIBC_2.27 setenv F
-+GLIBC_2.27 seteuid F
-+GLIBC_2.27 setfsent F
-+GLIBC_2.27 setfsgid F
-+GLIBC_2.27 setfsuid F
-+GLIBC_2.27 setgid F
-+GLIBC_2.27 setgrent F
-+GLIBC_2.27 setgroups F
-+GLIBC_2.27 sethostent F
-+GLIBC_2.27 sethostid F
-+GLIBC_2.27 sethostname F
-+GLIBC_2.27 setipv4sourcefilter F
-+GLIBC_2.27 setitimer F
-+GLIBC_2.27 setjmp F
-+GLIBC_2.27 setlinebuf F
-+GLIBC_2.27 setlocale F
-+GLIBC_2.27 setlogin F
-+GLIBC_2.27 setlogmask F
-+GLIBC_2.27 setmntent F
-+GLIBC_2.27 setnetent F
-+GLIBC_2.27 setnetgrent F
-+GLIBC_2.27 setns F
-+GLIBC_2.27 setpgid F
-+GLIBC_2.27 setpgrp F
-+GLIBC_2.27 setpriority F
-+GLIBC_2.27 setprotoent F
-+GLIBC_2.27 setpwent F
-+GLIBC_2.27 setregid F
-+GLIBC_2.27 setresgid F
-+GLIBC_2.27 setresuid F
-+GLIBC_2.27 setreuid F
-+GLIBC_2.27 setrlimit F
-+GLIBC_2.27 setrlimit64 F
-+GLIBC_2.27 setrpcent F
-+GLIBC_2.27 setservent F
-+GLIBC_2.27 setsgent F
-+GLIBC_2.27 setsid F
-+GLIBC_2.27 setsockopt F
-+GLIBC_2.27 setsourcefilter F
-+GLIBC_2.27 setspent F
-+GLIBC_2.27 setstate F
-+GLIBC_2.27 setstate_r F
-+GLIBC_2.27 settimeofday F
-+GLIBC_2.27 setttyent F
-+GLIBC_2.27 setuid F
-+GLIBC_2.27 setusershell F
-+GLIBC_2.27 setutent F
-+GLIBC_2.27 setutxent F
-+GLIBC_2.27 setvbuf F
-+GLIBC_2.27 setxattr F
-+GLIBC_2.27 sgetsgent F
-+GLIBC_2.27 sgetsgent_r F
-+GLIBC_2.27 sgetspent F
-+GLIBC_2.27 sgetspent_r F
-+GLIBC_2.27 shmat F
-+GLIBC_2.27 shmctl F
-+GLIBC_2.27 shmdt F
-+GLIBC_2.27 shmget F
-+GLIBC_2.27 shutdown F
-+GLIBC_2.27 sigaction F
-+GLIBC_2.27 sigaddset F
-+GLIBC_2.27 sigaltstack F
-+GLIBC_2.27 sigandset F
-+GLIBC_2.27 sigblock F
-+GLIBC_2.27 sigdelset F
-+GLIBC_2.27 sigemptyset F
-+GLIBC_2.27 sigfillset F
-+GLIBC_2.27 siggetmask F
-+GLIBC_2.27 sighold F
-+GLIBC_2.27 sigignore F
-+GLIBC_2.27 siginterrupt F
-+GLIBC_2.27 sigisemptyset F
-+GLIBC_2.27 sigismember F
-+GLIBC_2.27 siglongjmp F
-+GLIBC_2.27 signal F
-+GLIBC_2.27 signalfd F
-+GLIBC_2.27 sigorset F
-+GLIBC_2.27 sigpause F
-+GLIBC_2.27 sigpending F
-+GLIBC_2.27 sigprocmask F
-+GLIBC_2.27 sigqueue F
-+GLIBC_2.27 sigrelse F
-+GLIBC_2.27 sigreturn F
-+GLIBC_2.27 sigset F
-+GLIBC_2.27 sigsetmask F
-+GLIBC_2.27 sigstack F
-+GLIBC_2.27 sigsuspend F
-+GLIBC_2.27 sigtimedwait F
-+GLIBC_2.27 sigwait F
-+GLIBC_2.27 sigwaitinfo F
-+GLIBC_2.27 sleep F
-+GLIBC_2.27 snprintf F
-+GLIBC_2.27 sockatmark F
-+GLIBC_2.27 socket F
-+GLIBC_2.27 socketpair F
-+GLIBC_2.27 splice F
-+GLIBC_2.27 sprintf F
-+GLIBC_2.27 sprofil F
-+GLIBC_2.27 srand F
-+GLIBC_2.27 srand48 F
-+GLIBC_2.27 srand48_r F
-+GLIBC_2.27 srandom F
-+GLIBC_2.27 srandom_r F
-+GLIBC_2.27 sscanf F
-+GLIBC_2.27 ssignal F
-+GLIBC_2.27 sstk F
-+GLIBC_2.27 statfs F
-+GLIBC_2.27 statfs64 F
-+GLIBC_2.27 statvfs F
-+GLIBC_2.27 statvfs64 F
-+GLIBC_2.27 stderr D 0x4
-+GLIBC_2.27 stdin D 0x4
-+GLIBC_2.27 stdout D 0x4
-+GLIBC_2.27 stime F
-+GLIBC_2.27 stpcpy F
-+GLIBC_2.27 stpncpy F
-+GLIBC_2.27 strcasecmp F
-+GLIBC_2.27 strcasecmp_l F
-+GLIBC_2.27 strcasestr F
-+GLIBC_2.27 strcat F
-+GLIBC_2.27 strchr F
-+GLIBC_2.27 strchrnul F
-+GLIBC_2.27 strcmp F
-+GLIBC_2.27 strcoll F
-+GLIBC_2.27 strcoll_l F
-+GLIBC_2.27 strcpy F
-+GLIBC_2.27 strcspn F
-+GLIBC_2.27 strdup F
-+GLIBC_2.27 strerror F
-+GLIBC_2.27 strerror_l F
-+GLIBC_2.27 strerror_r F
-+GLIBC_2.27 strfmon F
-+GLIBC_2.27 strfmon_l F
-+GLIBC_2.27 strfromd F
-+GLIBC_2.27 strfromf F
-+GLIBC_2.27 strfromf32 F
-+GLIBC_2.27 strfromf32x F
-+GLIBC_2.27 strfromf64 F
-+GLIBC_2.27 strfroml F
-+GLIBC_2.27 strfry F
-+GLIBC_2.27 strftime F
-+GLIBC_2.27 strftime_l F
-+GLIBC_2.27 strlen F
-+GLIBC_2.27 strncasecmp F
-+GLIBC_2.27 strncasecmp_l F
-+GLIBC_2.27 strncat F
-+GLIBC_2.27 strncmp F
-+GLIBC_2.27 strncpy F
-+GLIBC_2.27 strndup F
-+GLIBC_2.27 strnlen F
-+GLIBC_2.27 strpbrk F
-+GLIBC_2.27 strptime F
-+GLIBC_2.27 strptime_l F
-+GLIBC_2.27 strrchr F
-+GLIBC_2.27 strsep F
-+GLIBC_2.27 strsignal F
-+GLIBC_2.27 strspn F
-+GLIBC_2.27 strstr F
-+GLIBC_2.27 strtod F
-+GLIBC_2.27 strtod_l F
-+GLIBC_2.27 strtof 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 strtof_l F
-+GLIBC_2.27 strtoimax F
-+GLIBC_2.27 strtok F
-+GLIBC_2.27 strtok_r F
-+GLIBC_2.27 strtol F
-+GLIBC_2.27 strtol_l F
-+GLIBC_2.27 strtold F
-+GLIBC_2.27 strtold_l F
-+GLIBC_2.27 strtoll F
-+GLIBC_2.27 strtoll_l F
-+GLIBC_2.27 strtoq F
-+GLIBC_2.27 strtoul F
-+GLIBC_2.27 strtoul_l F
-+GLIBC_2.27 strtoull F
-+GLIBC_2.27 strtoull_l F
-+GLIBC_2.27 strtoumax F
-+GLIBC_2.27 strtouq F
-+GLIBC_2.27 strverscmp F
-+GLIBC_2.27 strxfrm F
-+GLIBC_2.27 strxfrm_l F
-+GLIBC_2.27 stty F
-+GLIBC_2.27 svc_exit F
-+GLIBC_2.27 svc_fdset D 0x80
-+GLIBC_2.27 svc_getreq F
-+GLIBC_2.27 svc_getreq_common F
-+GLIBC_2.27 svc_getreq_poll F
-+GLIBC_2.27 svc_getreqset F
-+GLIBC_2.27 svc_max_pollfd D 0x4
-+GLIBC_2.27 svc_pollfd D 0x4
-+GLIBC_2.27 svc_register F
-+GLIBC_2.27 svc_run F
-+GLIBC_2.27 svc_sendreply F
-+GLIBC_2.27 svc_unregister F
-+GLIBC_2.27 svcauthdes_stats D 0xc
-+GLIBC_2.27 svcerr_auth F
-+GLIBC_2.27 svcerr_decode F
-+GLIBC_2.27 svcerr_noproc F
-+GLIBC_2.27 svcerr_noprog F
-+GLIBC_2.27 svcerr_progvers F
-+GLIBC_2.27 svcerr_systemerr F
-+GLIBC_2.27 svcerr_weakauth F
-+GLIBC_2.27 svcfd_create F
-+GLIBC_2.27 svcraw_create F
-+GLIBC_2.27 svctcp_create F
-+GLIBC_2.27 svcudp_bufcreate F
-+GLIBC_2.27 svcudp_create F
-+GLIBC_2.27 svcudp_enablecache F
-+GLIBC_2.27 svcunix_create F
-+GLIBC_2.27 svcunixfd_create F
-+GLIBC_2.27 swab F
-+GLIBC_2.27 swapcontext F
-+GLIBC_2.27 swapoff F
-+GLIBC_2.27 swapon F
-+GLIBC_2.27 swprintf F
-+GLIBC_2.27 swscanf F
-+GLIBC_2.27 symlink F
-+GLIBC_2.27 symlinkat F
-+GLIBC_2.27 sync F
-+GLIBC_2.27 sync_file_range F
-+GLIBC_2.27 syncfs F
-+GLIBC_2.27 sys_errlist D 0x21c
-+GLIBC_2.27 sys_nerr D 0x4
-+GLIBC_2.27 sys_sigabbrev D 0x104
-+GLIBC_2.27 sys_siglist D 0x104
-+GLIBC_2.27 syscall F
-+GLIBC_2.27 sysconf F
-+GLIBC_2.27 sysctl F
-+GLIBC_2.27 sysinfo F
-+GLIBC_2.27 syslog F
-+GLIBC_2.27 system F
-+GLIBC_2.27 sysv_signal F
-+GLIBC_2.27 tcdrain F
-+GLIBC_2.27 tcflow F
-+GLIBC_2.27 tcflush F
-+GLIBC_2.27 tcgetattr F
-+GLIBC_2.27 tcgetpgrp F
-+GLIBC_2.27 tcgetsid F
-+GLIBC_2.27 tcsendbreak F
-+GLIBC_2.27 tcsetattr F
-+GLIBC_2.27 tcsetpgrp F
-+GLIBC_2.27 tdelete F
-+GLIBC_2.27 tdestroy F
-+GLIBC_2.27 tee F
-+GLIBC_2.27 telldir F
-+GLIBC_2.27 tempnam F
-+GLIBC_2.27 textdomain F
-+GLIBC_2.27 tfind F
-+GLIBC_2.27 time F
-+GLIBC_2.27 timegm F
-+GLIBC_2.27 timelocal F
-+GLIBC_2.27 timerfd_create F
-+GLIBC_2.27 timerfd_gettime F
-+GLIBC_2.27 timerfd_settime F
-+GLIBC_2.27 times F
-+GLIBC_2.27 timespec_get F
-+GLIBC_2.27 timezone D 0x4
-+GLIBC_2.27 tmpfile F
-+GLIBC_2.27 tmpfile64 F
-+GLIBC_2.27 tmpnam F
-+GLIBC_2.27 tmpnam_r F
-+GLIBC_2.27 toascii F
-+GLIBC_2.27 tolower F
-+GLIBC_2.27 tolower_l F
-+GLIBC_2.27 toupper F
-+GLIBC_2.27 toupper_l F
-+GLIBC_2.27 towctrans F
-+GLIBC_2.27 towctrans_l F
-+GLIBC_2.27 towlower F
-+GLIBC_2.27 towlower_l F
-+GLIBC_2.27 towupper F
-+GLIBC_2.27 towupper_l F
-+GLIBC_2.27 tr_break F
-+GLIBC_2.27 truncate F
-+GLIBC_2.27 truncate64 F
-+GLIBC_2.27 tsearch F
-+GLIBC_2.27 ttyname F
-+GLIBC_2.27 ttyname_r F
-+GLIBC_2.27 ttyslot F
-+GLIBC_2.27 twalk F
-+GLIBC_2.27 tzname D 0x8
-+GLIBC_2.27 tzset F
-+GLIBC_2.27 ualarm F
-+GLIBC_2.27 ulckpwdf F
-+GLIBC_2.27 ulimit F
-+GLIBC_2.27 umask F
-+GLIBC_2.27 umount F
-+GLIBC_2.27 umount2 F
-+GLIBC_2.27 uname F
-+GLIBC_2.27 ungetc F
-+GLIBC_2.27 ungetwc F
-+GLIBC_2.27 unlink F
-+GLIBC_2.27 unlinkat F
-+GLIBC_2.27 unlockpt F
-+GLIBC_2.27 unsetenv F
-+GLIBC_2.27 unshare F
-+GLIBC_2.27 updwtmp F
-+GLIBC_2.27 updwtmpx F
-+GLIBC_2.27 uselocale F
-+GLIBC_2.27 user2netname F
-+GLIBC_2.27 usleep F
-+GLIBC_2.27 ustat F
-+GLIBC_2.27 utime F
-+GLIBC_2.27 utimensat F
-+GLIBC_2.27 utimes F
-+GLIBC_2.27 utmpname F
-+GLIBC_2.27 utmpxname F
-+GLIBC_2.27 valloc F
-+GLIBC_2.27 vasprintf F
-+GLIBC_2.27 vdprintf F
-+GLIBC_2.27 verr F
-+GLIBC_2.27 verrx F
-+GLIBC_2.27 versionsort F
-+GLIBC_2.27 versionsort64 F
-+GLIBC_2.27 vfork F
-+GLIBC_2.27 vfprintf F
-+GLIBC_2.27 vfscanf F
-+GLIBC_2.27 vfwprintf F
-+GLIBC_2.27 vfwscanf F
-+GLIBC_2.27 vhangup F
-+GLIBC_2.27 vlimit F
-+GLIBC_2.27 vmsplice F
-+GLIBC_2.27 vprintf F
-+GLIBC_2.27 vscanf F
-+GLIBC_2.27 vsnprintf F
-+GLIBC_2.27 vsprintf F
-+GLIBC_2.27 vsscanf F
-+GLIBC_2.27 vswprintf F
-+GLIBC_2.27 vswscanf F
-+GLIBC_2.27 vsyslog F
-+GLIBC_2.27 vtimes F
-+GLIBC_2.27 vwarn F
-+GLIBC_2.27 vwarnx F
-+GLIBC_2.27 vwprintf F
-+GLIBC_2.27 vwscanf F
-+GLIBC_2.27 wait F
-+GLIBC_2.27 wait3 F
-+GLIBC_2.27 wait4 F
-+GLIBC_2.27 waitid F
-+GLIBC_2.27 waitpid F
-+GLIBC_2.27 warn F
-+GLIBC_2.27 warnx F
-+GLIBC_2.27 wcpcpy F
-+GLIBC_2.27 wcpncpy F
-+GLIBC_2.27 wcrtomb F
-+GLIBC_2.27 wcscasecmp F
-+GLIBC_2.27 wcscasecmp_l F
-+GLIBC_2.27 wcscat F
-+GLIBC_2.27 wcschr F
-+GLIBC_2.27 wcschrnul F
-+GLIBC_2.27 wcscmp F
-+GLIBC_2.27 wcscoll F
-+GLIBC_2.27 wcscoll_l F
-+GLIBC_2.27 wcscpy F
-+GLIBC_2.27 wcscspn F
-+GLIBC_2.27 wcsdup F
-+GLIBC_2.27 wcsftime F
-+GLIBC_2.27 wcsftime_l F
-+GLIBC_2.27 wcslen F
-+GLIBC_2.27 wcsncasecmp F
-+GLIBC_2.27 wcsncasecmp_l F
-+GLIBC_2.27 wcsncat F
-+GLIBC_2.27 wcsncmp F
-+GLIBC_2.27 wcsncpy F
-+GLIBC_2.27 wcsnlen F
-+GLIBC_2.27 wcsnrtombs F
-+GLIBC_2.27 wcspbrk F
-+GLIBC_2.27 wcsrchr F
-+GLIBC_2.27 wcsrtombs F
-+GLIBC_2.27 wcsspn F
-+GLIBC_2.27 wcsstr F
-+GLIBC_2.27 wcstod F
-+GLIBC_2.27 wcstod_l F
-+GLIBC_2.27 wcstof F
-+GLIBC_2.27 wcstof32 F
-+GLIBC_2.27 wcstof32_l F
-+GLIBC_2.27 wcstof32x F
-+GLIBC_2.27 wcstof32x_l F
-+GLIBC_2.27 wcstof64 F
-+GLIBC_2.27 wcstof64_l F
-+GLIBC_2.27 wcstof_l F
-+GLIBC_2.27 wcstoimax F
-+GLIBC_2.27 wcstok F
-+GLIBC_2.27 wcstol F
-+GLIBC_2.27 wcstol_l F
-+GLIBC_2.27 wcstold F
-+GLIBC_2.27 wcstold_l F
-+GLIBC_2.27 wcstoll F
-+GLIBC_2.27 wcstoll_l F
-+GLIBC_2.27 wcstombs F
-+GLIBC_2.27 wcstoq F
-+GLIBC_2.27 wcstoul F
-+GLIBC_2.27 wcstoul_l F
-+GLIBC_2.27 wcstoull F
-+GLIBC_2.27 wcstoull_l F
-+GLIBC_2.27 wcstoumax F
-+GLIBC_2.27 wcstouq F
-+GLIBC_2.27 wcswcs F
-+GLIBC_2.27 wcswidth F
-+GLIBC_2.27 wcsxfrm F
-+GLIBC_2.27 wcsxfrm_l F
-+GLIBC_2.27 wctob F
-+GLIBC_2.27 wctomb F
-+GLIBC_2.27 wctrans F
-+GLIBC_2.27 wctrans_l F
-+GLIBC_2.27 wctype F
-+GLIBC_2.27 wctype_l F
-+GLIBC_2.27 wcwidth F
-+GLIBC_2.27 wmemchr F
-+GLIBC_2.27 wmemcmp F
-+GLIBC_2.27 wmemcpy F
-+GLIBC_2.27 wmemmove F
-+GLIBC_2.27 wmempcpy F
-+GLIBC_2.27 wmemset F
-+GLIBC_2.27 wordexp F
-+GLIBC_2.27 wordfree F
-+GLIBC_2.27 wprintf F
-+GLIBC_2.27 write F
-+GLIBC_2.27 writev F
-+GLIBC_2.27 wscanf F
-+GLIBC_2.27 xdecrypt F
-+GLIBC_2.27 xdr_accepted_reply F
-+GLIBC_2.27 xdr_array F
-+GLIBC_2.27 xdr_authdes_cred F
-+GLIBC_2.27 xdr_authdes_verf F
-+GLIBC_2.27 xdr_authunix_parms F
-+GLIBC_2.27 xdr_bool F
-+GLIBC_2.27 xdr_bytes F
-+GLIBC_2.27 xdr_callhdr F
-+GLIBC_2.27 xdr_callmsg F
-+GLIBC_2.27 xdr_char F
-+GLIBC_2.27 xdr_cryptkeyarg F
-+GLIBC_2.27 xdr_cryptkeyarg2 F
-+GLIBC_2.27 xdr_cryptkeyres F
-+GLIBC_2.27 xdr_des_block F
-+GLIBC_2.27 xdr_double F
-+GLIBC_2.27 xdr_enum F
-+GLIBC_2.27 xdr_float F
-+GLIBC_2.27 xdr_free F
-+GLIBC_2.27 xdr_getcredres F
-+GLIBC_2.27 xdr_hyper F
-+GLIBC_2.27 xdr_int F
-+GLIBC_2.27 xdr_int16_t F
-+GLIBC_2.27 xdr_int32_t F
-+GLIBC_2.27 xdr_int64_t F
-+GLIBC_2.27 xdr_int8_t F
-+GLIBC_2.27 xdr_key_netstarg F
-+GLIBC_2.27 xdr_key_netstres F
-+GLIBC_2.27 xdr_keybuf F
-+GLIBC_2.27 xdr_keystatus F
-+GLIBC_2.27 xdr_long F
-+GLIBC_2.27 xdr_longlong_t F
-+GLIBC_2.27 xdr_netnamestr F
-+GLIBC_2.27 xdr_netobj F
-+GLIBC_2.27 xdr_opaque F
-+GLIBC_2.27 xdr_opaque_auth F
-+GLIBC_2.27 xdr_pmap F
-+GLIBC_2.27 xdr_pmaplist F
-+GLIBC_2.27 xdr_pointer F
-+GLIBC_2.27 xdr_quad_t F
-+GLIBC_2.27 xdr_reference F
-+GLIBC_2.27 xdr_rejected_reply F
-+GLIBC_2.27 xdr_replymsg F
-+GLIBC_2.27 xdr_rmtcall_args F
-+GLIBC_2.27 xdr_rmtcallres F
-+GLIBC_2.27 xdr_short F
-+GLIBC_2.27 xdr_sizeof F
-+GLIBC_2.27 xdr_string F
-+GLIBC_2.27 xdr_u_char F
-+GLIBC_2.27 xdr_u_hyper F
-+GLIBC_2.27 xdr_u_int F
-+GLIBC_2.27 xdr_u_long F
-+GLIBC_2.27 xdr_u_longlong_t F
-+GLIBC_2.27 xdr_u_quad_t F
-+GLIBC_2.27 xdr_u_short F
-+GLIBC_2.27 xdr_uint16_t F
-+GLIBC_2.27 xdr_uint32_t F
-+GLIBC_2.27 xdr_uint64_t F
-+GLIBC_2.27 xdr_uint8_t F
-+GLIBC_2.27 xdr_union F
-+GLIBC_2.27 xdr_unixcred F
-+GLIBC_2.27 xdr_vector F
-+GLIBC_2.27 xdr_void F
-+GLIBC_2.27 xdr_wrapstring F
-+GLIBC_2.27 xdrmem_create F
-+GLIBC_2.27 xdrrec_create F
-+GLIBC_2.27 xdrrec_endofrecord F
-+GLIBC_2.27 xdrrec_eof F
-+GLIBC_2.27 xdrrec_skiprecord F
-+GLIBC_2.27 xdrstdio_create F
-+GLIBC_2.27 xencrypt F
-+GLIBC_2.27 xprt_register F
-+GLIBC_2.27 xprt_unregister F
-+GLIBC_2.28 fcntl F
-+GLIBC_2.28 fcntl64 F
-+GLIBC_2.28 renameat2 F
-+GLIBC_2.28 statx F
-+GLIBC_2.28 thrd_current F
-+GLIBC_2.28 thrd_equal F
-+GLIBC_2.28 thrd_sleep F
-+GLIBC_2.28 thrd_yield F
-diff --git a/sysdeps/unix/sysv/linux/arc/libcrypt.abilist b/sysdeps/unix/sysv/linux/arc/libcrypt.abilist
-new file mode 100644
-index 000000000000..9484dca79ea6
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/libcrypt.abilist
-@@ -0,0 +1,7 @@
-+GLIBC_2.27 crypt F
-+GLIBC_2.27 crypt_r F
-+GLIBC_2.27 encrypt F
-+GLIBC_2.27 encrypt_r F
-+GLIBC_2.27 fcrypt F
-+GLIBC_2.27 setkey F
-+GLIBC_2.27 setkey_r F
-diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/libdl.abilist
-new file mode 100644
-index 000000000000..16adcae553d8
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
-@@ -0,0 +1,9 @@
-+GLIBC_2.27 dladdr F
-+GLIBC_2.27 dladdr1 F
-+GLIBC_2.27 dlclose F
-+GLIBC_2.27 dlerror F
-+GLIBC_2.27 dlinfo F
-+GLIBC_2.27 dlmopen F
-+GLIBC_2.27 dlopen F
-+GLIBC_2.27 dlsym F
-+GLIBC_2.27 dlvsym F
-diff --git a/sysdeps/unix/sysv/linux/arc/libm.abilist b/sysdeps/unix/sysv/linux/arc/libm.abilist
-new file mode 100644
-index 000000000000..52b3db50a2bb
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/libm.abilist
-@@ -0,0 +1,753 @@
-+GLIBC_2.27 __acos_finite F
-+GLIBC_2.27 __acosf_finite F
-+GLIBC_2.27 __acosh_finite F
-+GLIBC_2.27 __acoshf_finite F
-+GLIBC_2.27 __asin_finite F
-+GLIBC_2.27 __asinf_finite F
-+GLIBC_2.27 __atan2_finite F
-+GLIBC_2.27 __atan2f_finite F
-+GLIBC_2.27 __atanh_finite F
-+GLIBC_2.27 __atanhf_finite F
-+GLIBC_2.27 __clog10 F
-+GLIBC_2.27 __clog10f F
-+GLIBC_2.27 __clog10l F
-+GLIBC_2.27 __cosh_finite F
-+GLIBC_2.27 __coshf_finite F
-+GLIBC_2.27 __exp10_finite F
-+GLIBC_2.27 __exp10f_finite F
-+GLIBC_2.27 __exp2_finite F
-+GLIBC_2.27 __exp2f_finite F
-+GLIBC_2.27 __exp_finite F
-+GLIBC_2.27 __expf_finite F
-+GLIBC_2.27 __finite F
-+GLIBC_2.27 __finitef F
-+GLIBC_2.27 __fmod_finite F
-+GLIBC_2.27 __fmodf_finite F
-+GLIBC_2.27 __fpclassify F
-+GLIBC_2.27 __fpclassifyf F
-+GLIBC_2.27 __gamma_r_finite F
-+GLIBC_2.27 __gammaf_r_finite F
-+GLIBC_2.27 __hypot_finite F
-+GLIBC_2.27 __hypotf_finite F
-+GLIBC_2.27 __iseqsig F
-+GLIBC_2.27 __iseqsigf F
-+GLIBC_2.27 __issignaling F
-+GLIBC_2.27 __issignalingf F
-+GLIBC_2.27 __j0_finite F
-+GLIBC_2.27 __j0f_finite F
-+GLIBC_2.27 __j1_finite F
-+GLIBC_2.27 __j1f_finite F
-+GLIBC_2.27 __jn_finite F
-+GLIBC_2.27 __jnf_finite F
-+GLIBC_2.27 __lgamma_r_finite F
-+GLIBC_2.27 __lgammaf_r_finite F
-+GLIBC_2.27 __log10_finite F
-+GLIBC_2.27 __log10f_finite F
-+GLIBC_2.27 __log2_finite F
-+GLIBC_2.27 __log2f_finite F
-+GLIBC_2.27 __log_finite F
-+GLIBC_2.27 __logf_finite F
-+GLIBC_2.27 __pow_finite F
-+GLIBC_2.27 __powf_finite F
-+GLIBC_2.27 __remainder_finite F
-+GLIBC_2.27 __remainderf_finite F
-+GLIBC_2.27 __scalb_finite F
-+GLIBC_2.27 __scalbf_finite F
-+GLIBC_2.27 __signbit F
-+GLIBC_2.27 __signbitf F
-+GLIBC_2.27 __signgam D 0x4
-+GLIBC_2.27 __sinh_finite F
-+GLIBC_2.27 __sinhf_finite F
-+GLIBC_2.27 __sqrt_finite F
-+GLIBC_2.27 __sqrtf_finite F
-+GLIBC_2.27 __y0_finite F
-+GLIBC_2.27 __y0f_finite F
-+GLIBC_2.27 __y1_finite F
-+GLIBC_2.27 __y1f_finite F
-+GLIBC_2.27 __yn_finite F
-+GLIBC_2.27 __ynf_finite F
-+GLIBC_2.27 acos F
-+GLIBC_2.27 acosf F
-+GLIBC_2.27 acosf32 F
-+GLIBC_2.27 acosf32x F
-+GLIBC_2.27 acosf64 F
-+GLIBC_2.27 acosh F
-+GLIBC_2.27 acoshf F
-+GLIBC_2.27 acoshf32 F
-+GLIBC_2.27 acoshf32x F
-+GLIBC_2.27 acoshf64 F
-+GLIBC_2.27 acoshl F
-+GLIBC_2.27 acosl F
-+GLIBC_2.27 asin F
-+GLIBC_2.27 asinf F
-+GLIBC_2.27 asinf32 F
-+GLIBC_2.27 asinf32x F
-+GLIBC_2.27 asinf64 F
-+GLIBC_2.27 asinh F
-+GLIBC_2.27 asinhf F
-+GLIBC_2.27 asinhf32 F
-+GLIBC_2.27 asinhf32x F
-+GLIBC_2.27 asinhf64 F
-+GLIBC_2.27 asinhl F
-+GLIBC_2.27 asinl F
-+GLIBC_2.27 atan F
-+GLIBC_2.27 atan2 F
-+GLIBC_2.27 atan2f F
-+GLIBC_2.27 atan2f32 F
-+GLIBC_2.27 atan2f32x F
-+GLIBC_2.27 atan2f64 F
-+GLIBC_2.27 atan2l F
-+GLIBC_2.27 atanf F
-+GLIBC_2.27 atanf32 F
-+GLIBC_2.27 atanf32x F
-+GLIBC_2.27 atanf64 F
-+GLIBC_2.27 atanh F
-+GLIBC_2.27 atanhf F
-+GLIBC_2.27 atanhf32 F
-+GLIBC_2.27 atanhf32x F
-+GLIBC_2.27 atanhf64 F
-+GLIBC_2.27 atanhl F
-+GLIBC_2.27 atanl F
-+GLIBC_2.27 cabs F
-+GLIBC_2.27 cabsf F
-+GLIBC_2.27 cabsf32 F
-+GLIBC_2.27 cabsf32x F
-+GLIBC_2.27 cabsf64 F
-+GLIBC_2.27 cabsl F
-+GLIBC_2.27 cacos F
-+GLIBC_2.27 cacosf F
-+GLIBC_2.27 cacosf32 F
-+GLIBC_2.27 cacosf32x F
-+GLIBC_2.27 cacosf64 F
-+GLIBC_2.27 cacosh F
-+GLIBC_2.27 cacoshf F
-+GLIBC_2.27 cacoshf32 F
-+GLIBC_2.27 cacoshf32x F
-+GLIBC_2.27 cacoshf64 F
-+GLIBC_2.27 cacoshl F
-+GLIBC_2.27 cacosl F
-+GLIBC_2.27 canonicalize F
-+GLIBC_2.27 canonicalizef F
-+GLIBC_2.27 canonicalizef32 F
-+GLIBC_2.27 canonicalizef32x F
-+GLIBC_2.27 canonicalizef64 F
-+GLIBC_2.27 canonicalizel F
-+GLIBC_2.27 carg F
-+GLIBC_2.27 cargf F
-+GLIBC_2.27 cargf32 F
-+GLIBC_2.27 cargf32x F
-+GLIBC_2.27 cargf64 F
-+GLIBC_2.27 cargl F
-+GLIBC_2.27 casin F
-+GLIBC_2.27 casinf F
-+GLIBC_2.27 casinf32 F
-+GLIBC_2.27 casinf32x F
-+GLIBC_2.27 casinf64 F
-+GLIBC_2.27 casinh F
-+GLIBC_2.27 casinhf F
-+GLIBC_2.27 casinhf32 F
-+GLIBC_2.27 casinhf32x F
-+GLIBC_2.27 casinhf64 F
-+GLIBC_2.27 casinhl F
-+GLIBC_2.27 casinl F
-+GLIBC_2.27 catan F
-+GLIBC_2.27 catanf F
-+GLIBC_2.27 catanf32 F
-+GLIBC_2.27 catanf32x F
-+GLIBC_2.27 catanf64 F
-+GLIBC_2.27 catanh F
-+GLIBC_2.27 catanhf F
-+GLIBC_2.27 catanhf32 F
-+GLIBC_2.27 catanhf32x F
-+GLIBC_2.27 catanhf64 F
-+GLIBC_2.27 catanhl F
-+GLIBC_2.27 catanl F
-+GLIBC_2.27 cbrt F
-+GLIBC_2.27 cbrtf F
-+GLIBC_2.27 cbrtf32 F
-+GLIBC_2.27 cbrtf32x F
-+GLIBC_2.27 cbrtf64 F
-+GLIBC_2.27 cbrtl F
-+GLIBC_2.27 ccos F
-+GLIBC_2.27 ccosf F
-+GLIBC_2.27 ccosf32 F
-+GLIBC_2.27 ccosf32x F
-+GLIBC_2.27 ccosf64 F
-+GLIBC_2.27 ccosh F
-+GLIBC_2.27 ccoshf F
-+GLIBC_2.27 ccoshf32 F
-+GLIBC_2.27 ccoshf32x F
-+GLIBC_2.27 ccoshf64 F
-+GLIBC_2.27 ccoshl F
-+GLIBC_2.27 ccosl F
-+GLIBC_2.27 ceil F
-+GLIBC_2.27 ceilf F
-+GLIBC_2.27 ceilf32 F
-+GLIBC_2.27 ceilf32x F
-+GLIBC_2.27 ceilf64 F
-+GLIBC_2.27 ceill F
-+GLIBC_2.27 cexp F
-+GLIBC_2.27 cexpf F
-+GLIBC_2.27 cexpf32 F
-+GLIBC_2.27 cexpf32x F
-+GLIBC_2.27 cexpf64 F
-+GLIBC_2.27 cexpl F
-+GLIBC_2.27 cimag F
-+GLIBC_2.27 cimagf F
-+GLIBC_2.27 cimagf32 F
-+GLIBC_2.27 cimagf32x F
-+GLIBC_2.27 cimagf64 F
-+GLIBC_2.27 cimagl F
-+GLIBC_2.27 clog F
-+GLIBC_2.27 clog10 F
-+GLIBC_2.27 clog10f F
-+GLIBC_2.27 clog10f32 F
-+GLIBC_2.27 clog10f32x F
-+GLIBC_2.27 clog10f64 F
-+GLIBC_2.27 clog10l F
-+GLIBC_2.27 clogf F
-+GLIBC_2.27 clogf32 F
-+GLIBC_2.27 clogf32x F
-+GLIBC_2.27 clogf64 F
-+GLIBC_2.27 clogl F
-+GLIBC_2.27 conj F
-+GLIBC_2.27 conjf F
-+GLIBC_2.27 conjf32 F
-+GLIBC_2.27 conjf32x F
-+GLIBC_2.27 conjf64 F
-+GLIBC_2.27 conjl F
-+GLIBC_2.27 copysign F
-+GLIBC_2.27 copysignf F
-+GLIBC_2.27 copysignf32 F
-+GLIBC_2.27 copysignf32x F
-+GLIBC_2.27 copysignf64 F
-+GLIBC_2.27 copysignl F
-+GLIBC_2.27 cos F
-+GLIBC_2.27 cosf F
-+GLIBC_2.27 cosf32 F
-+GLIBC_2.27 cosf32x F
-+GLIBC_2.27 cosf64 F
-+GLIBC_2.27 cosh F
-+GLIBC_2.27 coshf F
-+GLIBC_2.27 coshf32 F
-+GLIBC_2.27 coshf32x F
-+GLIBC_2.27 coshf64 F
-+GLIBC_2.27 coshl F
-+GLIBC_2.27 cosl F
-+GLIBC_2.27 cpow F
-+GLIBC_2.27 cpowf F
-+GLIBC_2.27 cpowf32 F
-+GLIBC_2.27 cpowf32x F
-+GLIBC_2.27 cpowf64 F
-+GLIBC_2.27 cpowl F
-+GLIBC_2.27 cproj F
-+GLIBC_2.27 cprojf F
-+GLIBC_2.27 cprojf32 F
-+GLIBC_2.27 cprojf32x F
-+GLIBC_2.27 cprojf64 F
-+GLIBC_2.27 cprojl F
-+GLIBC_2.27 creal F
-+GLIBC_2.27 crealf F
-+GLIBC_2.27 crealf32 F
-+GLIBC_2.27 crealf32x F
-+GLIBC_2.27 crealf64 F
-+GLIBC_2.27 creall F
-+GLIBC_2.27 csin F
-+GLIBC_2.27 csinf F
-+GLIBC_2.27 csinf32 F
-+GLIBC_2.27 csinf32x F
-+GLIBC_2.27 csinf64 F
-+GLIBC_2.27 csinh F
-+GLIBC_2.27 csinhf F
-+GLIBC_2.27 csinhf32 F
-+GLIBC_2.27 csinhf32x F
-+GLIBC_2.27 csinhf64 F
-+GLIBC_2.27 csinhl F
-+GLIBC_2.27 csinl F
-+GLIBC_2.27 csqrt F
-+GLIBC_2.27 csqrtf F
-+GLIBC_2.27 csqrtf32 F
-+GLIBC_2.27 csqrtf32x F
-+GLIBC_2.27 csqrtf64 F
-+GLIBC_2.27 csqrtl F
-+GLIBC_2.27 ctan F
-+GLIBC_2.27 ctanf F
-+GLIBC_2.27 ctanf32 F
-+GLIBC_2.27 ctanf32x F
-+GLIBC_2.27 ctanf64 F
-+GLIBC_2.27 ctanh F
-+GLIBC_2.27 ctanhf F
-+GLIBC_2.27 ctanhf32 F
-+GLIBC_2.27 ctanhf32x F
-+GLIBC_2.27 ctanhf64 F
-+GLIBC_2.27 ctanhl F
-+GLIBC_2.27 ctanl F
-+GLIBC_2.27 drem F
-+GLIBC_2.27 dremf F
-+GLIBC_2.27 dreml F
-+GLIBC_2.27 erf F
-+GLIBC_2.27 erfc F
-+GLIBC_2.27 erfcf F
-+GLIBC_2.27 erfcf32 F
-+GLIBC_2.27 erfcf32x F
-+GLIBC_2.27 erfcf64 F
-+GLIBC_2.27 erfcl F
-+GLIBC_2.27 erff F
-+GLIBC_2.27 erff32 F
-+GLIBC_2.27 erff32x F
-+GLIBC_2.27 erff64 F
-+GLIBC_2.27 erfl F
-+GLIBC_2.27 exp F
-+GLIBC_2.27 exp10 F
-+GLIBC_2.27 exp10f F
-+GLIBC_2.27 exp10f32 F
-+GLIBC_2.27 exp10f32x F
-+GLIBC_2.27 exp10f64 F
-+GLIBC_2.27 exp10l F
-+GLIBC_2.27 exp2 F
-+GLIBC_2.27 exp2f F
-+GLIBC_2.27 exp2f32 F
-+GLIBC_2.27 exp2f32x F
-+GLIBC_2.27 exp2f64 F
-+GLIBC_2.27 exp2l F
-+GLIBC_2.27 expf F
-+GLIBC_2.27 expf32 F
-+GLIBC_2.27 expf32x F
-+GLIBC_2.27 expf64 F
-+GLIBC_2.27 expl F
-+GLIBC_2.27 expm1 F
-+GLIBC_2.27 expm1f F
-+GLIBC_2.27 expm1f32 F
-+GLIBC_2.27 expm1f32x F
-+GLIBC_2.27 expm1f64 F
-+GLIBC_2.27 expm1l F
-+GLIBC_2.27 fabs F
-+GLIBC_2.27 fabsf F
-+GLIBC_2.27 fabsf32 F
-+GLIBC_2.27 fabsf32x F
-+GLIBC_2.27 fabsf64 F
-+GLIBC_2.27 fabsl F
-+GLIBC_2.27 fdim F
-+GLIBC_2.27 fdimf F
-+GLIBC_2.27 fdimf32 F
-+GLIBC_2.27 fdimf32x F
-+GLIBC_2.27 fdimf64 F
-+GLIBC_2.27 fdiml F
-+GLIBC_2.27 feclearexcept F
-+GLIBC_2.27 fedisableexcept F
-+GLIBC_2.27 feenableexcept F
-+GLIBC_2.27 fegetenv F
-+GLIBC_2.27 fegetexcept F
-+GLIBC_2.27 fegetexceptflag F
-+GLIBC_2.27 fegetmode F
-+GLIBC_2.27 fegetround F
-+GLIBC_2.27 feholdexcept F
-+GLIBC_2.27 feraiseexcept F
-+GLIBC_2.27 fesetenv F
-+GLIBC_2.27 fesetexcept F
-+GLIBC_2.27 fesetexceptflag F
-+GLIBC_2.27 fesetmode F
-+GLIBC_2.27 fesetround F
-+GLIBC_2.27 fetestexcept F
-+GLIBC_2.27 fetestexceptflag F
-+GLIBC_2.27 feupdateenv F
-+GLIBC_2.27 finite F
-+GLIBC_2.27 finitef F
-+GLIBC_2.27 finitel F
-+GLIBC_2.27 floor F
-+GLIBC_2.27 floorf F
-+GLIBC_2.27 floorf32 F
-+GLIBC_2.27 floorf32x F
-+GLIBC_2.27 floorf64 F
-+GLIBC_2.27 floorl F
-+GLIBC_2.27 fma F
-+GLIBC_2.27 fmaf F
-+GLIBC_2.27 fmaf32 F
-+GLIBC_2.27 fmaf32x F
-+GLIBC_2.27 fmaf64 F
-+GLIBC_2.27 fmal F
-+GLIBC_2.27 fmax F
-+GLIBC_2.27 fmaxf F
-+GLIBC_2.27 fmaxf32 F
-+GLIBC_2.27 fmaxf32x F
-+GLIBC_2.27 fmaxf64 F
-+GLIBC_2.27 fmaxl F
-+GLIBC_2.27 fmaxmag F
-+GLIBC_2.27 fmaxmagf F
-+GLIBC_2.27 fmaxmagf32 F
-+GLIBC_2.27 fmaxmagf32x F
-+GLIBC_2.27 fmaxmagf64 F
-+GLIBC_2.27 fmaxmagl F
-+GLIBC_2.27 fmin F
-+GLIBC_2.27 fminf F
-+GLIBC_2.27 fminf32 F
-+GLIBC_2.27 fminf32x F
-+GLIBC_2.27 fminf64 F
-+GLIBC_2.27 fminl F
-+GLIBC_2.27 fminmag F
-+GLIBC_2.27 fminmagf F
-+GLIBC_2.27 fminmagf32 F
-+GLIBC_2.27 fminmagf32x F
-+GLIBC_2.27 fminmagf64 F
-+GLIBC_2.27 fminmagl F
-+GLIBC_2.27 fmod F
-+GLIBC_2.27 fmodf F
-+GLIBC_2.27 fmodf32 F
-+GLIBC_2.27 fmodf32x F
-+GLIBC_2.27 fmodf64 F
-+GLIBC_2.27 fmodl F
-+GLIBC_2.27 frexp F
-+GLIBC_2.27 frexpf F
-+GLIBC_2.27 frexpf32 F
-+GLIBC_2.27 frexpf32x F
-+GLIBC_2.27 frexpf64 F
-+GLIBC_2.27 frexpl F
-+GLIBC_2.27 fromfp F
-+GLIBC_2.27 fromfpf F
-+GLIBC_2.27 fromfpf32 F
-+GLIBC_2.27 fromfpf32x F
-+GLIBC_2.27 fromfpf64 F
-+GLIBC_2.27 fromfpl F
-+GLIBC_2.27 fromfpx F
-+GLIBC_2.27 fromfpxf F
-+GLIBC_2.27 fromfpxf32 F
-+GLIBC_2.27 fromfpxf32x F
-+GLIBC_2.27 fromfpxf64 F
-+GLIBC_2.27 fromfpxl F
-+GLIBC_2.27 gamma F
-+GLIBC_2.27 gammaf F
-+GLIBC_2.27 gammal F
-+GLIBC_2.27 getpayload F
-+GLIBC_2.27 getpayloadf F
-+GLIBC_2.27 getpayloadf32 F
-+GLIBC_2.27 getpayloadf32x F
-+GLIBC_2.27 getpayloadf64 F
-+GLIBC_2.27 getpayloadl F
-+GLIBC_2.27 hypot F
-+GLIBC_2.27 hypotf F
-+GLIBC_2.27 hypotf32 F
-+GLIBC_2.27 hypotf32x F
-+GLIBC_2.27 hypotf64 F
-+GLIBC_2.27 hypotl F
-+GLIBC_2.27 ilogb F
-+GLIBC_2.27 ilogbf F
-+GLIBC_2.27 ilogbf32 F
-+GLIBC_2.27 ilogbf32x F
-+GLIBC_2.27 ilogbf64 F
-+GLIBC_2.27 ilogbl F
-+GLIBC_2.27 j0 F
-+GLIBC_2.27 j0f F
-+GLIBC_2.27 j0f32 F
-+GLIBC_2.27 j0f32x F
-+GLIBC_2.27 j0f64 F
-+GLIBC_2.27 j0l F
-+GLIBC_2.27 j1 F
-+GLIBC_2.27 j1f F
-+GLIBC_2.27 j1f32 F
-+GLIBC_2.27 j1f32x F
-+GLIBC_2.27 j1f64 F
-+GLIBC_2.27 j1l F
-+GLIBC_2.27 jn F
-+GLIBC_2.27 jnf F
-+GLIBC_2.27 jnf32 F
-+GLIBC_2.27 jnf32x F
-+GLIBC_2.27 jnf64 F
-+GLIBC_2.27 jnl F
-+GLIBC_2.27 ldexp F
-+GLIBC_2.27 ldexpf F
-+GLIBC_2.27 ldexpf32 F
-+GLIBC_2.27 ldexpf32x F
-+GLIBC_2.27 ldexpf64 F
-+GLIBC_2.27 ldexpl F
-+GLIBC_2.27 lgamma F
-+GLIBC_2.27 lgamma_r F
-+GLIBC_2.27 lgammaf 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 lgammaf_r F
-+GLIBC_2.27 lgammal F
-+GLIBC_2.27 lgammal_r F
-+GLIBC_2.27 llogb F
-+GLIBC_2.27 llogbf F
-+GLIBC_2.27 llogbf32 F
-+GLIBC_2.27 llogbf32x F
-+GLIBC_2.27 llogbf64 F
-+GLIBC_2.27 llogbl F
-+GLIBC_2.27 llrint F
-+GLIBC_2.27 llrintf F
-+GLIBC_2.27 llrintf32 F
-+GLIBC_2.27 llrintf32x F
-+GLIBC_2.27 llrintf64 F
-+GLIBC_2.27 llrintl F
-+GLIBC_2.27 llround F
-+GLIBC_2.27 llroundf F
-+GLIBC_2.27 llroundf32 F
-+GLIBC_2.27 llroundf32x F
-+GLIBC_2.27 llroundf64 F
-+GLIBC_2.27 llroundl F
-+GLIBC_2.27 log F
-+GLIBC_2.27 log10 F
-+GLIBC_2.27 log10f F
-+GLIBC_2.27 log10f32 F
-+GLIBC_2.27 log10f32x F
-+GLIBC_2.27 log10f64 F
-+GLIBC_2.27 log10l F
-+GLIBC_2.27 log1p F
-+GLIBC_2.27 log1pf F
-+GLIBC_2.27 log1pf32 F
-+GLIBC_2.27 log1pf32x F
-+GLIBC_2.27 log1pf64 F
-+GLIBC_2.27 log1pl F
-+GLIBC_2.27 log2 F
-+GLIBC_2.27 log2f F
-+GLIBC_2.27 log2f32 F
-+GLIBC_2.27 log2f32x F
-+GLIBC_2.27 log2f64 F
-+GLIBC_2.27 log2l F
-+GLIBC_2.27 logb F
-+GLIBC_2.27 logbf F
-+GLIBC_2.27 logbf32 F
-+GLIBC_2.27 logbf32x F
-+GLIBC_2.27 logbf64 F
-+GLIBC_2.27 logbl F
-+GLIBC_2.27 logf F
-+GLIBC_2.27 logf32 F
-+GLIBC_2.27 logf32x F
-+GLIBC_2.27 logf64 F
-+GLIBC_2.27 logl F
-+GLIBC_2.27 lrint F
-+GLIBC_2.27 lrintf F
-+GLIBC_2.27 lrintf32 F
-+GLIBC_2.27 lrintf32x F
-+GLIBC_2.27 lrintf64 F
-+GLIBC_2.27 lrintl F
-+GLIBC_2.27 lround F
-+GLIBC_2.27 lroundf F
-+GLIBC_2.27 lroundf32 F
-+GLIBC_2.27 lroundf32x F
-+GLIBC_2.27 lroundf64 F
-+GLIBC_2.27 lroundl F
-+GLIBC_2.27 modf F
-+GLIBC_2.27 modff F
-+GLIBC_2.27 modff32 F
-+GLIBC_2.27 modff32x F
-+GLIBC_2.27 modff64 F
-+GLIBC_2.27 modfl F
-+GLIBC_2.27 nan F
-+GLIBC_2.27 nanf F
-+GLIBC_2.27 nanf32 F
-+GLIBC_2.27 nanf32x F
-+GLIBC_2.27 nanf64 F
-+GLIBC_2.27 nanl F
-+GLIBC_2.27 nearbyint F
-+GLIBC_2.27 nearbyintf F
-+GLIBC_2.27 nearbyintf32 F
-+GLIBC_2.27 nearbyintf32x F
-+GLIBC_2.27 nearbyintf64 F
-+GLIBC_2.27 nearbyintl F
-+GLIBC_2.27 nextafter F
-+GLIBC_2.27 nextafterf F
-+GLIBC_2.27 nextafterf32 F
-+GLIBC_2.27 nextafterf32x F
-+GLIBC_2.27 nextafterf64 F
-+GLIBC_2.27 nextafterl F
-+GLIBC_2.27 nextdown F
-+GLIBC_2.27 nextdownf F
-+GLIBC_2.27 nextdownf32 F
-+GLIBC_2.27 nextdownf32x F
-+GLIBC_2.27 nextdownf64 F
-+GLIBC_2.27 nextdownl F
-+GLIBC_2.27 nexttoward F
-+GLIBC_2.27 nexttowardf F
-+GLIBC_2.27 nexttowardl F
-+GLIBC_2.27 nextup F
-+GLIBC_2.27 nextupf F
-+GLIBC_2.27 nextupf32 F
-+GLIBC_2.27 nextupf32x F
-+GLIBC_2.27 nextupf64 F
-+GLIBC_2.27 nextupl F
-+GLIBC_2.27 pow F
-+GLIBC_2.27 powf F
-+GLIBC_2.27 powf32 F
-+GLIBC_2.27 powf32x F
-+GLIBC_2.27 powf64 F
-+GLIBC_2.27 powl F
-+GLIBC_2.27 remainder F
-+GLIBC_2.27 remainderf F
-+GLIBC_2.27 remainderf32 F
-+GLIBC_2.27 remainderf32x F
-+GLIBC_2.27 remainderf64 F
-+GLIBC_2.27 remainderl F
-+GLIBC_2.27 remquo F
-+GLIBC_2.27 remquof F
-+GLIBC_2.27 remquof32 F
-+GLIBC_2.27 remquof32x F
-+GLIBC_2.27 remquof64 F
-+GLIBC_2.27 remquol F
-+GLIBC_2.27 rint F
-+GLIBC_2.27 rintf F
-+GLIBC_2.27 rintf32 F
-+GLIBC_2.27 rintf32x F
-+GLIBC_2.27 rintf64 F
-+GLIBC_2.27 rintl F
-+GLIBC_2.27 round F
-+GLIBC_2.27 roundeven F
-+GLIBC_2.27 roundevenf F
-+GLIBC_2.27 roundevenf32 F
-+GLIBC_2.27 roundevenf32x F
-+GLIBC_2.27 roundevenf64 F
-+GLIBC_2.27 roundevenl F
-+GLIBC_2.27 roundf F
-+GLIBC_2.27 roundf32 F
-+GLIBC_2.27 roundf32x F
-+GLIBC_2.27 roundf64 F
-+GLIBC_2.27 roundl F
-+GLIBC_2.27 scalb F
-+GLIBC_2.27 scalbf F
-+GLIBC_2.27 scalbl F
-+GLIBC_2.27 scalbln F
-+GLIBC_2.27 scalblnf F
-+GLIBC_2.27 scalblnf32 F
-+GLIBC_2.27 scalblnf32x F
-+GLIBC_2.27 scalblnf64 F
-+GLIBC_2.27 scalblnl F
-+GLIBC_2.27 scalbn F
-+GLIBC_2.27 scalbnf F
-+GLIBC_2.27 scalbnf32 F
-+GLIBC_2.27 scalbnf32x F
-+GLIBC_2.27 scalbnf64 F
-+GLIBC_2.27 scalbnl F
-+GLIBC_2.27 setpayload F
-+GLIBC_2.27 setpayloadf F
-+GLIBC_2.27 setpayloadf32 F
-+GLIBC_2.27 setpayloadf32x F
-+GLIBC_2.27 setpayloadf64 F
-+GLIBC_2.27 setpayloadl F
-+GLIBC_2.27 setpayloadsig F
-+GLIBC_2.27 setpayloadsigf F
-+GLIBC_2.27 setpayloadsigf32 F
-+GLIBC_2.27 setpayloadsigf32x F
-+GLIBC_2.27 setpayloadsigf64 F
-+GLIBC_2.27 setpayloadsigl F
-+GLIBC_2.27 signgam D 0x4
-+GLIBC_2.27 significand F
-+GLIBC_2.27 significandf F
-+GLIBC_2.27 significandl F
-+GLIBC_2.27 sin F
-+GLIBC_2.27 sincos F
-+GLIBC_2.27 sincosf F
-+GLIBC_2.27 sincosf32 F
-+GLIBC_2.27 sincosf32x F
-+GLIBC_2.27 sincosf64 F
-+GLIBC_2.27 sincosl F
-+GLIBC_2.27 sinf F
-+GLIBC_2.27 sinf32 F
-+GLIBC_2.27 sinf32x F
-+GLIBC_2.27 sinf64 F
-+GLIBC_2.27 sinh F
-+GLIBC_2.27 sinhf F
-+GLIBC_2.27 sinhf32 F
-+GLIBC_2.27 sinhf32x F
-+GLIBC_2.27 sinhf64 F
-+GLIBC_2.27 sinhl F
-+GLIBC_2.27 sinl F
-+GLIBC_2.27 sqrt F
-+GLIBC_2.27 sqrtf F
-+GLIBC_2.27 sqrtf32 F
-+GLIBC_2.27 sqrtf32x F
-+GLIBC_2.27 sqrtf64 F
-+GLIBC_2.27 sqrtl F
-+GLIBC_2.27 tan F
-+GLIBC_2.27 tanf F
-+GLIBC_2.27 tanf32 F
-+GLIBC_2.27 tanf32x F
-+GLIBC_2.27 tanf64 F
-+GLIBC_2.27 tanh F
-+GLIBC_2.27 tanhf F
-+GLIBC_2.27 tanhf32 F
-+GLIBC_2.27 tanhf32x F
-+GLIBC_2.27 tanhf64 F
-+GLIBC_2.27 tanhl F
-+GLIBC_2.27 tanl F
-+GLIBC_2.27 tgamma F
-+GLIBC_2.27 tgammaf F
-+GLIBC_2.27 tgammaf32 F
-+GLIBC_2.27 tgammaf32x F
-+GLIBC_2.27 tgammaf64 F
-+GLIBC_2.27 tgammal F
-+GLIBC_2.27 totalorder F
-+GLIBC_2.27 totalorderf F
-+GLIBC_2.27 totalorderf32 F
-+GLIBC_2.27 totalorderf32x F
-+GLIBC_2.27 totalorderf64 F
-+GLIBC_2.27 totalorderl F
-+GLIBC_2.27 totalordermag F
-+GLIBC_2.27 totalordermagf F
-+GLIBC_2.27 totalordermagf32 F
-+GLIBC_2.27 totalordermagf32x F
-+GLIBC_2.27 totalordermagf64 F
-+GLIBC_2.27 totalordermagl F
-+GLIBC_2.27 trunc F
-+GLIBC_2.27 truncf F
-+GLIBC_2.27 truncf32 F
-+GLIBC_2.27 truncf32x F
-+GLIBC_2.27 truncf64 F
-+GLIBC_2.27 truncl F
-+GLIBC_2.27 ufromfp F
-+GLIBC_2.27 ufromfpf F
-+GLIBC_2.27 ufromfpf32 F
-+GLIBC_2.27 ufromfpf32x F
-+GLIBC_2.27 ufromfpf64 F
-+GLIBC_2.27 ufromfpl F
-+GLIBC_2.27 ufromfpx F
-+GLIBC_2.27 ufromfpxf F
-+GLIBC_2.27 ufromfpxf32 F
-+GLIBC_2.27 ufromfpxf32x F
-+GLIBC_2.27 ufromfpxf64 F
-+GLIBC_2.27 ufromfpxl F
-+GLIBC_2.27 y0 F
-+GLIBC_2.27 y0f F
-+GLIBC_2.27 y0f32 F
-+GLIBC_2.27 y0f32x F
-+GLIBC_2.27 y0f64 F
-+GLIBC_2.27 y0l F
-+GLIBC_2.27 y1 F
-+GLIBC_2.27 y1f F
-+GLIBC_2.27 y1f32 F
-+GLIBC_2.27 y1f32x F
-+GLIBC_2.27 y1f64 F
-+GLIBC_2.27 y1l F
-+GLIBC_2.27 yn F
-+GLIBC_2.27 ynf F
-+GLIBC_2.27 ynf32 F
-+GLIBC_2.27 ynf32x F
-+GLIBC_2.27 ynf64 F
-+GLIBC_2.27 ynl F
-+GLIBC_2.28 daddl F
-+GLIBC_2.28 ddivl F
-+GLIBC_2.28 dmull F
-+GLIBC_2.28 dsubl F
-+GLIBC_2.28 f32addf32x F
-+GLIBC_2.28 f32addf64 F
-+GLIBC_2.28 f32divf32x F
-+GLIBC_2.28 f32divf64 F
-+GLIBC_2.28 f32mulf32x F
-+GLIBC_2.28 f32mulf64 F
-+GLIBC_2.28 f32subf32x F
-+GLIBC_2.28 f32subf64 F
-+GLIBC_2.28 f32xaddf64 F
-+GLIBC_2.28 f32xdivf64 F
-+GLIBC_2.28 f32xmulf64 F
-+GLIBC_2.28 f32xsubf64 F
-+GLIBC_2.28 fadd F
-+GLIBC_2.28 faddl F
-+GLIBC_2.28 fdiv F
-+GLIBC_2.28 fdivl F
-+GLIBC_2.28 fmul F
-+GLIBC_2.28 fmull F
-+GLIBC_2.28 fsub F
-+GLIBC_2.28 fsubl F
-diff --git a/sysdeps/unix/sysv/linux/arc/libnsl.abilist b/sysdeps/unix/sysv/linux/arc/libnsl.abilist
-new file mode 100644
-index 000000000000..0767472d06e6
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/libnsl.abilist
-@@ -0,0 +1,120 @@
-+GLIBC_2.27 __free_fdresult F
-+GLIBC_2.27 __nis_default_access F
-+GLIBC_2.27 __nis_default_group F
-+GLIBC_2.27 __nis_default_owner F
-+GLIBC_2.27 __nis_default_ttl F
-+GLIBC_2.27 __nis_finddirectory F
-+GLIBC_2.27 __nisbind_connect F
-+GLIBC_2.27 __nisbind_create F
-+GLIBC_2.27 __nisbind_destroy F
-+GLIBC_2.27 __nisbind_next F
-+GLIBC_2.27 __yp_check F
-+GLIBC_2.27 nis_add F
-+GLIBC_2.27 nis_add_entry F
-+GLIBC_2.27 nis_addmember F
-+GLIBC_2.27 nis_checkpoint F
-+GLIBC_2.27 nis_clone_directory F
-+GLIBC_2.27 nis_clone_object F
-+GLIBC_2.27 nis_clone_result F
-+GLIBC_2.27 nis_creategroup F
-+GLIBC_2.27 nis_destroy_object F
-+GLIBC_2.27 nis_destroygroup F
-+GLIBC_2.27 nis_dir_cmp F
-+GLIBC_2.27 nis_domain_of F
-+GLIBC_2.27 nis_domain_of_r F
-+GLIBC_2.27 nis_first_entry F
-+GLIBC_2.27 nis_free_directory F
-+GLIBC_2.27 nis_free_object F
-+GLIBC_2.27 nis_free_request F
-+GLIBC_2.27 nis_freenames F
-+GLIBC_2.27 nis_freeresult F
-+GLIBC_2.27 nis_freeservlist F
-+GLIBC_2.27 nis_freetags F
-+GLIBC_2.27 nis_getnames F
-+GLIBC_2.27 nis_getservlist F
-+GLIBC_2.27 nis_ismember F
-+GLIBC_2.27 nis_leaf_of F
-+GLIBC_2.27 nis_leaf_of_r F
-+GLIBC_2.27 nis_lerror F
-+GLIBC_2.27 nis_list F
-+GLIBC_2.27 nis_local_directory F
-+GLIBC_2.27 nis_local_group F
-+GLIBC_2.27 nis_local_host F
-+GLIBC_2.27 nis_local_principal F
-+GLIBC_2.27 nis_lookup F
-+GLIBC_2.27 nis_mkdir F
-+GLIBC_2.27 nis_modify F
-+GLIBC_2.27 nis_modify_entry F
-+GLIBC_2.27 nis_name_of F
-+GLIBC_2.27 nis_name_of_r F
-+GLIBC_2.27 nis_next_entry F
-+GLIBC_2.27 nis_perror F
-+GLIBC_2.27 nis_ping F
-+GLIBC_2.27 nis_print_directory F
-+GLIBC_2.27 nis_print_entry F
-+GLIBC_2.27 nis_print_group F
-+GLIBC_2.27 nis_print_group_entry F
-+GLIBC_2.27 nis_print_link F
-+GLIBC_2.27 nis_print_object F
-+GLIBC_2.27 nis_print_result F
-+GLIBC_2.27 nis_print_rights F
-+GLIBC_2.27 nis_print_table F
-+GLIBC_2.27 nis_read_obj F
-+GLIBC_2.27 nis_remove F
-+GLIBC_2.27 nis_remove_entry F
-+GLIBC_2.27 nis_removemember F
-+GLIBC_2.27 nis_rmdir F
-+GLIBC_2.27 nis_servstate F
-+GLIBC_2.27 nis_sperrno F
-+GLIBC_2.27 nis_sperror F
-+GLIBC_2.27 nis_sperror_r F
-+GLIBC_2.27 nis_stats F
-+GLIBC_2.27 nis_verifygroup F
-+GLIBC_2.27 nis_write_obj F
-+GLIBC_2.27 readColdStartFile F
-+GLIBC_2.27 writeColdStartFile F
-+GLIBC_2.27 xdr_cback_data F
-+GLIBC_2.27 xdr_domainname F
-+GLIBC_2.27 xdr_keydat F
-+GLIBC_2.27 xdr_mapname F
-+GLIBC_2.27 xdr_obj_p F
-+GLIBC_2.27 xdr_peername F
-+GLIBC_2.27 xdr_valdat F
-+GLIBC_2.27 xdr_yp_buf F
-+GLIBC_2.27 xdr_ypall F
-+GLIBC_2.27 xdr_ypbind_binding F
-+GLIBC_2.27 xdr_ypbind_resp F
-+GLIBC_2.27 xdr_ypbind_resptype F
-+GLIBC_2.27 xdr_ypbind_setdom F
-+GLIBC_2.27 xdr_ypdelete_args F
-+GLIBC_2.27 xdr_ypmap_parms F
-+GLIBC_2.27 xdr_ypmaplist F
-+GLIBC_2.27 xdr_yppush_status F
-+GLIBC_2.27 xdr_yppushresp_xfr F
-+GLIBC_2.27 xdr_ypreq_key F
-+GLIBC_2.27 xdr_ypreq_nokey F
-+GLIBC_2.27 xdr_ypreq_xfr F
-+GLIBC_2.27 xdr_ypresp_all F
-+GLIBC_2.27 xdr_ypresp_key_val F
-+GLIBC_2.27 xdr_ypresp_maplist F
-+GLIBC_2.27 xdr_ypresp_master F
-+GLIBC_2.27 xdr_ypresp_order F
-+GLIBC_2.27 xdr_ypresp_val F
-+GLIBC_2.27 xdr_ypresp_xfr F
-+GLIBC_2.27 xdr_ypstat F
-+GLIBC_2.27 xdr_ypupdate_args F
-+GLIBC_2.27 xdr_ypxfrstat F
-+GLIBC_2.27 yp_all F
-+GLIBC_2.27 yp_bind F
-+GLIBC_2.27 yp_first F
-+GLIBC_2.27 yp_get_default_domain F
-+GLIBC_2.27 yp_maplist F
-+GLIBC_2.27 yp_master F
-+GLIBC_2.27 yp_match F
-+GLIBC_2.27 yp_next F
-+GLIBC_2.27 yp_order F
-+GLIBC_2.27 yp_unbind F
-+GLIBC_2.27 yp_update F
-+GLIBC_2.27 ypbinderr_string F
-+GLIBC_2.27 yperr_string F
-+GLIBC_2.27 ypprot_err F
-diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
-new file mode 100644
-index 000000000000..c370fda73db9
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
-@@ -0,0 +1,237 @@
-+GLIBC_2.27 _IO_flockfile F
-+GLIBC_2.27 _IO_ftrylockfile F
-+GLIBC_2.27 _IO_funlockfile F
-+GLIBC_2.27 __close F
-+GLIBC_2.27 __connect F
-+GLIBC_2.27 __errno_location F
-+GLIBC_2.27 __fcntl F
-+GLIBC_2.27 __h_errno_location F
-+GLIBC_2.27 __libc_allocate_rtsig F
-+GLIBC_2.27 __libc_current_sigrtmax F
-+GLIBC_2.27 __libc_current_sigrtmin F
-+GLIBC_2.27 __lseek F
-+GLIBC_2.27 __nanosleep F
-+GLIBC_2.27 __open F
-+GLIBC_2.27 __open64 F
-+GLIBC_2.27 __pread64 F
-+GLIBC_2.27 __pthread_cleanup_routine F
-+GLIBC_2.27 __pthread_getspecific F
-+GLIBC_2.27 __pthread_key_create F
-+GLIBC_2.27 __pthread_mutex_destroy F
-+GLIBC_2.27 __pthread_mutex_init F
-+GLIBC_2.27 __pthread_mutex_lock F
-+GLIBC_2.27 __pthread_mutex_trylock F
-+GLIBC_2.27 __pthread_mutex_unlock F
-+GLIBC_2.27 __pthread_mutexattr_destroy F
-+GLIBC_2.27 __pthread_mutexattr_init F
-+GLIBC_2.27 __pthread_mutexattr_settype F
-+GLIBC_2.27 __pthread_once F
-+GLIBC_2.27 __pthread_register_cancel F
-+GLIBC_2.27 __pthread_register_cancel_defer F
-+GLIBC_2.27 __pthread_rwlock_destroy F
-+GLIBC_2.27 __pthread_rwlock_init F
-+GLIBC_2.27 __pthread_rwlock_rdlock F
-+GLIBC_2.27 __pthread_rwlock_tryrdlock F
-+GLIBC_2.27 __pthread_rwlock_trywrlock F
-+GLIBC_2.27 __pthread_rwlock_unlock F
-+GLIBC_2.27 __pthread_rwlock_wrlock F
-+GLIBC_2.27 __pthread_setspecific F
-+GLIBC_2.27 __pthread_unregister_cancel F
-+GLIBC_2.27 __pthread_unregister_cancel_restore F
-+GLIBC_2.27 __pthread_unwind_next F
-+GLIBC_2.27 __pwrite64 F
-+GLIBC_2.27 __read F
-+GLIBC_2.27 __res_state F
-+GLIBC_2.27 __send F
-+GLIBC_2.27 __sigaction F
-+GLIBC_2.27 __wait F
-+GLIBC_2.27 __write F
-+GLIBC_2.27 _pthread_cleanup_pop F
-+GLIBC_2.27 _pthread_cleanup_pop_restore F
-+GLIBC_2.27 _pthread_cleanup_push F
-+GLIBC_2.27 _pthread_cleanup_push_defer F
-+GLIBC_2.27 accept F
-+GLIBC_2.27 close F
-+GLIBC_2.27 connect F
-+GLIBC_2.27 fcntl F
-+GLIBC_2.27 flockfile F
-+GLIBC_2.27 fsync F
-+GLIBC_2.27 ftrylockfile F
-+GLIBC_2.27 funlockfile F
-+GLIBC_2.27 lseek F
-+GLIBC_2.27 lseek64 F
-+GLIBC_2.27 msync F
-+GLIBC_2.27 nanosleep F
-+GLIBC_2.27 open F
-+GLIBC_2.27 open64 F
-+GLIBC_2.27 pause F
-+GLIBC_2.27 pread F
-+GLIBC_2.27 pread64 F
-+GLIBC_2.27 pthread_attr_destroy F
-+GLIBC_2.27 pthread_attr_getaffinity_np F
-+GLIBC_2.27 pthread_attr_getdetachstate F
-+GLIBC_2.27 pthread_attr_getguardsize F
-+GLIBC_2.27 pthread_attr_getinheritsched F
-+GLIBC_2.27 pthread_attr_getschedparam F
-+GLIBC_2.27 pthread_attr_getschedpolicy F
-+GLIBC_2.27 pthread_attr_getscope F
-+GLIBC_2.27 pthread_attr_getstack F
-+GLIBC_2.27 pthread_attr_getstackaddr F
-+GLIBC_2.27 pthread_attr_getstacksize F
-+GLIBC_2.27 pthread_attr_init F
-+GLIBC_2.27 pthread_attr_setaffinity_np F
-+GLIBC_2.27 pthread_attr_setdetachstate F
-+GLIBC_2.27 pthread_attr_setguardsize F
-+GLIBC_2.27 pthread_attr_setinheritsched F
-+GLIBC_2.27 pthread_attr_setschedparam F
-+GLIBC_2.27 pthread_attr_setschedpolicy F
-+GLIBC_2.27 pthread_attr_setscope F
-+GLIBC_2.27 pthread_attr_setstack F
-+GLIBC_2.27 pthread_attr_setstackaddr F
-+GLIBC_2.27 pthread_attr_setstacksize F
-+GLIBC_2.27 pthread_barrier_destroy F
-+GLIBC_2.27 pthread_barrier_init F
-+GLIBC_2.27 pthread_barrier_wait F
-+GLIBC_2.27 pthread_barrierattr_destroy F
-+GLIBC_2.27 pthread_barrierattr_getpshared F
-+GLIBC_2.27 pthread_barrierattr_init F
-+GLIBC_2.27 pthread_barrierattr_setpshared F
-+GLIBC_2.27 pthread_cancel F
-+GLIBC_2.27 pthread_cond_broadcast F
-+GLIBC_2.27 pthread_cond_destroy F
-+GLIBC_2.27 pthread_cond_init F
-+GLIBC_2.27 pthread_cond_signal F
-+GLIBC_2.27 pthread_cond_timedwait F
-+GLIBC_2.27 pthread_cond_wait F
-+GLIBC_2.27 pthread_condattr_destroy F
-+GLIBC_2.27 pthread_condattr_getclock F
-+GLIBC_2.27 pthread_condattr_getpshared F
-+GLIBC_2.27 pthread_condattr_init F
-+GLIBC_2.27 pthread_condattr_setclock F
-+GLIBC_2.27 pthread_condattr_setpshared F
-+GLIBC_2.27 pthread_create F
-+GLIBC_2.27 pthread_detach F
-+GLIBC_2.27 pthread_equal F
-+GLIBC_2.27 pthread_exit F
-+GLIBC_2.27 pthread_getaffinity_np F
-+GLIBC_2.27 pthread_getattr_default_np F
-+GLIBC_2.27 pthread_getattr_np F
-+GLIBC_2.27 pthread_getconcurrency F
-+GLIBC_2.27 pthread_getcpuclockid F
-+GLIBC_2.27 pthread_getname_np F
-+GLIBC_2.27 pthread_getschedparam F
-+GLIBC_2.27 pthread_getspecific F
-+GLIBC_2.27 pthread_join F
-+GLIBC_2.27 pthread_key_create F
-+GLIBC_2.27 pthread_key_delete F
-+GLIBC_2.27 pthread_kill F
-+GLIBC_2.27 pthread_kill_other_threads_np F
-+GLIBC_2.27 pthread_mutex_consistent F
-+GLIBC_2.27 pthread_mutex_consistent_np F
-+GLIBC_2.27 pthread_mutex_destroy F
-+GLIBC_2.27 pthread_mutex_getprioceiling F
-+GLIBC_2.27 pthread_mutex_init F
-+GLIBC_2.27 pthread_mutex_lock F
-+GLIBC_2.27 pthread_mutex_setprioceiling F
-+GLIBC_2.27 pthread_mutex_timedlock F
-+GLIBC_2.27 pthread_mutex_trylock F
-+GLIBC_2.27 pthread_mutex_unlock F
-+GLIBC_2.27 pthread_mutexattr_destroy F
-+GLIBC_2.27 pthread_mutexattr_getkind_np F
-+GLIBC_2.27 pthread_mutexattr_getprioceiling F
-+GLIBC_2.27 pthread_mutexattr_getprotocol F
-+GLIBC_2.27 pthread_mutexattr_getpshared F
-+GLIBC_2.27 pthread_mutexattr_getrobust F
-+GLIBC_2.27 pthread_mutexattr_getrobust_np F
-+GLIBC_2.27 pthread_mutexattr_gettype F
-+GLIBC_2.27 pthread_mutexattr_init F
-+GLIBC_2.27 pthread_mutexattr_setkind_np F
-+GLIBC_2.27 pthread_mutexattr_setprioceiling F
-+GLIBC_2.27 pthread_mutexattr_setprotocol F
-+GLIBC_2.27 pthread_mutexattr_setpshared F
-+GLIBC_2.27 pthread_mutexattr_setrobust F
-+GLIBC_2.27 pthread_mutexattr_setrobust_np F
-+GLIBC_2.27 pthread_mutexattr_settype F
-+GLIBC_2.27 pthread_once F
-+GLIBC_2.27 pthread_rwlock_destroy F
-+GLIBC_2.27 pthread_rwlock_init F
-+GLIBC_2.27 pthread_rwlock_rdlock F
-+GLIBC_2.27 pthread_rwlock_timedrdlock F
-+GLIBC_2.27 pthread_rwlock_timedwrlock F
-+GLIBC_2.27 pthread_rwlock_tryrdlock F
-+GLIBC_2.27 pthread_rwlock_trywrlock F
-+GLIBC_2.27 pthread_rwlock_unlock F
-+GLIBC_2.27 pthread_rwlock_wrlock F
-+GLIBC_2.27 pthread_rwlockattr_destroy F
-+GLIBC_2.27 pthread_rwlockattr_getkind_np F
-+GLIBC_2.27 pthread_rwlockattr_getpshared F
-+GLIBC_2.27 pthread_rwlockattr_init F
-+GLIBC_2.27 pthread_rwlockattr_setkind_np F
-+GLIBC_2.27 pthread_rwlockattr_setpshared F
-+GLIBC_2.27 pthread_setaffinity_np F
-+GLIBC_2.27 pthread_setattr_default_np F
-+GLIBC_2.27 pthread_setcancelstate F
-+GLIBC_2.27 pthread_setcanceltype F
-+GLIBC_2.27 pthread_setconcurrency F
-+GLIBC_2.27 pthread_setname_np F
-+GLIBC_2.27 pthread_setschedparam F
-+GLIBC_2.27 pthread_setschedprio F
-+GLIBC_2.27 pthread_setspecific F
-+GLIBC_2.27 pthread_sigmask F
-+GLIBC_2.27 pthread_sigqueue F
-+GLIBC_2.27 pthread_spin_destroy F
-+GLIBC_2.27 pthread_spin_init F
-+GLIBC_2.27 pthread_spin_lock F
-+GLIBC_2.27 pthread_spin_trylock F
-+GLIBC_2.27 pthread_spin_unlock F
-+GLIBC_2.27 pthread_testcancel F
-+GLIBC_2.27 pthread_timedjoin_np F
-+GLIBC_2.27 pthread_tryjoin_np F
-+GLIBC_2.27 pthread_yield F
-+GLIBC_2.27 pwrite F
-+GLIBC_2.27 pwrite64 F
-+GLIBC_2.27 raise F
-+GLIBC_2.27 read F
-+GLIBC_2.27 recv F
-+GLIBC_2.27 recvfrom F
-+GLIBC_2.27 recvmsg F
-+GLIBC_2.27 sem_close F
-+GLIBC_2.27 sem_destroy F
-+GLIBC_2.27 sem_getvalue F
-+GLIBC_2.27 sem_init F
-+GLIBC_2.27 sem_open F
-+GLIBC_2.27 sem_post F
-+GLIBC_2.27 sem_timedwait F
-+GLIBC_2.27 sem_trywait F
-+GLIBC_2.27 sem_unlink F
-+GLIBC_2.27 sem_wait F
-+GLIBC_2.27 send F
-+GLIBC_2.27 sendmsg F
-+GLIBC_2.27 sendto F
-+GLIBC_2.27 sigaction F
-+GLIBC_2.27 sigwait F
-+GLIBC_2.27 tcdrain F
-+GLIBC_2.27 wait F
-+GLIBC_2.27 waitpid F
-+GLIBC_2.27 write F
-+GLIBC_2.28 call_once F
-+GLIBC_2.28 cnd_broadcast F
-+GLIBC_2.28 cnd_destroy F
-+GLIBC_2.28 cnd_init F
-+GLIBC_2.28 cnd_signal F
-+GLIBC_2.28 cnd_timedwait F
-+GLIBC_2.28 cnd_wait F
-+GLIBC_2.28 mtx_destroy F
-+GLIBC_2.28 mtx_init F
-+GLIBC_2.28 mtx_lock F
-+GLIBC_2.28 mtx_timedlock F
-+GLIBC_2.28 mtx_trylock F
-+GLIBC_2.28 mtx_unlock F
-+GLIBC_2.28 thrd_create F
-+GLIBC_2.28 thrd_detach F
-+GLIBC_2.28 thrd_exit F
-+GLIBC_2.28 thrd_join F
-+GLIBC_2.28 tss_create F
-+GLIBC_2.28 tss_delete F
-+GLIBC_2.28 tss_get F
-+GLIBC_2.28 tss_set F
-diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
-new file mode 100644
-index 000000000000..69f26d515dd0
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
-@@ -0,0 +1,79 @@
-+GLIBC_2.27 __b64_ntop F
-+GLIBC_2.27 __b64_pton F
-+GLIBC_2.27 __dn_comp F
-+GLIBC_2.27 __dn_count_labels F
-+GLIBC_2.27 __dn_expand F
-+GLIBC_2.27 __dn_skipname F
-+GLIBC_2.27 __fp_nquery F
-+GLIBC_2.27 __fp_query F
-+GLIBC_2.27 __fp_resstat F
-+GLIBC_2.27 __hostalias F
-+GLIBC_2.27 __loc_aton F
-+GLIBC_2.27 __loc_ntoa F
-+GLIBC_2.27 __p_cdname F
-+GLIBC_2.27 __p_cdnname F
-+GLIBC_2.27 __p_class F
-+GLIBC_2.27 __p_class_syms D 0x54
-+GLIBC_2.27 __p_fqname F
-+GLIBC_2.27 __p_fqnname F
-+GLIBC_2.27 __p_option F
-+GLIBC_2.27 __p_query F
-+GLIBC_2.27 __p_rcode F
-+GLIBC_2.27 __p_time F
-+GLIBC_2.27 __p_type F
-+GLIBC_2.27 __p_type_syms D 0x228
-+GLIBC_2.27 __putlong F
-+GLIBC_2.27 __putshort F
-+GLIBC_2.27 __res_close F
-+GLIBC_2.27 __res_dnok F
-+GLIBC_2.27 __res_hnok F
-+GLIBC_2.27 __res_hostalias F
-+GLIBC_2.27 __res_isourserver F
-+GLIBC_2.27 __res_mailok F
-+GLIBC_2.27 __res_mkquery F
-+GLIBC_2.27 __res_nameinquery F
-+GLIBC_2.27 __res_nmkquery F
-+GLIBC_2.27 __res_nquery F
-+GLIBC_2.27 __res_nquerydomain F
-+GLIBC_2.27 __res_nsearch F
-+GLIBC_2.27 __res_nsend F
-+GLIBC_2.27 __res_ownok F
-+GLIBC_2.27 __res_queriesmatch F
-+GLIBC_2.27 __res_query F
-+GLIBC_2.27 __res_querydomain F
-+GLIBC_2.27 __res_search F
-+GLIBC_2.27 __res_send F
-+GLIBC_2.27 __sym_ntop F
-+GLIBC_2.27 __sym_ntos F
-+GLIBC_2.27 __sym_ston F
-+GLIBC_2.27 _getlong F
-+GLIBC_2.27 _getshort F
-+GLIBC_2.27 inet_net_ntop F
-+GLIBC_2.27 inet_net_pton F
-+GLIBC_2.27 inet_neta F
-+GLIBC_2.27 ns_datetosecs F
-+GLIBC_2.27 ns_format_ttl F
-+GLIBC_2.27 ns_get16 F
-+GLIBC_2.27 ns_get32 F
-+GLIBC_2.27 ns_initparse F
-+GLIBC_2.27 ns_makecanon F
-+GLIBC_2.27 ns_msg_getflag F
-+GLIBC_2.27 ns_name_compress F
-+GLIBC_2.27 ns_name_ntol F
-+GLIBC_2.27 ns_name_ntop F
-+GLIBC_2.27 ns_name_pack F
-+GLIBC_2.27 ns_name_pton F
-+GLIBC_2.27 ns_name_rollback F
-+GLIBC_2.27 ns_name_skip F
-+GLIBC_2.27 ns_name_uncompress F
-+GLIBC_2.27 ns_name_unpack F
-+GLIBC_2.27 ns_parse_ttl F
-+GLIBC_2.27 ns_parserr F
-+GLIBC_2.27 ns_put16 F
-+GLIBC_2.27 ns_put32 F
-+GLIBC_2.27 ns_samedomain F
-+GLIBC_2.27 ns_samename F
-+GLIBC_2.27 ns_skiprr F
-+GLIBC_2.27 ns_sprintrr F
-+GLIBC_2.27 ns_sprintrrf F
-+GLIBC_2.27 ns_subdomain F
-diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
-new file mode 100644
-index 000000000000..bfd262ecc57c
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
-@@ -0,0 +1,35 @@
-+GLIBC_2.27 __mq_open_2 F
-+GLIBC_2.27 aio_cancel F
-+GLIBC_2.27 aio_cancel64 F
-+GLIBC_2.27 aio_error F
-+GLIBC_2.27 aio_error64 F
-+GLIBC_2.27 aio_fsync F
-+GLIBC_2.27 aio_fsync64 F
-+GLIBC_2.27 aio_init F
-+GLIBC_2.27 aio_read F
-+GLIBC_2.27 aio_read64 F
-+GLIBC_2.27 aio_return F
-+GLIBC_2.27 aio_return64 F
-+GLIBC_2.27 aio_suspend F
-+GLIBC_2.27 aio_suspend64 F
-+GLIBC_2.27 aio_write F
-+GLIBC_2.27 aio_write64 F
-+GLIBC_2.27 lio_listio F
-+GLIBC_2.27 lio_listio64 F
-+GLIBC_2.27 mq_close F
-+GLIBC_2.27 mq_getattr F
-+GLIBC_2.27 mq_notify F
-+GLIBC_2.27 mq_open F
-+GLIBC_2.27 mq_receive F
-+GLIBC_2.27 mq_send F
-+GLIBC_2.27 mq_setattr F
-+GLIBC_2.27 mq_timedreceive F
-+GLIBC_2.27 mq_timedsend F
-+GLIBC_2.27 mq_unlink F
-+GLIBC_2.27 shm_open F
-+GLIBC_2.27 shm_unlink F
-+GLIBC_2.27 timer_create F
-+GLIBC_2.27 timer_delete F
-+GLIBC_2.27 timer_getoverrun F
-+GLIBC_2.27 timer_gettime F
-+GLIBC_2.27 timer_settime F
-diff --git a/sysdeps/unix/sysv/linux/arc/libthread_db.abilist b/sysdeps/unix/sysv/linux/arc/libthread_db.abilist
-new file mode 100644
-index 000000000000..4122e563a1d3
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/libthread_db.abilist
-@@ -0,0 +1,40 @@
-+GLIBC_2.27 td_init F
-+GLIBC_2.27 td_log F
-+GLIBC_2.27 td_symbol_list F
-+GLIBC_2.27 td_ta_clear_event F
-+GLIBC_2.27 td_ta_delete F
-+GLIBC_2.27 td_ta_enable_stats F
-+GLIBC_2.27 td_ta_event_addr F
-+GLIBC_2.27 td_ta_event_getmsg F
-+GLIBC_2.27 td_ta_get_nthreads F
-+GLIBC_2.27 td_ta_get_ph F
-+GLIBC_2.27 td_ta_get_stats F
-+GLIBC_2.27 td_ta_map_id2thr F
-+GLIBC_2.27 td_ta_map_lwp2thr F
-+GLIBC_2.27 td_ta_new F
-+GLIBC_2.27 td_ta_reset_stats F
-+GLIBC_2.27 td_ta_set_event F
-+GLIBC_2.27 td_ta_setconcurrency F
-+GLIBC_2.27 td_ta_thr_iter F
-+GLIBC_2.27 td_ta_tsd_iter F
-+GLIBC_2.27 td_thr_clear_event F
-+GLIBC_2.27 td_thr_dbresume F
-+GLIBC_2.27 td_thr_dbsuspend F
-+GLIBC_2.27 td_thr_event_enable F
-+GLIBC_2.27 td_thr_event_getmsg F
-+GLIBC_2.27 td_thr_get_info F
-+GLIBC_2.27 td_thr_getfpregs F
-+GLIBC_2.27 td_thr_getgregs F
-+GLIBC_2.27 td_thr_getxregs F
-+GLIBC_2.27 td_thr_getxregsize F
-+GLIBC_2.27 td_thr_set_event F
-+GLIBC_2.27 td_thr_setfpregs F
-+GLIBC_2.27 td_thr_setgregs F
-+GLIBC_2.27 td_thr_setprio F
-+GLIBC_2.27 td_thr_setsigpending F
-+GLIBC_2.27 td_thr_setxregs F
-+GLIBC_2.27 td_thr_sigsetmask F
-+GLIBC_2.27 td_thr_tls_get_addr F
-+GLIBC_2.27 td_thr_tlsbase F
-+GLIBC_2.27 td_thr_tsd F
-+GLIBC_2.27 td_thr_validate F
-diff --git a/sysdeps/unix/sysv/linux/arc/libutil.abilist b/sysdeps/unix/sysv/linux/arc/libutil.abilist
-new file mode 100644
-index 000000000000..cbfec8d46e60
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/libutil.abilist
-@@ -0,0 +1,6 @@
-+GLIBC_2.27 forkpty F
-+GLIBC_2.27 login F
-+GLIBC_2.27 login_tty F
-+GLIBC_2.27 logout F
-+GLIBC_2.27 logwtmp F
-+GLIBC_2.27 openpty F
-diff --git a/sysdeps/unix/sysv/linux/arc/localplt.data b/sysdeps/unix/sysv/linux/arc/localplt.data
-new file mode 100644
-index 000000000000..815f218daa67
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/localplt.data
-@@ -0,0 +1,15 @@
-+libc.so: realloc
-+libc.so: malloc
-+libc.so: memalign
-+libc.so: calloc
-+libc.so: free
-+libc.so: memcpy
-+ld.so: malloc
-+ld.so: calloc
-+ld.so: realloc
-+ld.so: free
-+# The TLS-enabled version of these functions is interposed from libc.so.
-+ld.so: _dl_signal_error
-+ld.so: _dl_catch_error
-+ld.so: _dl_signal_exception
-+ld.so: _dl_catch_exception
-diff --git a/sysdeps/unix/sysv/linux/arc/makecontext.c b/sysdeps/unix/sysv/linux/arc/makecontext.c
-new file mode 100644
-index 000000000000..8d233f83da7e
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/makecontext.c
-@@ -0,0 +1,75 @@
-+/* Create new context for ARC
-+ Copyright (C) 2015-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+#include <stdarg.h>
-+#include <stdint.h>
-+#include <sys/ucontext.h>
-+
-+void
-+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
-+{
-+ extern void __startcontext (void) attribute_hidden;
-+ unsigned long sp, *r;
-+ va_list vl;
-+ int i, reg_args, stack_args;
-+
-+ sp = ((unsigned long) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size) & ~7;
-+
-+ ucp->uc_mcontext.scratch.sp = sp;
-+ ucp->uc_mcontext.scratch.fp = 0;
-+
-+ /* __startcontext is sort of trampoline to invoke @func
-+ * From setcontext() pov, the resume address is __startcontext,
-+ * set it up in BLINK place holder*/
-+ ucp->uc_mcontext.scratch.blink = (unsigned long) &__startcontext;
-+
-+ /* __startcontext passed 2 types of args
-+ * - args to @func setup in canonical r0-r7
-+ * - @func itself in r9, and next function in r10
-+ */
-+ ucp->uc_mcontext.callee.r13 = (unsigned long) func;
-+ ucp->uc_mcontext.callee.r14 = (unsigned long) ucp->uc_link;
-+ ucp->uc_mcontext.callee.r15 = 0;
-+
-+ r = &ucp->uc_mcontext.scratch.r0;
-+
-+ va_start (vl, argc);
-+
-+ reg_args = argc > 8 ? 8 : argc;
-+ for (i = 0; i < reg_args; i++) {
-+ *r-- = va_arg(vl, unsigned long);
-+ }
-+
-+ stack_args = argc - reg_args;
-+
-+ if (__glibc_unlikely(stack_args > 0)) {
-+
-+ sp -= stack_args * sizeof (unsigned long);
-+ ucp->uc_mcontext.scratch.sp = sp;
-+ r = (unsigned long *)sp;
-+
-+ for (i = 0; i < stack_args; i++) {
-+ *r++ = va_arg(vl, unsigned long);
-+ }
-+ }
-+
-+ va_end (vl);
-+}
-+
-+weak_alias (__makecontext, makecontext)
-diff --git a/sysdeps/unix/sysv/linux/arc/mmap_internal.h b/sysdeps/unix/sysv/linux/arc/mmap_internal.h
-new file mode 100644
-index 000000000000..3c8c55d57d0e
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/mmap_internal.h
-@@ -0,0 +1,26 @@
-+/* mmap - map files or devices into memory. Linux/ARC version.
-+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef MMAP_ARC_INTERNAL_H
-+#define MMAP_ARC_INTERNAL_H
-+
-+#define MMAP2_PAGE_UNIT 8192ULL /* 8K page is default for ARC */
-+
-+#include_next <mmap_internal.h>
-+
-+#endif
-diff --git a/sysdeps/unix/sysv/linux/arc/profil-counter.h b/sysdeps/unix/sysv/linux/arc/profil-counter.h
-new file mode 100644
-index 000000000000..8a6a0bcf3d59
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/profil-counter.h
-@@ -0,0 +1,2 @@
-+/* We can use the ix86 version. */
-+#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
-diff --git a/sysdeps/unix/sysv/linux/arc/pt-vfork.S b/sysdeps/unix/sysv/linux/arc/pt-vfork.S
-new file mode 100644
-index 000000000000..65cc3823ac87
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/pt-vfork.S
-@@ -0,0 +1 @@
-+#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
-diff --git a/sysdeps/unix/sysv/linux/arc/setcontext.S b/sysdeps/unix/sysv/linux/arc/setcontext.S
-new file mode 100644
-index 000000000000..6ec2ec0ddc79
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/setcontext.S
-@@ -0,0 +1,95 @@
-+/* Set current context for ARC
-+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include "ucontext-macros.h"
-+
-+/*
-+ int setcontext (const ucontext_t *ucp)
-+ - Restores the machine context in @ucp and resumes execution
-+ (doesn't return to caller)
-+*/
-+
-+ENTRY(__setcontext)
-+
-+ mov r9, r0 /* stash @ucp across syscall */
-+
-+ /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
-+ mov r3, _NSIG8
-+ mov r2, 0
-+ add r1, r0, UCONTEXT_SIGMASK
-+ mov r0, SIG_SETMASK
-+ mov r8, __NR_rt_sigprocmask
-+ ARC_TRAP_INSN
-+ brhi r0, -1024, .Lcall_syscall_err
-+
-+ /* restore scratch/arg regs for makecontext() case */
-+ LOAD_REG(r0, r9, 22)
-+ LOAD_REG(r1, r9, 21)
-+ LOAD_REG(r2, r9, 20)
-+ LOAD_REG(r3, r9, 19)
-+ LOAD_REG(r4, r9, 18)
-+ LOAD_REG(r5, r9, 17)
-+ LOAD_REG(r6, r9, 16)
-+ LOAD_REG(r7, r9, 15)
-+
-+ /* restore callee saved registers */
-+ LOAD_REG(r13, r9, 37)
-+ LOAD_REG(r14, r9, 36)
-+ LOAD_REG(r15, r9, 35)
-+ LOAD_REG(r16, r9, 34)
-+ LOAD_REG(r17, r9, 33)
-+ LOAD_REG(r18, r9, 32)
-+ LOAD_REG(r19, r9, 31)
-+ LOAD_REG(r20, r9, 30)
-+ LOAD_REG(r21, r9, 29)
-+ LOAD_REG(r22, r9, 28)
-+ LOAD_REG(r23, r9, 27)
-+ LOAD_REG(r24, r9, 26)
-+ LOAD_REG(r25, r9, 25)
-+
-+ LOAD_REG(blink, r9, 7)
-+ LOAD_REG(fp, r9, 8)
-+ LOAD_REG(sp, r9, 23)
-+
-+ j [blink]
-+
-+PSEUDO_END(__setcontext)
-+weak_alias(__setcontext, setcontext)
-+
-+
-+/*
-+ Helper for activating makecontext() created context
-+ - r13 has @func, r14 has uc_link
-+*/
-+
-+ENTRY(__startcontext)
-+
-+ cfi_register (blink, r15)
-+
-+ /* call user @func, loaded in r13 by setcontext() */
-+ jl [r13]
-+
-+ /* if uc_link (r14) call setcontext with that */
-+ mov r0, r14
-+ breq r0, 0, 1f
-+
-+ bl __setcontext
-+1:
-+ /* exit with status 0 */
-+ b HIDDEN_JUMPTARGET(exit)
-+END(__startcontext)
-diff --git a/sysdeps/unix/sysv/linux/arc/shlib-versions b/sysdeps/unix/sysv/linux/arc/shlib-versions
-new file mode 100644
-index 000000000000..fdfe223b4371
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/shlib-versions
-@@ -0,0 +1,2 @@
-+DEFAULT GLIBC_2.27
-+ld=ld-linux-arc.so.2
-diff --git a/sysdeps/unix/sysv/linux/arc/sigaction.c b/sysdeps/unix/sysv/linux/arc/sigaction.c
-new file mode 100644
-index 000000000000..b437af677d58
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/sigaction.c
-@@ -0,0 +1,63 @@
-+/* ARC specific sigaction and signal restorer
-+ Copyright (C) 1997-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+#include <errno.h>
-+#include <signal.h>
-+#include <string.h>
-+#include <sys/syscall.h>
-+
-+extern void __default_rt_sa_restorer(void);
-+
-+#define SA_RESTORER 0x04000000
-+
-+/* If @act is not NULL, change the action for @sig to @act.
-+ If @oact is not NULL, put the old action for @sig in @oact. */
-+int
-+__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
-+{
-+ struct sigaction kact;
-+ const struct sigaction *arg;
-+
-+ /*
-+ * SA_RESTORER is only relevant for act != NULL case
-+ * (!act means caller only wants to know @oact)
-+ */
-+ if (act && !(act->sa_flags & SA_RESTORER)) {
-+ kact.sa_restorer = __default_rt_sa_restorer;
-+ kact.sa_flags = act->sa_flags | SA_RESTORER;
-+
-+ kact.sa_handler = act->sa_handler;
-+ kact.sa_mask = act->sa_mask;
-+
-+ arg = &kact;
-+ } else {
-+ arg = act;
-+ }
-+
-+ /*
-+ * syscall also expects sizeof(sa_mask) and asm-generic kernel syscall
-+ * ABI mandates it be 2 words (8 bytes below) although glibc defines
-+ * sigset_to be much larger (1024 / 32 == 64 bytes)
-+ */
-+ return INLINE_SYSCALL(rt_sigaction, 4, sig, arg, oact, _NSIG / 8);
-+}
-+
-+libc_hidden_def (__libc_sigaction)
-+
-+#include <nptl/sigaction.c>
-diff --git a/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h b/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h
-new file mode 100644
-index 000000000000..852bbd96d47f
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h
-@@ -0,0 +1,23 @@
-+/* ARC definitions for signal handling calling conventions.
-+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sys/ucontext.h>
-+#include "kernel-features.h"
-+
-+#define SIGCONTEXT int _code, struct ucontext_t *
-+#define GET_PC(ctx) ((void *) (ctx)->uc_mcontext.scratch.ret)
-diff --git a/sysdeps/unix/sysv/linux/arc/sigrestorer.S b/sysdeps/unix/sysv/linux/arc/sigrestorer.S
-new file mode 100644
-index 000000000000..d74cf0ec00e3
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/sigrestorer.S
-@@ -0,0 +1,28 @@
-+/* Default sigreturn stub for ARC Linux.
-+ Copyright (C) 2005-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sys/syscall.h>
-+#include <sysdep.h>
-+#include <tcb-offsets.h>
-+
-+ nop
-+ENTRY(__default_rt_sa_restorer)
-+ mov r8, __NR_rt_sigreturn
-+ ARC_TRAP_INSN
-+ j_s [blink]
-+PSEUDO_END_NOERRNO(__default_rt_sa_restorer)
-diff --git a/sysdeps/unix/sysv/linux/arc/swapcontext.S b/sysdeps/unix/sysv/linux/arc/swapcontext.S
-new file mode 100644
-index 000000000000..ad6bf70ab5e2
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/swapcontext.S
-@@ -0,0 +1,92 @@
-+/* Save and set current context for ARC
-+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include "ucontext-macros.h"
-+
-+/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
-+
-+ENTRY(__swapcontext)
-+
-+ /* save context into @oucp pointed to by r0 */
-+
-+ SAVE_REG(r13, r0, 37)
-+ SAVE_REG(r14, r0, 36)
-+ SAVE_REG(r15, r0, 35)
-+ SAVE_REG(r16, r0, 34)
-+ SAVE_REG(r17, r0, 33)
-+ SAVE_REG(r18, r0, 32)
-+ SAVE_REG(r19, r0, 31)
-+ SAVE_REG(r20, r0, 30)
-+ SAVE_REG(r21, r0, 29)
-+ SAVE_REG(r22, r0, 28)
-+ SAVE_REG(r23, r0, 27)
-+ SAVE_REG(r24, r0, 26)
-+ SAVE_REG(r25, r0, 25)
-+
-+ SAVE_REG(blink, r0, 7)
-+ SAVE_REG(fp, r0, 8)
-+ SAVE_REG(sp, r0, 23)
-+
-+ /* save 0 in r0 placeholder to return 0 when @oucp activated */
-+ mov r9, 0
-+ SAVE_REG(r9, r0, 22)
-+
-+ /* load context from @ucp */
-+
-+ mov r9, r1 ; safekeep @ucp across syscall
-+
-+ /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask, _NSIG8) */
-+ mov r3, _NSIG8
-+ add r2, r0, UCONTEXT_SIGMASK
-+ add r1, r1, UCONTEXT_SIGMASK
-+ mov r0, SIG_SETMASK
-+ mov r8, __NR_rt_sigprocmask
-+ ARC_TRAP_INSN
-+ brhi r0, -1024, .Lcall_syscall_err
-+
-+ LOAD_REG(r0, r9, 22)
-+ LOAD_REG(r1, r9, 21)
-+ LOAD_REG(r2, r9, 20)
-+ LOAD_REG(r3, r9, 19)
-+ LOAD_REG(r4, r9, 18)
-+ LOAD_REG(r5, r9, 17)
-+ LOAD_REG(r6, r9, 16)
-+ LOAD_REG(r7, r9, 15)
-+
-+ LOAD_REG(r13, r9, 37)
-+ LOAD_REG(r14, r9, 36)
-+ LOAD_REG(r15, r9, 35)
-+ LOAD_REG(r16, r9, 34)
-+ LOAD_REG(r17, r9, 33)
-+ LOAD_REG(r18, r9, 32)
-+ LOAD_REG(r19, r9, 31)
-+ LOAD_REG(r20, r9, 30)
-+ LOAD_REG(r21, r9, 29)
-+ LOAD_REG(r22, r9, 28)
-+ LOAD_REG(r23, r9, 27)
-+ LOAD_REG(r24, r9, 26)
-+ LOAD_REG(r25, r9, 25)
-+
-+ LOAD_REG(blink, r9, 7)
-+ LOAD_REG(fp, r9, 8)
-+ LOAD_REG(sp, r9, 23)
-+
-+ j [blink]
-+
-+PSEUDO_END(__swapcontext)
-+weak_alias(__swapcontext, swapcontext)
-diff --git a/sysdeps/unix/sysv/linux/arc/sys/cachectl.h b/sysdeps/unix/sysv/linux/arc/sys/cachectl.h
-new file mode 100644
-index 000000000000..c2ba820e50b7
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/sys/cachectl.h
-@@ -0,0 +1,36 @@
-+/* cacheflush - flush contents of instruction and/or data cache.
-+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SYS_CACHECTL_H
-+#define _SYS_CACHECTL_H 1
-+
-+#include <features.h>
-+
-+/* Get the kernel definition for the op bits. */
-+#include <asm/cachectl.h>
-+
-+__BEGIN_DECLS
-+
-+#ifdef __USE_MISC
-+extern int cacheflush (void *__addr, const int __nbytes, const int __op) __THROW;
-+#endif
-+extern int _flush_cache (char *__addr, const int __nbytes, const int __op) __THROW;
-+
-+__END_DECLS
-+
-+#endif /* sys/cachectl.h */
-diff --git a/sysdeps/unix/sysv/linux/arc/sys/procfs.h b/sysdeps/unix/sysv/linux/arc/sys/procfs.h
-new file mode 100644
-index 000000000000..3c1689bc4b91
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/sys/procfs.h
-@@ -0,0 +1,123 @@
-+/* Core image file related definitions, ARC version.
-+ Copyright (C) 1996-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SYS_PROCFS_H
-+#define _SYS_PROCFS_H 1
-+
-+/* This is somewhat modelled after the file of the same name on SVR4
-+ systems. It provides a definition of the core file format for ELF
-+ used on Linux. It doesn't have anything to do with the /proc file
-+ system, even though Linux has one.
-+
-+ Anyway, the whole purpose of this file is for GDB and GDB only.
-+ Don't read too much into it. Don't use it for anything other than
-+ GDB unless you know what you are doing. */
-+
-+#include <features.h>
-+#include <sys/time.h>
-+#include <sys/types.h>
-+#include <sys/user.h>
-+
-+__BEGIN_DECLS
-+
-+/* Type for a general-purpose register. */
-+typedef unsigned long elf_greg_t;
-+
-+/* And the whole bunch of them. We could have used `struct
-+ user_regs' directly in the typedef, but tradition says that
-+ the register set is an array, which does have some peculiar
-+ semantics, so leave it that way. */
-+#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
-+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-+
-+/* Register set for the floating-point registers. */
-+typedef struct { } elf_fpregset_t;
-+
-+/* Signal info. */
-+struct elf_siginfo
-+ {
-+ int si_signo; /* Signal number. */
-+ int si_code; /* Extra code. */
-+ int si_errno; /* Errno. */
-+ };
-+
-+/* Definitions to generate Intel SVR4-like core files. These mostly
-+ have the same names as the SVR4 types with "elf_" tacked on the
-+ front to prevent clashes with Linux definitions, and the typedef
-+ forms have been avoided. This is mostly like the SVR4 structure,
-+ but more Linuxy, with things that Linux does not support and which
-+ GDB doesn't really use excluded. */
-+
-+struct elf_prstatus
-+ {
-+ struct elf_siginfo pr_info; /* Info associated with signal. */
-+ short int pr_cursig; /* Current signal. */
-+ unsigned long int pr_sigpend; /* Set of pending signals. */
-+ unsigned long int pr_sighold; /* Set of held signals. */
-+ __pid_t pr_pid;
-+ __pid_t pr_ppid;
-+ __pid_t pr_pgrp;
-+ __pid_t pr_sid;
-+ struct timeval pr_utime; /* User time. */
-+ struct timeval pr_stime; /* System time. */
-+ struct timeval pr_cutime; /* Cumulative user time. */
-+ struct timeval pr_cstime; /* Cumulative system time. */
-+ elf_gregset_t pr_reg; /* GP registers. */
-+ int pr_fpvalid; /* True if math copro being used. */
-+ };
-+
-+
-+#define ELF_PRARGSZ (80) /* Number of chars for args. */
-+
-+struct elf_prpsinfo
-+ {
-+ char pr_state; /* Numeric process state. */
-+ char pr_sname; /* Char for pr_state. */
-+ char pr_zomb; /* Zombie. */
-+ char pr_nice; /* Nice val. */
-+ unsigned long int pr_flag; /* Flags. */
-+ unsigned short int pr_uid;
-+ unsigned short int pr_gid;
-+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
-+ /* Lots missing */
-+ char pr_fname[16]; /* Filename of executable. */
-+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
-+ };
-+
-+/* The rest of this file provides the types for emulation of the
-+ Solaris <proc_service.h> interfaces that should be implemented by
-+ users of libthread_db. */
-+
-+/* Addresses. */
-+typedef void *psaddr_t;
-+
-+/* Register sets. Linux has different names. */
-+typedef elf_gregset_t prgregset_t;
-+typedef elf_fpregset_t prfpregset_t;
-+
-+/* We don't have any differences between processes and threads,
-+ therefore have only one PID type. */
-+typedef __pid_t lwpid_t;
-+
-+/* Process status and info. In the end we do provide typedefs for them. */
-+typedef struct elf_prstatus prstatus_t;
-+typedef struct elf_prpsinfo prpsinfo_t;
-+
-+__END_DECLS
-+
-+#endif /* sys/procfs.h */
-diff --git a/sysdeps/unix/sysv/linux/arc/sys/ucontext.h b/sysdeps/unix/sysv/linux/arc/sys/ucontext.h
-new file mode 100644
-index 000000000000..e91abc3d9fba
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/sys/ucontext.h
-@@ -0,0 +1,71 @@
-+/* struct ucontext definition, ARC version.
-+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+/* System V/ARC ABI compliant context switching support. */
-+
-+#ifndef _SYS_UCONTEXT_H
-+#define _SYS_UCONTEXT_H 1
-+
-+#include <features.h>
-+
-+#include <bits/types/sigset_t.h>
-+#include <bits/types/stack_t.h>
-+
-+#ifdef __USE_MISC
-+# define __ctx(fld) fld
-+#else
-+# define __ctx(fld) __ ## fld
-+#endif
-+
-+typedef struct
-+ {
-+ unsigned long __ctx(pad);
-+ struct {
-+ unsigned long __ctx(bta);
-+ unsigned long __ctx(lp_start), __ctx(lp_end), __ctx(lp_count);
-+ unsigned long __ctx(status32), __ctx(ret), __ctx(blink);
-+ unsigned long __ctx(fp), __ctx(gp);
-+ unsigned long __ctx(r12), __ctx(r11), __ctx(r10), __ctx(r9), __ctx(r8);
-+ unsigned long __ctx(r7), __ctx(r6), __ctx(r5), __ctx(r4), __ctx(r3);
-+ unsigned long __ctx(r2), __ctx(r1), __ctx(r0);
-+ unsigned long __ctx(sp);
-+ } __ctx(scratch);
-+ unsigned long __ctx(pad2);
-+ struct {
-+ unsigned long __ctx(r25), __ctx(r24), __ctx(r23), __ctx(r22), __ctx(r21);
-+ unsigned long __ctx(r20), __ctx(r19), __ctx(r18), __ctx(r17), __ctx(r16);
-+ unsigned long __ctx(r15), __ctx(r14), __ctx(r13);
-+ } __ctx(callee);
-+ unsigned long __ctx(efa);
-+ unsigned long __ctx(stop_pc);
-+ unsigned long __ctx(r30), __ctx(r58), __ctx(r59);
-+ } mcontext_t;
-+
-+/* Userlevel context. */
-+typedef struct ucontext_t
-+ {
-+ unsigned long __ctx(uc_flags);
-+ struct ucontext_t *uc_link;
-+ stack_t uc_stack;
-+ mcontext_t uc_mcontext;
-+ sigset_t uc_sigmask;
-+ } ucontext_t;
-+
-+#undef __ctx
-+
-+#endif /* sys/ucontext.h */
-diff --git a/sysdeps/unix/sysv/linux/arc/sys/user.h b/sysdeps/unix/sysv/linux/arc/sys/user.h
-new file mode 100644
-index 000000000000..1f7129799bf6
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/sys/user.h
-@@ -0,0 +1,32 @@
-+/* ptrace register data format definitions.
-+ Copyright (C) 1998-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SYS_USER_H
-+#define _SYS_USER_H 1
-+
-+/* struct user_regs_struct is exported by kernel header
-+ * However apps like strace also expect a struct user, so it's better to
-+ * have a dummy implementation
-+ */
-+#include <asm/ptrace.h>
-+
-+struct user {
-+ int dummy;
-+};
-+
-+#endif /* sys/user.h */
-diff --git a/sysdeps/unix/sysv/linux/arc/syscall.S b/sysdeps/unix/sysv/linux/arc/syscall.S
-new file mode 100644
-index 000000000000..8f76fa43e95f
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/syscall.S
-@@ -0,0 +1,38 @@
-+/* syscall - indirect system call.
-+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+
-+ENTRY (syscall)
-+ mov_s r8, r0
-+ mov_s r0, r1
-+ mov_s r1, r2
-+ mov_s r2, r3
-+ mov_s r3, r4
-+#ifdef __ARC700__
-+ mov r4, r5
-+ mov r5, r6
-+#else
-+ mov_s r4, r5
-+ mov_s r5, r6
-+#endif
-+
-+ ARC_TRAP_INSN
-+ brhi r0, -1024, .Lcall_syscall_err
-+ j [blink]
-+PSEUDO_END (syscall)
-diff --git a/sysdeps/unix/sysv/linux/arc/sysdep.c b/sysdeps/unix/sysv/linux/arc/sysdep.c
-new file mode 100644
-index 000000000000..d9bcc305b846
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/sysdep.c
-@@ -0,0 +1,33 @@
-+/* ARC wrapper for setting errno
-+ Copyright (C) 1997-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+#include <errno.h>
-+
-+/* All syscall handler come here to avoid generated code bloat due to
-+ * GOT reference to errno_location or it's equivalent
-+ */
-+int __syscall_error(int err_no)
-+{
-+ __set_errno(-err_no);
-+ return -1;
-+}
-+
-+#if IS_IN (libc)
-+hidden_def (__syscall_error)
-+#endif
-diff --git a/sysdeps/unix/sysv/linux/arc/sysdep.h b/sysdeps/unix/sysv/linux/arc/sysdep.h
-new file mode 100644
-index 000000000000..9ed06a3206b0
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/sysdep.h
-@@ -0,0 +1,260 @@
-+/* Assembler macros for ARC.
-+ Copyright (C) 2000-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _LINUX_ARC_SYSDEP_H
-+#define _LINUX_ARC_SYSDEP_H 1
-+
-+#include <asm/unistd.h>
-+#include <sysdeps/arc/sysdep.h>
-+#include <sysdeps/unix/sysv/linux/generic/sysdep.h>
-+
-+/* For RTLD_PRIVATE_ERRNO. */
-+#include <dl-sysdep.h>
-+
-+#include <tls.h>
-+
-+#undef SYS_ify
-+#define SYS_ify(syscall_name) __NR_##syscall_name
-+
-+#ifdef __ASSEMBLER__
-+
-+/* This is a "normal" system call stub: if there is an error,
-+ it returns -1 and sets errno. */
-+
-+# undef PSEUDO
-+# define PSEUDO(name, syscall_name, args) \
-+ PSEUDO_NOERRNO(name, syscall_name, args) ASM_LINE_SEP \
-+ brhi r0, -1024, .Lcall_syscall_err ASM_LINE_SEP
-+
-+#define ret j [blink]
-+
-+# undef PSEUDO_END
-+# define PSEUDO_END(name) \
-+ SYSCALL_ERROR_HANDLER ASM_LINE_SEP \
-+ END (name)
-+
-+/* --------- helper for SYSCALL_NOERRNO ----------- */
-+
-+/* This kind of system call stub never returns an error.
-+ We return the return value register to the caller unexamined. */
-+
-+# undef PSEUDO_NOERRNO
-+# define PSEUDO_NOERRNO(name, syscall_name, args) \
-+ .text ASM_LINE_SEP \
-+ ENTRY (name) ASM_LINE_SEP \
-+ DO_CALL (syscall_name, args) ASM_LINE_SEP \
-+
-+/* return the return value register unexamined
-+ * r0 is both syscall return reg and function return reg, so no need to do
-+ * anything
-+ */
-+# define ret_NOERRNO \
-+ j_s [blink] ASM_LINE_SEP
-+
-+# undef PSEUDO_END_NOERRNO
-+# define PSEUDO_END_NOERRNO(name) \
-+ END (name)
-+
-+/* --------- helper for SYSCALL_ERRVAL ----------- */
-+
-+/* This kind of system call stub returns the errno code as its return
-+ value, or zero for success. We may massage the kernel's return value
-+ to meet that ABI, but we never set errno here. */
-+
-+# undef PSEUDO_ERRVAL
-+# define PSEUDO_ERRVAL(name, syscall_name, args) \
-+ PSEUDO_NOERRNO(name, syscall_name, args) ASM_LINE_SEP
-+
-+/* don't set errno, return kernel error (in errno form) or zero */
-+# define ret_ERRVAL \
-+ rsub r0, r0, 0 ASM_LINE_SEP \
-+ ret_NOERRNO
-+
-+# undef PSEUDO_END_ERRVAL
-+# define PSEUDO_END_ERRVAL(name) \
-+ END (name)
-+
-+
-+/* To reduce the code footprint, we confine the actual errno access
-+ * to single place in __syscall_error()
-+ * this takes raw kernel error value, sets errno and returns -1
-+ */
-+#if IS_IN (libc)
-+#define CALL_ERRNO_SETTER_C bl PLTJMP(HIDDEN_JUMPTARGET(__syscall_error))
-+#else
-+#define CALL_ERRNO_SETTER_C bl PLTJMP(__syscall_error)
-+#endif
-+
-+# define SYSCALL_ERROR_HANDLER \
-+.Lcall_syscall_err: ASM_LINE_SEP \
-+ st.a blink, [sp, -4] ASM_LINE_SEP \
-+ cfi_adjust_cfa_offset (4) ASM_LINE_SEP \
-+ cfi_rel_offset (blink, 0) ASM_LINE_SEP \
-+ CALL_ERRNO_SETTER_C ASM_LINE_SEP \
-+ ld.ab blink, [sp, 4] ASM_LINE_SEP \
-+ cfi_adjust_cfa_offset (-4) ASM_LINE_SEP \
-+ cfi_restore (blink) ASM_LINE_SEP \
-+ j [blink]
-+
-+# define DO_CALL(syscall_name, args) \
-+ mov r8, SYS_ify (syscall_name) ASM_LINE_SEP \
-+ ARC_TRAP_INSN ASM_LINE_SEP
-+
-+#define ARC_TRAP_INSN trap_s 0
-+
-+#else /* !__ASSEMBLER__ */
-+
-+# define SINGLE_THREAD_BY_GLOBAL 1
-+
-+/* In order to get __set_errno() definition in INLINE_SYSCALL. */
-+#include <errno.h>
-+
-+extern int __syscall_error (int);
-+
-+#if IS_IN (libc)
-+hidden_proto (__syscall_error)
-+#define CALL_ERRNO_SETTER "bl __syscall_error \n\t"
-+#else
-+#define CALL_ERRNO_SETTER "bl __syscall_error@plt \n\t"
-+#endif
-+
-+
-+/* Define a macro which expands into the inline wrapper code for a system
-+ call. */
-+#undef INLINE_SYSCALL
-+#define INLINE_SYSCALL(name, nr_args, args...) \
-+({ \
-+ register int __res __asm__("r0"); \
-+ __res = INTERNAL_SYSCALL_NCS(__NR_##name, , nr_args, args); \
-+ if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P ((__res), ), 0)) \
-+ { \
-+ asm volatile ("st.a blink, [sp, -4] \n\t" \
-+ CALL_ERRNO_SETTER \
-+ "ld.ab blink, [sp, 4] \n\t" \
-+ :"+r" (__res) \
-+ : \
-+ :"r1","r2","r3","r4","r5","r6", \
-+ "r7","r8","r9","r10","r11","r12" \
-+ ); \
-+ } \
-+ __res; \
-+})
-+
-+#undef INTERNAL_SYSCALL_DECL
-+#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
-+
-+#undef INTERNAL_SYSCALL_ERRNO
-+# define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
-+
-+/* -1 to -1023 are valid errno values */
-+#undef INTERNAL_SYSCALL_ERROR_P
-+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
-+ ((unsigned int) (val) > -1024U)
-+
-+#define ARC_TRAP_INSN "trap_s 0 \n\t"
-+
-+#undef INTERNAL_SYSCALL_RAW
-+#define INTERNAL_SYSCALL_RAW(name, err, nr_args, args...) \
-+({ \
-+ /* Per ABI, r0 is 1st arg and return reg */ \
-+ register int __ret __asm__("r0"); \
-+ register int _sys_num __asm__("r8"); \
-+ \
-+ LOAD_ARGS_##nr_args (name, args) \
-+ \
-+ __asm__ volatile ( \
-+ ARC_TRAP_INSN \
-+ : "+r" (__ret) \
-+ : "r"(_sys_num) ASM_ARGS_##nr_args \
-+ : "memory"); \
-+ \
-+ __ret; \
-+})
-+
-+/* Macros for setting up inline __asm__ input regs */
-+#define ASM_ARGS_0
-+#define ASM_ARGS_1 ASM_ARGS_0, "r" (__ret)
-+#define ASM_ARGS_2 ASM_ARGS_1, "r" (_arg2)
-+#define ASM_ARGS_3 ASM_ARGS_2, "r" (_arg3)
-+#define ASM_ARGS_4 ASM_ARGS_3, "r" (_arg4)
-+#define ASM_ARGS_5 ASM_ARGS_4, "r" (_arg5)
-+#define ASM_ARGS_6 ASM_ARGS_5, "r" (_arg6)
-+#define ASM_ARGS_7 ASM_ARGS_6, "r" (_arg7)
-+
-+/* Macros for converting sys-call wrapper args into sys call args */
-+#define LOAD_ARGS_0(nm, arg) \
-+ _sys_num = (int) (nm);
-+
-+#define LOAD_ARGS_1(nm, arg1) \
-+ __ret = (int) (arg1); \
-+ LOAD_ARGS_0 (nm, arg1)
-+
-+/*
-+ * Note that the use of _tmpX might look superflous, however it is needed
-+ * to ensure that register variables are not clobbered if arg happens to be
-+ * a function call itself. e.g. sched_setaffinity() calling getpid() for arg2
-+ *
-+ * Also this specific order of recursive calling is important to segregate
-+ * the tmp args evaluation (function call case described above) and assigment
-+ * of register variables
-+ */
-+#define LOAD_ARGS_2(nm, arg1, arg2) \
-+ int _tmp2 = (int) (arg2); \
-+ LOAD_ARGS_1 (nm, arg1) \
-+ register int _arg2 __asm__ ("r1") = _tmp2;
-+
-+#define LOAD_ARGS_3(nm, arg1, arg2, arg3) \
-+ int _tmp3 = (int) (arg3); \
-+ LOAD_ARGS_2 (nm, arg1, arg2) \
-+ register int _arg3 __asm__ ("r2") = _tmp3;
-+
-+#define LOAD_ARGS_4(nm, arg1, arg2, arg3, arg4) \
-+ int _tmp4 = (int) (arg4); \
-+ LOAD_ARGS_3 (nm, arg1, arg2, arg3) \
-+ register int _arg4 __asm__ ("r3") = _tmp4;
-+
-+#define LOAD_ARGS_5(nm, arg1, arg2, arg3, arg4, arg5) \
-+ int _tmp5 = (int) (arg5); \
-+ LOAD_ARGS_4 (nm, arg1, arg2, arg3, arg4) \
-+ register int _arg5 __asm__ ("r4") = _tmp5;
-+
-+#define LOAD_ARGS_6(nm, arg1, arg2, arg3, arg4, arg5, arg6) \
-+ int _tmp6 = (int) (arg6); \
-+ LOAD_ARGS_5 (nm, arg1, arg2, arg3, arg4, arg5) \
-+ register int _arg6 __asm__ ("r5") = _tmp6;
-+
-+#define LOAD_ARGS_7(nm, arg1, arg2, arg3, arg4, arg5, arg6, arg7)\
-+ int _tmp7 = (int) (arg7); \
-+ LOAD_ARGS_6 (nm, arg1, arg2, arg3, arg4, arg5, arg6) \
-+ register int _arg7 __asm__ ("r6") = _tmp7;
-+
-+#undef INTERNAL_SYSCALL
-+#define INTERNAL_SYSCALL(name, err, nr, args...) \
-+ INTERNAL_SYSCALL_RAW(SYS_ify(name), err, nr, args)
-+
-+#undef INTERNAL_SYSCALL_NCS
-+#define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
-+ INTERNAL_SYSCALL_RAW(number, err, nr, args)
-+
-+/* Pointer mangling not yet supported */
-+# define PTR_MANGLE(var) (void) (var)
-+# define PTR_DEMANGLE(var) (void) (var)
-+
-+#endif /* !__ASSEMBLER__ */
-+
-+#endif /* linux/arc/sysdep.h */
-diff --git a/sysdeps/unix/sysv/linux/arc/ucontext-macros.h b/sysdeps/unix/sysv/linux/arc/ucontext-macros.h
-new file mode 100644
-index 000000000000..a5d861476f3c
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/ucontext-macros.h
-@@ -0,0 +1,29 @@
-+/* Macros for ucontext routines - ARC
-+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _LINUX_ARC_UCONTEXT_MACROS_H
-+#define _LINUX_ARC_UCONTEXT_MACROS_H
-+
-+#include <sysdep.h>
-+
-+#include "ucontext_i.h"
-+
-+#define SAVE_REG(reg, rbase, off) st reg, [rbase, UCONTEXT_MCONTEXT + off * 4]
-+#define LOAD_REG(reg, rbase, off) ld reg, [rbase, UCONTEXT_MCONTEXT + off * 4]
-+
-+#endif
-diff --git a/sysdeps/unix/sysv/linux/arc/ucontext_i.sym b/sysdeps/unix/sysv/linux/arc/ucontext_i.sym
-new file mode 100644
-index 000000000000..f0a209e581ab
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/ucontext_i.sym
-@@ -0,0 +1,20 @@
-+#include <inttypes.h>
-+#include <signal.h>
-+#include <stddef.h>
-+#include <sys/ucontext.h>
-+
-+SIG_BLOCK
-+SIG_SETMASK
-+
-+-- sizeof(sigset_t) expected by kernel: see comment in ARC sigaction.c for details
-+_NSIG8 (_NSIG / 8)
-+
-+-- Offsets of the fields in the ucontext_t structure.
-+#define ucontext(member) offsetof (ucontext_t, member)
-+
-+UCONTEXT_FLAGS ucontext (uc_flags)
-+UCONTEXT_LINK ucontext (uc_link)
-+UCONTEXT_STACK ucontext (uc_stack)
-+UCONTEXT_MCONTEXT ucontext (uc_mcontext)
-+UCONTEXT_SIGMASK ucontext (uc_sigmask)
-+UCONTEXT_SIZE sizeof (ucontext_t)
-diff --git a/sysdeps/unix/sysv/linux/arc/vfork.S b/sysdeps/unix/sysv/linux/arc/vfork.S
-new file mode 100644
-index 000000000000..6d7f63c9900b
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/arc/vfork.S
-@@ -0,0 +1,42 @@
-+/* vfork for ARC Linux.
-+ Copyright (C) 2005-2018 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sys/syscall.h>
-+#include <sysdep.h>
-+#include <tcb-offsets.h>
-+#define _SIGNAL_H
-+#include <bits/signum.h> /* For SIGCHLD */
-+
-+#define CLONE_VM 0x00000100
-+#define CLONE_VFORK 0x00004000
-+#define CLONE_FLAGS_FOR_VFORK (CLONE_VM|CLONE_VFORK|SIGCHLD)
-+
-+ENTRY(__vfork)
-+ mov r0, CLONE_FLAGS_FOR_VFORK
-+ mov_s r1, sp
-+ mov r8, __NR_clone
-+ ARC_TRAP_INSN
-+
-+ cmp r0, 0
-+ jge [blink] ; child continues
-+
-+ b __syscall_error
-+PSEUDO_END (__vfork)
-+libc_hidden_def (__vfork)
-+
-+weak_alias (__vfork, vfork)
-diff --git a/sysdeps/unix/sysv/linux/syscall-names.list b/sysdeps/unix/sysv/linux/syscall-names.list
-index 5306d538e644..d038840b67d3 100644
---- a/sysdeps/unix/sysv/linux/syscall-names.list
-+++ b/sysdeps/unix/sysv/linux/syscall-names.list
-@@ -42,6 +42,9 @@ adjtimex
- afs_syscall
- alarm
- alloc_hugepages
-+arc_gettls
-+arc_settls
-+arc_usr_cmpxchg
- arch_prctl
- arm_fadvise64_64
- arm_sync_file_range
-diff --git a/timezone/tst-tzset.c b/timezone/tst-tzset.c
-index 27f986b56dab..fca704c2ad2d 100644
---- a/timezone/tst-tzset.c
-+++ b/timezone/tst-tzset.c
-@@ -25,7 +25,6 @@
- #include <time.h>
- #include <unistd.h>
-
--#define TIMEOUT 5
- static int do_test (void);
- #define TEST_FUNCTION do_test ()
- #include "../test-skeleton.c"
-diff --git a/timezone/zic.c b/timezone/zic.c
-index e738386600c2..53b25256d78c 100644
---- a/timezone/zic.c
-+++ b/timezone/zic.c
-@@ -36,7 +36,7 @@ typedef int_fast64_t zic_t;
- #include <sys/stat.h>
- #endif
- #ifdef S_IRUSR
--#define MKDIR_UMASK (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH)
-+#define MKDIR_UMASK (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH)
- #else
- #define MKDIR_UMASK 0755
- #endif