diff options
Diffstat (limited to 'bsp/meta-synopsys/recipes-core')
11 files changed, 111 insertions, 8680 deletions
diff --git a/bsp/meta-synopsys/recipes-core/expat/expat_2.2.6.bbappend b/bsp/meta-synopsys/recipes-core/expat/expat_2.2.6.bbappend deleted file mode 100644 index 59ef6dd7..00000000 --- a/bsp/meta-synopsys/recipes-core/expat/expat_2.2.6.bbappend +++ /dev/null @@ -1 +0,0 @@ -CFLAGS_append = " -O1" 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 diff --git a/bsp/meta-synopsys/recipes-core/glibc/files/0032-Add-with-nonshared-cflags-option-to-configure.patch b/bsp/meta-synopsys/recipes-core/glibc/files/0032-Add-with-nonshared-cflags-option-to-configure.patch deleted file mode 100644 index 06556430..00000000 --- a/bsp/meta-synopsys/recipes-core/glibc/files/0032-Add-with-nonshared-cflags-option-to-configure.patch +++ /dev/null @@ -1,162 +0,0 @@ -From 2add82381a59df74de413d11166a9840e870e072 Mon Sep 17 00:00:00 2001 -From: Florian Weimer <fweimer@redhat.com> -Date: Fri, 17 Aug 2018 11:44:39 +0200 -Subject: [PATCH] Add --with-nonshared-cflags option to configure - -Upstream status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;f=INSTALL;h=6413fcde4fe0272eee469aaf41c8bb1d6e6a270f] - -Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> ---- - INSTALL | 16 ++++++++++++++++ - Makeconfig | 2 +- - config.make.in | 1 + - configure | 14 ++++++++++++++ - configure.ac | 8 ++++++++ - manual/install.texi | 14 ++++++++++++++ - 6 files changed, 54 insertions(+), 1 deletion(-) - -diff --git a/INSTALL b/INSTALL -index 781cb8415b..3e566ebfef 100644 ---- a/INSTALL -+++ b/INSTALL -@@ -90,6 +90,22 @@ if 'CFLAGS' is specified it must enable optimization. For example: - library will still be usable, but functionality may be lost--for - example, you can't build a shared libc with old binutils. - -+'--with-nonshared-cflags=CFLAGS' -+ Use additional compiler flags CFLAGS to build the parts of the -+ library which are always statically linked into applications and -+ libraries even with shared linking (that is, the object files -+ contained in 'lib*_nonshared.a' libraries). The build process will -+ automatically use the appropriate flags, but this option can be -+ used to set additional flags required for building applications and -+ libraries, to match local policy. For example, if such a policy -+ requires that all code linked into applications must be built with -+ source fortification, -+ '--with-nonshared-cflags=-Wp,-D_FORTIFY_SOURCE=2' will make sure -+ that the objects in 'libc_nonshared.a' are compiled with this flag -+ (although this will not affect the generated code in this -+ particular case and potentially change debugging information and -+ metadata only). -+ - '--disable-shared' - Don't build shared libraries even if it is possible. Not all - systems support shared libraries; you need ELF support and -diff --git a/Makeconfig b/Makeconfig -index 608ffe648c..b0b27f0113 100644 ---- a/Makeconfig -+++ b/Makeconfig -@@ -1038,7 +1038,7 @@ object-suffixes-for-libc += .oS - # Must build the routines as PIC, though, because they can end up in (users') - # shared objects. We don't want to use CFLAGS-os because users may, for - # example, make that processor-specific. --CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag) -+CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag) $(extra-nonshared-cflags) - CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1 - libtype.oS = lib%_nonshared.a - endif -diff --git a/config.make.in b/config.make.in -index d9891b2cd8..a6fe48d31f 100644 ---- a/config.make.in -+++ b/config.make.in -@@ -110,6 +110,7 @@ BUILD_CC = @BUILD_CC@ - CFLAGS = @CFLAGS@ - CPPFLAGS-config = @CPPFLAGS@ - CPPUNDEFS = @CPPUNDEFS@ -+extra-nonshared-cflags = @extra_nonshared_cflags@ - ASFLAGS-config = @ASFLAGS_config@ - AR = @AR@ - NM = @NM@ -diff --git a/configure b/configure -index fde57d63fe..285a6537f0 100755 ---- a/configure -+++ b/configure -@@ -684,6 +684,7 @@ force_install - bindnow - hardcoded_path_in_tests - enable_timezone_tools -+extra_nonshared_cflags - use_default_link - sysheaders - ac_ct_CXX -@@ -762,6 +763,7 @@ with_binutils - with_selinux - with_headers - with_default_link -+with_nonshared_cflags - enable_sanity_checks - enable_shared - enable_profile -@@ -1482,6 +1484,8 @@ Optional Packages: - --with-headers=PATH location of system headers to use (for example - /usr/src/linux/include) [default=compiler default] - --with-default-link do not use explicit linker scripts -+ --with-nonshared-cflags=CFLAGS -+ build nonshared libraries with additional CFLAGS - --with-cpu=CPU select code for CPU variant - - Some influential environment variables: -@@ -3339,6 +3343,16 @@ else - fi - - -+ -+# Check whether --with-nonshared-cflags was given. -+if test "${with_nonshared_cflags+set}" = set; then : -+ withval=$with_nonshared_cflags; extra_nonshared_cflags=$withval -+else -+ extra_nonshared_cflags= -+fi -+ -+ -+ - # Check whether --enable-sanity-checks was given. - if test "${enable_sanity_checks+set}" = set; then : - enableval=$enable_sanity_checks; enable_sanity=$enableval -diff --git a/configure.ac b/configure.ac -index 014e09a5d5..8045d44dd0 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -154,6 +154,14 @@ AC_ARG_WITH([default-link], - [use_default_link=$withval], - [use_default_link=default]) - -+dnl Additional build flags injection. -+AC_ARG_WITH([nonshared-cflags], -+ AC_HELP_STRING([--with-nonshared-cflags=CFLAGS], -+ [build nonshared libraries with additional CFLAGS]), -+ [extra_nonshared_cflags=$withval], -+ [extra_nonshared_cflags=]) -+AC_SUBST(extra_nonshared_cflags) -+ - AC_ARG_ENABLE([sanity-checks], - AC_HELP_STRING([--disable-sanity-checks], - [really do not use threads (should not be used except in special situations) @<:@default=yes@:>@]), -diff --git a/manual/install.texi b/manual/install.texi -index c39e63bf3b..5476bb66f7 100644 ---- a/manual/install.texi -+++ b/manual/install.texi -@@ -117,6 +117,20 @@ problem and suppress these constructs, so that the library will still be - usable, but functionality may be lost---for example, you can't build a - shared libc with old binutils. - -+@item --with-nonshared-cflags=@var{cflags} -+Use additional compiler flags @var{cflags} to build the parts of the -+library which are always statically linked into applications and -+libraries even with shared linking (that is, the object files contained -+in @file{lib*_nonshared.a} libraries). The build process will -+automatically use the appropriate flags, but this option can be used to -+set additional flags required for building applications and libraries, -+to match local policy. For example, if such a policy requires that all -+code linked into applications must be built with source fortification, -+@samp{--with-nonshared-cflags=-Wp,-D_FORTIFY_SOURCE=2} will make sure -+that the objects in @file{libc_nonshared.a} are compiled with this flag -+(although this will not affect the generated code in this particular -+case and potentially change debugging information and metadata only). -+ - @c disable static doesn't work currently - @c @item --disable-static - @c Don't build static libraries. Static libraries aren't that useful these --- -2.16.2 - diff --git a/bsp/meta-synopsys/recipes-core/glibc/glibc-initial_2.28.bbappend b/bsp/meta-synopsys/recipes-core/glibc/glibc-initial_2.28.bbappend deleted file mode 100644 index 25f96bf3..00000000 --- a/bsp/meta-synopsys/recipes-core/glibc/glibc-initial_2.28.bbappend +++ /dev/null @@ -1,4 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/files:" -SRC_URI += "file://0031-Add-ARC-architecture.patch \ - file://0032-Add-with-nonshared-cflags-option-to-configure.patch \ -" diff --git a/bsp/meta-synopsys/recipes-core/glibc/glibc_2.28.bbappend b/bsp/meta-synopsys/recipes-core/glibc/glibc_2.28.bbappend deleted file mode 100644 index 25f96bf3..00000000 --- a/bsp/meta-synopsys/recipes-core/glibc/glibc_2.28.bbappend +++ /dev/null @@ -1,4 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/files:" -SRC_URI += "file://0031-Add-ARC-architecture.patch \ - file://0032-Add-with-nonshared-cflags-option-to-configure.patch \ -" diff --git a/bsp/meta-synopsys/recipes-core/glibc/glibc_2.31.bbappend b/bsp/meta-synopsys/recipes-core/glibc/glibc_2.31.bbappend new file mode 100644 index 00000000..f72214cf --- /dev/null +++ b/bsp/meta-synopsys/recipes-core/glibc/glibc_2.31.bbappend @@ -0,0 +1,33 @@ +CFLAGS_append += " -Wno-error" +EXTRA_OECONF += " --disable-werror --disable-multilib" +SRCBRANCH = "master" +SRCREV_glibc = "758caf37366c3bebd349cd3107341dbfd761189a" +SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ + file://etc/ld.so.conf \ + file://generate-supported.mk \ + file://makedbs.sh \ + \ + ${NATIVESDKFIXES} \ + file://0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch \ + file://0009-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch \ + file://0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch \ + file://0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \ + file://0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch \ + file://0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \ + file://0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \ + file://0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \ + file://0017-yes-within-the-path-sets-wrong-config-variables.patch \ + file://0018-timezone-re-written-tzselect-as-posix-sh.patch \ + file://0019-Remove-bash-dependency-for-nscd-init-script.patch \ + file://0020-eglibc-Cross-building-and-testing-instructions.patch \ + file://0021-eglibc-Help-bootstrap-cross-toolchain.patch \ + file://0022-eglibc-Resolve-__fpscr_values-on-SH4.patch \ + file://0023-eglibc-Forward-port-cross-locale-generation-support.patch \ + file://0024-Define-DUMMY_LOCALE_T-if-not-defined.patch \ + file://0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ + file://0026-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch \ + file://0027-intl-Emit-no-lines-in-bison-generated-files.patch \ + file://0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch \ + " + + diff --git a/bsp/meta-synopsys/recipes-core/systemd/files/0001-network-fix-static-assertion-on-IPPROTO_MAX-range.patch b/bsp/meta-synopsys/recipes-core/systemd/files/0001-network-fix-static-assertion-on-IPPROTO_MAX-range.patch new file mode 100644 index 00000000..b6aeadd0 --- /dev/null +++ b/bsp/meta-synopsys/recipes-core/systemd/files/0001-network-fix-static-assertion-on-IPPROTO_MAX-range.patch @@ -0,0 +1,74 @@ +From c5e346905952fef0f163d91522dd43333f1f219d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> +Date: Thu, 16 Apr 2020 16:49:30 +0200 +Subject: [PATCH] network: fix static assertion on IPPROTO_MAX range +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Builds with recent glibc would fail with: +../src/network/netdev/fou-tunnel.c: In function ‘config_parse_ip_protocol’: +../src/basic/macro.h:380:9: error: static assertion failed: "IPPROTO_MAX-1 <= UINT8_MAX" + 380 | static_assert(expr, #expr) + | ^~~~~~~~~~~~~ +../src/network/netdev/fou-tunnel.c:161:9: note: in expansion of macro ‘assert_cc’ + 161 | assert_cc(IPPROTO_MAX-1 <= UINT8_MAX); + | ^~~~~~~~~ + +This is because f9ac84f92f151e07586c55e14ed628d493a5929d (present in +glibc-2.31.9000-9.fc33.x86_64) added IPPROTO_MPTCP=262, following +v5.5-rc5-1002-gfaf391c382 in the kernel. + +(cherry picked from commit 3d58d7328a6ecbc61d3494803d705edd8a108d72) +--- + src/network/netdev/fou-tunnel.c | 22 ++++++++++++++++------ + 1 file changed, 16 insertions(+), 6 deletions(-) + +diff --git a/src/network/netdev/fou-tunnel.c b/src/network/netdev/fou-tunnel.c +index 3cc273c7fe..40abacd6f7 100644 +--- a/src/network/netdev/fou-tunnel.c ++++ b/src/network/netdev/fou-tunnel.c +@@ -149,7 +149,10 @@ int config_parse_ip_protocol( + void *data, + void *userdata) { + +- uint8_t *protocol = data; ++ uint8_t *ret = data; ++ unsigned protocol; ++ /* linux/fou.h defines the netlink field as one byte, so we need to reject protocols numbers that ++ * don't fit in one byte. */ + int r; + + assert(filename); +@@ -158,11 +161,11 @@ int config_parse_ip_protocol( + assert(rvalue); + assert(data); + +- assert_cc(IPPROTO_MAX-1 <= UINT8_MAX); +- + r = parse_ip_protocol(rvalue); +- if (r < 0) { +- r = safe_atou8(rvalue, protocol); ++ if (r >= 0) ++ protocol = r; ++ else { ++ r = safe_atou(rvalue, &protocol); + if (r < 0) + log_syntax(unit, LOG_ERR, filename, line, r, + "Failed to parse IP protocol '%s' for Foo over UDP tunnel, " +@@ -170,7 +173,14 @@ int config_parse_ip_protocol( + return 0; + } + +- *protocol = r; ++ if (protocol > UINT8_MAX) { ++ log_syntax(unit, LOG_ERR, filename, line, 0, ++ "IP protocol '%s' for FooOverUDP tunnel out of range, " ++ "ignoring assignment: %m", rvalue); ++ return 0; ++ } ++ ++ *ret = protocol; + return 0; + } + diff --git a/bsp/meta-synopsys/recipes-core/systemd/systemd-conf.bbappend b/bsp/meta-synopsys/recipes-core/systemd/systemd-conf.bbappend deleted file mode 100644 index 6d076184..00000000 --- a/bsp/meta-synopsys/recipes-core/systemd/systemd-conf.bbappend +++ /dev/null @@ -1,6 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -SRC_URI += "\ - file://0001-Add-MESA_LOADER_DRIVER_OVERRIDE-imx-drm-env-to-etc-s.patch \ -" - - diff --git a/bsp/meta-synopsys/recipes-core/systemd/systemd-conf/0001-Add-MESA_LOADER_DRIVER_OVERRIDE-imx-drm-env-to-etc-s.patch b/bsp/meta-synopsys/recipes-core/systemd/systemd-conf/0001-Add-MESA_LOADER_DRIVER_OVERRIDE-imx-drm-env-to-etc-s.patch deleted file mode 100644 index d002368e..00000000 --- a/bsp/meta-synopsys/recipes-core/systemd/systemd-conf/0001-Add-MESA_LOADER_DRIVER_OVERRIDE-imx-drm-env-to-etc-s.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 37cba4c262828c9a33466e71206046dbeb151300 Mon Sep 17 00:00:00 2001 -From: Evgeniy Didin <Evgeniy.Didin@synopsys.com> -Date: Tue, 2 Apr 2019 17:49:52 +0300 -Subject: [PATCH] Add MESA_LOADER_DRIVER_OVERRIDE=imx-drm env to - /etc/systemd/system.conf - -Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com> ---- - src/core/system.conf.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/system.conf.in b/src/core/system.conf.in -index f0a59a79a5..2851151ad0 100644 ---- a/src/core/system.conf.in -+++ b/src/core/system.conf.in -@@ -38,7 +38,7 @@ - #DefaultRestartSec=100ms - #DefaultStartLimitIntervalSec=10s - #DefaultStartLimitBurst=5 --#DefaultEnvironment= -+DefaultEnvironment="MESA_LOADER_DRIVER_OVERRIDE=imx-drm" - #DefaultCPUAccounting=no - #DefaultIOAccounting=no - #DefaultIPAccounting=no --- -2.16.2 - diff --git a/bsp/meta-synopsys/recipes-core/systemd/systemd_244.3.bbappend b/bsp/meta-synopsys/recipes-core/systemd/systemd_244.3.bbappend new file mode 100644 index 00000000..4f3c2a7c --- /dev/null +++ b/bsp/meta-synopsys/recipes-core/systemd/systemd_244.3.bbappend @@ -0,0 +1,4 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" +SRC_URI_append += "\ + file://0001-network-fix-static-assertion-on-IPPROTO_MAX-range.patch; \ +" diff --git a/bsp/meta-synopsys/recipes-core/util-linux/util-linux_%.bbappend b/bsp/meta-synopsys/recipes-core/util-linux/util-linux_%.bbappend deleted file mode 100644 index 50339c4e..00000000 --- a/bsp/meta-synopsys/recipes-core/util-linux/util-linux_%.bbappend +++ /dev/null @@ -1 +0,0 @@ -EXTRA_OECONF += "--disable-tls" |