2019-04-15 09:29:12 +00:00
|
|
|
glibc: Update to arc-2.29-2019.02.08 tag
|
|
|
|
|
|
|
|
This was generated from Synopsys GitHub Glibc WIP fork [1] this way:
|
|
|
|
----------------->8-----------------
|
|
|
|
git diff glibc-2.29..arc-2.29-2019.02.08 ':!NEWS' ':!ChangeLog'
|
|
|
|
----------------->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 47a514a389f..bc2184f643c 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 */
|
|
|
|
@@ -3996,6 +3996,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/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
|
|
|
|
index 025876486a3..40bf9398d48 100755
|
|
|
|
--- a/scripts/build-many-glibcs.py
|
|
|
|
+++ b/scripts/build-many-glibcs.py
|
|
|
|
@@ -155,6 +155,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',
|
|
|
|
@@ -1265,6 +1268,7 @@ class Config(object):
|
|
|
|
def install_linux_headers(self, cmdlist):
|
|
|
|
"""Install Linux kernel headers."""
|
|
|
|
arch_map = {'aarch64': 'arm64',
|
|
|
|
+ 'arc': 'arc',
|
|
|
|
'alpha': 'alpha',
|
|
|
|
'arm': 'arm',
|
|
|
|
'csky': 'csky',
|
|
|
|
diff --git a/support/Makefile b/support/Makefile
|
|
|
|
index 432cf2fe6cb..e2a0c0cccf4 100644
|
|
|
|
--- a/support/Makefile
|
|
|
|
+++ b/support/Makefile
|
|
|
|
@@ -169,12 +169,7 @@ CFLAGS-support_paths.c = \
|
|
|
|
-DINSTDIR_PATH=\"$(prefix)\" \
|
|
|
|
-DLIBDIR_PATH=\"$(libdir)\"
|
|
|
|
|
|
|
|
-ifeq (,$(CXX))
|
|
|
|
LINKS_DSO_PROGRAM = links-dso-program-c
|
|
|
|
-else
|
|
|
|
-LINKS_DSO_PROGRAM = links-dso-program
|
|
|
|
-LDLIBS-links-dso-program = -lstdc++ -lgcc -lgcc_s $(libunwind)
|
|
|
|
-endif
|
|
|
|
|
|
|
|
LDLIBS-test-container = $(libsupport)
|
|
|
|
|
|
|
|
diff --git a/sysdeps/arc/Implies b/sysdeps/arc/Implies
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..a0f0b00cfac
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/Implies
|
|
|
|
@@ -0,0 +1,4 @@
|
|
|
|
+init_array
|
|
|
|
+wordsize-32
|
|
|
|
+ieee754/flt-32
|
|
|
|
+ieee754/dbl-64
|
|
|
|
diff --git a/sysdeps/arc/Makefile b/sysdeps/arc/Makefile
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..8d2fbe00c5e
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/Makefile
|
|
|
|
@@ -0,0 +1,25 @@
|
|
|
|
+# ARC Makefile
|
|
|
|
+# Copyright (C) 1993-2019 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 00000000000..a41ad34f953
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/Versions
|
|
|
|
@@ -0,0 +1,6 @@
|
|
|
|
+libc {
|
|
|
|
+ GLIBC_2.29 {
|
|
|
|
+ __syscall_error;
|
|
|
|
+ __mcount;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
diff --git a/sysdeps/arc/__longjmp.S b/sysdeps/arc/__longjmp.S
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..8296aa445f6
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/__longjmp.S
|
|
|
|
@@ -0,0 +1,50 @@
|
|
|
|
+/* longjmp for ARC.
|
|
|
|
+ Copyright (C) 2017-2019 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 00000000000..49f33613c40
|
|
|
|
--- /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 00000000000..bdc91d0558f
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/atomic-machine.h
|
|
|
|
@@ -0,0 +1,73 @@
|
|
|
|
+/* Low-level functions for atomic operations. ARC version.
|
|
|
|
+ Copyright (C) 2012-2019 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 1
|
|
|
|
+
|
|
|
|
+/* ARC does have legacy atomic EX reg, [mem] instruction but the micro-arch
|
|
|
|
+ is not as optimal as LLOCK/SCOND specially for SMP. */
|
|
|
|
+#define ATOMIC_EXCHANGE_USES_CAS 1
|
|
|
|
+
|
|
|
|
+#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_8_int(mem, newval, oldval, model) \
|
|
|
|
+ (abort (), (__typeof (*mem)) 0)
|
|
|
|
+#define __arch_compare_and_exchange_val_16_int(mem, newval, oldval, model) \
|
|
|
|
+ (abort (), (__typeof (*mem)) 0)
|
|
|
|
+#define __arch_compare_and_exchange_val_64_int(mem, newval, oldval, model) \
|
|
|
|
+ (abort (), (__typeof (*mem)) 0)
|
|
|
|
+
|
|
|
|
+#define __arch_compare_and_exchange_val_32_int(mem, newval, oldval, model) \
|
|
|
|
+ ({ \
|
|
|
|
+ typeof (*mem) __oldval = (oldval); \
|
|
|
|
+ __atomic_compare_exchange_n (mem, (void *) &__oldval, newval, 0, \
|
|
|
|
+ model, __ATOMIC_RELAXED); \
|
|
|
|
+ __oldval; \
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+#define atomic_compare_and_exchange_val_acq(mem, new, old) \
|
|
|
|
+ __atomic_val_bysize (__arch_compare_and_exchange_val, int, \
|
|
|
|
+ mem, new, old, __ATOMIC_ACQUIRE)
|
|
|
|
+
|
|
|
|
+#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 00000000000..46f41e3cffe
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/bits/endian.h
|
|
|
|
@@ -0,0 +1,12 @@
|
|
|
|
+/* Although ARC CPU can do BE, it is not supported. */
|
|
|
|
+
|
|
|
|
+#ifndef _ENDIAN_H
|
|
|
|
+# error "Never use <bits/endian.h> directly; include <endian.h> instead."
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+#ifdef __LITTLE_ENDIAN__
|
|
|
|
+# define __BYTE_ORDER __LITTLE_ENDIAN
|
|
|
|
+#endif
|
|
|
|
+#ifdef __BIG_ENDIAN__
|
|
|
|
+# error "Big Endian NOt supported on ARC"
|
|
|
|
+#endif
|
|
|
|
diff --git a/sysdeps/arc/bits/fenv.h b/sysdeps/arc/bits/fenv.h
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..58388fb43a3
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/bits/fenv.h
|
|
|
|
@@ -0,0 +1,72 @@
|
|
|
|
+/* Copyright (C) 2012-2019 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
|
|
|
|
+
|
|
|
|
+enum
|
|
|
|
+ {
|
|
|
|
+ FE_INVALID =
|
|
|
|
+# define FE_INVALID (0x01)
|
|
|
|
+ FE_INVALID,
|
|
|
|
+ FE_DIVBYZERO =
|
|
|
|
+# define FE_DIVBYZERO (0x02)
|
|
|
|
+ FE_DIVBYZERO,
|
|
|
|
+ FE_OVERFLOW =
|
|
|
|
+# define FE_OVERFLOW (0x04)
|
|
|
|
+ FE_OVERFLOW,
|
|
|
|
+ FE_UNDERFLOW =
|
|
|
|
+# define FE_UNDERFLOW (0x08)
|
|
|
|
+ FE_UNDERFLOW,
|
|
|
|
+ FE_INEXACT =
|
|
|
|
+# define FE_INEXACT (0x10)
|
|
|
|
+ FE_INEXACT
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+# define FE_ALL_EXCEPT \
|
|
|
|
+ (FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT)
|
|
|
|
+
|
|
|
|
+enum
|
|
|
|
+ {
|
|
|
|
+ FE_TOWARDZERO =
|
|
|
|
+# define FE_TOWARDZERO (0x0)
|
|
|
|
+ FE_TOWARDZERO,
|
|
|
|
+ FE_TONEAREST =
|
|
|
|
+# define FE_TONEAREST (0x1)
|
|
|
|
+ FE_TONEAREST,
|
|
|
|
+ FE_UPWARD =
|
|
|
|
+# define FE_UPWARD (0x2)
|
|
|
|
+ FE_UPWARD,
|
|
|
|
+ FE_DOWNWARD =
|
|
|
|
+# define FE_DOWNWARD (0x3)
|
|
|
|
+ FE_DOWNWARD
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+typedef unsigned int fexcept_t;
|
|
|
|
+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 00000000000..c4508ab6664
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/bits/link.h
|
|
|
|
@@ -0,0 +1,52 @@
|
|
|
|
+/* Machine-specific declarations for dynamic linker interface, ARC version.
|
|
|
|
+ Copyright (C) 2009-2019 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 ElfW(Addr) la_arc_gnu_pltenter (ElfW(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 (ElfW(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 00000000000..3cb457d097c
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/bits/setjmp.h
|
|
|
|
@@ -0,0 +1,26 @@
|
|
|
|
+/* Define the machine-dependent type `jmp_buf'. ARC version.
|
|
|
|
+ Copyright (C) 1992-2019 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_SETJMP_H
|
|
|
|
+#define _ARC_BITS_SETJMP_H 1
|
|
|
|
+
|
|
|
|
+/* Saves r13-r25 (callee-saved), fp (frame pointer), sp (stack pointer),
|
|
|
|
+ blink (branch-n-link). */
|
|
|
|
+typedef long int __jmp_buf[32];
|
|
|
|
+
|
|
|
|
+#endif
|
|
|
|
diff --git a/sysdeps/arc/bsd-_setjmp.S b/sysdeps/arc/bsd-_setjmp.S
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..90b99cd8c3e
|
|
|
|
--- /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 00000000000..d3b823c118b
|
|
|
|
--- /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 00000000000..52e286da2eb
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/configure
|
|
|
|
@@ -0,0 +1,14 @@
|
|
|
|
+# 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
|
|
|
|
diff --git a/sysdeps/arc/configure.ac b/sysdeps/arc/configure.ac
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..1074d312f03
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/configure.ac
|
|
|
|
@@ -0,0 +1,11 @@
|
|
|
|
+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)
|
|
|
|
diff --git a/sysdeps/arc/dl-machine.h b/sysdeps/arc/dl-machine.h
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..c81acb9d4fd
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/dl-machine.h
|
|
|
|
@@ -0,0 +1,340 @@
|
|
|
|
+/* Machine-dependent ELF dynamic relocation inline functions. ARC version.
|
|
|
|
+ Copyright (C) 1995-2019 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 ElfW(Addr)
|
|
|
|
+elf_machine_dynamic (void)
|
|
|
|
+{
|
|
|
|
+ extern const ElfW(Addr) _GLOBAL_OFFSET_TABLE_[] attribute_hidden;
|
|
|
|
+ return _GLOBAL_OFFSET_TABLE_[0];
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+/* Return the run-time load address of the shared object. */
|
|
|
|
+static inline ElfW(Addr)
|
|
|
|
+elf_machine_load_address (void)
|
|
|
|
+{
|
|
|
|
+ ElfW(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. */
|
|
|
|
+ ElfW(Addr) *plt_base = (ElfW(Addr) *) D_PTR (l, l_info[DT_PLTGOT]);
|
|
|
|
+ ElfW(Addr) *got = (ElfW(Addr) *) (plt_base[5] + l->l_addr);
|
|
|
|
+
|
|
|
|
+ got[1] = (ElfW(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] = (ElfW(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 ElfW(Addr)
|
|
|
|
+elf_machine_fixup_plt (struct link_map *map, lookup_t t,
|
|
|
|
+ const ElfW(Sym) *refsym, const ElfW(Sym) *sym,
|
|
|
|
+ const Elf32_Rela *reloc,
|
|
|
|
+ ElfW(Addr) *reloc_addr, ElfW(Addr) value)
|
|
|
|
+{
|
|
|
|
+ return *reloc_addr = value;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/* Return the final value of a plt relocation. */
|
|
|
|
+static inline ElfW(Addr)
|
|
|
|
+elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,
|
|
|
|
+ ElfW(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)
|
|
|
|
+{
|
|
|
|
+ ElfW(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 ElfW(Sym) *const refsym = sym;
|
|
|
|
+ struct link_map *sym_map = RESOLVE_MAP (&sym, version, r_type);
|
|
|
|
+ ElfW(Addr) value = SYMBOL_ADDRESS (sym_map, sym, true);
|
|
|
|
+
|
|
|
|
+ switch (r_type)
|
|
|
|
+ {
|
|
|
|
+ case R_ARC_COPY:
|
|
|
|
+ if (__glibc_unlikely (sym == NULL))
|
|
|
|
+ /* This can happen in trace mode if an object could not be
|
|
|
|
+ found. */
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ size_t size = sym->st_size;
|
|
|
|
+ if (__glibc_unlikely (size != refsym->st_size))
|
|
|
|
+ {
|
|
|
|
+ const char *strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
|
|
|
|
+ if (sym->st_size > refsym->st_size)
|
|
|
|
+ size = refsym->st_size;
|
|
|
|
+ if (sym->st_size > refsym->st_size || GLRO(dl_verbose))
|
|
|
|
+ _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, size);
|
|
|
|
+ break;
|
|
|
|
+ case R_ARC_GLOB_DAT:
|
|
|
|
+ case R_ARC_JUMP_SLOT:
|
|
|
|
+ *reloc_addr = value;
|
|
|
|
+ break;
|
|
|
|
+ case R_ARC_TLS_DTPMOD:
|
|
|
|
+ if (sym_map != NULL)
|
|
|
|
+ /* Get the information from the link map returned by the
|
|
|
|
+ resolv function. */
|
|
|
|
+ *reloc_addr = sym_map->l_tls_modid;
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ case R_ARC_TLS_DTPOFF:
|
|
|
|
+ if (sym != NULL)
|
|
|
|
+ /* Offset set by the linker in the GOT entry would be overwritten
|
|
|
|
+ by dynamic loader instead of added to the symbol location.
|
|
|
|
+ Other target have the same approach on DTSOFF relocs. */
|
|
|
|
+ *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 int) 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)
|
|
|
|
+{
|
|
|
|
+ ElfW(Addr) *const reloc_addr = reloc_addr_arg;
|
|
|
|
+ *reloc_addr += l_addr; // + reloc->r_addend;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+auto inline void
|
|
|
|
+__attribute__ ((always_inline))
|
|
|
|
+elf_machine_lazy_rel (struct link_map *map,
|
|
|
|
+ ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
|
|
|
|
+ int skip_ifunc)
|
|
|
|
+{
|
|
|
|
+ ElfW(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 00000000000..48f4a5a7e1d
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/dl-runtime.c
|
|
|
|
@@ -0,0 +1,39 @@
|
|
|
|
+/* dl-runtime helpers for ARC.
|
|
|
|
+ Copyright (C) 2017-2019 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/>. */
|
|
|
|
+
|
|
|
|
+/* 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 int plt0 = D_PTR (l, l_info[DT_PLTGOT]); \
|
|
|
|
+ unsigned long int pltn = reloc_arg; \
|
|
|
|
+ /* Exclude PL0 and PLT1. */ \
|
|
|
|
+ unsigned long int 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 00000000000..ffc30b69372
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/dl-sysdep.h
|
|
|
|
@@ -0,0 +1,25 @@
|
|
|
|
+/* System-specific settings for dynamic linker code. ARC version.
|
|
|
|
+ Copyright (C) 2009-2019 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 00000000000..7f0cf91e402
|
|
|
|
--- /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-2019 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 00000000000..9da75fb1fe2
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/dl-trampoline.S
|
|
|
|
@@ -0,0 +1,80 @@
|
|
|
|
+/* PLT trampolines. ARC version.
|
|
|
|
+ Copyright (C) 2005-2019 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 00000000000..adb01d981af
|
|
|
|
--- /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 00000000000..40487fa77b4
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/gccframe.h
|
|
|
|
@@ -0,0 +1,21 @@
|
|
|
|
+/* Definition of object in frame unwind info. ARC version.
|
|
|
|
+ Copyright (C) 2017-2019 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 00000000000..e30695fc6b2
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/gmp-mparam.h
|
|
|
|
@@ -0,0 +1,23 @@
|
|
|
|
+/* gmp-mparam.h -- Compiler/machine parameter header file.
|
|
|
|
+
|
|
|
|
+Copyright (C) 2017-2019 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 00000000000..9760f3a3891
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/jmpbuf-offsets.h
|
|
|
|
@@ -0,0 +1,47 @@
|
|
|
|
+/* Private macros for accessing __jmp_buf contents. ARC version.
|
|
|
|
+ Copyright (C) 2006-2019 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
|
|
|
|
+ This is number of words. */
|
|
|
|
+#define JB_NUM 32
|
|
|
|
+
|
|
|
|
+/* Helper for generic ____longjmp_chk(). */
|
|
|
|
+#define JB_FRAME_ADDRESS(buf) ((void *) (unsigned long int) (buf[JB_SP]))
|
|
|
|
diff --git a/sysdeps/arc/jmpbuf-unwind.h b/sysdeps/arc/jmpbuf-unwind.h
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..47be5758c75
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/jmpbuf-unwind.h
|
|
|
|
@@ -0,0 +1,47 @@
|
|
|
|
+/* Examine __jmp_buf for unwinding frames. ARC version.
|
|
|
|
+ Copyright (C) 2005-2019 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 00000000000..53ef4e1e83d
|
|
|
|
--- /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-2019 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 00000000000..903a75a41b5
|
|
|
|
--- /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-2019 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/machine-gmon.h b/sysdeps/arc/machine-gmon.h
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..1d9e8108d9b
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/machine-gmon.h
|
|
|
|
@@ -0,0 +1,35 @@
|
|
|
|
+/* Machine-dependent definitions for profiling support. ARC version.
|
|
|
|
+ Copyright (C) 1996-2019 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 int frompc, unsigned long int 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/memusage.h b/sysdeps/arc/memusage.h
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..29f234f5bac
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/memusage.h
|
|
|
|
@@ -0,0 +1,23 @@
|
|
|
|
+/* Machine-specific definitions for memory usage profiling, ARC version.
|
|
|
|
+ Copyright (C) 2000-2019 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/nofpu/Implies b/sysdeps/arc/nofpu/Implies
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..abcbadb25f2
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/nofpu/Implies
|
|
|
|
@@ -0,0 +1 @@
|
|
|
|
+ieee754/soft-fp
|
|
|
|
diff --git a/sysdeps/arc/nofpu/libm-test-ulps b/sysdeps/arc/nofpu/libm-test-ulps
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..0e8ef313fa9
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/nofpu/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/nofpu/libm-test-ulps-name b/sysdeps/arc/nofpu/libm-test-ulps-name
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..8c4fba4f9ae
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/nofpu/libm-test-ulps-name
|
|
|
|
@@ -0,0 +1 @@
|
|
|
|
+ARC
|
|
|
|
diff --git a/sysdeps/arc/nofpu/math-tests-exceptions.h b/sysdeps/arc/nofpu/math-tests-exceptions.h
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..f5c0b73589e
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/nofpu/math-tests-exceptions.h
|
|
|
|
@@ -0,0 +1,27 @@
|
|
|
|
+/* Configuration for math tests. exceptions support ARC version.
|
|
|
|
+ Copyright (C) 2017-2019 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_NOFPU_MATH_TESTS_EXCEPTIONS_H
|
|
|
|
+#define ARC_NOFPU_MATH_TESTS_EXCEPTIONS_H 1
|
|
|
|
+
|
|
|
|
+/* Soft-float doesnot support exceptions. */
|
|
|
|
+#define EXCEPTION_TESTS_float 0
|
|
|
|
+#define EXCEPTION_TESTS_double 0
|
|
|
|
+#define EXCEPTION_TESTS_long_double 0
|
|
|
|
+
|
|
|
|
+#endif
|
|
|
|
diff --git a/sysdeps/arc/nofpu/math-tests-rounding.h b/sysdeps/arc/nofpu/math-tests-rounding.h
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..e8f76338b1e
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/nofpu/math-tests-rounding.h
|
|
|
|
@@ -0,0 +1,27 @@
|
|
|
|
+/* Configuration for math tests: rounding mode support. ARC version.
|
|
|
|
+ Copyright (C) 2017-2019 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_NOFPU_MATH_TESTS_ROUNDING_H
|
|
|
|
+#define ARC_NOFPU_MATH_TESTS_ROUNDING_H 1
|
|
|
|
+
|
|
|
|
+/* Soft-float only supports to-nearest rounding mode. */
|
|
|
|
+#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)
|
|
|
|
+
|
|
|
|
+#endif
|
|
|
|
diff --git a/sysdeps/arc/nptl/Makefile b/sysdeps/arc/nptl/Makefile
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..3c33c9cc112
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/nptl/Makefile
|
|
|
|
@@ -0,0 +1,22 @@
|
|
|
|
+# NPTL makefile fragment for ARC.
|
|
|
|
+# Copyright (C) 2005-2019 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 00000000000..eae884f61cf
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/nptl/bits/pthreadtypes-arch.h
|
|
|
|
@@ -0,0 +1,71 @@
|
|
|
|
+/* Machine-specific pthread type layouts. ARC version.
|
|
|
|
+ Copyright (C) 2012-2019 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 32
|
|
|
|
+#define __SIZEOF_PTHREAD_MUTEX_T 32
|
|
|
|
+#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
|
|
|
|
+#define __SIZEOF_PTHREAD_COND_T 48
|
|
|
|
+#define __SIZEOF_PTHREAD_CONDATTR_T 4
|
|
|
|
+#define __SIZEOF_PTHREAD_RWLOCK_T 32
|
|
|
|
+#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
|
|
|
|
+#define __SIZEOF_PTHREAD_BARRIER_T 20
|
|
|
|
+#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
|
|
|
|
+
|
|
|
|
+#define __PTHREAD_COMPAT_PADDING_MID
|
|
|
|
+#define __PTHREAD_COMPAT_PADDING_END
|
|
|
|
+#define __PTHREAD_MUTEX_LOCK_ELISION 0
|
|
|
|
+#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
|
|
|
|
+#define __PTHREAD_MUTEX_USE_UNION 0
|
|
|
|
+
|
|
|
|
+#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 00000000000..662d08401d0
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/nptl/bits/semaphore.h
|
|
|
|
@@ -0,0 +1,32 @@
|
|
|
|
+/* Machine-specific POSIX semaphore type layouts. ARC version.
|
|
|
|
+ Copyright (C) 2002-2019 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 00000000000..c363e8cda8d
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/nptl/pthread-offsets.h
|
|
|
|
@@ -0,0 +1,4 @@
|
|
|
|
+#define __PTHREAD_MUTEX_NUSERS_OFFSET 12
|
|
|
|
+#define __PTHREAD_MUTEX_KIND_OFFSET 16
|
|
|
|
+#define __PTHREAD_MUTEX_SPINS_OFFSET 20
|
|
|
|
+#define __PTHREAD_MUTEX_LIST_OFFSET 24
|
|
|
|
diff --git a/sysdeps/arc/nptl/pthreaddef.h b/sysdeps/arc/nptl/pthreaddef.h
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..80a109bbd52
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/nptl/pthreaddef.h
|
|
|
|
@@ -0,0 +1,32 @@
|
|
|
|
+/* pthread machine parameter definitions, ARC version.
|
|
|
|
+ Copyright (C) 2002-2019 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 00000000000..56950e0676e
|
|
|
|
--- /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 00000000000..2c90109d570
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/nptl/tls.h
|
|
|
|
@@ -0,0 +1,150 @@
|
|
|
|
+/* Definition for thread-local data handling. NPTL/ARC version.
|
|
|
|
+ Copyright (C) 2012-2019 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 00000000000..1152a179c4a
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/preconfigure
|
|
|
|
@@ -0,0 +1,14 @@
|
|
|
|
+case "$machine" in
|
|
|
|
+arc*)
|
|
|
|
+ base_machine=arc
|
|
|
|
+ machine=arc
|
2019-09-05 01:59:19 +00:00
|
|
|
+
|
|
|
|
+ gccfloat=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | grep __ARC_FPU_| wc -l`
|
|
|
|
+ if test "$gccfloat" != "0"; then
|
|
|
|
+ echo "glibc being configured for double precision floating point"
|
|
|
|
+ with_fp_cond=1
|
|
|
|
+ else
|
|
|
|
+ with_fp_cond=0
|
|
|
|
+ fi
|
2019-04-15 09:29:12 +00:00
|
|
|
+ ;;
|
|
|
|
+esac
|
|
|
|
diff --git a/sysdeps/arc/setjmp.S b/sysdeps/arc/setjmp.S
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..518545a99e8
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/setjmp.S
|
|
|
|
@@ -0,0 +1,66 @@
|
|
|
|
+/* setjmp for ARC.
|
|
|
|
+ Copyright (C) 1991-2019 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>
|
|
|
|
+
|
|
|
|
+/* Upon entry r0 = jump buffer into which regs will be saved. */
|
|
|
|
+ENTRY (setjmp)
|
|
|
|
+ b.d __sigsetjmp
|
|
|
|
+ mov r1, 1 ; save signals
|
|
|
|
+END (setjmp)
|
|
|
|
+
|
|
|
|
+/* Upon entry 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)
|
|
|
|
+
|
|
|
|
+/* Upon entry
|
|
|
|
+ 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 00000000000..5ceaf56a988
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/sfp-machine.h
|
|
|
|
@@ -0,0 +1,73 @@
|
|
|
|
+/* Machine-dependent software floating-point definitions. ARC version.
|
|
|
|
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
|
|
|
|
+ This file is part of the GNU C Library.
|
|
|
|
+ Contributed by Richard Henderson (rth@cygnus.com),
|
|
|
|
+ Jakub Jelinek (jj@ultra.linux.cz) and
|
|
|
|
+ David S. Miller (davem@redhat.com).
|
|
|
|
+
|
|
|
|
+ The GNU C Library is free software; you can redistribute it and/or
|
|
|
|
+ modify it under the terms of the GNU Lesser General Public
|
|
|
|
+ License as published by the Free Software Foundation; either
|
|
|
|
+ version 2.1 of the License, or (at your option) any later version.
|
|
|
|
+
|
|
|
|
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
+ Lesser General Public License for 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 _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 00000000000..ffbb5bbd6d0
|
|
|
|
--- /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-2019 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 00000000000..fe69161382a
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/stackinfo.h
|
|
|
|
@@ -0,0 +1,33 @@
|
|
|
|
+/* Stack environment definitions for ARC.
|
|
|
|
+ Copyright (C) 2012-2019 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 00000000000..4ade1e871f6
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/start.S
|
|
|
|
@@ -0,0 +1,89 @@
|
|
|
|
+/* Startup code for ARC.
|
|
|
|
+ Copyright (C) 1995-2019 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
|
|
|
|
+
|
|
|
|
+ /* __libc_start_main (main, argc, argv, init, fini, rtld_fini, stack_end). */
|
|
|
|
+
|
|
|
|
+#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
|
|
|
|
+
|
|
|
|
+ /* 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 00000000000..127e9b01e73
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/sysdep.h
|
|
|
|
@@ -0,0 +1,48 @@
|
|
|
|
+/* Assembler macros for ARC.
|
|
|
|
+ Copyright (C) 2017-2019 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.
|
|
|
|
+ ; is not newline but comment, # 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 00000000000..4d54683eda4
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/tls-macros.h
|
|
|
|
@@ -0,0 +1,47 @@
|
|
|
|
+/* Macros to support TLS testing in times of missing compiler support. ARC version.
|
|
|
|
+ Copyright (C) 2017-2019 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/>. */
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+/* 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 00000000000..9237ad2440c
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/arc/tst-audit.h
|
|
|
|
@@ -0,0 +1,23 @@
|
|
|
|
+/* Definitions for testing PLT entry/exit auditing. ARC version.
|
|
|
|
+ Copyright (C) 2009-2019 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 e39b2d6d521..6a5c10d54e8 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 00000000000..7f739a0340b
|
|
|
|
--- /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 00000000000..a6c6dfc6ec6
|
|
|
|
--- /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 00000000000..3d12161f7fe
|
|
|
|
--- /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.29 {
|
|
|
|
+ _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/procfs.h b/sysdeps/unix/sysv/linux/arc/bits/procfs.h
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..b37deaee587
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/bits/procfs.h
|
|
|
|
@@ -0,0 +1,35 @@
|
|
|
|
+/* Types for registers for sys/procfs.h. ARC version.
|
|
|
|
+ Copyright (C) 1996-2019 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
|
|
|
|
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+#include <sys/ucontext.h>
|
|
|
|
+
|
|
|
|
+/* 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 unsigned long int elf_greg_t;
|
|
|
|
+typedef unsigned long int elf_gregset_t[ELF_NGREG];
|
|
|
|
+
|
|
|
|
+/* There's no seperate floating point reg file in ARCv2. */
|
|
|
|
+typedef struct { } elf_fpregset_t;
|
|
|
|
diff --git a/sysdeps/unix/sysv/linux/arc/bits/types/__sigset_t.h b/sysdeps/unix/sysv/linux/arc/bits/types/__sigset_t.h
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..795638a30bd
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/bits/types/__sigset_t.h
|
|
|
|
@@ -0,0 +1,12 @@
|
|
|
|
+/* Architecture-specific __sigset_t definition. ARC version. */
|
|
|
|
+#ifndef ____sigset_t_defined
|
|
|
|
+#define ____sigset_t_defined
|
|
|
|
+
|
|
|
|
+/* Linux asm-generic syscall ABI expects sigset_t to hold 64 signals. */
|
|
|
|
+#define _SIGSET_NWORDS (64 / (8 * sizeof (unsigned long int)))
|
|
|
|
+typedef struct
|
|
|
|
+{
|
|
|
|
+ unsigned long int __val[_SIGSET_NWORDS];
|
|
|
|
+} __sigset_t;
|
|
|
|
+
|
|
|
|
+#endif
|
|
|
|
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 00000000000..303f4570c8e
|
|
|
|
--- /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/clone.S b/sysdeps/unix/sysv/linux/arc/clone.S
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..55c2a2b60ed
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/clone.S
|
|
|
|
@@ -0,0 +1,98 @@
|
|
|
|
+/* clone() implementation for ARC.
|
|
|
|
+ Copyright (C) 2008-2019 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.
|
|
|
|
+
|
|
|
|
+ clone syscall in kernel (ABI: CONFIG_CLONE_BACKWARDS)
|
|
|
|
+
|
|
|
|
+ int sys_clone(unsigned long int clone_flags,
|
|
|
|
+ unsigned long int 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 00000000000..f74fa7cb025
|
|
|
|
--- /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 00000000000..a9528032d32
|
|
|
|
--- /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 00000000000..1a8757c9840
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/dl-static.c
|
|
|
|
@@ -0,0 +1,84 @@
|
|
|
|
+/* Variable initialization. ARC version.
|
|
|
|
+ Copyright (C) 2001-2019 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 00000000000..723cc237d87
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/getcontext.S
|
|
|
|
@@ -0,0 +1,63 @@
|
|
|
|
+/* Save current context for ARC.
|
|
|
|
+ Copyright (C) 2009-2019 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 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 00000000000..309eb3064e9
|
|
|
|
--- /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-2019 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 00000000000..6c129398483
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/jmp_buf-macros.h
|
|
|
|
@@ -0,0 +1,6 @@
|
|
|
|
+#define JMP_BUF_SIZE (32 + 1 + 64/(8 * sizeof (unsigned long int))) * sizeof (unsigned long int)
|
|
|
|
+#define SIGJMP_BUF_SIZE (32 + 1 + 64/(8 * sizeof (unsigned long int))) * sizeof (unsigned long int)
|
|
|
|
+#define JMP_BUF_ALIGN __alignof__ (unsigned long int)
|
|
|
|
+#define SIGJMP_BUF_ALIGN __alignof__ (unsigned long int)
|
|
|
|
+#define MASK_WAS_SAVED_OFFSET (32 * sizeof (unsigned long int))
|
|
|
|
+#define SAVED_MASK_OFFSET (33 * sizeof (unsigned long int))
|
|
|
|
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 00000000000..00255337bc8
|
|
|
|
--- /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-2019 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 00000000000..71576160edd
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/ld.abilist
|
|
|
|
@@ -0,0 +1,9 @@
|
|
|
|
+GLIBC_2.29 __libc_stack_end D 0x4
|
|
|
|
+GLIBC_2.29 __stack_chk_guard D 0x4
|
|
|
|
+GLIBC_2.29 __tls_get_addr F
|
|
|
|
+GLIBC_2.29 _dl_mcount F
|
|
|
|
+GLIBC_2.29 _r_debug D 0x14
|
|
|
|
+GLIBC_2.29 calloc F
|
|
|
|
+GLIBC_2.29 free F
|
|
|
|
+GLIBC_2.29 malloc F
|
|
|
|
+GLIBC_2.29 realloc F
|
|
|
|
diff --git a/sysdeps/unix/sysv/linux/arc/ldsodefs.h b/sysdeps/unix/sysv/linux/arc/ldsodefs.h
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..8c5c6800af1
|
|
|
|
--- /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-2019 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 00000000000..96b4163a254
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/libBrokenLocale.abilist
|
|
|
|
@@ -0,0 +1 @@
|
|
|
|
+GLIBC_2.29 __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 00000000000..416a6f8ddb2
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/libanl.abilist
|
|
|
|
@@ -0,0 +1,4 @@
|
|
|
|
+GLIBC_2.29 gai_cancel F
|
|
|
|
+GLIBC_2.29 gai_error F
|
|
|
|
+GLIBC_2.29 gai_suspend F
|
|
|
|
+GLIBC_2.29 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 00000000000..1e9a5dc9f09
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
|
|
|
|
@@ -0,0 +1,2089 @@
|
|
|
|
+GLIBC_2.29 _Exit F
|
|
|
|
+GLIBC_2.29 _IO_2_1_stderr_ D 0x98
|
|
|
|
+GLIBC_2.29 _IO_2_1_stdin_ D 0x98
|
|
|
|
+GLIBC_2.29 _IO_2_1_stdout_ D 0x98
|
|
|
|
+GLIBC_2.29 _IO_adjust_column F
|
|
|
|
+GLIBC_2.29 _IO_adjust_wcolumn F
|
|
|
|
+GLIBC_2.29 _IO_default_doallocate F
|
|
|
|
+GLIBC_2.29 _IO_default_finish F
|
|
|
|
+GLIBC_2.29 _IO_default_pbackfail F
|
|
|
|
+GLIBC_2.29 _IO_default_uflow F
|
|
|
|
+GLIBC_2.29 _IO_default_xsgetn F
|
|
|
|
+GLIBC_2.29 _IO_default_xsputn F
|
|
|
|
+GLIBC_2.29 _IO_do_write F
|
|
|
|
+GLIBC_2.29 _IO_doallocbuf F
|
|
|
|
+GLIBC_2.29 _IO_fclose F
|
|
|
|
+GLIBC_2.29 _IO_fdopen F
|
|
|
|
+GLIBC_2.29 _IO_feof F
|
|
|
|
+GLIBC_2.29 _IO_ferror F
|
|
|
|
+GLIBC_2.29 _IO_fflush F
|
|
|
|
+GLIBC_2.29 _IO_fgetpos F
|
|
|
|
+GLIBC_2.29 _IO_fgetpos64 F
|
|
|
|
+GLIBC_2.29 _IO_fgets F
|
|
|
|
+GLIBC_2.29 _IO_file_attach F
|
|
|
|
+GLIBC_2.29 _IO_file_close F
|
|
|
|
+GLIBC_2.29 _IO_file_close_it F
|
|
|
|
+GLIBC_2.29 _IO_file_doallocate F
|
|
|
|
+GLIBC_2.29 _IO_file_finish F
|
|
|
|
+GLIBC_2.29 _IO_file_fopen F
|
|
|
|
+GLIBC_2.29 _IO_file_init F
|
|
|
|
+GLIBC_2.29 _IO_file_jumps D 0x54
|
|
|
|
+GLIBC_2.29 _IO_file_open F
|
|
|
|
+GLIBC_2.29 _IO_file_overflow F
|
|
|
|
+GLIBC_2.29 _IO_file_read F
|
|
|
|
+GLIBC_2.29 _IO_file_seek F
|
|
|
|
+GLIBC_2.29 _IO_file_seekoff F
|
|
|
|
+GLIBC_2.29 _IO_file_setbuf F
|
|
|
|
+GLIBC_2.29 _IO_file_stat F
|
|
|
|
+GLIBC_2.29 _IO_file_sync F
|
|
|
|
+GLIBC_2.29 _IO_file_underflow F
|
|
|
|
+GLIBC_2.29 _IO_file_write F
|
|
|
|
+GLIBC_2.29 _IO_file_xsputn F
|
|
|
|
+GLIBC_2.29 _IO_flockfile F
|
|
|
|
+GLIBC_2.29 _IO_flush_all F
|
|
|
|
+GLIBC_2.29 _IO_flush_all_linebuffered F
|
|
|
|
+GLIBC_2.29 _IO_fopen F
|
|
|
|
+GLIBC_2.29 _IO_fprintf F
|
|
|
|
+GLIBC_2.29 _IO_fputs F
|
|
|
|
+GLIBC_2.29 _IO_fread F
|
|
|
|
+GLIBC_2.29 _IO_free_backup_area F
|
|
|
|
+GLIBC_2.29 _IO_free_wbackup_area F
|
|
|
|
+GLIBC_2.29 _IO_fsetpos F
|
|
|
|
+GLIBC_2.29 _IO_fsetpos64 F
|
|
|
|
+GLIBC_2.29 _IO_ftell F
|
|
|
|
+GLIBC_2.29 _IO_ftrylockfile F
|
|
|
|
+GLIBC_2.29 _IO_funlockfile F
|
|
|
|
+GLIBC_2.29 _IO_fwrite F
|
|
|
|
+GLIBC_2.29 _IO_getc F
|
|
|
|
+GLIBC_2.29 _IO_getline F
|
|
|
|
+GLIBC_2.29 _IO_getline_info F
|
|
|
|
+GLIBC_2.29 _IO_gets F
|
|
|
|
+GLIBC_2.29 _IO_init F
|
|
|
|
+GLIBC_2.29 _IO_init_marker F
|
|
|
|
+GLIBC_2.29 _IO_init_wmarker F
|
|
|
|
+GLIBC_2.29 _IO_iter_begin F
|
|
|
|
+GLIBC_2.29 _IO_iter_end F
|
|
|
|
+GLIBC_2.29 _IO_iter_file F
|
|
|
|
+GLIBC_2.29 _IO_iter_next F
|
|
|
|
+GLIBC_2.29 _IO_least_wmarker F
|
|
|
|
+GLIBC_2.29 _IO_link_in F
|
|
|
|
+GLIBC_2.29 _IO_list_all D 0x4
|
|
|
|
+GLIBC_2.29 _IO_list_lock F
|
|
|
|
+GLIBC_2.29 _IO_list_resetlock F
|
|
|
|
+GLIBC_2.29 _IO_list_unlock F
|
|
|
|
+GLIBC_2.29 _IO_marker_delta F
|
|
|
|
+GLIBC_2.29 _IO_marker_difference F
|
|
|
|
+GLIBC_2.29 _IO_padn F
|
|
|
|
+GLIBC_2.29 _IO_peekc_locked F
|
|
|
|
+GLIBC_2.29 _IO_popen F
|
|
|
|
+GLIBC_2.29 _IO_printf F
|
|
|
|
+GLIBC_2.29 _IO_proc_close F
|
|
|
|
+GLIBC_2.29 _IO_proc_open F
|
|
|
|
+GLIBC_2.29 _IO_putc F
|
|
|
|
+GLIBC_2.29 _IO_puts F
|
|
|
|
+GLIBC_2.29 _IO_remove_marker F
|
|
|
|
+GLIBC_2.29 _IO_seekmark F
|
|
|
|
+GLIBC_2.29 _IO_seekoff F
|
|
|
|
+GLIBC_2.29 _IO_seekpos F
|
|
|
|
+GLIBC_2.29 _IO_seekwmark F
|
|
|
|
+GLIBC_2.29 _IO_setb F
|
|
|
|
+GLIBC_2.29 _IO_setbuffer F
|
|
|
|
+GLIBC_2.29 _IO_setvbuf F
|
|
|
|
+GLIBC_2.29 _IO_sgetn F
|
|
|
|
+GLIBC_2.29 _IO_sprintf F
|
|
|
|
+GLIBC_2.29 _IO_sputbackc F
|
|
|
|
+GLIBC_2.29 _IO_sputbackwc F
|
|
|
|
+GLIBC_2.29 _IO_sscanf F
|
|
|
|
+GLIBC_2.29 _IO_str_init_readonly F
|
|
|
|
+GLIBC_2.29 _IO_str_init_static F
|
|
|
|
+GLIBC_2.29 _IO_str_overflow F
|
|
|
|
+GLIBC_2.29 _IO_str_pbackfail F
|
|
|
|
+GLIBC_2.29 _IO_str_seekoff F
|
|
|
|
+GLIBC_2.29 _IO_str_underflow F
|
|
|
|
+GLIBC_2.29 _IO_sungetc F
|
|
|
|
+GLIBC_2.29 _IO_sungetwc F
|
|
|
|
+GLIBC_2.29 _IO_switch_to_get_mode F
|
|
|
|
+GLIBC_2.29 _IO_switch_to_main_wget_area F
|
|
|
|
+GLIBC_2.29 _IO_switch_to_wbackup_area F
|
|
|
|
+GLIBC_2.29 _IO_switch_to_wget_mode F
|
|
|
|
+GLIBC_2.29 _IO_un_link F
|
|
|
|
+GLIBC_2.29 _IO_ungetc F
|
|
|
|
+GLIBC_2.29 _IO_unsave_markers F
|
|
|
|
+GLIBC_2.29 _IO_unsave_wmarkers F
|
|
|
|
+GLIBC_2.29 _IO_vfprintf F
|
|
|
|
+GLIBC_2.29 _IO_vsprintf F
|
|
|
|
+GLIBC_2.29 _IO_wdefault_doallocate F
|
|
|
|
+GLIBC_2.29 _IO_wdefault_finish F
|
|
|
|
+GLIBC_2.29 _IO_wdefault_pbackfail F
|
|
|
|
+GLIBC_2.29 _IO_wdefault_uflow F
|
|
|
|
+GLIBC_2.29 _IO_wdefault_xsgetn F
|
|
|
|
+GLIBC_2.29 _IO_wdefault_xsputn F
|
|
|
|
+GLIBC_2.29 _IO_wdo_write F
|
|
|
|
+GLIBC_2.29 _IO_wdoallocbuf F
|
|
|
|
+GLIBC_2.29 _IO_wfile_jumps D 0x54
|
|
|
|
+GLIBC_2.29 _IO_wfile_overflow F
|
|
|
|
+GLIBC_2.29 _IO_wfile_seekoff F
|
|
|
|
+GLIBC_2.29 _IO_wfile_sync F
|
|
|
|
+GLIBC_2.29 _IO_wfile_underflow F
|
|
|
|
+GLIBC_2.29 _IO_wfile_xsputn F
|
|
|
|
+GLIBC_2.29 _IO_wmarker_delta F
|
|
|
|
+GLIBC_2.29 _IO_wsetb F
|
|
|
|
+GLIBC_2.29 ___brk_addr D 0x4
|
|
|
|
+GLIBC_2.29 __adjtimex F
|
|
|
|
+GLIBC_2.29 __after_morecore_hook D 0x4
|
|
|
|
+GLIBC_2.29 __argz_count F
|
|
|
|
+GLIBC_2.29 __argz_next F
|
|
|
|
+GLIBC_2.29 __argz_stringify F
|
|
|
|
+GLIBC_2.29 __asprintf F
|
|
|
|
+GLIBC_2.29 __asprintf_chk F
|
|
|
|
+GLIBC_2.29 __assert F
|
|
|
|
+GLIBC_2.29 __assert_fail F
|
|
|
|
+GLIBC_2.29 __assert_perror_fail F
|
|
|
|
+GLIBC_2.29 __backtrace F
|
|
|
|
+GLIBC_2.29 __backtrace_symbols F
|
|
|
|
+GLIBC_2.29 __backtrace_symbols_fd F
|
|
|
|
+GLIBC_2.29 __bsd_getpgrp F
|
|
|
|
+GLIBC_2.29 __bzero F
|
|
|
|
+GLIBC_2.29 __check_rhosts_file D 0x4
|
|
|
|
+GLIBC_2.29 __chk_fail F
|
|
|
|
+GLIBC_2.29 __clone F
|
|
|
|
+GLIBC_2.29 __close F
|
|
|
|
+GLIBC_2.29 __cmsg_nxthdr F
|
|
|
|
+GLIBC_2.29 __confstr_chk F
|
|
|
|
+GLIBC_2.29 __connect F
|
|
|
|
+GLIBC_2.29 __ctype_b_loc F
|
|
|
|
+GLIBC_2.29 __ctype_get_mb_cur_max F
|
|
|
|
+GLIBC_2.29 __ctype_tolower_loc F
|
|
|
|
+GLIBC_2.29 __ctype_toupper_loc F
|
|
|
|
+GLIBC_2.29 __curbrk D 0x4
|
|
|
|
+GLIBC_2.29 __cxa_at_quick_exit F
|
|
|
|
+GLIBC_2.29 __cxa_atexit F
|
|
|
|
+GLIBC_2.29 __cxa_finalize F
|
|
|
|
+GLIBC_2.29 __cxa_thread_atexit_impl F
|
|
|
|
+GLIBC_2.29 __cyg_profile_func_enter F
|
|
|
|
+GLIBC_2.29 __cyg_profile_func_exit F
|
|
|
|
+GLIBC_2.29 __daylight D 0x4
|
|
|
|
+GLIBC_2.29 __dcgettext F
|
|
|
|
+GLIBC_2.29 __default_morecore F
|
|
|
|
+GLIBC_2.29 __dgettext F
|
|
|
|
+GLIBC_2.29 __dprintf_chk F
|
|
|
|
+GLIBC_2.29 __dup2 F
|
|
|
|
+GLIBC_2.29 __duplocale F
|
|
|
|
+GLIBC_2.29 __endmntent F
|
|
|
|
+GLIBC_2.29 __environ D 0x4
|
|
|
|
+GLIBC_2.29 __errno_location F
|
|
|
|
+GLIBC_2.29 __explicit_bzero_chk F
|
|
|
|
+GLIBC_2.29 __fbufsize F
|
|
|
|
+GLIBC_2.29 __fcntl F
|
|
|
|
+GLIBC_2.29 __fdelt_chk F
|
|
|
|
+GLIBC_2.29 __fdelt_warn F
|
|
|
|
+GLIBC_2.29 __ffs F
|
|
|
|
+GLIBC_2.29 __fgets_chk F
|
|
|
|
+GLIBC_2.29 __fgets_unlocked_chk F
|
|
|
|
+GLIBC_2.29 __fgetws_chk F
|
|
|
|
+GLIBC_2.29 __fgetws_unlocked_chk F
|
|
|
|
+GLIBC_2.29 __finite F
|
|
|
|
+GLIBC_2.29 __finitef F
|
|
|
|
+GLIBC_2.29 __flbf F
|
|
|
|
+GLIBC_2.29 __fork F
|
|
|
|
+GLIBC_2.29 __fpending F
|
|
|
|
+GLIBC_2.29 __fprintf_chk F
|
|
|
|
+GLIBC_2.29 __fpu_control D 0x4
|
|
|
|
+GLIBC_2.29 __fpurge F
|
|
|
|
+GLIBC_2.29 __fread_chk F
|
|
|
|
+GLIBC_2.29 __fread_unlocked_chk F
|
|
|
|
+GLIBC_2.29 __freadable F
|
|
|
|
+GLIBC_2.29 __freading F
|
|
|
|
+GLIBC_2.29 __free_hook D 0x4
|
|
|
|
+GLIBC_2.29 __freelocale F
|
|
|
|
+GLIBC_2.29 __fsetlocking F
|
|
|
|
+GLIBC_2.29 __fwprintf_chk F
|
|
|
|
+GLIBC_2.29 __fwritable F
|
|
|
|
+GLIBC_2.29 __fwriting F
|
|
|
|
+GLIBC_2.29 __fxstat F
|
|
|
|
+GLIBC_2.29 __fxstat64 F
|
|
|
|
+GLIBC_2.29 __fxstatat F
|
|
|
|
+GLIBC_2.29 __fxstatat64 F
|
|
|
|
+GLIBC_2.29 __getauxval F
|
|
|
|
+GLIBC_2.29 __getcwd_chk F
|
|
|
|
+GLIBC_2.29 __getdelim F
|
|
|
|
+GLIBC_2.29 __getdomainname_chk F
|
|
|
|
+GLIBC_2.29 __getgroups_chk F
|
|
|
|
+GLIBC_2.29 __gethostname_chk F
|
|
|
|
+GLIBC_2.29 __getlogin_r_chk F
|
|
|
|
+GLIBC_2.29 __getmntent_r F
|
|
|
|
+GLIBC_2.29 __getpagesize F
|
|
|
|
+GLIBC_2.29 __getpgid F
|
|
|
|
+GLIBC_2.29 __getpid F
|
|
|
|
+GLIBC_2.29 __gets_chk F
|
|
|
|
+GLIBC_2.29 __gettimeofday F
|
|
|
|
+GLIBC_2.29 __getwd_chk F
|
|
|
|
+GLIBC_2.29 __gmtime_r F
|
|
|
|
+GLIBC_2.29 __h_errno_location F
|
|
|
|
+GLIBC_2.29 __isalnum_l F
|
|
|
|
+GLIBC_2.29 __isalpha_l F
|
|
|
|
+GLIBC_2.29 __isascii_l F
|
|
|
|
+GLIBC_2.29 __isblank_l F
|
|
|
|
+GLIBC_2.29 __iscntrl_l F
|
|
|
|
+GLIBC_2.29 __isctype F
|
|
|
|
+GLIBC_2.29 __isdigit_l F
|
|
|
|
+GLIBC_2.29 __isgraph_l F
|
|
|
|
+GLIBC_2.29 __isinf F
|
|
|
|
+GLIBC_2.29 __isinff F
|
|
|
|
+GLIBC_2.29 __islower_l F
|
|
|
|
+GLIBC_2.29 __isnan F
|
|
|
|
+GLIBC_2.29 __isnanf F
|
|
|
|
+GLIBC_2.29 __isoc99_fscanf F
|
|
|
|
+GLIBC_2.29 __isoc99_fwscanf F
|
|
|
|
+GLIBC_2.29 __isoc99_scanf F
|
|
|
|
+GLIBC_2.29 __isoc99_sscanf F
|
|
|
|
+GLIBC_2.29 __isoc99_swscanf F
|
|
|
|
+GLIBC_2.29 __isoc99_vfscanf F
|
|
|
|
+GLIBC_2.29 __isoc99_vfwscanf F
|
|
|
|
+GLIBC_2.29 __isoc99_vscanf F
|
|
|
|
+GLIBC_2.29 __isoc99_vsscanf F
|
|
|
|
+GLIBC_2.29 __isoc99_vswscanf F
|
|
|
|
+GLIBC_2.29 __isoc99_vwscanf F
|
|
|
|
+GLIBC_2.29 __isoc99_wscanf F
|
|
|
|
+GLIBC_2.29 __isprint_l F
|
|
|
|
+GLIBC_2.29 __ispunct_l F
|
|
|
|
+GLIBC_2.29 __isspace_l F
|
|
|
|
+GLIBC_2.29 __isupper_l F
|
|
|
|
+GLIBC_2.29 __iswalnum_l F
|
|
|
|
+GLIBC_2.29 __iswalpha_l F
|
|
|
|
+GLIBC_2.29 __iswblank_l F
|
|
|
|
+GLIBC_2.29 __iswcntrl_l F
|
|
|
|
+GLIBC_2.29 __iswctype F
|
|
|
|
+GLIBC_2.29 __iswctype_l F
|
|
|
|
+GLIBC_2.29 __iswdigit_l F
|
|
|
|
+GLIBC_2.29 __iswgraph_l F
|
|
|
|
+GLIBC_2.29 __iswlower_l F
|
|
|
|
+GLIBC_2.29 __iswprint_l F
|
|
|
|
+GLIBC_2.29 __iswpunct_l F
|
|
|
|
+GLIBC_2.29 __iswspace_l F
|
|
|
|
+GLIBC_2.29 __iswupper_l F
|
|
|
|
+GLIBC_2.29 __iswxdigit_l F
|
|
|
|
+GLIBC_2.29 __isxdigit_l F
|
|
|
|
+GLIBC_2.29 __ivaliduser F
|
|
|
|
+GLIBC_2.29 __key_decryptsession_pk_LOCAL D 0x4
|
|
|
|
+GLIBC_2.29 __key_encryptsession_pk_LOCAL D 0x4
|
|
|
|
+GLIBC_2.29 __key_gendes_LOCAL D 0x4
|
|
|
|
+GLIBC_2.29 __libc_allocate_rtsig F
|
|
|
|
+GLIBC_2.29 __libc_calloc F
|
|
|
|
+GLIBC_2.29 __libc_current_sigrtmax F
|
|
|
|
+GLIBC_2.29 __libc_current_sigrtmin F
|
|
|
|
+GLIBC_2.29 __libc_free F
|
|
|
|
+GLIBC_2.29 __libc_freeres F
|
|
|
|
+GLIBC_2.29 __libc_init_first F
|
|
|
|
+GLIBC_2.29 __libc_mallinfo F
|
|
|
|
+GLIBC_2.29 __libc_malloc F
|
|
|
|
+GLIBC_2.29 __libc_mallopt F
|
|
|
|
+GLIBC_2.29 __libc_memalign F
|
|
|
|
+GLIBC_2.29 __libc_pvalloc F
|
|
|
|
+GLIBC_2.29 __libc_realloc F
|
|
|
|
+GLIBC_2.29 __libc_sa_len F
|
|
|
|
+GLIBC_2.29 __libc_start_main F
|
|
|
|
+GLIBC_2.29 __libc_valloc F
|
|
|
|
+GLIBC_2.29 __longjmp_chk F
|
|
|
|
+GLIBC_2.29 __lseek F
|
|
|
|
+GLIBC_2.29 __lxstat F
|
|
|
|
+GLIBC_2.29 __lxstat64 F
|
|
|
|
+GLIBC_2.29 __malloc_hook D 0x4
|
|
|
|
+GLIBC_2.29 __mbrlen F
|
|
|
|
+GLIBC_2.29 __mbrtowc F
|
|
|
|
+GLIBC_2.29 __mbsnrtowcs_chk F
|
|
|
|
+GLIBC_2.29 __mbsrtowcs_chk F
|
|
|
|
+GLIBC_2.29 __mbstowcs_chk F
|
|
|
|
+GLIBC_2.29 __memalign_hook D 0x4
|
|
|
|
+GLIBC_2.29 __memcpy_chk F
|
|
|
|
+GLIBC_2.29 __memmove_chk F
|
|
|
|
+GLIBC_2.29 __mempcpy F
|
|
|
|
+GLIBC_2.29 __mempcpy_chk F
|
|
|
|
+GLIBC_2.29 __memset_chk F
|
|
|
|
+GLIBC_2.29 __monstartup F
|
|
|
|
+GLIBC_2.29 __morecore D 0x4
|
|
|
|
+GLIBC_2.29 __nanosleep F
|
|
|
|
+GLIBC_2.29 __newlocale F
|
|
|
|
+GLIBC_2.29 __nl_langinfo_l F
|
|
|
|
+GLIBC_2.29 __nss_configure_lookup F
|
|
|
|
+GLIBC_2.29 __nss_database_lookup F
|
|
|
|
+GLIBC_2.29 __nss_hostname_digits_dots F
|
|
|
|
+GLIBC_2.29 __nss_next F
|
|
|
|
+GLIBC_2.29 __obstack_printf_chk F
|
|
|
|
+GLIBC_2.29 __obstack_vprintf_chk F
|
|
|
|
+GLIBC_2.29 __open F
|
|
|
|
+GLIBC_2.29 __open64 F
|
|
|
|
+GLIBC_2.29 __open64_2 F
|
|
|
|
+GLIBC_2.29 __open_2 F
|
|
|
|
+GLIBC_2.29 __openat64_2 F
|
|
|
|
+GLIBC_2.29 __openat_2 F
|
|
|
|
+GLIBC_2.29 __overflow F
|
|
|
|
+GLIBC_2.29 __pipe F
|
|
|
|
+GLIBC_2.29 __poll F
|
|
|
|
+GLIBC_2.29 __poll_chk F
|
|
|
|
+GLIBC_2.29 __posix_getopt F
|
|
|
|
+GLIBC_2.29 __ppoll_chk F
|
|
|
|
+GLIBC_2.29 __pread64 F
|
|
|
|
+GLIBC_2.29 __pread64_chk F
|
|
|
|
+GLIBC_2.29 __pread_chk F
|
|
|
|
+GLIBC_2.29 __printf_chk F
|
|
|
|
+GLIBC_2.29 __printf_fp F
|
|
|
|
+GLIBC_2.29 __profile_frequency F
|
|
|
|
+GLIBC_2.29 __progname D 0x4
|
|
|
|
+GLIBC_2.29 __progname_full D 0x4
|
|
|
|
+GLIBC_2.29 __ptsname_r_chk F
|
|
|
|
+GLIBC_2.29 __pwrite64 F
|
|
|
|
+GLIBC_2.29 __rawmemchr F
|
|
|
|
+GLIBC_2.29 __rcmd_errstr D 0x4
|
|
|
|
+GLIBC_2.29 __read F
|
|
|
|
+GLIBC_2.29 __read_chk F
|
|
|
|
+GLIBC_2.29 __readlink_chk F
|
|
|
|
+GLIBC_2.29 __readlinkat_chk F
|
|
|
|
+GLIBC_2.29 __realloc_hook D 0x4
|
|
|
|
+GLIBC_2.29 __realpath_chk F
|
|
|
|
+GLIBC_2.29 __recv_chk F
|
|
|
|
+GLIBC_2.29 __recvfrom_chk F
|
|
|
|
+GLIBC_2.29 __register_atfork F
|
|
|
|
+GLIBC_2.29 __res_init F
|
|
|
|
+GLIBC_2.29 __res_nclose F
|
|
|
|
+GLIBC_2.29 __res_ninit F
|
|
|
|
+GLIBC_2.29 __res_randomid F
|
|
|
|
+GLIBC_2.29 __res_state F
|
|
|
|
+GLIBC_2.29 __rpc_thread_createerr F
|
|
|
|
+GLIBC_2.29 __rpc_thread_svc_fdset F
|
|
|
|
+GLIBC_2.29 __rpc_thread_svc_max_pollfd F
|
|
|
|
+GLIBC_2.29 __rpc_thread_svc_pollfd F
|
|
|
|
+GLIBC_2.29 __sbrk F
|
|
|
|
+GLIBC_2.29 __sched_cpualloc F
|
|
|
|
+GLIBC_2.29 __sched_cpucount F
|
|
|
|
+GLIBC_2.29 __sched_cpufree F
|
|
|
|
+GLIBC_2.29 __sched_get_priority_max F
|
|
|
|
+GLIBC_2.29 __sched_get_priority_min F
|
|
|
|
+GLIBC_2.29 __sched_getparam F
|
|
|
|
+GLIBC_2.29 __sched_getscheduler F
|
|
|
|
+GLIBC_2.29 __sched_setscheduler F
|
|
|
|
+GLIBC_2.29 __sched_yield F
|
|
|
|
+GLIBC_2.29 __select F
|
|
|
|
+GLIBC_2.29 __send F
|
|
|
|
+GLIBC_2.29 __setmntent F
|
|
|
|
+GLIBC_2.29 __setpgid F
|
|
|
|
+GLIBC_2.29 __sigaction F
|
|
|
|
+GLIBC_2.29 __signbit F
|
|
|
|
+GLIBC_2.29 __signbitf F
|
|
|
|
+GLIBC_2.29 __sigpause F
|
|
|
|
+GLIBC_2.29 __sigsetjmp F
|
|
|
|
+GLIBC_2.29 __sigsuspend F
|
|
|
|
+GLIBC_2.29 __snprintf_chk F
|
|
|
|
+GLIBC_2.29 __sprintf_chk F
|
|
|
|
+GLIBC_2.29 __stack_chk_fail F
|
|
|
|
+GLIBC_2.29 __statfs F
|
|
|
|
+GLIBC_2.29 __stpcpy F
|
|
|
|
+GLIBC_2.29 __stpcpy_chk F
|
|
|
|
+GLIBC_2.29 __stpncpy F
|
|
|
|
+GLIBC_2.29 __stpncpy_chk F
|
|
|
|
+GLIBC_2.29 __strcasecmp F
|
|
|
|
+GLIBC_2.29 __strcasecmp_l F
|
|
|
|
+GLIBC_2.29 __strcasestr F
|
|
|
|
+GLIBC_2.29 __strcat_chk F
|
|
|
|
+GLIBC_2.29 __strcoll_l F
|
|
|
|
+GLIBC_2.29 __strcpy_chk F
|
|
|
|
+GLIBC_2.29 __strdup F
|
|
|
|
+GLIBC_2.29 __strerror_r F
|
|
|
|
+GLIBC_2.29 __strfmon_l F
|
|
|
|
+GLIBC_2.29 __strftime_l F
|
|
|
|
+GLIBC_2.29 __strncasecmp_l F
|
|
|
|
+GLIBC_2.29 __strncat_chk F
|
|
|
|
+GLIBC_2.29 __strncpy_chk F
|
|
|
|
+GLIBC_2.29 __strndup F
|
|
|
|
+GLIBC_2.29 __strsep_g F
|
|
|
|
+GLIBC_2.29 __strtod_internal F
|
|
|
|
+GLIBC_2.29 __strtod_l F
|
|
|
|
+GLIBC_2.29 __strtof_internal F
|
|
|
|
+GLIBC_2.29 __strtof_l F
|
|
|
|
+GLIBC_2.29 __strtok_r F
|
|
|
|
+GLIBC_2.29 __strtol_internal F
|
|
|
|
+GLIBC_2.29 __strtol_l F
|
|
|
|
+GLIBC_2.29 __strtold_internal F
|
|
|
|
+GLIBC_2.29 __strtold_l F
|
|
|
|
+GLIBC_2.29 __strtoll_internal F
|
|
|
|
+GLIBC_2.29 __strtoll_l F
|
|
|
|
+GLIBC_2.29 __strtoul_internal F
|
|
|
|
+GLIBC_2.29 __strtoul_l F
|
|
|
|
+GLIBC_2.29 __strtoull_internal F
|
|
|
|
+GLIBC_2.29 __strtoull_l F
|
|
|
|
+GLIBC_2.29 __strverscmp F
|
|
|
|
+GLIBC_2.29 __strxfrm_l F
|
|
|
|
+GLIBC_2.29 __swprintf_chk F
|
|
|
|
+GLIBC_2.29 __syscall_error F
|
|
|
|
+GLIBC_2.29 __sysconf F
|
|
|
|
+GLIBC_2.29 __syslog_chk F
|
|
|
|
+GLIBC_2.29 __sysv_signal F
|
|
|
|
+GLIBC_2.29 __timezone D 0x4
|
|
|
|
+GLIBC_2.29 __toascii_l F
|
|
|
|
+GLIBC_2.29 __tolower_l F
|
|
|
|
+GLIBC_2.29 __toupper_l F
|
|
|
|
+GLIBC_2.29 __towctrans F
|
|
|
|
+GLIBC_2.29 __towctrans_l F
|
|
|
|
+GLIBC_2.29 __towlower_l F
|
|
|
|
+GLIBC_2.29 __towupper_l F
|
|
|
|
+GLIBC_2.29 __ttyname_r_chk F
|
|
|
|
+GLIBC_2.29 __tzname D 0x8
|
|
|
|
+GLIBC_2.29 __uflow F
|
|
|
|
+GLIBC_2.29 __underflow F
|
|
|
|
+GLIBC_2.29 __uselocale F
|
|
|
|
+GLIBC_2.29 __vasprintf_chk F
|
|
|
|
+GLIBC_2.29 __vdprintf_chk F
|
|
|
|
+GLIBC_2.29 __vfork F
|
|
|
|
+GLIBC_2.29 __vfprintf_chk F
|
|
|
|
+GLIBC_2.29 __vfscanf F
|
|
|
|
+GLIBC_2.29 __vfwprintf_chk F
|
|
|
|
+GLIBC_2.29 __vprintf_chk F
|
|
|
|
+GLIBC_2.29 __vsnprintf F
|
|
|
|
+GLIBC_2.29 __vsnprintf_chk F
|
|
|
|
+GLIBC_2.29 __vsprintf_chk F
|
|
|
|
+GLIBC_2.29 __vsscanf F
|
|
|
|
+GLIBC_2.29 __vswprintf_chk F
|
|
|
|
+GLIBC_2.29 __vsyslog_chk F
|
|
|
|
+GLIBC_2.29 __vwprintf_chk F
|
|
|
|
+GLIBC_2.29 __wait F
|
|
|
|
+GLIBC_2.29 __waitpid F
|
|
|
|
+GLIBC_2.29 __wcpcpy_chk F
|
|
|
|
+GLIBC_2.29 __wcpncpy_chk F
|
|
|
|
+GLIBC_2.29 __wcrtomb_chk F
|
|
|
|
+GLIBC_2.29 __wcscasecmp_l F
|
|
|
|
+GLIBC_2.29 __wcscat_chk F
|
|
|
|
+GLIBC_2.29 __wcscoll_l F
|
|
|
|
+GLIBC_2.29 __wcscpy_chk F
|
|
|
|
+GLIBC_2.29 __wcsftime_l F
|
|
|
|
+GLIBC_2.29 __wcsncasecmp_l F
|
|
|
|
+GLIBC_2.29 __wcsncat_chk F
|
|
|
|
+GLIBC_2.29 __wcsncpy_chk F
|
|
|
|
+GLIBC_2.29 __wcsnrtombs_chk F
|
|
|
|
+GLIBC_2.29 __wcsrtombs_chk F
|
|
|
|
+GLIBC_2.29 __wcstod_internal F
|
|
|
|
+GLIBC_2.29 __wcstod_l F
|
|
|
|
+GLIBC_2.29 __wcstof_internal F
|
|
|
|
+GLIBC_2.29 __wcstof_l F
|
|
|
|
+GLIBC_2.29 __wcstol_internal F
|
|
|
|
+GLIBC_2.29 __wcstol_l F
|
|
|
|
+GLIBC_2.29 __wcstold_internal F
|
|
|
|
+GLIBC_2.29 __wcstold_l F
|
|
|
|
+GLIBC_2.29 __wcstoll_internal F
|
|
|
|
+GLIBC_2.29 __wcstoll_l F
|
|
|
|
+GLIBC_2.29 __wcstombs_chk F
|
|
|
|
+GLIBC_2.29 __wcstoul_internal F
|
|
|
|
+GLIBC_2.29 __wcstoul_l F
|
|
|
|
+GLIBC_2.29 __wcstoull_internal F
|
|
|
|
+GLIBC_2.29 __wcstoull_l F
|
|
|
|
+GLIBC_2.29 __wcsxfrm_l F
|
|
|
|
+GLIBC_2.29 __wctomb_chk F
|
|
|
|
+GLIBC_2.29 __wctrans_l F
|
|
|
|
+GLIBC_2.29 __wctype_l F
|
|
|
|
+GLIBC_2.29 __wmemcpy_chk F
|
|
|
|
+GLIBC_2.29 __wmemmove_chk F
|
|
|
|
+GLIBC_2.29 __wmempcpy_chk F
|
|
|
|
+GLIBC_2.29 __wmemset_chk F
|
|
|
|
+GLIBC_2.29 __woverflow F
|
|
|
|
+GLIBC_2.29 __wprintf_chk F
|
|
|
|
+GLIBC_2.29 __write F
|
|
|
|
+GLIBC_2.29 __wuflow F
|
|
|
|
+GLIBC_2.29 __wunderflow F
|
|
|
|
+GLIBC_2.29 __xmknod F
|
|
|
|
+GLIBC_2.29 __xmknodat F
|
|
|
|
+GLIBC_2.29 __xpg_basename F
|
|
|
|
+GLIBC_2.29 __xpg_sigpause F
|
|
|
|
+GLIBC_2.29 __xpg_strerror_r F
|
|
|
|
+GLIBC_2.29 __xstat F
|
|
|
|
+GLIBC_2.29 __xstat64 F
|
|
|
|
+GLIBC_2.29 _authenticate F
|
|
|
|
+GLIBC_2.29 _dl_mcount_wrapper F
|
|
|
|
+GLIBC_2.29 _dl_mcount_wrapper_check F
|
|
|
|
+GLIBC_2.29 _environ D 0x4
|
|
|
|
+GLIBC_2.29 _exit F
|
|
|
|
+GLIBC_2.29 _flush_cache F
|
|
|
|
+GLIBC_2.29 _flushlbf F
|
|
|
|
+GLIBC_2.29 _libc_intl_domainname D 0x5
|
|
|
|
+GLIBC_2.29 _longjmp F
|
|
|
|
+GLIBC_2.29 _mcleanup F
|
|
|
|
+GLIBC_2.29 _mcount F
|
|
|
|
+GLIBC_2.29 _nl_default_dirname D 0x12
|
|
|
|
+GLIBC_2.29 _nl_domain_bindings D 0x4
|
|
|
|
+GLIBC_2.29 _nl_msg_cat_cntr D 0x4
|
|
|
|
+GLIBC_2.29 _null_auth D 0xc
|
|
|
|
+GLIBC_2.29 _obstack_allocated_p F
|
|
|
|
+GLIBC_2.29 _obstack_begin F
|
|
|
|
+GLIBC_2.29 _obstack_begin_1 F
|
|
|
|
+GLIBC_2.29 _obstack_free F
|
|
|
|
+GLIBC_2.29 _obstack_memory_used F
|
|
|
|
+GLIBC_2.29 _obstack_newchunk F
|
|
|
|
+GLIBC_2.29 _res D 0x200
|
|
|
|
+GLIBC_2.29 _res_hconf D 0x30
|
|
|
|
+GLIBC_2.29 _rpc_dtablesize F
|
|
|
|
+GLIBC_2.29 _seterr_reply F
|
|
|
|
+GLIBC_2.29 _setjmp F
|
|
|
|
+GLIBC_2.29 _sys_errlist D 0x21c
|
|
|
|
+GLIBC_2.29 _sys_nerr D 0x4
|
|
|
|
+GLIBC_2.29 _sys_siglist D 0x104
|
|
|
|
+GLIBC_2.29 _tolower F
|
|
|
|
+GLIBC_2.29 _toupper F
|
|
|
|
+GLIBC_2.29 a64l F
|
|
|
|
+GLIBC_2.29 abort F
|
|
|
|
+GLIBC_2.29 abs F
|
|
|
|
+GLIBC_2.29 accept F
|
|
|
|
+GLIBC_2.29 accept4 F
|
|
|
|
+GLIBC_2.29 access F
|
|
|
|
+GLIBC_2.29 acct F
|
|
|
|
+GLIBC_2.29 addmntent F
|
|
|
|
+GLIBC_2.29 addseverity F
|
|
|
|
+GLIBC_2.29 adjtime F
|
|
|
|
+GLIBC_2.29 adjtimex F
|
|
|
|
+GLIBC_2.29 alarm F
|
|
|
|
+GLIBC_2.29 aligned_alloc F
|
|
|
|
+GLIBC_2.29 alphasort F
|
|
|
|
+GLIBC_2.29 alphasort64 F
|
|
|
|
+GLIBC_2.29 argp_err_exit_status D 0x4
|
|
|
|
+GLIBC_2.29 argp_error F
|
|
|
|
+GLIBC_2.29 argp_failure F
|
|
|
|
+GLIBC_2.29 argp_help F
|
|
|
|
+GLIBC_2.29 argp_parse F
|
|
|
|
+GLIBC_2.29 argp_program_bug_address D 0x4
|
|
|
|
+GLIBC_2.29 argp_program_version D 0x4
|
|
|
|
+GLIBC_2.29 argp_program_version_hook D 0x4
|
|
|
|
+GLIBC_2.29 argp_state_help F
|
|
|
|
+GLIBC_2.29 argp_usage F
|
|
|
|
+GLIBC_2.29 argz_add F
|
|
|
|
+GLIBC_2.29 argz_add_sep F
|
|
|
|
+GLIBC_2.29 argz_append F
|
|
|
|
+GLIBC_2.29 argz_count F
|
|
|
|
+GLIBC_2.29 argz_create F
|
|
|
|
+GLIBC_2.29 argz_create_sep F
|
|
|
|
+GLIBC_2.29 argz_delete F
|
|
|
|
+GLIBC_2.29 argz_extract F
|
|
|
|
+GLIBC_2.29 argz_insert F
|
|
|
|
+GLIBC_2.29 argz_next F
|
|
|
|
+GLIBC_2.29 argz_replace F
|
|
|
|
+GLIBC_2.29 argz_stringify F
|
|
|
|
+GLIBC_2.29 asctime F
|
|
|
|
+GLIBC_2.29 asctime_r F
|
|
|
|
+GLIBC_2.29 asprintf F
|
|
|
|
+GLIBC_2.29 atof F
|
|
|
|
+GLIBC_2.29 atoi F
|
|
|
|
+GLIBC_2.29 atol F
|
|
|
|
+GLIBC_2.29 atoll F
|
|
|
|
+GLIBC_2.29 authdes_create F
|
|
|
|
+GLIBC_2.29 authdes_getucred F
|
|
|
|
+GLIBC_2.29 authdes_pk_create F
|
|
|
|
+GLIBC_2.29 authnone_create F
|
|
|
|
+GLIBC_2.29 authunix_create F
|
|
|
|
+GLIBC_2.29 authunix_create_default F
|
|
|
|
+GLIBC_2.29 backtrace F
|
|
|
|
+GLIBC_2.29 backtrace_symbols F
|
|
|
|
+GLIBC_2.29 backtrace_symbols_fd F
|
|
|
|
+GLIBC_2.29 basename F
|
|
|
|
+GLIBC_2.29 bcmp F
|
|
|
|
+GLIBC_2.29 bcopy F
|
|
|
|
+GLIBC_2.29 bind F
|
|
|
|
+GLIBC_2.29 bind_textdomain_codeset F
|
|
|
|
+GLIBC_2.29 bindresvport F
|
|
|
|
+GLIBC_2.29 bindtextdomain F
|
|
|
|
+GLIBC_2.29 brk F
|
|
|
|
+GLIBC_2.29 bsd_signal F
|
|
|
|
+GLIBC_2.29 bsearch F
|
|
|
|
+GLIBC_2.29 btowc F
|
|
|
|
+GLIBC_2.29 bzero F
|
|
|
|
+GLIBC_2.29 c16rtomb F
|
|
|
|
+GLIBC_2.29 c32rtomb F
|
|
|
|
+GLIBC_2.29 cacheflush F
|
|
|
|
+GLIBC_2.29 calloc F
|
|
|
|
+GLIBC_2.29 callrpc F
|
|
|
|
+GLIBC_2.29 canonicalize_file_name F
|
|
|
|
+GLIBC_2.29 capget F
|
|
|
|
+GLIBC_2.29 capset F
|
|
|
|
+GLIBC_2.29 catclose F
|
|
|
|
+GLIBC_2.29 catgets F
|
|
|
|
+GLIBC_2.29 catopen F
|
|
|
|
+GLIBC_2.29 cbc_crypt F
|
|
|
|
+GLIBC_2.29 cfgetispeed F
|
|
|
|
+GLIBC_2.29 cfgetospeed F
|
|
|
|
+GLIBC_2.29 cfmakeraw F
|
|
|
|
+GLIBC_2.29 cfsetispeed F
|
|
|
|
+GLIBC_2.29 cfsetospeed F
|
|
|
|
+GLIBC_2.29 cfsetspeed F
|
|
|
|
+GLIBC_2.29 chdir F
|
|
|
|
+GLIBC_2.29 chflags F
|
|
|
|
+GLIBC_2.29 chmod F
|
|
|
|
+GLIBC_2.29 chown F
|
|
|
|
+GLIBC_2.29 chroot F
|
|
|
|
+GLIBC_2.29 clearenv F
|
|
|
|
+GLIBC_2.29 clearerr F
|
|
|
|
+GLIBC_2.29 clearerr_unlocked F
|
|
|
|
+GLIBC_2.29 clnt_broadcast F
|
|
|
|
+GLIBC_2.29 clnt_create F
|
|
|
|
+GLIBC_2.29 clnt_pcreateerror F
|
|
|
|
+GLIBC_2.29 clnt_perrno F
|
|
|
|
+GLIBC_2.29 clnt_perror F
|
|
|
|
+GLIBC_2.29 clnt_spcreateerror F
|
|
|
|
+GLIBC_2.29 clnt_sperrno F
|
|
|
|
+GLIBC_2.29 clnt_sperror F
|
|
|
|
+GLIBC_2.29 clntraw_create F
|
|
|
|
+GLIBC_2.29 clnttcp_create F
|
|
|
|
+GLIBC_2.29 clntudp_bufcreate F
|
|
|
|
+GLIBC_2.29 clntudp_create F
|
|
|
|
+GLIBC_2.29 clntunix_create F
|
|
|
|
+GLIBC_2.29 clock F
|
|
|
|
+GLIBC_2.29 clock_adjtime F
|
|
|
|
+GLIBC_2.29 clock_getcpuclockid F
|
|
|
|
+GLIBC_2.29 clock_getres F
|
|
|
|
+GLIBC_2.29 clock_gettime F
|
|
|
|
+GLIBC_2.29 clock_nanosleep F
|
|
|
|
+GLIBC_2.29 clock_settime F
|
|
|
|
+GLIBC_2.29 clone F
|
|
|
|
+GLIBC_2.29 close F
|
|
|
|
+GLIBC_2.29 closedir F
|
|
|
|
+GLIBC_2.29 closelog F
|
|
|
|
+GLIBC_2.29 confstr F
|
|
|
|
+GLIBC_2.29 connect F
|
|
|
|
+GLIBC_2.29 copy_file_range F
|
|
|
|
+GLIBC_2.29 copysign F
|
|
|
|
+GLIBC_2.29 copysignf F
|
|
|
|
+GLIBC_2.29 copysignl F
|
|
|
|
+GLIBC_2.29 creat F
|
|
|
|
+GLIBC_2.29 creat64 F
|
|
|
|
+GLIBC_2.29 ctermid F
|
|
|
|
+GLIBC_2.29 ctime F
|
|
|
|
+GLIBC_2.29 ctime_r F
|
|
|
|
+GLIBC_2.29 cuserid F
|
|
|
|
+GLIBC_2.29 daemon F
|
|
|
|
+GLIBC_2.29 daylight D 0x4
|
|
|
|
+GLIBC_2.29 dcgettext F
|
|
|
|
+GLIBC_2.29 dcngettext F
|
|
|
|
+GLIBC_2.29 delete_module F
|
|
|
|
+GLIBC_2.29 des_setparity F
|
|
|
|
+GLIBC_2.29 dgettext F
|
|
|
|
+GLIBC_2.29 difftime F
|
|
|
|
+GLIBC_2.29 dirfd F
|
|
|
|
+GLIBC_2.29 dirname F
|
|
|
|
+GLIBC_2.29 div F
|
|
|
|
+GLIBC_2.29 dl_iterate_phdr F
|
|
|
|
+GLIBC_2.29 dngettext F
|
|
|
|
+GLIBC_2.29 dprintf F
|
|
|
|
+GLIBC_2.29 drand48 F
|
|
|
|
+GLIBC_2.29 drand48_r F
|
|
|
|
+GLIBC_2.29 dup F
|
|
|
|
+GLIBC_2.29 dup2 F
|
|
|
|
+GLIBC_2.29 dup3 F
|
|
|
|
+GLIBC_2.29 duplocale F
|
|
|
|
+GLIBC_2.29 dysize F
|
|
|
|
+GLIBC_2.29 eaccess F
|
|
|
|
+GLIBC_2.29 ecb_crypt F
|
|
|
|
+GLIBC_2.29 ecvt F
|
|
|
|
+GLIBC_2.29 ecvt_r F
|
|
|
|
+GLIBC_2.29 endaliasent F
|
|
|
|
+GLIBC_2.29 endfsent F
|
|
|
|
+GLIBC_2.29 endgrent F
|
|
|
|
+GLIBC_2.29 endhostent F
|
|
|
|
+GLIBC_2.29 endmntent F
|
|
|
|
+GLIBC_2.29 endnetent F
|
|
|
|
+GLIBC_2.29 endnetgrent F
|
|
|
|
+GLIBC_2.29 endprotoent F
|
|
|
|
+GLIBC_2.29 endpwent F
|
|
|
|
+GLIBC_2.29 endrpcent F
|
|
|
|
+GLIBC_2.29 endservent F
|
|
|
|
+GLIBC_2.29 endsgent F
|
|
|
|
+GLIBC_2.29 endspent F
|
|
|
|
+GLIBC_2.29 endttyent F
|
|
|
|
+GLIBC_2.29 endusershell F
|
|
|
|
+GLIBC_2.29 endutent F
|
|
|
|
+GLIBC_2.29 endutxent F
|
|
|
|
+GLIBC_2.29 environ D 0x4
|
|
|
|
+GLIBC_2.29 envz_add F
|
|
|
|
+GLIBC_2.29 envz_entry F
|
|
|
|
+GLIBC_2.29 envz_get F
|
|
|
|
+GLIBC_2.29 envz_merge F
|
|
|
|
+GLIBC_2.29 envz_remove F
|
|
|
|
+GLIBC_2.29 envz_strip F
|
|
|
|
+GLIBC_2.29 epoll_create F
|
|
|
|
+GLIBC_2.29 epoll_create1 F
|
|
|
|
+GLIBC_2.29 epoll_ctl F
|
|
|
|
+GLIBC_2.29 epoll_pwait F
|
|
|
|
+GLIBC_2.29 epoll_wait F
|
|
|
|
+GLIBC_2.29 erand48 F
|
|
|
|
+GLIBC_2.29 erand48_r F
|
|
|
|
+GLIBC_2.29 err F
|
|
|
|
+GLIBC_2.29 error F
|
|
|
|
+GLIBC_2.29 error_at_line F
|
|
|
|
+GLIBC_2.29 error_message_count D 0x4
|
|
|
|
+GLIBC_2.29 error_one_per_line D 0x4
|
|
|
|
+GLIBC_2.29 error_print_progname D 0x4
|
|
|
|
+GLIBC_2.29 errx F
|
|
|
|
+GLIBC_2.29 ether_aton F
|
|
|
|
+GLIBC_2.29 ether_aton_r F
|
|
|
|
+GLIBC_2.29 ether_hostton F
|
|
|
|
+GLIBC_2.29 ether_line F
|
|
|
|
+GLIBC_2.29 ether_ntoa F
|
|
|
|
+GLIBC_2.29 ether_ntoa_r F
|
|
|
|
+GLIBC_2.29 ether_ntohost F
|
|
|
|
+GLIBC_2.29 euidaccess F
|
|
|
|
+GLIBC_2.29 eventfd F
|
|
|
|
+GLIBC_2.29 eventfd_read F
|
|
|
|
+GLIBC_2.29 eventfd_write F
|
|
|
|
+GLIBC_2.29 execl F
|
|
|
|
+GLIBC_2.29 execle F
|
|
|
|
+GLIBC_2.29 execlp F
|
|
|
|
+GLIBC_2.29 execv F
|
|
|
|
+GLIBC_2.29 execve F
|
|
|
|
+GLIBC_2.29 execvp F
|
|
|
|
+GLIBC_2.29 execvpe F
|
|
|
|
+GLIBC_2.29 exit F
|
|
|
|
+GLIBC_2.29 explicit_bzero F
|
|
|
|
+GLIBC_2.29 faccessat F
|
|
|
|
+GLIBC_2.29 fallocate F
|
|
|
|
+GLIBC_2.29 fallocate64 F
|
|
|
|
+GLIBC_2.29 fanotify_init F
|
|
|
|
+GLIBC_2.29 fanotify_mark F
|
|
|
|
+GLIBC_2.29 fattach F
|
|
|
|
+GLIBC_2.29 fchdir F
|
|
|
|
+GLIBC_2.29 fchflags F
|
|
|
|
+GLIBC_2.29 fchmod F
|
|
|
|
+GLIBC_2.29 fchmodat F
|
|
|
|
+GLIBC_2.29 fchown F
|
|
|
|
+GLIBC_2.29 fchownat F
|
|
|
|
+GLIBC_2.29 fclose F
|
|
|
|
+GLIBC_2.29 fcloseall F
|
|
|
|
+GLIBC_2.29 fcntl F
|
|
|
|
+GLIBC_2.29 fcntl64 F
|
|
|
|
+GLIBC_2.29 fcvt F
|
|
|
|
+GLIBC_2.29 fcvt_r F
|
|
|
|
+GLIBC_2.29 fdatasync F
|
|
|
|
+GLIBC_2.29 fdetach F
|
|
|
|
+GLIBC_2.29 fdopen F
|
|
|
|
+GLIBC_2.29 fdopendir F
|
|
|
|
+GLIBC_2.29 feof F
|
|
|
|
+GLIBC_2.29 feof_unlocked F
|
|
|
|
+GLIBC_2.29 ferror F
|
|
|
|
+GLIBC_2.29 ferror_unlocked F
|
|
|
|
+GLIBC_2.29 fexecve F
|
|
|
|
+GLIBC_2.29 fflush F
|
|
|
|
+GLIBC_2.29 fflush_unlocked F
|
|
|
|
+GLIBC_2.29 ffs F
|
|
|
|
+GLIBC_2.29 ffsl F
|
|
|
|
+GLIBC_2.29 ffsll F
|
|
|
|
+GLIBC_2.29 fgetc F
|
|
|
|
+GLIBC_2.29 fgetc_unlocked F
|
|
|
|
+GLIBC_2.29 fgetgrent F
|
|
|
|
+GLIBC_2.29 fgetgrent_r F
|
|
|
|
+GLIBC_2.29 fgetpos F
|
|
|
|
+GLIBC_2.29 fgetpos64 F
|
|
|
|
+GLIBC_2.29 fgetpwent F
|
|
|
|
+GLIBC_2.29 fgetpwent_r F
|
|
|
|
+GLIBC_2.29 fgets F
|
|
|
|
+GLIBC_2.29 fgets_unlocked F
|
|
|
|
+GLIBC_2.29 fgetsgent F
|
|
|
|
+GLIBC_2.29 fgetsgent_r F
|
|
|
|
+GLIBC_2.29 fgetspent F
|
|
|
|
+GLIBC_2.29 fgetspent_r F
|
|
|
|
+GLIBC_2.29 fgetwc F
|
|
|
|
+GLIBC_2.29 fgetwc_unlocked F
|
|
|
|
+GLIBC_2.29 fgetws F
|
|
|
|
+GLIBC_2.29 fgetws_unlocked F
|
|
|
|
+GLIBC_2.29 fgetxattr F
|
|
|
|
+GLIBC_2.29 fileno F
|
|
|
|
+GLIBC_2.29 fileno_unlocked F
|
|
|
|
+GLIBC_2.29 finite F
|
|
|
|
+GLIBC_2.29 finitef F
|
|
|
|
+GLIBC_2.29 finitel F
|
|
|
|
+GLIBC_2.29 flistxattr F
|
|
|
|
+GLIBC_2.29 flock F
|
|
|
|
+GLIBC_2.29 flockfile F
|
|
|
|
+GLIBC_2.29 fmemopen F
|
|
|
|
+GLIBC_2.29 fmtmsg F
|
|
|
|
+GLIBC_2.29 fnmatch F
|
|
|
|
+GLIBC_2.29 fopen F
|
|
|
|
+GLIBC_2.29 fopen64 F
|
|
|
|
+GLIBC_2.29 fopencookie F
|
|
|
|
+GLIBC_2.29 fork F
|
|
|
|
+GLIBC_2.29 fpathconf F
|
|
|
|
+GLIBC_2.29 fprintf F
|
|
|
|
+GLIBC_2.29 fputc F
|
|
|
|
+GLIBC_2.29 fputc_unlocked F
|
|
|
|
+GLIBC_2.29 fputs F
|
|
|
|
+GLIBC_2.29 fputs_unlocked F
|
|
|
|
+GLIBC_2.29 fputwc F
|
|
|
|
+GLIBC_2.29 fputwc_unlocked F
|
|
|
|
+GLIBC_2.29 fputws F
|
|
|
|
+GLIBC_2.29 fputws_unlocked F
|
|
|
|
+GLIBC_2.29 fread F
|
|
|
|
+GLIBC_2.29 fread_unlocked F
|
|
|
|
+GLIBC_2.29 free F
|
|
|
|
+GLIBC_2.29 freeaddrinfo F
|
|
|
|
+GLIBC_2.29 freeifaddrs F
|
|
|
|
+GLIBC_2.29 freelocale F
|
|
|
|
+GLIBC_2.29 fremovexattr F
|
|
|
|
+GLIBC_2.29 freopen F
|
|
|
|
+GLIBC_2.29 freopen64 F
|
|
|
|
+GLIBC_2.29 frexp F
|
|
|
|
+GLIBC_2.29 frexpf F
|
|
|
|
+GLIBC_2.29 frexpl F
|
|
|
|
+GLIBC_2.29 fscanf F
|
|
|
|
+GLIBC_2.29 fseek F
|
|
|
|
+GLIBC_2.29 fseeko F
|
|
|
|
+GLIBC_2.29 fseeko64 F
|
|
|
|
+GLIBC_2.29 fsetpos F
|
|
|
|
+GLIBC_2.29 fsetpos64 F
|
|
|
|
+GLIBC_2.29 fsetxattr F
|
|
|
|
+GLIBC_2.29 fstatfs F
|
|
|
|
+GLIBC_2.29 fstatfs64 F
|
|
|
|
+GLIBC_2.29 fstatvfs F
|
|
|
|
+GLIBC_2.29 fstatvfs64 F
|
|
|
|
+GLIBC_2.29 fsync F
|
|
|
|
+GLIBC_2.29 ftell F
|
|
|
|
+GLIBC_2.29 ftello F
|
|
|
|
+GLIBC_2.29 ftello64 F
|
|
|
|
+GLIBC_2.29 ftime F
|
|
|
|
+GLIBC_2.29 ftok F
|
|
|
|
+GLIBC_2.29 ftruncate F
|
|
|
|
+GLIBC_2.29 ftruncate64 F
|
|
|
|
+GLIBC_2.29 ftrylockfile F
|
|
|
|
+GLIBC_2.29 fts64_children F
|
|
|
|
+GLIBC_2.29 fts64_close F
|
|
|
|
+GLIBC_2.29 fts64_open F
|
|
|
|
+GLIBC_2.29 fts64_read F
|
|
|
|
+GLIBC_2.29 fts64_set F
|
|
|
|
+GLIBC_2.29 fts_children F
|
|
|
|
+GLIBC_2.29 fts_close F
|
|
|
|
+GLIBC_2.29 fts_open F
|
|
|
|
+GLIBC_2.29 fts_read F
|
|
|
|
+GLIBC_2.29 fts_set F
|
|
|
|
+GLIBC_2.29 ftw F
|
|
|
|
+GLIBC_2.29 ftw64 F
|
|
|
|
+GLIBC_2.29 funlockfile F
|
|
|
|
+GLIBC_2.29 futimens F
|
|
|
|
+GLIBC_2.29 futimes F
|
|
|
|
+GLIBC_2.29 futimesat F
|
|
|
|
+GLIBC_2.29 fwide F
|
|
|
|
+GLIBC_2.29 fwprintf F
|
|
|
|
+GLIBC_2.29 fwrite F
|
|
|
|
+GLIBC_2.29 fwrite_unlocked F
|
|
|
|
+GLIBC_2.29 fwscanf F
|
|
|
|
+GLIBC_2.29 gai_strerror F
|
|
|
|
+GLIBC_2.29 gcvt F
|
|
|
|
+GLIBC_2.29 get_avphys_pages F
|
|
|
|
+GLIBC_2.29 get_current_dir_name F
|
|
|
|
+GLIBC_2.29 get_myaddress F
|
|
|
|
+GLIBC_2.29 get_nprocs F
|
|
|
|
+GLIBC_2.29 get_nprocs_conf F
|
|
|
|
+GLIBC_2.29 get_phys_pages F
|
|
|
|
+GLIBC_2.29 getaddrinfo F
|
|
|
|
+GLIBC_2.29 getaliasbyname F
|
|
|
|
+GLIBC_2.29 getaliasbyname_r F
|
|
|
|
+GLIBC_2.29 getaliasent F
|
|
|
|
+GLIBC_2.29 getaliasent_r F
|
|
|
|
+GLIBC_2.29 getauxval F
|
|
|
|
+GLIBC_2.29 getc F
|
|
|
|
+GLIBC_2.29 getc_unlocked F
|
|
|
|
+GLIBC_2.29 getchar F
|
|
|
|
+GLIBC_2.29 getchar_unlocked F
|
|
|
|
+GLIBC_2.29 getcontext F
|
|
|
|
+GLIBC_2.29 getcpu F
|
|
|
|
+GLIBC_2.29 getcwd F
|
|
|
|
+GLIBC_2.29 getdate F
|
|
|
|
+GLIBC_2.29 getdate_err D 0x4
|
|
|
|
+GLIBC_2.29 getdate_r F
|
|
|
|
+GLIBC_2.29 getdelim F
|
|
|
|
+GLIBC_2.29 getdirentries F
|
|
|
|
+GLIBC_2.29 getdirentries64 F
|
|
|
|
+GLIBC_2.29 getdomainname F
|
|
|
|
+GLIBC_2.29 getdtablesize F
|
|
|
|
+GLIBC_2.29 getegid F
|
|
|
|
+GLIBC_2.29 getentropy F
|
|
|
|
+GLIBC_2.29 getenv F
|
|
|
|
+GLIBC_2.29 geteuid F
|
|
|
|
+GLIBC_2.29 getfsent F
|
|
|
|
+GLIBC_2.29 getfsfile F
|
|
|
|
+GLIBC_2.29 getfsspec F
|
|
|
|
+GLIBC_2.29 getgid F
|
|
|
|
+GLIBC_2.29 getgrent F
|
|
|
|
+GLIBC_2.29 getgrent_r F
|
|
|
|
+GLIBC_2.29 getgrgid F
|
|
|
|
+GLIBC_2.29 getgrgid_r F
|
|
|
|
+GLIBC_2.29 getgrnam F
|
|
|
|
+GLIBC_2.29 getgrnam_r F
|
|
|
|
+GLIBC_2.29 getgrouplist F
|
|
|
|
+GLIBC_2.29 getgroups F
|
|
|
|
+GLIBC_2.29 gethostbyaddr F
|
|
|
|
+GLIBC_2.29 gethostbyaddr_r F
|
|
|
|
+GLIBC_2.29 gethostbyname F
|
|
|
|
+GLIBC_2.29 gethostbyname2 F
|
|
|
|
+GLIBC_2.29 gethostbyname2_r F
|
|
|
|
+GLIBC_2.29 gethostbyname_r F
|
|
|
|
+GLIBC_2.29 gethostent F
|
|
|
|
+GLIBC_2.29 gethostent_r F
|
|
|
|
+GLIBC_2.29 gethostid F
|
|
|
|
+GLIBC_2.29 gethostname F
|
|
|
|
+GLIBC_2.29 getifaddrs F
|
|
|
|
+GLIBC_2.29 getipv4sourcefilter F
|
|
|
|
+GLIBC_2.29 getitimer F
|
|
|
|
+GLIBC_2.29 getline F
|
|
|
|
+GLIBC_2.29 getloadavg F
|
|
|
|
+GLIBC_2.29 getlogin F
|
|
|
|
+GLIBC_2.29 getlogin_r F
|
|
|
|
+GLIBC_2.29 getmntent F
|
|
|
|
+GLIBC_2.29 getmntent_r F
|
|
|
|
+GLIBC_2.29 getmsg F
|
|
|
|
+GLIBC_2.29 getnameinfo F
|
|
|
|
+GLIBC_2.29 getnetbyaddr F
|
|
|
|
+GLIBC_2.29 getnetbyaddr_r F
|
|
|
|
+GLIBC_2.29 getnetbyname F
|
|
|
|
+GLIBC_2.29 getnetbyname_r F
|
|
|
|
+GLIBC_2.29 getnetent F
|
|
|
|
+GLIBC_2.29 getnetent_r F
|
|
|
|
+GLIBC_2.29 getnetgrent F
|
|
|
|
+GLIBC_2.29 getnetgrent_r F
|
|
|
|
+GLIBC_2.29 getnetname F
|
|
|
|
+GLIBC_2.29 getopt F
|
|
|
|
+GLIBC_2.29 getopt_long F
|
|
|
|
+GLIBC_2.29 getopt_long_only F
|
|
|
|
+GLIBC_2.29 getpagesize F
|
|
|
|
+GLIBC_2.29 getpass F
|
|
|
|
+GLIBC_2.29 getpeername F
|
|
|
|
+GLIBC_2.29 getpgid F
|
|
|
|
+GLIBC_2.29 getpgrp F
|
|
|
|
+GLIBC_2.29 getpid F
|
|
|
|
+GLIBC_2.29 getpmsg F
|
|
|
|
+GLIBC_2.29 getppid F
|
|
|
|
+GLIBC_2.29 getpriority F
|
|
|
|
+GLIBC_2.29 getprotobyname F
|
|
|
|
+GLIBC_2.29 getprotobyname_r F
|
|
|
|
+GLIBC_2.29 getprotobynumber F
|
|
|
|
+GLIBC_2.29 getprotobynumber_r F
|
|
|
|
+GLIBC_2.29 getprotoent F
|
|
|
|
+GLIBC_2.29 getprotoent_r F
|
|
|
|
+GLIBC_2.29 getpt F
|
|
|
|
+GLIBC_2.29 getpublickey F
|
|
|
|
+GLIBC_2.29 getpw F
|
|
|
|
+GLIBC_2.29 getpwent F
|
|
|
|
+GLIBC_2.29 getpwent_r F
|
|
|
|
+GLIBC_2.29 getpwnam F
|
|
|
|
+GLIBC_2.29 getpwnam_r F
|
|
|
|
+GLIBC_2.29 getpwuid F
|
|
|
|
+GLIBC_2.29 getpwuid_r F
|
|
|
|
+GLIBC_2.29 getrandom F
|
|
|
|
+GLIBC_2.29 getresgid F
|
|
|
|
+GLIBC_2.29 getresuid F
|
|
|
|
+GLIBC_2.29 getrlimit F
|
|
|
|
+GLIBC_2.29 getrlimit64 F
|
|
|
|
+GLIBC_2.29 getrpcbyname F
|
|
|
|
+GLIBC_2.29 getrpcbyname_r F
|
|
|
|
+GLIBC_2.29 getrpcbynumber F
|
|
|
|
+GLIBC_2.29 getrpcbynumber_r F
|
|
|
|
+GLIBC_2.29 getrpcent F
|
|
|
|
+GLIBC_2.29 getrpcent_r F
|
|
|
|
+GLIBC_2.29 getrpcport F
|
|
|
|
+GLIBC_2.29 getrusage F
|
|
|
|
+GLIBC_2.29 gets F
|
|
|
|
+GLIBC_2.29 getsecretkey F
|
|
|
|
+GLIBC_2.29 getservbyname F
|
|
|
|
+GLIBC_2.29 getservbyname_r F
|
|
|
|
+GLIBC_2.29 getservbyport F
|
|
|
|
+GLIBC_2.29 getservbyport_r F
|
|
|
|
+GLIBC_2.29 getservent F
|
|
|
|
+GLIBC_2.29 getservent_r F
|
|
|
|
+GLIBC_2.29 getsgent F
|
|
|
|
+GLIBC_2.29 getsgent_r F
|
|
|
|
+GLIBC_2.29 getsgnam F
|
|
|
|
+GLIBC_2.29 getsgnam_r F
|
|
|
|
+GLIBC_2.29 getsid F
|
|
|
|
+GLIBC_2.29 getsockname F
|
|
|
|
+GLIBC_2.29 getsockopt F
|
|
|
|
+GLIBC_2.29 getsourcefilter F
|
|
|
|
+GLIBC_2.29 getspent F
|
|
|
|
+GLIBC_2.29 getspent_r F
|
|
|
|
+GLIBC_2.29 getspnam F
|
|
|
|
+GLIBC_2.29 getspnam_r F
|
|
|
|
+GLIBC_2.29 getsubopt F
|
|
|
|
+GLIBC_2.29 gettext F
|
|
|
|
+GLIBC_2.29 gettimeofday F
|
|
|
|
+GLIBC_2.29 getttyent F
|
|
|
|
+GLIBC_2.29 getttynam F
|
|
|
|
+GLIBC_2.29 getuid F
|
|
|
|
+GLIBC_2.29 getusershell F
|
|
|
|
+GLIBC_2.29 getutent F
|
|
|
|
+GLIBC_2.29 getutent_r F
|
|
|
|
+GLIBC_2.29 getutid F
|
|
|
|
+GLIBC_2.29 getutid_r F
|
|
|
|
+GLIBC_2.29 getutline F
|
|
|
|
+GLIBC_2.29 getutline_r F
|
|
|
|
+GLIBC_2.29 getutmp F
|
|
|
|
+GLIBC_2.29 getutmpx F
|
|
|
|
+GLIBC_2.29 getutxent F
|
|
|
|
+GLIBC_2.29 getutxid F
|
|
|
|
+GLIBC_2.29 getutxline F
|
|
|
|
+GLIBC_2.29 getw F
|
|
|
|
+GLIBC_2.29 getwc F
|
|
|
|
+GLIBC_2.29 getwc_unlocked F
|
|
|
|
+GLIBC_2.29 getwchar F
|
|
|
|
+GLIBC_2.29 getwchar_unlocked F
|
|
|
|
+GLIBC_2.29 getwd F
|
|
|
|
+GLIBC_2.29 getxattr F
|
|
|
|
+GLIBC_2.29 glob F
|
|
|
|
+GLIBC_2.29 glob64 F
|
|
|
|
+GLIBC_2.29 glob_pattern_p F
|
|
|
|
+GLIBC_2.29 globfree F
|
|
|
|
+GLIBC_2.29 globfree64 F
|
|
|
|
+GLIBC_2.29 gmtime F
|
|
|
|
+GLIBC_2.29 gmtime_r F
|
|
|
|
+GLIBC_2.29 gnu_dev_major F
|
|
|
|
+GLIBC_2.29 gnu_dev_makedev F
|
|
|
|
+GLIBC_2.29 gnu_dev_minor F
|
|
|
|
+GLIBC_2.29 gnu_get_libc_release F
|
|
|
|
+GLIBC_2.29 gnu_get_libc_version F
|
|
|
|
+GLIBC_2.29 grantpt F
|
|
|
|
+GLIBC_2.29 group_member F
|
|
|
|
+GLIBC_2.29 gsignal F
|
|
|
|
+GLIBC_2.29 gtty F
|
|
|
|
+GLIBC_2.29 h_errlist D 0x14
|
|
|
|
+GLIBC_2.29 h_nerr D 0x4
|
|
|
|
+GLIBC_2.29 hasmntopt F
|
|
|
|
+GLIBC_2.29 hcreate F
|
|
|
|
+GLIBC_2.29 hcreate_r F
|
|
|
|
+GLIBC_2.29 hdestroy F
|
|
|
|
+GLIBC_2.29 hdestroy_r F
|
|
|
|
+GLIBC_2.29 herror F
|
|
|
|
+GLIBC_2.29 host2netname F
|
|
|
|
+GLIBC_2.29 hsearch F
|
|
|
|
+GLIBC_2.29 hsearch_r F
|
|
|
|
+GLIBC_2.29 hstrerror F
|
|
|
|
+GLIBC_2.29 htonl F
|
|
|
|
+GLIBC_2.29 htons F
|
|
|
|
+GLIBC_2.29 iconv F
|
|
|
|
+GLIBC_2.29 iconv_close F
|
|
|
|
+GLIBC_2.29 iconv_open F
|
|
|
|
+GLIBC_2.29 if_freenameindex F
|
|
|
|
+GLIBC_2.29 if_indextoname F
|
|
|
|
+GLIBC_2.29 if_nameindex F
|
|
|
|
+GLIBC_2.29 if_nametoindex F
|
|
|
|
+GLIBC_2.29 imaxabs F
|
|
|
|
+GLIBC_2.29 imaxdiv F
|
|
|
|
+GLIBC_2.29 in6addr_any D 0x10
|
|
|
|
+GLIBC_2.29 in6addr_loopback D 0x10
|
|
|
|
+GLIBC_2.29 index F
|
|
|
|
+GLIBC_2.29 inet6_opt_append F
|
|
|
|
+GLIBC_2.29 inet6_opt_find F
|
|
|
|
+GLIBC_2.29 inet6_opt_finish F
|
|
|
|
+GLIBC_2.29 inet6_opt_get_val F
|
|
|
|
+GLIBC_2.29 inet6_opt_init F
|
|
|
|
+GLIBC_2.29 inet6_opt_next F
|
|
|
|
+GLIBC_2.29 inet6_opt_set_val F
|
|
|
|
+GLIBC_2.29 inet6_option_alloc F
|
|
|
|
+GLIBC_2.29 inet6_option_append F
|
|
|
|
+GLIBC_2.29 inet6_option_find F
|
|
|
|
+GLIBC_2.29 inet6_option_init F
|
|
|
|
+GLIBC_2.29 inet6_option_next F
|
|
|
|
+GLIBC_2.29 inet6_option_space F
|
|
|
|
+GLIBC_2.29 inet6_rth_add F
|
|
|
|
+GLIBC_2.29 inet6_rth_getaddr F
|
|
|
|
+GLIBC_2.29 inet6_rth_init F
|
|
|
|
+GLIBC_2.29 inet6_rth_reverse F
|
|
|
|
+GLIBC_2.29 inet6_rth_segments F
|
|
|
|
+GLIBC_2.29 inet6_rth_space F
|
|
|
|
+GLIBC_2.29 inet_addr F
|
|
|
|
+GLIBC_2.29 inet_aton F
|
|
|
|
+GLIBC_2.29 inet_lnaof F
|
|
|
|
+GLIBC_2.29 inet_makeaddr F
|
|
|
|
+GLIBC_2.29 inet_netof F
|
|
|
|
+GLIBC_2.29 inet_network F
|
|
|
|
+GLIBC_2.29 inet_nsap_addr F
|
|
|
|
+GLIBC_2.29 inet_nsap_ntoa F
|
|
|
|
+GLIBC_2.29 inet_ntoa F
|
|
|
|
+GLIBC_2.29 inet_ntop F
|
|
|
|
+GLIBC_2.29 inet_pton F
|
|
|
|
+GLIBC_2.29 init_module F
|
|
|
|
+GLIBC_2.29 initgroups F
|
|
|
|
+GLIBC_2.29 initstate F
|
|
|
|
+GLIBC_2.29 initstate_r F
|
|
|
|
+GLIBC_2.29 innetgr F
|
|
|
|
+GLIBC_2.29 inotify_add_watch F
|
|
|
|
+GLIBC_2.29 inotify_init F
|
|
|
|
+GLIBC_2.29 inotify_init1 F
|
|
|
|
+GLIBC_2.29 inotify_rm_watch F
|
|
|
|
+GLIBC_2.29 insque F
|
|
|
|
+GLIBC_2.29 ioctl F
|
|
|
|
+GLIBC_2.29 iruserok F
|
|
|
|
+GLIBC_2.29 iruserok_af F
|
|
|
|
+GLIBC_2.29 isalnum F
|
|
|
|
+GLIBC_2.29 isalnum_l F
|
|
|
|
+GLIBC_2.29 isalpha F
|
|
|
|
+GLIBC_2.29 isalpha_l F
|
|
|
|
+GLIBC_2.29 isascii F
|
|
|
|
+GLIBC_2.29 isastream F
|
|
|
|
+GLIBC_2.29 isatty F
|
|
|
|
+GLIBC_2.29 isblank F
|
|
|
|
+GLIBC_2.29 isblank_l F
|
|
|
|
+GLIBC_2.29 iscntrl F
|
|
|
|
+GLIBC_2.29 iscntrl_l F
|
|
|
|
+GLIBC_2.29 isctype F
|
|
|
|
+GLIBC_2.29 isdigit F
|
|
|
|
+GLIBC_2.29 isdigit_l F
|
|
|
|
+GLIBC_2.29 isfdtype F
|
|
|
|
+GLIBC_2.29 isgraph F
|
|
|
|
+GLIBC_2.29 isgraph_l F
|
|
|
|
+GLIBC_2.29 isinf F
|
|
|
|
+GLIBC_2.29 isinff F
|
|
|
|
+GLIBC_2.29 isinfl F
|
|
|
|
+GLIBC_2.29 islower F
|
|
|
|
+GLIBC_2.29 islower_l F
|
|
|
|
+GLIBC_2.29 isnan F
|
|
|
|
+GLIBC_2.29 isnanf F
|
|
|
|
+GLIBC_2.29 isnanl F
|
|
|
|
+GLIBC_2.29 isprint F
|
|
|
|
+GLIBC_2.29 isprint_l F
|
|
|
|
+GLIBC_2.29 ispunct F
|
|
|
|
+GLIBC_2.29 ispunct_l F
|
|
|
|
+GLIBC_2.29 isspace F
|
|
|
|
+GLIBC_2.29 isspace_l F
|
|
|
|
+GLIBC_2.29 isupper F
|
|
|
|
+GLIBC_2.29 isupper_l F
|
|
|
|
+GLIBC_2.29 iswalnum F
|
|
|
|
+GLIBC_2.29 iswalnum_l F
|
|
|
|
+GLIBC_2.29 iswalpha F
|
|
|
|
+GLIBC_2.29 iswalpha_l F
|
|
|
|
+GLIBC_2.29 iswblank F
|
|
|
|
+GLIBC_2.29 iswblank_l F
|
|
|
|
+GLIBC_2.29 iswcntrl F
|
|
|
|
+GLIBC_2.29 iswcntrl_l F
|
|
|
|
+GLIBC_2.29 iswctype F
|
|
|
|
+GLIBC_2.29 iswctype_l F
|
|
|
|
+GLIBC_2.29 iswdigit F
|
|
|
|
+GLIBC_2.29 iswdigit_l F
|
|
|
|
+GLIBC_2.29 iswgraph F
|
|
|
|
+GLIBC_2.29 iswgraph_l F
|
|
|
|
+GLIBC_2.29 iswlower F
|
|
|
|
+GLIBC_2.29 iswlower_l F
|
|
|
|
+GLIBC_2.29 iswprint F
|
|
|
|
+GLIBC_2.29 iswprint_l F
|
|
|
|
+GLIBC_2.29 iswpunct F
|
|
|
|
+GLIBC_2.29 iswpunct_l F
|
|
|
|
+GLIBC_2.29 iswspace F
|
|
|
|
+GLIBC_2.29 iswspace_l F
|
|
|
|
+GLIBC_2.29 iswupper F
|
|
|
|
+GLIBC_2.29 iswupper_l F
|
|
|
|
+GLIBC_2.29 iswxdigit F
|
|
|
|
+GLIBC_2.29 iswxdigit_l F
|
|
|
|
+GLIBC_2.29 isxdigit F
|
|
|
|
+GLIBC_2.29 isxdigit_l F
|
|
|
|
+GLIBC_2.29 jrand48 F
|
|
|
|
+GLIBC_2.29 jrand48_r F
|
|
|
|
+GLIBC_2.29 key_decryptsession F
|
|
|
|
+GLIBC_2.29 key_decryptsession_pk F
|
|
|
|
+GLIBC_2.29 key_encryptsession F
|
|
|
|
+GLIBC_2.29 key_encryptsession_pk F
|
|
|
|
+GLIBC_2.29 key_gendes F
|
|
|
|
+GLIBC_2.29 key_get_conv F
|
|
|
|
+GLIBC_2.29 key_secretkey_is_set F
|
|
|
|
+GLIBC_2.29 key_setnet F
|
|
|
|
+GLIBC_2.29 key_setsecret F
|
|
|
|
+GLIBC_2.29 kill F
|
|
|
|
+GLIBC_2.29 killpg F
|
|
|
|
+GLIBC_2.29 klogctl F
|
|
|
|
+GLIBC_2.29 l64a F
|
|
|
|
+GLIBC_2.29 labs F
|
|
|
|
+GLIBC_2.29 lchmod F
|
|
|
|
+GLIBC_2.29 lchown F
|
|
|
|
+GLIBC_2.29 lckpwdf F
|
|
|
|
+GLIBC_2.29 lcong48 F
|
|
|
|
+GLIBC_2.29 lcong48_r F
|
|
|
|
+GLIBC_2.29 ldexp F
|
|
|
|
+GLIBC_2.29 ldexpf F
|
|
|
|
+GLIBC_2.29 ldexpl F
|
|
|
|
+GLIBC_2.29 ldiv F
|
|
|
|
+GLIBC_2.29 lfind F
|
|
|
|
+GLIBC_2.29 lgetxattr F
|
|
|
|
+GLIBC_2.29 link F
|
|
|
|
+GLIBC_2.29 linkat F
|
|
|
|
+GLIBC_2.29 listen F
|
|
|
|
+GLIBC_2.29 listxattr F
|
|
|
|
+GLIBC_2.29 llabs F
|
|
|
|
+GLIBC_2.29 lldiv F
|
|
|
|
+GLIBC_2.29 llistxattr F
|
|
|
|
+GLIBC_2.29 localeconv F
|
|
|
|
+GLIBC_2.29 localtime F
|
|
|
|
+GLIBC_2.29 localtime_r F
|
|
|
|
+GLIBC_2.29 lockf F
|
|
|
|
+GLIBC_2.29 lockf64 F
|
|
|
|
+GLIBC_2.29 longjmp F
|
|
|
|
+GLIBC_2.29 lrand48 F
|
|
|
|
+GLIBC_2.29 lrand48_r F
|
|
|
|
+GLIBC_2.29 lremovexattr F
|
|
|
|
+GLIBC_2.29 lsearch F
|
|
|
|
+GLIBC_2.29 lseek F
|
|
|
|
+GLIBC_2.29 lseek64 F
|
|
|
|
+GLIBC_2.29 lsetxattr F
|
|
|
|
+GLIBC_2.29 lutimes F
|
|
|
|
+GLIBC_2.29 madvise F
|
|
|
|
+GLIBC_2.29 makecontext F
|
|
|
|
+GLIBC_2.29 mallinfo F
|
|
|
|
+GLIBC_2.29 malloc F
|
|
|
|
+GLIBC_2.29 malloc_info F
|
|
|
|
+GLIBC_2.29 malloc_stats F
|
|
|
|
+GLIBC_2.29 malloc_trim F
|
|
|
|
+GLIBC_2.29 malloc_usable_size F
|
|
|
|
+GLIBC_2.29 mallopt F
|
|
|
|
+GLIBC_2.29 mallwatch D 0x4
|
|
|
|
+GLIBC_2.29 mblen F
|
|
|
|
+GLIBC_2.29 mbrlen F
|
|
|
|
+GLIBC_2.29 mbrtoc16 F
|
|
|
|
+GLIBC_2.29 mbrtoc32 F
|
|
|
|
+GLIBC_2.29 mbrtowc F
|
|
|
|
+GLIBC_2.29 mbsinit F
|
|
|
|
+GLIBC_2.29 mbsnrtowcs F
|
|
|
|
+GLIBC_2.29 mbsrtowcs F
|
|
|
|
+GLIBC_2.29 mbstowcs F
|
|
|
|
+GLIBC_2.29 mbtowc F
|
|
|
|
+GLIBC_2.29 mcheck F
|
|
|
|
+GLIBC_2.29 mcheck_check_all F
|
|
|
|
+GLIBC_2.29 mcheck_pedantic F
|
|
|
|
+GLIBC_2.29 memalign F
|
|
|
|
+GLIBC_2.29 memccpy F
|
|
|
|
+GLIBC_2.29 memchr F
|
|
|
|
+GLIBC_2.29 memcmp F
|
|
|
|
+GLIBC_2.29 memcpy F
|
|
|
|
+GLIBC_2.29 memfd_create F
|
|
|
|
+GLIBC_2.29 memfrob F
|
|
|
|
+GLIBC_2.29 memmem F
|
|
|
|
+GLIBC_2.29 memmove F
|
|
|
|
+GLIBC_2.29 mempcpy F
|
|
|
|
+GLIBC_2.29 memrchr F
|
|
|
|
+GLIBC_2.29 memset F
|
|
|
|
+GLIBC_2.29 mincore F
|
|
|
|
+GLIBC_2.29 mkdir F
|
|
|
|
+GLIBC_2.29 mkdirat F
|
|
|
|
+GLIBC_2.29 mkdtemp F
|
|
|
|
+GLIBC_2.29 mkfifo F
|
|
|
|
+GLIBC_2.29 mkfifoat F
|
|
|
|
+GLIBC_2.29 mkostemp F
|
|
|
|
+GLIBC_2.29 mkostemp64 F
|
|
|
|
+GLIBC_2.29 mkostemps F
|
|
|
|
+GLIBC_2.29 mkostemps64 F
|
|
|
|
+GLIBC_2.29 mkstemp F
|
|
|
|
+GLIBC_2.29 mkstemp64 F
|
|
|
|
+GLIBC_2.29 mkstemps F
|
|
|
|
+GLIBC_2.29 mkstemps64 F
|
|
|
|
+GLIBC_2.29 mktemp F
|
|
|
|
+GLIBC_2.29 mktime F
|
|
|
|
+GLIBC_2.29 mlock F
|
|
|
|
+GLIBC_2.29 mlock2 F
|
|
|
|
+GLIBC_2.29 mlockall F
|
|
|
|
+GLIBC_2.29 mmap F
|
|
|
|
+GLIBC_2.29 mmap64 F
|
|
|
|
+GLIBC_2.29 modf F
|
|
|
|
+GLIBC_2.29 modff F
|
|
|
|
+GLIBC_2.29 modfl F
|
|
|
|
+GLIBC_2.29 moncontrol F
|
|
|
|
+GLIBC_2.29 monstartup F
|
|
|
|
+GLIBC_2.29 mount F
|
|
|
|
+GLIBC_2.29 mprobe F
|
|
|
|
+GLIBC_2.29 mprotect F
|
|
|
|
+GLIBC_2.29 mrand48 F
|
|
|
|
+GLIBC_2.29 mrand48_r F
|
|
|
|
+GLIBC_2.29 mremap F
|
|
|
|
+GLIBC_2.29 msgctl F
|
|
|
|
+GLIBC_2.29 msgget F
|
|
|
|
+GLIBC_2.29 msgrcv F
|
|
|
|
+GLIBC_2.29 msgsnd F
|
|
|
|
+GLIBC_2.29 msync F
|
|
|
|
+GLIBC_2.29 mtrace F
|
|
|
|
+GLIBC_2.29 munlock F
|
|
|
|
+GLIBC_2.29 munlockall F
|
|
|
|
+GLIBC_2.29 munmap F
|
|
|
|
+GLIBC_2.29 muntrace F
|
|
|
|
+GLIBC_2.29 name_to_handle_at F
|
|
|
|
+GLIBC_2.29 nanosleep F
|
|
|
|
+GLIBC_2.29 netname2host F
|
|
|
|
+GLIBC_2.29 netname2user F
|
|
|
|
+GLIBC_2.29 newlocale F
|
|
|
|
+GLIBC_2.29 nftw F
|
|
|
|
+GLIBC_2.29 nftw64 F
|
|
|
|
+GLIBC_2.29 ngettext F
|
|
|
|
+GLIBC_2.29 nice F
|
|
|
|
+GLIBC_2.29 nl_langinfo F
|
|
|
|
+GLIBC_2.29 nl_langinfo_l F
|
|
|
|
+GLIBC_2.29 nrand48 F
|
|
|
|
+GLIBC_2.29 nrand48_r F
|
|
|
|
+GLIBC_2.29 ntohl F
|
|
|
|
+GLIBC_2.29 ntohs F
|
|
|
|
+GLIBC_2.29 ntp_adjtime F
|
|
|
|
+GLIBC_2.29 ntp_gettime F
|
|
|
|
+GLIBC_2.29 ntp_gettimex F
|
|
|
|
+GLIBC_2.29 obstack_alloc_failed_handler D 0x4
|
|
|
|
+GLIBC_2.29 obstack_exit_failure D 0x4
|
|
|
|
+GLIBC_2.29 obstack_free F
|
|
|
|
+GLIBC_2.29 obstack_printf F
|
|
|
|
+GLIBC_2.29 obstack_vprintf F
|
|
|
|
+GLIBC_2.29 on_exit F
|
|
|
|
+GLIBC_2.29 open F
|
|
|
|
+GLIBC_2.29 open64 F
|
|
|
|
+GLIBC_2.29 open_by_handle_at F
|
|
|
|
+GLIBC_2.29 open_memstream F
|
|
|
|
+GLIBC_2.29 open_wmemstream F
|
|
|
|
+GLIBC_2.29 openat F
|
|
|
|
+GLIBC_2.29 openat64 F
|
|
|
|
+GLIBC_2.29 opendir F
|
|
|
|
+GLIBC_2.29 openlog F
|
|
|
|
+GLIBC_2.29 optarg D 0x4
|
|
|
|
+GLIBC_2.29 opterr D 0x4
|
|
|
|
+GLIBC_2.29 optind D 0x4
|
|
|
|
+GLIBC_2.29 optopt D 0x4
|
|
|
|
+GLIBC_2.29 parse_printf_format F
|
|
|
|
+GLIBC_2.29 passwd2des F
|
|
|
|
+GLIBC_2.29 pathconf F
|
|
|
|
+GLIBC_2.29 pause F
|
|
|
|
+GLIBC_2.29 pclose F
|
|
|
|
+GLIBC_2.29 perror F
|
|
|
|
+GLIBC_2.29 personality F
|
|
|
|
+GLIBC_2.29 pipe F
|
|
|
|
+GLIBC_2.29 pipe2 F
|
|
|
|
+GLIBC_2.29 pivot_root F
|
|
|
|
+GLIBC_2.29 pkey_alloc F
|
|
|
|
+GLIBC_2.29 pkey_free F
|
|
|
|
+GLIBC_2.29 pkey_get F
|
|
|
|
+GLIBC_2.29 pkey_mprotect F
|
|
|
|
+GLIBC_2.29 pkey_set F
|
|
|
|
+GLIBC_2.29 pmap_getmaps F
|
|
|
|
+GLIBC_2.29 pmap_getport F
|
|
|
|
+GLIBC_2.29 pmap_rmtcall F
|
|
|
|
+GLIBC_2.29 pmap_set F
|
|
|
|
+GLIBC_2.29 pmap_unset F
|
|
|
|
+GLIBC_2.29 poll F
|
|
|
|
+GLIBC_2.29 popen F
|
|
|
|
+GLIBC_2.29 posix_fadvise F
|
|
|
|
+GLIBC_2.29 posix_fadvise64 F
|
|
|
|
+GLIBC_2.29 posix_fallocate F
|
|
|
|
+GLIBC_2.29 posix_fallocate64 F
|
|
|
|
+GLIBC_2.29 posix_madvise F
|
|
|
|
+GLIBC_2.29 posix_memalign F
|
|
|
|
+GLIBC_2.29 posix_openpt F
|
|
|
|
+GLIBC_2.29 posix_spawn F
|
|
|
|
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
|
|
|
|
+GLIBC_2.29 posix_spawn_file_actions_addclose F
|
|
|
|
+GLIBC_2.29 posix_spawn_file_actions_adddup2 F
|
|
|
|
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
|
|
|
|
+GLIBC_2.29 posix_spawn_file_actions_addopen F
|
|
|
|
+GLIBC_2.29 posix_spawn_file_actions_destroy F
|
|
|
|
+GLIBC_2.29 posix_spawn_file_actions_init F
|
|
|
|
+GLIBC_2.29 posix_spawnattr_destroy F
|
|
|
|
+GLIBC_2.29 posix_spawnattr_getflags F
|
|
|
|
+GLIBC_2.29 posix_spawnattr_getpgroup F
|
|
|
|
+GLIBC_2.29 posix_spawnattr_getschedparam F
|
|
|
|
+GLIBC_2.29 posix_spawnattr_getschedpolicy F
|
|
|
|
+GLIBC_2.29 posix_spawnattr_getsigdefault F
|
|
|
|
+GLIBC_2.29 posix_spawnattr_getsigmask F
|
|
|
|
+GLIBC_2.29 posix_spawnattr_init F
|
|
|
|
+GLIBC_2.29 posix_spawnattr_setflags F
|
|
|
|
+GLIBC_2.29 posix_spawnattr_setpgroup F
|
|
|
|
+GLIBC_2.29 posix_spawnattr_setschedparam F
|
|
|
|
+GLIBC_2.29 posix_spawnattr_setschedpolicy F
|
|
|
|
+GLIBC_2.29 posix_spawnattr_setsigdefault F
|
|
|
|
+GLIBC_2.29 posix_spawnattr_setsigmask F
|
|
|
|
+GLIBC_2.29 posix_spawnp F
|
|
|
|
+GLIBC_2.29 ppoll F
|
|
|
|
+GLIBC_2.29 prctl F
|
|
|
|
+GLIBC_2.29 pread F
|
|
|
|
+GLIBC_2.29 pread64 F
|
|
|
|
+GLIBC_2.29 preadv F
|
|
|
|
+GLIBC_2.29 preadv2 F
|
|
|
|
+GLIBC_2.29 preadv64 F
|
|
|
|
+GLIBC_2.29 preadv64v2 F
|
|
|
|
+GLIBC_2.29 printf F
|
|
|
|
+GLIBC_2.29 printf_size F
|
|
|
|
+GLIBC_2.29 printf_size_info F
|
|
|
|
+GLIBC_2.29 prlimit F
|
|
|
|
+GLIBC_2.29 prlimit64 F
|
|
|
|
+GLIBC_2.29 process_vm_readv F
|
|
|
|
+GLIBC_2.29 process_vm_writev F
|
|
|
|
+GLIBC_2.29 profil F
|
|
|
|
+GLIBC_2.29 program_invocation_name D 0x4
|
|
|
|
+GLIBC_2.29 program_invocation_short_name D 0x4
|
|
|
|
+GLIBC_2.29 pselect F
|
|
|
|
+GLIBC_2.29 psiginfo F
|
|
|
|
+GLIBC_2.29 psignal F
|
|
|
|
+GLIBC_2.29 pthread_attr_destroy F
|
|
|
|
+GLIBC_2.29 pthread_attr_getdetachstate F
|
|
|
|
+GLIBC_2.29 pthread_attr_getinheritsched F
|
|
|
|
+GLIBC_2.29 pthread_attr_getschedparam F
|
|
|
|
+GLIBC_2.29 pthread_attr_getschedpolicy F
|
|
|
|
+GLIBC_2.29 pthread_attr_getscope F
|
|
|
|
+GLIBC_2.29 pthread_attr_init F
|
|
|
|
+GLIBC_2.29 pthread_attr_setdetachstate F
|
|
|
|
+GLIBC_2.29 pthread_attr_setinheritsched F
|
|
|
|
+GLIBC_2.29 pthread_attr_setschedparam F
|
|
|
|
+GLIBC_2.29 pthread_attr_setschedpolicy F
|
|
|
|
+GLIBC_2.29 pthread_attr_setscope F
|
|
|
|
+GLIBC_2.29 pthread_cond_broadcast F
|
|
|
|
+GLIBC_2.29 pthread_cond_destroy F
|
|
|
|
+GLIBC_2.29 pthread_cond_init F
|
|
|
|
+GLIBC_2.29 pthread_cond_signal F
|
|
|
|
+GLIBC_2.29 pthread_cond_timedwait F
|
|
|
|
+GLIBC_2.29 pthread_cond_wait F
|
|
|
|
+GLIBC_2.29 pthread_condattr_destroy F
|
|
|
|
+GLIBC_2.29 pthread_condattr_init F
|
|
|
|
+GLIBC_2.29 pthread_equal F
|
|
|
|
+GLIBC_2.29 pthread_exit F
|
|
|
|
+GLIBC_2.29 pthread_getschedparam F
|
|
|
|
+GLIBC_2.29 pthread_mutex_destroy F
|
|
|
|
+GLIBC_2.29 pthread_mutex_init F
|
|
|
|
+GLIBC_2.29 pthread_mutex_lock F
|
|
|
|
+GLIBC_2.29 pthread_mutex_unlock F
|
|
|
|
+GLIBC_2.29 pthread_self F
|
|
|
|
+GLIBC_2.29 pthread_setcancelstate F
|
|
|
|
+GLIBC_2.29 pthread_setcanceltype F
|
|
|
|
+GLIBC_2.29 pthread_setschedparam F
|
|
|
|
+GLIBC_2.29 ptrace F
|
|
|
|
+GLIBC_2.29 ptsname F
|
|
|
|
+GLIBC_2.29 ptsname_r F
|
|
|
|
+GLIBC_2.29 putc F
|
|
|
|
+GLIBC_2.29 putc_unlocked F
|
|
|
|
+GLIBC_2.29 putchar F
|
|
|
|
+GLIBC_2.29 putchar_unlocked F
|
|
|
|
+GLIBC_2.29 putenv F
|
|
|
|
+GLIBC_2.29 putgrent F
|
|
|
|
+GLIBC_2.29 putmsg F
|
|
|
|
+GLIBC_2.29 putpmsg F
|
|
|
|
+GLIBC_2.29 putpwent F
|
|
|
|
+GLIBC_2.29 puts F
|
|
|
|
+GLIBC_2.29 putsgent F
|
|
|
|
+GLIBC_2.29 putspent F
|
|
|
|
+GLIBC_2.29 pututline F
|
|
|
|
+GLIBC_2.29 pututxline F
|
|
|
|
+GLIBC_2.29 putw F
|
|
|
|
+GLIBC_2.29 putwc F
|
|
|
|
+GLIBC_2.29 putwc_unlocked F
|
|
|
|
+GLIBC_2.29 putwchar F
|
|
|
|
+GLIBC_2.29 putwchar_unlocked F
|
|
|
|
+GLIBC_2.29 pvalloc F
|
|
|
|
+GLIBC_2.29 pwrite F
|
|
|
|
+GLIBC_2.29 pwrite64 F
|
|
|
|
+GLIBC_2.29 pwritev F
|
|
|
|
+GLIBC_2.29 pwritev2 F
|
|
|
|
+GLIBC_2.29 pwritev64 F
|
|
|
|
+GLIBC_2.29 pwritev64v2 F
|
|
|
|
+GLIBC_2.29 qecvt F
|
|
|
|
+GLIBC_2.29 qecvt_r F
|
|
|
|
+GLIBC_2.29 qfcvt F
|
|
|
|
+GLIBC_2.29 qfcvt_r F
|
|
|
|
+GLIBC_2.29 qgcvt F
|
|
|
|
+GLIBC_2.29 qsort F
|
|
|
|
+GLIBC_2.29 qsort_r F
|
|
|
|
+GLIBC_2.29 quick_exit F
|
|
|
|
+GLIBC_2.29 quotactl F
|
|
|
|
+GLIBC_2.29 raise F
|
|
|
|
+GLIBC_2.29 rand F
|
|
|
|
+GLIBC_2.29 rand_r F
|
|
|
|
+GLIBC_2.29 random F
|
|
|
|
+GLIBC_2.29 random_r F
|
|
|
|
+GLIBC_2.29 rawmemchr F
|
|
|
|
+GLIBC_2.29 rcmd F
|
|
|
|
+GLIBC_2.29 rcmd_af F
|
|
|
|
+GLIBC_2.29 re_comp F
|
|
|
|
+GLIBC_2.29 re_compile_fastmap F
|
|
|
|
+GLIBC_2.29 re_compile_pattern F
|
|
|
|
+GLIBC_2.29 re_exec F
|
|
|
|
+GLIBC_2.29 re_match F
|
|
|
|
+GLIBC_2.29 re_match_2 F
|
|
|
|
+GLIBC_2.29 re_search F
|
|
|
|
+GLIBC_2.29 re_search_2 F
|
|
|
|
+GLIBC_2.29 re_set_registers F
|
|
|
|
+GLIBC_2.29 re_set_syntax F
|
|
|
|
+GLIBC_2.29 re_syntax_options D 0x4
|
|
|
|
+GLIBC_2.29 read F
|
|
|
|
+GLIBC_2.29 readahead F
|
|
|
|
+GLIBC_2.29 readdir F
|
|
|
|
+GLIBC_2.29 readdir64 F
|
|
|
|
+GLIBC_2.29 readdir64_r F
|
|
|
|
+GLIBC_2.29 readdir_r F
|
|
|
|
+GLIBC_2.29 readlink F
|
|
|
|
+GLIBC_2.29 readlinkat F
|
|
|
|
+GLIBC_2.29 readv F
|
|
|
|
+GLIBC_2.29 realloc F
|
|
|
|
+GLIBC_2.29 reallocarray F
|
|
|
|
+GLIBC_2.29 realpath F
|
|
|
|
+GLIBC_2.29 reboot F
|
|
|
|
+GLIBC_2.29 recv F
|
|
|
|
+GLIBC_2.29 recvfrom F
|
|
|
|
+GLIBC_2.29 recvmmsg F
|
|
|
|
+GLIBC_2.29 recvmsg F
|
|
|
|
+GLIBC_2.29 regcomp F
|
|
|
|
+GLIBC_2.29 regerror F
|
|
|
|
+GLIBC_2.29 regexec F
|
|
|
|
+GLIBC_2.29 regfree F
|
|
|
|
+GLIBC_2.29 register_printf_function F
|
|
|
|
+GLIBC_2.29 register_printf_modifier F
|
|
|
|
+GLIBC_2.29 register_printf_specifier F
|
|
|
|
+GLIBC_2.29 register_printf_type F
|
|
|
|
+GLIBC_2.29 registerrpc F
|
|
|
|
+GLIBC_2.29 remap_file_pages F
|
|
|
|
+GLIBC_2.29 remove F
|
|
|
|
+GLIBC_2.29 removexattr F
|
|
|
|
+GLIBC_2.29 remque F
|
|
|
|
+GLIBC_2.29 rename F
|
|
|
|
+GLIBC_2.29 renameat F
|
|
|
|
+GLIBC_2.29 renameat2 F
|
|
|
|
+GLIBC_2.29 revoke F
|
|
|
|
+GLIBC_2.29 rewind F
|
|
|
|
+GLIBC_2.29 rewinddir F
|
|
|
|
+GLIBC_2.29 rexec F
|
|
|
|
+GLIBC_2.29 rexec_af F
|
|
|
|
+GLIBC_2.29 rexecoptions D 0x4
|
|
|
|
+GLIBC_2.29 rindex F
|
|
|
|
+GLIBC_2.29 rmdir F
|
|
|
|
+GLIBC_2.29 rpc_createerr D 0x10
|
|
|
|
+GLIBC_2.29 rpmatch F
|
|
|
|
+GLIBC_2.29 rresvport F
|
|
|
|
+GLIBC_2.29 rresvport_af F
|
|
|
|
+GLIBC_2.29 rtime F
|
|
|
|
+GLIBC_2.29 ruserok F
|
|
|
|
+GLIBC_2.29 ruserok_af F
|
|
|
|
+GLIBC_2.29 ruserpass F
|
|
|
|
+GLIBC_2.29 sbrk F
|
|
|
|
+GLIBC_2.29 scalbn F
|
|
|
|
+GLIBC_2.29 scalbnf F
|
|
|
|
+GLIBC_2.29 scalbnl F
|
|
|
|
+GLIBC_2.29 scandir F
|
|
|
|
+GLIBC_2.29 scandir64 F
|
|
|
|
+GLIBC_2.29 scandirat F
|
|
|
|
+GLIBC_2.29 scandirat64 F
|
|
|
|
+GLIBC_2.29 scanf F
|
|
|
|
+GLIBC_2.29 sched_get_priority_max F
|
|
|
|
+GLIBC_2.29 sched_get_priority_min F
|
|
|
|
+GLIBC_2.29 sched_getaffinity F
|
|
|
|
+GLIBC_2.29 sched_getcpu F
|
|
|
|
+GLIBC_2.29 sched_getparam F
|
|
|
|
+GLIBC_2.29 sched_getscheduler F
|
|
|
|
+GLIBC_2.29 sched_rr_get_interval F
|
|
|
|
+GLIBC_2.29 sched_setaffinity F
|
|
|
|
+GLIBC_2.29 sched_setparam F
|
|
|
|
+GLIBC_2.29 sched_setscheduler F
|
|
|
|
+GLIBC_2.29 sched_yield F
|
|
|
|
+GLIBC_2.29 secure_getenv F
|
|
|
|
+GLIBC_2.29 seed48 F
|
|
|
|
+GLIBC_2.29 seed48_r F
|
|
|
|
+GLIBC_2.29 seekdir F
|
|
|
|
+GLIBC_2.29 select F
|
|
|
|
+GLIBC_2.29 semctl F
|
|
|
|
+GLIBC_2.29 semget F
|
|
|
|
+GLIBC_2.29 semop F
|
|
|
|
+GLIBC_2.29 semtimedop F
|
|
|
|
+GLIBC_2.29 send F
|
|
|
|
+GLIBC_2.29 sendfile F
|
|
|
|
+GLIBC_2.29 sendfile64 F
|
|
|
|
+GLIBC_2.29 sendmmsg F
|
|
|
|
+GLIBC_2.29 sendmsg F
|
|
|
|
+GLIBC_2.29 sendto F
|
|
|
|
+GLIBC_2.29 setaliasent F
|
|
|
|
+GLIBC_2.29 setbuf F
|
|
|
|
+GLIBC_2.29 setbuffer F
|
|
|
|
+GLIBC_2.29 setcontext F
|
|
|
|
+GLIBC_2.29 setdomainname F
|
|
|
|
+GLIBC_2.29 setegid F
|
|
|
|
+GLIBC_2.29 setenv F
|
|
|
|
+GLIBC_2.29 seteuid F
|
|
|
|
+GLIBC_2.29 setfsent F
|
|
|
|
+GLIBC_2.29 setfsgid F
|
|
|
|
+GLIBC_2.29 setfsuid F
|
|
|
|
+GLIBC_2.29 setgid F
|
|
|
|
+GLIBC_2.29 setgrent F
|
|
|
|
+GLIBC_2.29 setgroups F
|
|
|
|
+GLIBC_2.29 sethostent F
|
|
|
|
+GLIBC_2.29 sethostid F
|
|
|
|
+GLIBC_2.29 sethostname F
|
|
|
|
+GLIBC_2.29 setipv4sourcefilter F
|
|
|
|
+GLIBC_2.29 setitimer F
|
|
|
|
+GLIBC_2.29 setjmp F
|
|
|
|
+GLIBC_2.29 setlinebuf F
|
|
|
|
+GLIBC_2.29 setlocale F
|
|
|
|
+GLIBC_2.29 setlogin F
|
|
|
|
+GLIBC_2.29 setlogmask F
|
|
|
|
+GLIBC_2.29 setmntent F
|
|
|
|
+GLIBC_2.29 setnetent F
|
|
|
|
+GLIBC_2.29 setnetgrent F
|
|
|
|
+GLIBC_2.29 setns F
|
|
|
|
+GLIBC_2.29 setpgid F
|
|
|
|
+GLIBC_2.29 setpgrp F
|
|
|
|
+GLIBC_2.29 setpriority F
|
|
|
|
+GLIBC_2.29 setprotoent F
|
|
|
|
+GLIBC_2.29 setpwent F
|
|
|
|
+GLIBC_2.29 setregid F
|
|
|
|
+GLIBC_2.29 setresgid F
|
|
|
|
+GLIBC_2.29 setresuid F
|
|
|
|
+GLIBC_2.29 setreuid F
|
|
|
|
+GLIBC_2.29 setrlimit F
|
|
|
|
+GLIBC_2.29 setrlimit64 F
|
|
|
|
+GLIBC_2.29 setrpcent F
|
|
|
|
+GLIBC_2.29 setservent F
|
|
|
|
+GLIBC_2.29 setsgent F
|
|
|
|
+GLIBC_2.29 setsid F
|
|
|
|
+GLIBC_2.29 setsockopt F
|
|
|
|
+GLIBC_2.29 setsourcefilter F
|
|
|
|
+GLIBC_2.29 setspent F
|
|
|
|
+GLIBC_2.29 setstate F
|
|
|
|
+GLIBC_2.29 setstate_r F
|
|
|
|
+GLIBC_2.29 settimeofday F
|
|
|
|
+GLIBC_2.29 setttyent F
|
|
|
|
+GLIBC_2.29 setuid F
|
|
|
|
+GLIBC_2.29 setusershell F
|
|
|
|
+GLIBC_2.29 setutent F
|
|
|
|
+GLIBC_2.29 setutxent F
|
|
|
|
+GLIBC_2.29 setvbuf F
|
|
|
|
+GLIBC_2.29 setxattr F
|
|
|
|
+GLIBC_2.29 sgetsgent F
|
|
|
|
+GLIBC_2.29 sgetsgent_r F
|
|
|
|
+GLIBC_2.29 sgetspent F
|
|
|
|
+GLIBC_2.29 sgetspent_r F
|
|
|
|
+GLIBC_2.29 shmat F
|
|
|
|
+GLIBC_2.29 shmctl F
|
|
|
|
+GLIBC_2.29 shmdt F
|
|
|
|
+GLIBC_2.29 shmget F
|
|
|
|
+GLIBC_2.29 shutdown F
|
|
|
|
+GLIBC_2.29 sigaction F
|
|
|
|
+GLIBC_2.29 sigaddset F
|
|
|
|
+GLIBC_2.29 sigaltstack F
|
|
|
|
+GLIBC_2.29 sigandset F
|
|
|
|
+GLIBC_2.29 sigblock F
|
|
|
|
+GLIBC_2.29 sigdelset F
|
|
|
|
+GLIBC_2.29 sigemptyset F
|
|
|
|
+GLIBC_2.29 sigfillset F
|
|
|
|
+GLIBC_2.29 siggetmask F
|
|
|
|
+GLIBC_2.29 sighold F
|
|
|
|
+GLIBC_2.29 sigignore F
|
|
|
|
+GLIBC_2.29 siginterrupt F
|
|
|
|
+GLIBC_2.29 sigisemptyset F
|
|
|
|
+GLIBC_2.29 sigismember F
|
|
|
|
+GLIBC_2.29 siglongjmp F
|
|
|
|
+GLIBC_2.29 signal F
|
|
|
|
+GLIBC_2.29 signalfd F
|
|
|
|
+GLIBC_2.29 sigorset F
|
|
|
|
+GLIBC_2.29 sigpause F
|
|
|
|
+GLIBC_2.29 sigpending F
|
|
|
|
+GLIBC_2.29 sigprocmask F
|
|
|
|
+GLIBC_2.29 sigqueue F
|
|
|
|
+GLIBC_2.29 sigrelse F
|
|
|
|
+GLIBC_2.29 sigreturn F
|
|
|
|
+GLIBC_2.29 sigset F
|
|
|
|
+GLIBC_2.29 sigsetmask F
|
|
|
|
+GLIBC_2.29 sigstack F
|
|
|
|
+GLIBC_2.29 sigsuspend F
|
|
|
|
+GLIBC_2.29 sigtimedwait F
|
|
|
|
+GLIBC_2.29 sigwait F
|
|
|
|
+GLIBC_2.29 sigwaitinfo F
|
|
|
|
+GLIBC_2.29 sleep F
|
|
|
|
+GLIBC_2.29 snprintf F
|
|
|
|
+GLIBC_2.29 sockatmark F
|
|
|
|
+GLIBC_2.29 socket F
|
|
|
|
+GLIBC_2.29 socketpair F
|
|
|
|
+GLIBC_2.29 splice F
|
|
|
|
+GLIBC_2.29 sprintf F
|
|
|
|
+GLIBC_2.29 sprofil F
|
|
|
|
+GLIBC_2.29 srand F
|
|
|
|
+GLIBC_2.29 srand48 F
|
|
|
|
+GLIBC_2.29 srand48_r F
|
|
|
|
+GLIBC_2.29 srandom F
|
|
|
|
+GLIBC_2.29 srandom_r F
|
|
|
|
+GLIBC_2.29 sscanf F
|
|
|
|
+GLIBC_2.29 ssignal F
|
|
|
|
+GLIBC_2.29 sstk F
|
|
|
|
+GLIBC_2.29 statfs F
|
|
|
|
+GLIBC_2.29 statfs64 F
|
|
|
|
+GLIBC_2.29 statvfs F
|
|
|
|
+GLIBC_2.29 statvfs64 F
|
|
|
|
+GLIBC_2.29 statx F
|
|
|
|
+GLIBC_2.29 stderr D 0x4
|
|
|
|
+GLIBC_2.29 stdin D 0x4
|
|
|
|
+GLIBC_2.29 stdout D 0x4
|
|
|
|
+GLIBC_2.29 stime F
|
|
|
|
+GLIBC_2.29 stpcpy F
|
|
|
|
+GLIBC_2.29 stpncpy F
|
|
|
|
+GLIBC_2.29 strcasecmp F
|
|
|
|
+GLIBC_2.29 strcasecmp_l F
|
|
|
|
+GLIBC_2.29 strcasestr F
|
|
|
|
+GLIBC_2.29 strcat F
|
|
|
|
+GLIBC_2.29 strchr F
|
|
|
|
+GLIBC_2.29 strchrnul F
|
|
|
|
+GLIBC_2.29 strcmp F
|
|
|
|
+GLIBC_2.29 strcoll F
|
|
|
|
+GLIBC_2.29 strcoll_l F
|
|
|
|
+GLIBC_2.29 strcpy F
|
|
|
|
+GLIBC_2.29 strcspn F
|
|
|
|
+GLIBC_2.29 strdup F
|
|
|
|
+GLIBC_2.29 strerror F
|
|
|
|
+GLIBC_2.29 strerror_l F
|
|
|
|
+GLIBC_2.29 strerror_r F
|
|
|
|
+GLIBC_2.29 strfmon F
|
|
|
|
+GLIBC_2.29 strfmon_l F
|
|
|
|
+GLIBC_2.29 strfromd F
|
|
|
|
+GLIBC_2.29 strfromf F
|
|
|
|
+GLIBC_2.29 strfromf32 F
|
|
|
|
+GLIBC_2.29 strfromf32x F
|
|
|
|
+GLIBC_2.29 strfromf64 F
|
|
|
|
+GLIBC_2.29 strfroml F
|
|
|
|
+GLIBC_2.29 strfry F
|
|
|
|
+GLIBC_2.29 strftime F
|
|
|
|
+GLIBC_2.29 strftime_l F
|
|
|
|
+GLIBC_2.29 strlen F
|
|
|
|
+GLIBC_2.29 strncasecmp F
|
|
|
|
+GLIBC_2.29 strncasecmp_l F
|
|
|
|
+GLIBC_2.29 strncat F
|
|
|
|
+GLIBC_2.29 strncmp F
|
|
|
|
+GLIBC_2.29 strncpy F
|
|
|
|
+GLIBC_2.29 strndup F
|
|
|
|
+GLIBC_2.29 strnlen F
|
|
|
|
+GLIBC_2.29 strpbrk F
|
|
|
|
+GLIBC_2.29 strptime F
|
|
|
|
+GLIBC_2.29 strptime_l F
|
|
|
|
+GLIBC_2.29 strrchr F
|
|
|
|
+GLIBC_2.29 strsep F
|
|
|
|
+GLIBC_2.29 strsignal F
|
|
|
|
+GLIBC_2.29 strspn F
|
|
|
|
+GLIBC_2.29 strstr F
|
|
|
|
+GLIBC_2.29 strtod F
|
|
|
|
+GLIBC_2.29 strtod_l F
|
|
|
|
+GLIBC_2.29 strtof F
|
|
|
|
+GLIBC_2.29 strtof32 F
|
|
|
|
+GLIBC_2.29 strtof32_l F
|
|
|
|
+GLIBC_2.29 strtof32x F
|
|
|
|
+GLIBC_2.29 strtof32x_l F
|
|
|
|
+GLIBC_2.29 strtof64 F
|
|
|
|
+GLIBC_2.29 strtof64_l F
|
|
|
|
+GLIBC_2.29 strtof_l F
|
|
|
|
+GLIBC_2.29 strtoimax F
|
|
|
|
+GLIBC_2.29 strtok F
|
|
|
|
+GLIBC_2.29 strtok_r F
|
|
|
|
+GLIBC_2.29 strtol F
|
|
|
|
+GLIBC_2.29 strtol_l F
|
|
|
|
+GLIBC_2.29 strtold F
|
|
|
|
+GLIBC_2.29 strtold_l F
|
|
|
|
+GLIBC_2.29 strtoll F
|
|
|
|
+GLIBC_2.29 strtoll_l F
|
|
|
|
+GLIBC_2.29 strtoq F
|
|
|
|
+GLIBC_2.29 strtoul F
|
|
|
|
+GLIBC_2.29 strtoul_l F
|
|
|
|
+GLIBC_2.29 strtoull F
|
|
|
|
+GLIBC_2.29 strtoull_l F
|
|
|
|
+GLIBC_2.29 strtoumax F
|
|
|
|
+GLIBC_2.29 strtouq F
|
|
|
|
+GLIBC_2.29 strverscmp F
|
|
|
|
+GLIBC_2.29 strxfrm F
|
|
|
|
+GLIBC_2.29 strxfrm_l F
|
|
|
|
+GLIBC_2.29 stty F
|
|
|
|
+GLIBC_2.29 svc_exit F
|
|
|
|
+GLIBC_2.29 svc_fdset D 0x80
|
|
|
|
+GLIBC_2.29 svc_getreq F
|
|
|
|
+GLIBC_2.29 svc_getreq_common F
|
|
|
|
+GLIBC_2.29 svc_getreq_poll F
|
|
|
|
+GLIBC_2.29 svc_getreqset F
|
|
|
|
+GLIBC_2.29 svc_max_pollfd D 0x4
|
|
|
|
+GLIBC_2.29 svc_pollfd D 0x4
|
|
|
|
+GLIBC_2.29 svc_register F
|
|
|
|
+GLIBC_2.29 svc_run F
|
|
|
|
+GLIBC_2.29 svc_sendreply F
|
|
|
|
+GLIBC_2.29 svc_unregister F
|
|
|
|
+GLIBC_2.29 svcauthdes_stats D 0xc
|
|
|
|
+GLIBC_2.29 svcerr_auth F
|
|
|
|
+GLIBC_2.29 svcerr_decode F
|
|
|
|
+GLIBC_2.29 svcerr_noproc F
|
|
|
|
+GLIBC_2.29 svcerr_noprog F
|
|
|
|
+GLIBC_2.29 svcerr_progvers F
|
|
|
|
+GLIBC_2.29 svcerr_systemerr F
|
|
|
|
+GLIBC_2.29 svcerr_weakauth F
|
|
|
|
+GLIBC_2.29 svcfd_create F
|
|
|
|
+GLIBC_2.29 svcraw_create F
|
|
|
|
+GLIBC_2.29 svctcp_create F
|
|
|
|
+GLIBC_2.29 svcudp_bufcreate F
|
|
|
|
+GLIBC_2.29 svcudp_create F
|
|
|
|
+GLIBC_2.29 svcudp_enablecache F
|
|
|
|
+GLIBC_2.29 svcunix_create F
|
|
|
|
+GLIBC_2.29 svcunixfd_create F
|
|
|
|
+GLIBC_2.29 swab F
|
|
|
|
+GLIBC_2.29 swapcontext F
|
|
|
|
+GLIBC_2.29 swapoff F
|
|
|
|
+GLIBC_2.29 swapon F
|
|
|
|
+GLIBC_2.29 swprintf F
|
|
|
|
+GLIBC_2.29 swscanf F
|
|
|
|
+GLIBC_2.29 symlink F
|
|
|
|
+GLIBC_2.29 symlinkat F
|
|
|
|
+GLIBC_2.29 sync F
|
|
|
|
+GLIBC_2.29 sync_file_range F
|
|
|
|
+GLIBC_2.29 syncfs F
|
|
|
|
+GLIBC_2.29 sys_errlist D 0x21c
|
|
|
|
+GLIBC_2.29 sys_nerr D 0x4
|
|
|
|
+GLIBC_2.29 sys_sigabbrev D 0x104
|
|
|
|
+GLIBC_2.29 sys_siglist D 0x104
|
|
|
|
+GLIBC_2.29 syscall F
|
|
|
|
+GLIBC_2.29 sysconf F
|
|
|
|
+GLIBC_2.29 sysctl F
|
|
|
|
+GLIBC_2.29 sysinfo F
|
|
|
|
+GLIBC_2.29 syslog F
|
|
|
|
+GLIBC_2.29 system F
|
|
|
|
+GLIBC_2.29 sysv_signal F
|
|
|
|
+GLIBC_2.29 tcdrain F
|
|
|
|
+GLIBC_2.29 tcflow F
|
|
|
|
+GLIBC_2.29 tcflush F
|
|
|
|
+GLIBC_2.29 tcgetattr F
|
|
|
|
+GLIBC_2.29 tcgetpgrp F
|
|
|
|
+GLIBC_2.29 tcgetsid F
|
|
|
|
+GLIBC_2.29 tcsendbreak F
|
|
|
|
+GLIBC_2.29 tcsetattr F
|
|
|
|
+GLIBC_2.29 tcsetpgrp F
|
|
|
|
+GLIBC_2.29 tdelete F
|
|
|
|
+GLIBC_2.29 tdestroy F
|
|
|
|
+GLIBC_2.29 tee F
|
|
|
|
+GLIBC_2.29 telldir F
|
|
|
|
+GLIBC_2.29 tempnam F
|
|
|
|
+GLIBC_2.29 textdomain F
|
|
|
|
+GLIBC_2.29 tfind F
|
|
|
|
+GLIBC_2.29 thrd_current F
|
|
|
|
+GLIBC_2.29 thrd_equal F
|
|
|
|
+GLIBC_2.29 thrd_sleep F
|
|
|
|
+GLIBC_2.29 thrd_yield F
|
|
|
|
+GLIBC_2.29 time F
|
|
|
|
+GLIBC_2.29 timegm F
|
|
|
|
+GLIBC_2.29 timelocal F
|
|
|
|
+GLIBC_2.29 timerfd_create F
|
|
|
|
+GLIBC_2.29 timerfd_gettime F
|
|
|
|
+GLIBC_2.29 timerfd_settime F
|
|
|
|
+GLIBC_2.29 times F
|
|
|
|
+GLIBC_2.29 timespec_get F
|
|
|
|
+GLIBC_2.29 timezone D 0x4
|
|
|
|
+GLIBC_2.29 tmpfile F
|
|
|
|
+GLIBC_2.29 tmpfile64 F
|
|
|
|
+GLIBC_2.29 tmpnam F
|
|
|
|
+GLIBC_2.29 tmpnam_r F
|
|
|
|
+GLIBC_2.29 toascii F
|
|
|
|
+GLIBC_2.29 tolower F
|
|
|
|
+GLIBC_2.29 tolower_l F
|
|
|
|
+GLIBC_2.29 toupper F
|
|
|
|
+GLIBC_2.29 toupper_l F
|
|
|
|
+GLIBC_2.29 towctrans F
|
|
|
|
+GLIBC_2.29 towctrans_l F
|
|
|
|
+GLIBC_2.29 towlower F
|
|
|
|
+GLIBC_2.29 towlower_l F
|
|
|
|
+GLIBC_2.29 towupper F
|
|
|
|
+GLIBC_2.29 towupper_l F
|
|
|
|
+GLIBC_2.29 tr_break F
|
|
|
|
+GLIBC_2.29 truncate F
|
|
|
|
+GLIBC_2.29 truncate64 F
|
|
|
|
+GLIBC_2.29 tsearch F
|
|
|
|
+GLIBC_2.29 ttyname F
|
|
|
|
+GLIBC_2.29 ttyname_r F
|
|
|
|
+GLIBC_2.29 ttyslot F
|
|
|
|
+GLIBC_2.29 twalk F
|
|
|
|
+GLIBC_2.29 tzname D 0x8
|
|
|
|
+GLIBC_2.29 tzset F
|
|
|
|
+GLIBC_2.29 ualarm F
|
|
|
|
+GLIBC_2.29 ulckpwdf F
|
|
|
|
+GLIBC_2.29 ulimit F
|
|
|
|
+GLIBC_2.29 umask F
|
|
|
|
+GLIBC_2.29 umount F
|
|
|
|
+GLIBC_2.29 umount2 F
|
|
|
|
+GLIBC_2.29 uname F
|
|
|
|
+GLIBC_2.29 ungetc F
|
|
|
|
+GLIBC_2.29 ungetwc F
|
|
|
|
+GLIBC_2.29 unlink F
|
|
|
|
+GLIBC_2.29 unlinkat F
|
|
|
|
+GLIBC_2.29 unlockpt F
|
|
|
|
+GLIBC_2.29 unsetenv F
|
|
|
|
+GLIBC_2.29 unshare F
|
|
|
|
+GLIBC_2.29 updwtmp F
|
|
|
|
+GLIBC_2.29 updwtmpx F
|
|
|
|
+GLIBC_2.29 uselocale F
|
|
|
|
+GLIBC_2.29 user2netname F
|
|
|
|
+GLIBC_2.29 usleep F
|
|
|
|
+GLIBC_2.29 utime F
|
|
|
|
+GLIBC_2.29 utimensat F
|
|
|
|
+GLIBC_2.29 utimes F
|
|
|
|
+GLIBC_2.29 utmpname F
|
|
|
|
+GLIBC_2.29 utmpxname F
|
|
|
|
+GLIBC_2.29 valloc F
|
|
|
|
+GLIBC_2.29 vasprintf F
|
|
|
|
+GLIBC_2.29 vdprintf F
|
|
|
|
+GLIBC_2.29 verr F
|
|
|
|
+GLIBC_2.29 verrx F
|
|
|
|
+GLIBC_2.29 versionsort F
|
|
|
|
+GLIBC_2.29 versionsort64 F
|
|
|
|
+GLIBC_2.29 vfork F
|
|
|
|
+GLIBC_2.29 vfprintf F
|
|
|
|
+GLIBC_2.29 vfscanf F
|
|
|
|
+GLIBC_2.29 vfwprintf F
|
|
|
|
+GLIBC_2.29 vfwscanf F
|
|
|
|
+GLIBC_2.29 vhangup F
|
|
|
|
+GLIBC_2.29 vlimit F
|
|
|
|
+GLIBC_2.29 vmsplice F
|
|
|
|
+GLIBC_2.29 vprintf F
|
|
|
|
+GLIBC_2.29 vscanf F
|
|
|
|
+GLIBC_2.29 vsnprintf F
|
|
|
|
+GLIBC_2.29 vsprintf F
|
|
|
|
+GLIBC_2.29 vsscanf F
|
|
|
|
+GLIBC_2.29 vswprintf F
|
|
|
|
+GLIBC_2.29 vswscanf F
|
|
|
|
+GLIBC_2.29 vsyslog F
|
|
|
|
+GLIBC_2.29 vtimes F
|
|
|
|
+GLIBC_2.29 vwarn F
|
|
|
|
+GLIBC_2.29 vwarnx F
|
|
|
|
+GLIBC_2.29 vwprintf F
|
|
|
|
+GLIBC_2.29 vwscanf F
|
|
|
|
+GLIBC_2.29 wait F
|
|
|
|
+GLIBC_2.29 wait3 F
|
|
|
|
+GLIBC_2.29 wait4 F
|
|
|
|
+GLIBC_2.29 waitid F
|
|
|
|
+GLIBC_2.29 waitpid F
|
|
|
|
+GLIBC_2.29 warn F
|
|
|
|
+GLIBC_2.29 warnx F
|
|
|
|
+GLIBC_2.29 wcpcpy F
|
|
|
|
+GLIBC_2.29 wcpncpy F
|
|
|
|
+GLIBC_2.29 wcrtomb F
|
|
|
|
+GLIBC_2.29 wcscasecmp F
|
|
|
|
+GLIBC_2.29 wcscasecmp_l F
|
|
|
|
+GLIBC_2.29 wcscat F
|
|
|
|
+GLIBC_2.29 wcschr F
|
|
|
|
+GLIBC_2.29 wcschrnul F
|
|
|
|
+GLIBC_2.29 wcscmp F
|
|
|
|
+GLIBC_2.29 wcscoll F
|
|
|
|
+GLIBC_2.29 wcscoll_l F
|
|
|
|
+GLIBC_2.29 wcscpy F
|
|
|
|
+GLIBC_2.29 wcscspn F
|
|
|
|
+GLIBC_2.29 wcsdup F
|
|
|
|
+GLIBC_2.29 wcsftime F
|
|
|
|
+GLIBC_2.29 wcsftime_l F
|
|
|
|
+GLIBC_2.29 wcslen F
|
|
|
|
+GLIBC_2.29 wcsncasecmp F
|
|
|
|
+GLIBC_2.29 wcsncasecmp_l F
|
|
|
|
+GLIBC_2.29 wcsncat F
|
|
|
|
+GLIBC_2.29 wcsncmp F
|
|
|
|
+GLIBC_2.29 wcsncpy F
|
|
|
|
+GLIBC_2.29 wcsnlen F
|
|
|
|
+GLIBC_2.29 wcsnrtombs F
|
|
|
|
+GLIBC_2.29 wcspbrk F
|
|
|
|
+GLIBC_2.29 wcsrchr F
|
|
|
|
+GLIBC_2.29 wcsrtombs F
|
|
|
|
+GLIBC_2.29 wcsspn F
|
|
|
|
+GLIBC_2.29 wcsstr F
|
|
|
|
+GLIBC_2.29 wcstod F
|
|
|
|
+GLIBC_2.29 wcstod_l F
|
|
|
|
+GLIBC_2.29 wcstof F
|
|
|
|
+GLIBC_2.29 wcstof32 F
|
|
|
|
+GLIBC_2.29 wcstof32_l F
|
|
|
|
+GLIBC_2.29 wcstof32x F
|
|
|
|
+GLIBC_2.29 wcstof32x_l F
|
|
|
|
+GLIBC_2.29 wcstof64 F
|
|
|
|
+GLIBC_2.29 wcstof64_l F
|
|
|
|
+GLIBC_2.29 wcstof_l F
|
|
|
|
+GLIBC_2.29 wcstoimax F
|
|
|
|
+GLIBC_2.29 wcstok F
|
|
|
|
+GLIBC_2.29 wcstol F
|
|
|
|
+GLIBC_2.29 wcstol_l F
|
|
|
|
+GLIBC_2.29 wcstold F
|
|
|
|
+GLIBC_2.29 wcstold_l F
|
|
|
|
+GLIBC_2.29 wcstoll F
|
|
|
|
+GLIBC_2.29 wcstoll_l F
|
|
|
|
+GLIBC_2.29 wcstombs F
|
|
|
|
+GLIBC_2.29 wcstoq F
|
|
|
|
+GLIBC_2.29 wcstoul F
|
|
|
|
+GLIBC_2.29 wcstoul_l F
|
|
|
|
+GLIBC_2.29 wcstoull F
|
|
|
|
+GLIBC_2.29 wcstoull_l F
|
|
|
|
+GLIBC_2.29 wcstoumax F
|
|
|
|
+GLIBC_2.29 wcstouq F
|
|
|
|
+GLIBC_2.29 wcswcs F
|
|
|
|
+GLIBC_2.29 wcswidth F
|
|
|
|
+GLIBC_2.29 wcsxfrm F
|
|
|
|
+GLIBC_2.29 wcsxfrm_l F
|
|
|
|
+GLIBC_2.29 wctob F
|
|
|
|
+GLIBC_2.29 wctomb F
|
|
|
|
+GLIBC_2.29 wctrans F
|
|
|
|
+GLIBC_2.29 wctrans_l F
|
|
|
|
+GLIBC_2.29 wctype F
|
|
|
|
+GLIBC_2.29 wctype_l F
|
|
|
|
+GLIBC_2.29 wcwidth F
|
|
|
|
+GLIBC_2.29 wmemchr F
|
|
|
|
+GLIBC_2.29 wmemcmp F
|
|
|
|
+GLIBC_2.29 wmemcpy F
|
|
|
|
+GLIBC_2.29 wmemmove F
|
|
|
|
+GLIBC_2.29 wmempcpy F
|
|
|
|
+GLIBC_2.29 wmemset F
|
|
|
|
+GLIBC_2.29 wordexp F
|
|
|
|
+GLIBC_2.29 wordfree F
|
|
|
|
+GLIBC_2.29 wprintf F
|
|
|
|
+GLIBC_2.29 write F
|
|
|
|
+GLIBC_2.29 writev F
|
|
|
|
+GLIBC_2.29 wscanf F
|
|
|
|
+GLIBC_2.29 xdecrypt F
|
|
|
|
+GLIBC_2.29 xdr_accepted_reply F
|
|
|
|
+GLIBC_2.29 xdr_array F
|
|
|
|
+GLIBC_2.29 xdr_authdes_cred F
|
|
|
|
+GLIBC_2.29 xdr_authdes_verf F
|
|
|
|
+GLIBC_2.29 xdr_authunix_parms F
|
|
|
|
+GLIBC_2.29 xdr_bool F
|
|
|
|
+GLIBC_2.29 xdr_bytes F
|
|
|
|
+GLIBC_2.29 xdr_callhdr F
|
|
|
|
+GLIBC_2.29 xdr_callmsg F
|
|
|
|
+GLIBC_2.29 xdr_char F
|
|
|
|
+GLIBC_2.29 xdr_cryptkeyarg F
|
|
|
|
+GLIBC_2.29 xdr_cryptkeyarg2 F
|
|
|
|
+GLIBC_2.29 xdr_cryptkeyres F
|
|
|
|
+GLIBC_2.29 xdr_des_block F
|
|
|
|
+GLIBC_2.29 xdr_double F
|
|
|
|
+GLIBC_2.29 xdr_enum F
|
|
|
|
+GLIBC_2.29 xdr_float F
|
|
|
|
+GLIBC_2.29 xdr_free F
|
|
|
|
+GLIBC_2.29 xdr_getcredres F
|
|
|
|
+GLIBC_2.29 xdr_hyper F
|
|
|
|
+GLIBC_2.29 xdr_int F
|
|
|
|
+GLIBC_2.29 xdr_int16_t F
|
|
|
|
+GLIBC_2.29 xdr_int32_t F
|
|
|
|
+GLIBC_2.29 xdr_int64_t F
|
|
|
|
+GLIBC_2.29 xdr_int8_t F
|
|
|
|
+GLIBC_2.29 xdr_key_netstarg F
|
|
|
|
+GLIBC_2.29 xdr_key_netstres F
|
|
|
|
+GLIBC_2.29 xdr_keybuf F
|
|
|
|
+GLIBC_2.29 xdr_keystatus F
|
|
|
|
+GLIBC_2.29 xdr_long F
|
|
|
|
+GLIBC_2.29 xdr_longlong_t F
|
|
|
|
+GLIBC_2.29 xdr_netnamestr F
|
|
|
|
+GLIBC_2.29 xdr_netobj F
|
|
|
|
+GLIBC_2.29 xdr_opaque F
|
|
|
|
+GLIBC_2.29 xdr_opaque_auth F
|
|
|
|
+GLIBC_2.29 xdr_pmap F
|
|
|
|
+GLIBC_2.29 xdr_pmaplist F
|
|
|
|
+GLIBC_2.29 xdr_pointer F
|
|
|
|
+GLIBC_2.29 xdr_quad_t F
|
|
|
|
+GLIBC_2.29 xdr_reference F
|
|
|
|
+GLIBC_2.29 xdr_rejected_reply F
|
|
|
|
+GLIBC_2.29 xdr_replymsg F
|
|
|
|
+GLIBC_2.29 xdr_rmtcall_args F
|
|
|
|
+GLIBC_2.29 xdr_rmtcallres F
|
|
|
|
+GLIBC_2.29 xdr_short F
|
|
|
|
+GLIBC_2.29 xdr_sizeof F
|
|
|
|
+GLIBC_2.29 xdr_string F
|
|
|
|
+GLIBC_2.29 xdr_u_char F
|
|
|
|
+GLIBC_2.29 xdr_u_hyper F
|
|
|
|
+GLIBC_2.29 xdr_u_int F
|
|
|
|
+GLIBC_2.29 xdr_u_long F
|
|
|
|
+GLIBC_2.29 xdr_u_longlong_t F
|
|
|
|
+GLIBC_2.29 xdr_u_quad_t F
|
|
|
|
+GLIBC_2.29 xdr_u_short F
|
|
|
|
+GLIBC_2.29 xdr_uint16_t F
|
|
|
|
+GLIBC_2.29 xdr_uint32_t F
|
|
|
|
+GLIBC_2.29 xdr_uint64_t F
|
|
|
|
+GLIBC_2.29 xdr_uint8_t F
|
|
|
|
+GLIBC_2.29 xdr_union F
|
|
|
|
+GLIBC_2.29 xdr_unixcred F
|
|
|
|
+GLIBC_2.29 xdr_vector F
|
|
|
|
+GLIBC_2.29 xdr_void F
|
|
|
|
+GLIBC_2.29 xdr_wrapstring F
|
|
|
|
+GLIBC_2.29 xdrmem_create F
|
|
|
|
+GLIBC_2.29 xdrrec_create F
|
|
|
|
+GLIBC_2.29 xdrrec_endofrecord F
|
|
|
|
+GLIBC_2.29 xdrrec_eof F
|
|
|
|
+GLIBC_2.29 xdrrec_skiprecord F
|
|
|
|
+GLIBC_2.29 xdrstdio_create F
|
|
|
|
+GLIBC_2.29 xencrypt F
|
|
|
|
+GLIBC_2.29 xprt_register F
|
|
|
|
+GLIBC_2.29 xprt_unregister F
|
|
|
|
diff --git a/sysdeps/unix/sysv/linux/arc/libcrypt.abilist b/sysdeps/unix/sysv/linux/arc/libcrypt.abilist
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..da3abbf8fb8
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/libcrypt.abilist
|
|
|
|
@@ -0,0 +1,2 @@
|
|
|
|
+GLIBC_2.29 crypt F
|
|
|
|
+GLIBC_2.29 crypt_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 00000000000..8fcb609ddcf
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
|
|
|
|
@@ -0,0 +1,9 @@
|
|
|
|
+GLIBC_2.29 dladdr F
|
|
|
|
+GLIBC_2.29 dladdr1 F
|
|
|
|
+GLIBC_2.29 dlclose F
|
|
|
|
+GLIBC_2.29 dlerror F
|
|
|
|
+GLIBC_2.29 dlinfo F
|
|
|
|
+GLIBC_2.29 dlmopen F
|
|
|
|
+GLIBC_2.29 dlopen F
|
|
|
|
+GLIBC_2.29 dlsym F
|
|
|
|
+GLIBC_2.29 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 00000000000..497f6226447
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/libm.abilist
|
|
|
|
@@ -0,0 +1,753 @@
|
|
|
|
+GLIBC_2.29 __acos_finite F
|
|
|
|
+GLIBC_2.29 __acosf_finite F
|
|
|
|
+GLIBC_2.29 __acosh_finite F
|
|
|
|
+GLIBC_2.29 __acoshf_finite F
|
|
|
|
+GLIBC_2.29 __asin_finite F
|
|
|
|
+GLIBC_2.29 __asinf_finite F
|
|
|
|
+GLIBC_2.29 __atan2_finite F
|
|
|
|
+GLIBC_2.29 __atan2f_finite F
|
|
|
|
+GLIBC_2.29 __atanh_finite F
|
|
|
|
+GLIBC_2.29 __atanhf_finite F
|
|
|
|
+GLIBC_2.29 __clog10 F
|
|
|
|
+GLIBC_2.29 __clog10f F
|
|
|
|
+GLIBC_2.29 __clog10l F
|
|
|
|
+GLIBC_2.29 __cosh_finite F
|
|
|
|
+GLIBC_2.29 __coshf_finite F
|
|
|
|
+GLIBC_2.29 __exp10_finite F
|
|
|
|
+GLIBC_2.29 __exp10f_finite F
|
|
|
|
+GLIBC_2.29 __exp2_finite F
|
|
|
|
+GLIBC_2.29 __exp2f_finite F
|
|
|
|
+GLIBC_2.29 __exp_finite F
|
|
|
|
+GLIBC_2.29 __expf_finite F
|
|
|
|
+GLIBC_2.29 __finite F
|
|
|
|
+GLIBC_2.29 __finitef F
|
|
|
|
+GLIBC_2.29 __fmod_finite F
|
|
|
|
+GLIBC_2.29 __fmodf_finite F
|
|
|
|
+GLIBC_2.29 __fpclassify F
|
|
|
|
+GLIBC_2.29 __fpclassifyf F
|
|
|
|
+GLIBC_2.29 __gamma_r_finite F
|
|
|
|
+GLIBC_2.29 __gammaf_r_finite F
|
|
|
|
+GLIBC_2.29 __hypot_finite F
|
|
|
|
+GLIBC_2.29 __hypotf_finite F
|
|
|
|
+GLIBC_2.29 __iseqsig F
|
|
|
|
+GLIBC_2.29 __iseqsigf F
|
|
|
|
+GLIBC_2.29 __issignaling F
|
|
|
|
+GLIBC_2.29 __issignalingf F
|
|
|
|
+GLIBC_2.29 __j0_finite F
|
|
|
|
+GLIBC_2.29 __j0f_finite F
|
|
|
|
+GLIBC_2.29 __j1_finite F
|
|
|
|
+GLIBC_2.29 __j1f_finite F
|
|
|
|
+GLIBC_2.29 __jn_finite F
|
|
|
|
+GLIBC_2.29 __jnf_finite F
|
|
|
|
+GLIBC_2.29 __lgamma_r_finite F
|
|
|
|
+GLIBC_2.29 __lgammaf_r_finite F
|
|
|
|
+GLIBC_2.29 __log10_finite F
|
|
|
|
+GLIBC_2.29 __log10f_finite F
|
|
|
|
+GLIBC_2.29 __log2_finite F
|
|
|
|
+GLIBC_2.29 __log2f_finite F
|
|
|
|
+GLIBC_2.29 __log_finite F
|
|
|
|
+GLIBC_2.29 __logf_finite F
|
|
|
|
+GLIBC_2.29 __pow_finite F
|
|
|
|
+GLIBC_2.29 __powf_finite F
|
|
|
|
+GLIBC_2.29 __remainder_finite F
|
|
|
|
+GLIBC_2.29 __remainderf_finite F
|
|
|
|
+GLIBC_2.29 __scalb_finite F
|
|
|
|
+GLIBC_2.29 __scalbf_finite F
|
|
|
|
+GLIBC_2.29 __signbit F
|
|
|
|
+GLIBC_2.29 __signbitf F
|
|
|
|
+GLIBC_2.29 __signgam D 0x4
|
|
|
|
+GLIBC_2.29 __sinh_finite F
|
|
|
|
+GLIBC_2.29 __sinhf_finite F
|
|
|
|
+GLIBC_2.29 __sqrt_finite F
|
|
|
|
+GLIBC_2.29 __sqrtf_finite F
|
|
|
|
+GLIBC_2.29 __y0_finite F
|
|
|
|
+GLIBC_2.29 __y0f_finite F
|
|
|
|
+GLIBC_2.29 __y1_finite F
|
|
|
|
+GLIBC_2.29 __y1f_finite F
|
|
|
|
+GLIBC_2.29 __yn_finite F
|
|
|
|
+GLIBC_2.29 __ynf_finite F
|
|
|
|
+GLIBC_2.29 acos F
|
|
|
|
+GLIBC_2.29 acosf F
|
|
|
|
+GLIBC_2.29 acosf32 F
|
|
|
|
+GLIBC_2.29 acosf32x F
|
|
|
|
+GLIBC_2.29 acosf64 F
|
|
|
|
+GLIBC_2.29 acosh F
|
|
|
|
+GLIBC_2.29 acoshf F
|
|
|
|
+GLIBC_2.29 acoshf32 F
|
|
|
|
+GLIBC_2.29 acoshf32x F
|
|
|
|
+GLIBC_2.29 acoshf64 F
|
|
|
|
+GLIBC_2.29 acoshl F
|
|
|
|
+GLIBC_2.29 acosl F
|
|
|
|
+GLIBC_2.29 asin F
|
|
|
|
+GLIBC_2.29 asinf F
|
|
|
|
+GLIBC_2.29 asinf32 F
|
|
|
|
+GLIBC_2.29 asinf32x F
|
|
|
|
+GLIBC_2.29 asinf64 F
|
|
|
|
+GLIBC_2.29 asinh F
|
|
|
|
+GLIBC_2.29 asinhf F
|
|
|
|
+GLIBC_2.29 asinhf32 F
|
|
|
|
+GLIBC_2.29 asinhf32x F
|
|
|
|
+GLIBC_2.29 asinhf64 F
|
|
|
|
+GLIBC_2.29 asinhl F
|
|
|
|
+GLIBC_2.29 asinl F
|
|
|
|
+GLIBC_2.29 atan F
|
|
|
|
+GLIBC_2.29 atan2 F
|
|
|
|
+GLIBC_2.29 atan2f F
|
|
|
|
+GLIBC_2.29 atan2f32 F
|
|
|
|
+GLIBC_2.29 atan2f32x F
|
|
|
|
+GLIBC_2.29 atan2f64 F
|
|
|
|
+GLIBC_2.29 atan2l F
|
|
|
|
+GLIBC_2.29 atanf F
|
|
|
|
+GLIBC_2.29 atanf32 F
|
|
|
|
+GLIBC_2.29 atanf32x F
|
|
|
|
+GLIBC_2.29 atanf64 F
|
|
|
|
+GLIBC_2.29 atanh F
|
|
|
|
+GLIBC_2.29 atanhf F
|
|
|
|
+GLIBC_2.29 atanhf32 F
|
|
|
|
+GLIBC_2.29 atanhf32x F
|
|
|
|
+GLIBC_2.29 atanhf64 F
|
|
|
|
+GLIBC_2.29 atanhl F
|
|
|
|
+GLIBC_2.29 atanl F
|
|
|
|
+GLIBC_2.29 cabs F
|
|
|
|
+GLIBC_2.29 cabsf F
|
|
|
|
+GLIBC_2.29 cabsf32 F
|
|
|
|
+GLIBC_2.29 cabsf32x F
|
|
|
|
+GLIBC_2.29 cabsf64 F
|
|
|
|
+GLIBC_2.29 cabsl F
|
|
|
|
+GLIBC_2.29 cacos F
|
|
|
|
+GLIBC_2.29 cacosf F
|
|
|
|
+GLIBC_2.29 cacosf32 F
|
|
|
|
+GLIBC_2.29 cacosf32x F
|
|
|
|
+GLIBC_2.29 cacosf64 F
|
|
|
|
+GLIBC_2.29 cacosh F
|
|
|
|
+GLIBC_2.29 cacoshf F
|
|
|
|
+GLIBC_2.29 cacoshf32 F
|
|
|
|
+GLIBC_2.29 cacoshf32x F
|
|
|
|
+GLIBC_2.29 cacoshf64 F
|
|
|
|
+GLIBC_2.29 cacoshl F
|
|
|
|
+GLIBC_2.29 cacosl F
|
|
|
|
+GLIBC_2.29 canonicalize F
|
|
|
|
+GLIBC_2.29 canonicalizef F
|
|
|
|
+GLIBC_2.29 canonicalizef32 F
|
|
|
|
+GLIBC_2.29 canonicalizef32x F
|
|
|
|
+GLIBC_2.29 canonicalizef64 F
|
|
|
|
+GLIBC_2.29 canonicalizel F
|
|
|
|
+GLIBC_2.29 carg F
|
|
|
|
+GLIBC_2.29 cargf F
|
|
|
|
+GLIBC_2.29 cargf32 F
|
|
|
|
+GLIBC_2.29 cargf32x F
|
|
|
|
+GLIBC_2.29 cargf64 F
|
|
|
|
+GLIBC_2.29 cargl F
|
|
|
|
+GLIBC_2.29 casin F
|
|
|
|
+GLIBC_2.29 casinf F
|
|
|
|
+GLIBC_2.29 casinf32 F
|
|
|
|
+GLIBC_2.29 casinf32x F
|
|
|
|
+GLIBC_2.29 casinf64 F
|
|
|
|
+GLIBC_2.29 casinh F
|
|
|
|
+GLIBC_2.29 casinhf F
|
|
|
|
+GLIBC_2.29 casinhf32 F
|
|
|
|
+GLIBC_2.29 casinhf32x F
|
|
|
|
+GLIBC_2.29 casinhf64 F
|
|
|
|
+GLIBC_2.29 casinhl F
|
|
|
|
+GLIBC_2.29 casinl F
|
|
|
|
+GLIBC_2.29 catan F
|
|
|
|
+GLIBC_2.29 catanf F
|
|
|
|
+GLIBC_2.29 catanf32 F
|
|
|
|
+GLIBC_2.29 catanf32x F
|
|
|
|
+GLIBC_2.29 catanf64 F
|
|
|
|
+GLIBC_2.29 catanh F
|
|
|
|
+GLIBC_2.29 catanhf F
|
|
|
|
+GLIBC_2.29 catanhf32 F
|
|
|
|
+GLIBC_2.29 catanhf32x F
|
|
|
|
+GLIBC_2.29 catanhf64 F
|
|
|
|
+GLIBC_2.29 catanhl F
|
|
|
|
+GLIBC_2.29 catanl F
|
|
|
|
+GLIBC_2.29 cbrt F
|
|
|
|
+GLIBC_2.29 cbrtf F
|
|
|
|
+GLIBC_2.29 cbrtf32 F
|
|
|
|
+GLIBC_2.29 cbrtf32x F
|
|
|
|
+GLIBC_2.29 cbrtf64 F
|
|
|
|
+GLIBC_2.29 cbrtl F
|
|
|
|
+GLIBC_2.29 ccos F
|
|
|
|
+GLIBC_2.29 ccosf F
|
|
|
|
+GLIBC_2.29 ccosf32 F
|
|
|
|
+GLIBC_2.29 ccosf32x F
|
|
|
|
+GLIBC_2.29 ccosf64 F
|
|
|
|
+GLIBC_2.29 ccosh F
|
|
|
|
+GLIBC_2.29 ccoshf F
|
|
|
|
+GLIBC_2.29 ccoshf32 F
|
|
|
|
+GLIBC_2.29 ccoshf32x F
|
|
|
|
+GLIBC_2.29 ccoshf64 F
|
|
|
|
+GLIBC_2.29 ccoshl F
|
|
|
|
+GLIBC_2.29 ccosl F
|
|
|
|
+GLIBC_2.29 ceil F
|
|
|
|
+GLIBC_2.29 ceilf F
|
|
|
|
+GLIBC_2.29 ceilf32 F
|
|
|
|
+GLIBC_2.29 ceilf32x F
|
|
|
|
+GLIBC_2.29 ceilf64 F
|
|
|
|
+GLIBC_2.29 ceill F
|
|
|
|
+GLIBC_2.29 cexp F
|
|
|
|
+GLIBC_2.29 cexpf F
|
|
|
|
+GLIBC_2.29 cexpf32 F
|
|
|
|
+GLIBC_2.29 cexpf32x F
|
|
|
|
+GLIBC_2.29 cexpf64 F
|
|
|
|
+GLIBC_2.29 cexpl F
|
|
|
|
+GLIBC_2.29 cimag F
|
|
|
|
+GLIBC_2.29 cimagf F
|
|
|
|
+GLIBC_2.29 cimagf32 F
|
|
|
|
+GLIBC_2.29 cimagf32x F
|
|
|
|
+GLIBC_2.29 cimagf64 F
|
|
|
|
+GLIBC_2.29 cimagl F
|
|
|
|
+GLIBC_2.29 clog F
|
|
|
|
+GLIBC_2.29 clog10 F
|
|
|
|
+GLIBC_2.29 clog10f F
|
|
|
|
+GLIBC_2.29 clog10f32 F
|
|
|
|
+GLIBC_2.29 clog10f32x F
|
|
|
|
+GLIBC_2.29 clog10f64 F
|
|
|
|
+GLIBC_2.29 clog10l F
|
|
|
|
+GLIBC_2.29 clogf F
|
|
|
|
+GLIBC_2.29 clogf32 F
|
|
|
|
+GLIBC_2.29 clogf32x F
|
|
|
|
+GLIBC_2.29 clogf64 F
|
|
|
|
+GLIBC_2.29 clogl F
|
|
|
|
+GLIBC_2.29 conj F
|
|
|
|
+GLIBC_2.29 conjf F
|
|
|
|
+GLIBC_2.29 conjf32 F
|
|
|
|
+GLIBC_2.29 conjf32x F
|
|
|
|
+GLIBC_2.29 conjf64 F
|
|
|
|
+GLIBC_2.29 conjl F
|
|
|
|
+GLIBC_2.29 copysign F
|
|
|
|
+GLIBC_2.29 copysignf F
|
|
|
|
+GLIBC_2.29 copysignf32 F
|
|
|
|
+GLIBC_2.29 copysignf32x F
|
|
|
|
+GLIBC_2.29 copysignf64 F
|
|
|
|
+GLIBC_2.29 copysignl F
|
|
|
|
+GLIBC_2.29 cos F
|
|
|
|
+GLIBC_2.29 cosf F
|
|
|
|
+GLIBC_2.29 cosf32 F
|
|
|
|
+GLIBC_2.29 cosf32x F
|
|
|
|
+GLIBC_2.29 cosf64 F
|
|
|
|
+GLIBC_2.29 cosh F
|
|
|
|
+GLIBC_2.29 coshf F
|
|
|
|
+GLIBC_2.29 coshf32 F
|
|
|
|
+GLIBC_2.29 coshf32x F
|
|
|
|
+GLIBC_2.29 coshf64 F
|
|
|
|
+GLIBC_2.29 coshl F
|
|
|
|
+GLIBC_2.29 cosl F
|
|
|
|
+GLIBC_2.29 cpow F
|
|
|
|
+GLIBC_2.29 cpowf F
|
|
|
|
+GLIBC_2.29 cpowf32 F
|
|
|
|
+GLIBC_2.29 cpowf32x F
|
|
|
|
+GLIBC_2.29 cpowf64 F
|
|
|
|
+GLIBC_2.29 cpowl F
|
|
|
|
+GLIBC_2.29 cproj F
|
|
|
|
+GLIBC_2.29 cprojf F
|
|
|
|
+GLIBC_2.29 cprojf32 F
|
|
|
|
+GLIBC_2.29 cprojf32x F
|
|
|
|
+GLIBC_2.29 cprojf64 F
|
|
|
|
+GLIBC_2.29 cprojl F
|
|
|
|
+GLIBC_2.29 creal F
|
|
|
|
+GLIBC_2.29 crealf F
|
|
|
|
+GLIBC_2.29 crealf32 F
|
|
|
|
+GLIBC_2.29 crealf32x F
|
|
|
|
+GLIBC_2.29 crealf64 F
|
|
|
|
+GLIBC_2.29 creall F
|
|
|
|
+GLIBC_2.29 csin F
|
|
|
|
+GLIBC_2.29 csinf F
|
|
|
|
+GLIBC_2.29 csinf32 F
|
|
|
|
+GLIBC_2.29 csinf32x F
|
|
|
|
+GLIBC_2.29 csinf64 F
|
|
|
|
+GLIBC_2.29 csinh F
|
|
|
|
+GLIBC_2.29 csinhf F
|
|
|
|
+GLIBC_2.29 csinhf32 F
|
|
|
|
+GLIBC_2.29 csinhf32x F
|
|
|
|
+GLIBC_2.29 csinhf64 F
|
|
|
|
+GLIBC_2.29 csinhl F
|
|
|
|
+GLIBC_2.29 csinl F
|
|
|
|
+GLIBC_2.29 csqrt F
|
|
|
|
+GLIBC_2.29 csqrtf F
|
|
|
|
+GLIBC_2.29 csqrtf32 F
|
|
|
|
+GLIBC_2.29 csqrtf32x F
|
|
|
|
+GLIBC_2.29 csqrtf64 F
|
|
|
|
+GLIBC_2.29 csqrtl F
|
|
|
|
+GLIBC_2.29 ctan F
|
|
|
|
+GLIBC_2.29 ctanf F
|
|
|
|
+GLIBC_2.29 ctanf32 F
|
|
|
|
+GLIBC_2.29 ctanf32x F
|
|
|
|
+GLIBC_2.29 ctanf64 F
|
|
|
|
+GLIBC_2.29 ctanh F
|
|
|
|
+GLIBC_2.29 ctanhf F
|
|
|
|
+GLIBC_2.29 ctanhf32 F
|
|
|
|
+GLIBC_2.29 ctanhf32x F
|
|
|
|
+GLIBC_2.29 ctanhf64 F
|
|
|
|
+GLIBC_2.29 ctanhl F
|
|
|
|
+GLIBC_2.29 ctanl F
|
|
|
|
+GLIBC_2.29 daddl F
|
|
|
|
+GLIBC_2.29 ddivl F
|
|
|
|
+GLIBC_2.29 dmull F
|
|
|
|
+GLIBC_2.29 drem F
|
|
|
|
+GLIBC_2.29 dremf F
|
|
|
|
+GLIBC_2.29 dreml F
|
|
|
|
+GLIBC_2.29 dsubl F
|
|
|
|
+GLIBC_2.29 erf F
|
|
|
|
+GLIBC_2.29 erfc F
|
|
|
|
+GLIBC_2.29 erfcf F
|
|
|
|
+GLIBC_2.29 erfcf32 F
|
|
|
|
+GLIBC_2.29 erfcf32x F
|
|
|
|
+GLIBC_2.29 erfcf64 F
|
|
|
|
+GLIBC_2.29 erfcl F
|
|
|
|
+GLIBC_2.29 erff F
|
|
|
|
+GLIBC_2.29 erff32 F
|
|
|
|
+GLIBC_2.29 erff32x F
|
|
|
|
+GLIBC_2.29 erff64 F
|
|
|
|
+GLIBC_2.29 erfl F
|
|
|
|
+GLIBC_2.29 exp F
|
|
|
|
+GLIBC_2.29 exp10 F
|
|
|
|
+GLIBC_2.29 exp10f F
|
|
|
|
+GLIBC_2.29 exp10f32 F
|
|
|
|
+GLIBC_2.29 exp10f32x F
|
|
|
|
+GLIBC_2.29 exp10f64 F
|
|
|
|
+GLIBC_2.29 exp10l F
|
|
|
|
+GLIBC_2.29 exp2 F
|
|
|
|
+GLIBC_2.29 exp2f F
|
|
|
|
+GLIBC_2.29 exp2f32 F
|
|
|
|
+GLIBC_2.29 exp2f32x F
|
|
|
|
+GLIBC_2.29 exp2f64 F
|
|
|
|
+GLIBC_2.29 exp2l F
|
|
|
|
+GLIBC_2.29 expf F
|
|
|
|
+GLIBC_2.29 expf32 F
|
|
|
|
+GLIBC_2.29 expf32x F
|
|
|
|
+GLIBC_2.29 expf64 F
|
|
|
|
+GLIBC_2.29 expl F
|
|
|
|
+GLIBC_2.29 expm1 F
|
|
|
|
+GLIBC_2.29 expm1f F
|
|
|
|
+GLIBC_2.29 expm1f32 F
|
|
|
|
+GLIBC_2.29 expm1f32x F
|
|
|
|
+GLIBC_2.29 expm1f64 F
|
|
|
|
+GLIBC_2.29 expm1l F
|
|
|
|
+GLIBC_2.29 f32addf32x F
|
|
|
|
+GLIBC_2.29 f32addf64 F
|
|
|
|
+GLIBC_2.29 f32divf32x F
|
|
|
|
+GLIBC_2.29 f32divf64 F
|
|
|
|
+GLIBC_2.29 f32mulf32x F
|
|
|
|
+GLIBC_2.29 f32mulf64 F
|
|
|
|
+GLIBC_2.29 f32subf32x F
|
|
|
|
+GLIBC_2.29 f32subf64 F
|
|
|
|
+GLIBC_2.29 f32xaddf64 F
|
|
|
|
+GLIBC_2.29 f32xdivf64 F
|
|
|
|
+GLIBC_2.29 f32xmulf64 F
|
|
|
|
+GLIBC_2.29 f32xsubf64 F
|
|
|
|
+GLIBC_2.29 fabs F
|
|
|
|
+GLIBC_2.29 fabsf F
|
|
|
|
+GLIBC_2.29 fabsf32 F
|
|
|
|
+GLIBC_2.29 fabsf32x F
|
|
|
|
+GLIBC_2.29 fabsf64 F
|
|
|
|
+GLIBC_2.29 fabsl F
|
|
|
|
+GLIBC_2.29 fadd F
|
|
|
|
+GLIBC_2.29 faddl F
|
|
|
|
+GLIBC_2.29 fdim F
|
|
|
|
+GLIBC_2.29 fdimf F
|
|
|
|
+GLIBC_2.29 fdimf32 F
|
|
|
|
+GLIBC_2.29 fdimf32x F
|
|
|
|
+GLIBC_2.29 fdimf64 F
|
|
|
|
+GLIBC_2.29 fdiml F
|
|
|
|
+GLIBC_2.29 fdiv F
|
|
|
|
+GLIBC_2.29 fdivl F
|
|
|
|
+GLIBC_2.29 feclearexcept F
|
|
|
|
+GLIBC_2.29 fedisableexcept F
|
|
|
|
+GLIBC_2.29 feenableexcept F
|
|
|
|
+GLIBC_2.29 fegetenv F
|
|
|
|
+GLIBC_2.29 fegetexcept F
|
|
|
|
+GLIBC_2.29 fegetexceptflag F
|
|
|
|
+GLIBC_2.29 fegetmode F
|
|
|
|
+GLIBC_2.29 fegetround F
|
|
|
|
+GLIBC_2.29 feholdexcept F
|
|
|
|
+GLIBC_2.29 feraiseexcept F
|
|
|
|
+GLIBC_2.29 fesetenv F
|
|
|
|
+GLIBC_2.29 fesetexcept F
|
|
|
|
+GLIBC_2.29 fesetexceptflag F
|
|
|
|
+GLIBC_2.29 fesetmode F
|
|
|
|
+GLIBC_2.29 fesetround F
|
|
|
|
+GLIBC_2.29 fetestexcept F
|
|
|
|
+GLIBC_2.29 fetestexceptflag F
|
|
|
|
+GLIBC_2.29 feupdateenv F
|
|
|
|
+GLIBC_2.29 finite F
|
|
|
|
+GLIBC_2.29 finitef F
|
|
|
|
+GLIBC_2.29 finitel F
|
|
|
|
+GLIBC_2.29 floor F
|
|
|
|
+GLIBC_2.29 floorf F
|
|
|
|
+GLIBC_2.29 floorf32 F
|
|
|
|
+GLIBC_2.29 floorf32x F
|
|
|
|
+GLIBC_2.29 floorf64 F
|
|
|
|
+GLIBC_2.29 floorl F
|
|
|
|
+GLIBC_2.29 fma F
|
|
|
|
+GLIBC_2.29 fmaf F
|
|
|
|
+GLIBC_2.29 fmaf32 F
|
|
|
|
+GLIBC_2.29 fmaf32x F
|
|
|
|
+GLIBC_2.29 fmaf64 F
|
|
|
|
+GLIBC_2.29 fmal F
|
|
|
|
+GLIBC_2.29 fmax F
|
|
|
|
+GLIBC_2.29 fmaxf F
|
|
|
|
+GLIBC_2.29 fmaxf32 F
|
|
|
|
+GLIBC_2.29 fmaxf32x F
|
|
|
|
+GLIBC_2.29 fmaxf64 F
|
|
|
|
+GLIBC_2.29 fmaxl F
|
|
|
|
+GLIBC_2.29 fmaxmag F
|
|
|
|
+GLIBC_2.29 fmaxmagf F
|
|
|
|
+GLIBC_2.29 fmaxmagf32 F
|
|
|
|
+GLIBC_2.29 fmaxmagf32x F
|
|
|
|
+GLIBC_2.29 fmaxmagf64 F
|
|
|
|
+GLIBC_2.29 fmaxmagl F
|
|
|
|
+GLIBC_2.29 fmin F
|
|
|
|
+GLIBC_2.29 fminf F
|
|
|
|
+GLIBC_2.29 fminf32 F
|
|
|
|
+GLIBC_2.29 fminf32x F
|
|
|
|
+GLIBC_2.29 fminf64 F
|
|
|
|
+GLIBC_2.29 fminl F
|
|
|
|
+GLIBC_2.29 fminmag F
|
|
|
|
+GLIBC_2.29 fminmagf F
|
|
|
|
+GLIBC_2.29 fminmagf32 F
|
|
|
|
+GLIBC_2.29 fminmagf32x F
|
|
|
|
+GLIBC_2.29 fminmagf64 F
|
|
|
|
+GLIBC_2.29 fminmagl F
|
|
|
|
+GLIBC_2.29 fmod F
|
|
|
|
+GLIBC_2.29 fmodf F
|
|
|
|
+GLIBC_2.29 fmodf32 F
|
|
|
|
+GLIBC_2.29 fmodf32x F
|
|
|
|
+GLIBC_2.29 fmodf64 F
|
|
|
|
+GLIBC_2.29 fmodl F
|
|
|
|
+GLIBC_2.29 fmul F
|
|
|
|
+GLIBC_2.29 fmull F
|
|
|
|
+GLIBC_2.29 frexp F
|
|
|
|
+GLIBC_2.29 frexpf F
|
|
|
|
+GLIBC_2.29 frexpf32 F
|
|
|
|
+GLIBC_2.29 frexpf32x F
|
|
|
|
+GLIBC_2.29 frexpf64 F
|
|
|
|
+GLIBC_2.29 frexpl F
|
|
|
|
+GLIBC_2.29 fromfp F
|
|
|
|
+GLIBC_2.29 fromfpf F
|
|
|
|
+GLIBC_2.29 fromfpf32 F
|
|
|
|
+GLIBC_2.29 fromfpf32x F
|
|
|
|
+GLIBC_2.29 fromfpf64 F
|
|
|
|
+GLIBC_2.29 fromfpl F
|
|
|
|
+GLIBC_2.29 fromfpx F
|
|
|
|
+GLIBC_2.29 fromfpxf F
|
|
|
|
+GLIBC_2.29 fromfpxf32 F
|
|
|
|
+GLIBC_2.29 fromfpxf32x F
|
|
|
|
+GLIBC_2.29 fromfpxf64 F
|
|
|
|
+GLIBC_2.29 fromfpxl F
|
|
|
|
+GLIBC_2.29 fsub F
|
|
|
|
+GLIBC_2.29 fsubl F
|
|
|
|
+GLIBC_2.29 gamma F
|
|
|
|
+GLIBC_2.29 gammaf F
|
|
|
|
+GLIBC_2.29 gammal F
|
|
|
|
+GLIBC_2.29 getpayload F
|
|
|
|
+GLIBC_2.29 getpayloadf F
|
|
|
|
+GLIBC_2.29 getpayloadf32 F
|
|
|
|
+GLIBC_2.29 getpayloadf32x F
|
|
|
|
+GLIBC_2.29 getpayloadf64 F
|
|
|
|
+GLIBC_2.29 getpayloadl F
|
|
|
|
+GLIBC_2.29 hypot F
|
|
|
|
+GLIBC_2.29 hypotf F
|
|
|
|
+GLIBC_2.29 hypotf32 F
|
|
|
|
+GLIBC_2.29 hypotf32x F
|
|
|
|
+GLIBC_2.29 hypotf64 F
|
|
|
|
+GLIBC_2.29 hypotl F
|
|
|
|
+GLIBC_2.29 ilogb F
|
|
|
|
+GLIBC_2.29 ilogbf F
|
|
|
|
+GLIBC_2.29 ilogbf32 F
|
|
|
|
+GLIBC_2.29 ilogbf32x F
|
|
|
|
+GLIBC_2.29 ilogbf64 F
|
|
|
|
+GLIBC_2.29 ilogbl F
|
|
|
|
+GLIBC_2.29 j0 F
|
|
|
|
+GLIBC_2.29 j0f F
|
|
|
|
+GLIBC_2.29 j0f32 F
|
|
|
|
+GLIBC_2.29 j0f32x F
|
|
|
|
+GLIBC_2.29 j0f64 F
|
|
|
|
+GLIBC_2.29 j0l F
|
|
|
|
+GLIBC_2.29 j1 F
|
|
|
|
+GLIBC_2.29 j1f F
|
|
|
|
+GLIBC_2.29 j1f32 F
|
|
|
|
+GLIBC_2.29 j1f32x F
|
|
|
|
+GLIBC_2.29 j1f64 F
|
|
|
|
+GLIBC_2.29 j1l F
|
|
|
|
+GLIBC_2.29 jn F
|
|
|
|
+GLIBC_2.29 jnf F
|
|
|
|
+GLIBC_2.29 jnf32 F
|
|
|
|
+GLIBC_2.29 jnf32x F
|
|
|
|
+GLIBC_2.29 jnf64 F
|
|
|
|
+GLIBC_2.29 jnl F
|
|
|
|
+GLIBC_2.29 ldexp F
|
|
|
|
+GLIBC_2.29 ldexpf F
|
|
|
|
+GLIBC_2.29 ldexpf32 F
|
|
|
|
+GLIBC_2.29 ldexpf32x F
|
|
|
|
+GLIBC_2.29 ldexpf64 F
|
|
|
|
+GLIBC_2.29 ldexpl F
|
|
|
|
+GLIBC_2.29 lgamma F
|
|
|
|
+GLIBC_2.29 lgamma_r F
|
|
|
|
+GLIBC_2.29 lgammaf F
|
|
|
|
+GLIBC_2.29 lgammaf32 F
|
|
|
|
+GLIBC_2.29 lgammaf32_r F
|
|
|
|
+GLIBC_2.29 lgammaf32x F
|
|
|
|
+GLIBC_2.29 lgammaf32x_r F
|
|
|
|
+GLIBC_2.29 lgammaf64 F
|
|
|
|
+GLIBC_2.29 lgammaf64_r F
|
|
|
|
+GLIBC_2.29 lgammaf_r F
|
|
|
|
+GLIBC_2.29 lgammal F
|
|
|
|
+GLIBC_2.29 lgammal_r F
|
|
|
|
+GLIBC_2.29 llogb F
|
|
|
|
+GLIBC_2.29 llogbf F
|
|
|
|
+GLIBC_2.29 llogbf32 F
|
|
|
|
+GLIBC_2.29 llogbf32x F
|
|
|
|
+GLIBC_2.29 llogbf64 F
|
|
|
|
+GLIBC_2.29 llogbl F
|
|
|
|
+GLIBC_2.29 llrint F
|
|
|
|
+GLIBC_2.29 llrintf F
|
|
|
|
+GLIBC_2.29 llrintf32 F
|
|
|
|
+GLIBC_2.29 llrintf32x F
|
|
|
|
+GLIBC_2.29 llrintf64 F
|
|
|
|
+GLIBC_2.29 llrintl F
|
|
|
|
+GLIBC_2.29 llround F
|
|
|
|
+GLIBC_2.29 llroundf F
|
|
|
|
+GLIBC_2.29 llroundf32 F
|
|
|
|
+GLIBC_2.29 llroundf32x F
|
|
|
|
+GLIBC_2.29 llroundf64 F
|
|
|
|
+GLIBC_2.29 llroundl F
|
|
|
|
+GLIBC_2.29 log F
|
|
|
|
+GLIBC_2.29 log10 F
|
|
|
|
+GLIBC_2.29 log10f F
|
|
|
|
+GLIBC_2.29 log10f32 F
|
|
|
|
+GLIBC_2.29 log10f32x F
|
|
|
|
+GLIBC_2.29 log10f64 F
|
|
|
|
+GLIBC_2.29 log10l F
|
|
|
|
+GLIBC_2.29 log1p F
|
|
|
|
+GLIBC_2.29 log1pf F
|
|
|
|
+GLIBC_2.29 log1pf32 F
|
|
|
|
+GLIBC_2.29 log1pf32x F
|
|
|
|
+GLIBC_2.29 log1pf64 F
|
|
|
|
+GLIBC_2.29 log1pl F
|
|
|
|
+GLIBC_2.29 log2 F
|
|
|
|
+GLIBC_2.29 log2f F
|
|
|
|
+GLIBC_2.29 log2f32 F
|
|
|
|
+GLIBC_2.29 log2f32x F
|
|
|
|
+GLIBC_2.29 log2f64 F
|
|
|
|
+GLIBC_2.29 log2l F
|
|
|
|
+GLIBC_2.29 logb F
|
|
|
|
+GLIBC_2.29 logbf F
|
|
|
|
+GLIBC_2.29 logbf32 F
|
|
|
|
+GLIBC_2.29 logbf32x F
|
|
|
|
+GLIBC_2.29 logbf64 F
|
|
|
|
+GLIBC_2.29 logbl F
|
|
|
|
+GLIBC_2.29 logf F
|
|
|
|
+GLIBC_2.29 logf32 F
|
|
|
|
+GLIBC_2.29 logf32x F
|
|
|
|
+GLIBC_2.29 logf64 F
|
|
|
|
+GLIBC_2.29 logl F
|
|
|
|
+GLIBC_2.29 lrint F
|
|
|
|
+GLIBC_2.29 lrintf F
|
|
|
|
+GLIBC_2.29 lrintf32 F
|
|
|
|
+GLIBC_2.29 lrintf32x F
|
|
|
|
+GLIBC_2.29 lrintf64 F
|
|
|
|
+GLIBC_2.29 lrintl F
|
|
|
|
+GLIBC_2.29 lround F
|
|
|
|
+GLIBC_2.29 lroundf F
|
|
|
|
+GLIBC_2.29 lroundf32 F
|
|
|
|
+GLIBC_2.29 lroundf32x F
|
|
|
|
+GLIBC_2.29 lroundf64 F
|
|
|
|
+GLIBC_2.29 lroundl F
|
|
|
|
+GLIBC_2.29 modf F
|
|
|
|
+GLIBC_2.29 modff F
|
|
|
|
+GLIBC_2.29 modff32 F
|
|
|
|
+GLIBC_2.29 modff32x F
|
|
|
|
+GLIBC_2.29 modff64 F
|
|
|
|
+GLIBC_2.29 modfl F
|
|
|
|
+GLIBC_2.29 nan F
|
|
|
|
+GLIBC_2.29 nanf F
|
|
|
|
+GLIBC_2.29 nanf32 F
|
|
|
|
+GLIBC_2.29 nanf32x F
|
|
|
|
+GLIBC_2.29 nanf64 F
|
|
|
|
+GLIBC_2.29 nanl F
|
|
|
|
+GLIBC_2.29 nearbyint F
|
|
|
|
+GLIBC_2.29 nearbyintf F
|
|
|
|
+GLIBC_2.29 nearbyintf32 F
|
|
|
|
+GLIBC_2.29 nearbyintf32x F
|
|
|
|
+GLIBC_2.29 nearbyintf64 F
|
|
|
|
+GLIBC_2.29 nearbyintl F
|
|
|
|
+GLIBC_2.29 nextafter F
|
|
|
|
+GLIBC_2.29 nextafterf F
|
|
|
|
+GLIBC_2.29 nextafterf32 F
|
|
|
|
+GLIBC_2.29 nextafterf32x F
|
|
|
|
+GLIBC_2.29 nextafterf64 F
|
|
|
|
+GLIBC_2.29 nextafterl F
|
|
|
|
+GLIBC_2.29 nextdown F
|
|
|
|
+GLIBC_2.29 nextdownf F
|
|
|
|
+GLIBC_2.29 nextdownf32 F
|
|
|
|
+GLIBC_2.29 nextdownf32x F
|
|
|
|
+GLIBC_2.29 nextdownf64 F
|
|
|
|
+GLIBC_2.29 nextdownl F
|
|
|
|
+GLIBC_2.29 nexttoward F
|
|
|
|
+GLIBC_2.29 nexttowardf F
|
|
|
|
+GLIBC_2.29 nexttowardl F
|
|
|
|
+GLIBC_2.29 nextup F
|
|
|
|
+GLIBC_2.29 nextupf F
|
|
|
|
+GLIBC_2.29 nextupf32 F
|
|
|
|
+GLIBC_2.29 nextupf32x F
|
|
|
|
+GLIBC_2.29 nextupf64 F
|
|
|
|
+GLIBC_2.29 nextupl F
|
|
|
|
+GLIBC_2.29 pow F
|
|
|
|
+GLIBC_2.29 powf F
|
|
|
|
+GLIBC_2.29 powf32 F
|
|
|
|
+GLIBC_2.29 powf32x F
|
|
|
|
+GLIBC_2.29 powf64 F
|
|
|
|
+GLIBC_2.29 powl F
|
|
|
|
+GLIBC_2.29 remainder F
|
|
|
|
+GLIBC_2.29 remainderf F
|
|
|
|
+GLIBC_2.29 remainderf32 F
|
|
|
|
+GLIBC_2.29 remainderf32x F
|
|
|
|
+GLIBC_2.29 remainderf64 F
|
|
|
|
+GLIBC_2.29 remainderl F
|
|
|
|
+GLIBC_2.29 remquo F
|
|
|
|
+GLIBC_2.29 remquof F
|
|
|
|
+GLIBC_2.29 remquof32 F
|
|
|
|
+GLIBC_2.29 remquof32x F
|
|
|
|
+GLIBC_2.29 remquof64 F
|
|
|
|
+GLIBC_2.29 remquol F
|
|
|
|
+GLIBC_2.29 rint F
|
|
|
|
+GLIBC_2.29 rintf F
|
|
|
|
+GLIBC_2.29 rintf32 F
|
|
|
|
+GLIBC_2.29 rintf32x F
|
|
|
|
+GLIBC_2.29 rintf64 F
|
|
|
|
+GLIBC_2.29 rintl F
|
|
|
|
+GLIBC_2.29 round F
|
|
|
|
+GLIBC_2.29 roundeven F
|
|
|
|
+GLIBC_2.29 roundevenf F
|
|
|
|
+GLIBC_2.29 roundevenf32 F
|
|
|
|
+GLIBC_2.29 roundevenf32x F
|
|
|
|
+GLIBC_2.29 roundevenf64 F
|
|
|
|
+GLIBC_2.29 roundevenl F
|
|
|
|
+GLIBC_2.29 roundf F
|
|
|
|
+GLIBC_2.29 roundf32 F
|
|
|
|
+GLIBC_2.29 roundf32x F
|
|
|
|
+GLIBC_2.29 roundf64 F
|
|
|
|
+GLIBC_2.29 roundl F
|
|
|
|
+GLIBC_2.29 scalb F
|
|
|
|
+GLIBC_2.29 scalbf F
|
|
|
|
+GLIBC_2.29 scalbl F
|
|
|
|
+GLIBC_2.29 scalbln F
|
|
|
|
+GLIBC_2.29 scalblnf F
|
|
|
|
+GLIBC_2.29 scalblnf32 F
|
|
|
|
+GLIBC_2.29 scalblnf32x F
|
|
|
|
+GLIBC_2.29 scalblnf64 F
|
|
|
|
+GLIBC_2.29 scalblnl F
|
|
|
|
+GLIBC_2.29 scalbn F
|
|
|
|
+GLIBC_2.29 scalbnf F
|
|
|
|
+GLIBC_2.29 scalbnf32 F
|
|
|
|
+GLIBC_2.29 scalbnf32x F
|
|
|
|
+GLIBC_2.29 scalbnf64 F
|
|
|
|
+GLIBC_2.29 scalbnl F
|
|
|
|
+GLIBC_2.29 setpayload F
|
|
|
|
+GLIBC_2.29 setpayloadf F
|
|
|
|
+GLIBC_2.29 setpayloadf32 F
|
|
|
|
+GLIBC_2.29 setpayloadf32x F
|
|
|
|
+GLIBC_2.29 setpayloadf64 F
|
|
|
|
+GLIBC_2.29 setpayloadl F
|
|
|
|
+GLIBC_2.29 setpayloadsig F
|
|
|
|
+GLIBC_2.29 setpayloadsigf F
|
|
|
|
+GLIBC_2.29 setpayloadsigf32 F
|
|
|
|
+GLIBC_2.29 setpayloadsigf32x F
|
|
|
|
+GLIBC_2.29 setpayloadsigf64 F
|
|
|
|
+GLIBC_2.29 setpayloadsigl F
|
|
|
|
+GLIBC_2.29 signgam D 0x4
|
|
|
|
+GLIBC_2.29 significand F
|
|
|
|
+GLIBC_2.29 significandf F
|
|
|
|
+GLIBC_2.29 significandl F
|
|
|
|
+GLIBC_2.29 sin F
|
|
|
|
+GLIBC_2.29 sincos F
|
|
|
|
+GLIBC_2.29 sincosf F
|
|
|
|
+GLIBC_2.29 sincosf32 F
|
|
|
|
+GLIBC_2.29 sincosf32x F
|
|
|
|
+GLIBC_2.29 sincosf64 F
|
|
|
|
+GLIBC_2.29 sincosl F
|
|
|
|
+GLIBC_2.29 sinf F
|
|
|
|
+GLIBC_2.29 sinf32 F
|
|
|
|
+GLIBC_2.29 sinf32x F
|
|
|
|
+GLIBC_2.29 sinf64 F
|
|
|
|
+GLIBC_2.29 sinh F
|
|
|
|
+GLIBC_2.29 sinhf F
|
|
|
|
+GLIBC_2.29 sinhf32 F
|
|
|
|
+GLIBC_2.29 sinhf32x F
|
|
|
|
+GLIBC_2.29 sinhf64 F
|
|
|
|
+GLIBC_2.29 sinhl F
|
|
|
|
+GLIBC_2.29 sinl F
|
|
|
|
+GLIBC_2.29 sqrt F
|
|
|
|
+GLIBC_2.29 sqrtf F
|
|
|
|
+GLIBC_2.29 sqrtf32 F
|
|
|
|
+GLIBC_2.29 sqrtf32x F
|
|
|
|
+GLIBC_2.29 sqrtf64 F
|
|
|
|
+GLIBC_2.29 sqrtl F
|
|
|
|
+GLIBC_2.29 tan F
|
|
|
|
+GLIBC_2.29 tanf F
|
|
|
|
+GLIBC_2.29 tanf32 F
|
|
|
|
+GLIBC_2.29 tanf32x F
|
|
|
|
+GLIBC_2.29 tanf64 F
|
|
|
|
+GLIBC_2.29 tanh F
|
|
|
|
+GLIBC_2.29 tanhf F
|
|
|
|
+GLIBC_2.29 tanhf32 F
|
|
|
|
+GLIBC_2.29 tanhf32x F
|
|
|
|
+GLIBC_2.29 tanhf64 F
|
|
|
|
+GLIBC_2.29 tanhl F
|
|
|
|
+GLIBC_2.29 tanl F
|
|
|
|
+GLIBC_2.29 tgamma F
|
|
|
|
+GLIBC_2.29 tgammaf F
|
|
|
|
+GLIBC_2.29 tgammaf32 F
|
|
|
|
+GLIBC_2.29 tgammaf32x F
|
|
|
|
+GLIBC_2.29 tgammaf64 F
|
|
|
|
+GLIBC_2.29 tgammal F
|
|
|
|
+GLIBC_2.29 totalorder F
|
|
|
|
+GLIBC_2.29 totalorderf F
|
|
|
|
+GLIBC_2.29 totalorderf32 F
|
|
|
|
+GLIBC_2.29 totalorderf32x F
|
|
|
|
+GLIBC_2.29 totalorderf64 F
|
|
|
|
+GLIBC_2.29 totalorderl F
|
|
|
|
+GLIBC_2.29 totalordermag F
|
|
|
|
+GLIBC_2.29 totalordermagf F
|
|
|
|
+GLIBC_2.29 totalordermagf32 F
|
|
|
|
+GLIBC_2.29 totalordermagf32x F
|
|
|
|
+GLIBC_2.29 totalordermagf64 F
|
|
|
|
+GLIBC_2.29 totalordermagl F
|
|
|
|
+GLIBC_2.29 trunc F
|
|
|
|
+GLIBC_2.29 truncf F
|
|
|
|
+GLIBC_2.29 truncf32 F
|
|
|
|
+GLIBC_2.29 truncf32x F
|
|
|
|
+GLIBC_2.29 truncf64 F
|
|
|
|
+GLIBC_2.29 truncl F
|
|
|
|
+GLIBC_2.29 ufromfp F
|
|
|
|
+GLIBC_2.29 ufromfpf F
|
|
|
|
+GLIBC_2.29 ufromfpf32 F
|
|
|
|
+GLIBC_2.29 ufromfpf32x F
|
|
|
|
+GLIBC_2.29 ufromfpf64 F
|
|
|
|
+GLIBC_2.29 ufromfpl F
|
|
|
|
+GLIBC_2.29 ufromfpx F
|
|
|
|
+GLIBC_2.29 ufromfpxf F
|
|
|
|
+GLIBC_2.29 ufromfpxf32 F
|
|
|
|
+GLIBC_2.29 ufromfpxf32x F
|
|
|
|
+GLIBC_2.29 ufromfpxf64 F
|
|
|
|
+GLIBC_2.29 ufromfpxl F
|
|
|
|
+GLIBC_2.29 y0 F
|
|
|
|
+GLIBC_2.29 y0f F
|
|
|
|
+GLIBC_2.29 y0f32 F
|
|
|
|
+GLIBC_2.29 y0f32x F
|
|
|
|
+GLIBC_2.29 y0f64 F
|
|
|
|
+GLIBC_2.29 y0l F
|
|
|
|
+GLIBC_2.29 y1 F
|
|
|
|
+GLIBC_2.29 y1f F
|
|
|
|
+GLIBC_2.29 y1f32 F
|
|
|
|
+GLIBC_2.29 y1f32x F
|
|
|
|
+GLIBC_2.29 y1f64 F
|
|
|
|
+GLIBC_2.29 y1l F
|
|
|
|
+GLIBC_2.29 yn F
|
|
|
|
+GLIBC_2.29 ynf F
|
|
|
|
+GLIBC_2.29 ynf32 F
|
|
|
|
+GLIBC_2.29 ynf32x F
|
|
|
|
+GLIBC_2.29 ynf64 F
|
|
|
|
+GLIBC_2.29 ynl F
|
|
|
|
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..ea4b79a518e
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
|
|
|
|
@@ -0,0 +1,235 @@
|
|
|
|
+GLIBC_2.29 _IO_flockfile F
|
|
|
|
+GLIBC_2.29 _IO_ftrylockfile F
|
|
|
|
+GLIBC_2.29 _IO_funlockfile F
|
|
|
|
+GLIBC_2.29 __close F
|
|
|
|
+GLIBC_2.29 __connect F
|
|
|
|
+GLIBC_2.29 __errno_location F
|
|
|
|
+GLIBC_2.29 __h_errno_location F
|
|
|
|
+GLIBC_2.29 __libc_allocate_rtsig F
|
|
|
|
+GLIBC_2.29 __libc_current_sigrtmax F
|
|
|
|
+GLIBC_2.29 __libc_current_sigrtmin F
|
|
|
|
+GLIBC_2.29 __lseek F
|
|
|
|
+GLIBC_2.29 __nanosleep F
|
|
|
|
+GLIBC_2.29 __open F
|
|
|
|
+GLIBC_2.29 __open64 F
|
|
|
|
+GLIBC_2.29 __pread64 F
|
|
|
|
+GLIBC_2.29 __pthread_cleanup_routine F
|
|
|
|
+GLIBC_2.29 __pthread_getspecific F
|
|
|
|
+GLIBC_2.29 __pthread_key_create F
|
|
|
|
+GLIBC_2.29 __pthread_mutex_destroy F
|
|
|
|
+GLIBC_2.29 __pthread_mutex_init F
|
|
|
|
+GLIBC_2.29 __pthread_mutex_lock F
|
|
|
|
+GLIBC_2.29 __pthread_mutex_trylock F
|
|
|
|
+GLIBC_2.29 __pthread_mutex_unlock F
|
|
|
|
+GLIBC_2.29 __pthread_mutexattr_destroy F
|
|
|
|
+GLIBC_2.29 __pthread_mutexattr_init F
|
|
|
|
+GLIBC_2.29 __pthread_mutexattr_settype F
|
|
|
|
+GLIBC_2.29 __pthread_once F
|
|
|
|
+GLIBC_2.29 __pthread_register_cancel F
|
|
|
|
+GLIBC_2.29 __pthread_register_cancel_defer F
|
|
|
|
+GLIBC_2.29 __pthread_rwlock_destroy F
|
|
|
|
+GLIBC_2.29 __pthread_rwlock_init F
|
|
|
|
+GLIBC_2.29 __pthread_rwlock_rdlock F
|
|
|
|
+GLIBC_2.29 __pthread_rwlock_tryrdlock F
|
|
|
|
+GLIBC_2.29 __pthread_rwlock_trywrlock F
|
|
|
|
+GLIBC_2.29 __pthread_rwlock_unlock F
|
|
|
|
+GLIBC_2.29 __pthread_rwlock_wrlock F
|
|
|
|
+GLIBC_2.29 __pthread_setspecific F
|
|
|
|
+GLIBC_2.29 __pthread_unregister_cancel F
|
|
|
|
+GLIBC_2.29 __pthread_unregister_cancel_restore F
|
|
|
|
+GLIBC_2.29 __pthread_unwind_next F
|
|
|
|
+GLIBC_2.29 __pwrite64 F
|
|
|
|
+GLIBC_2.29 __read F
|
|
|
|
+GLIBC_2.29 __res_state F
|
|
|
|
+GLIBC_2.29 __send F
|
|
|
|
+GLIBC_2.29 __sigaction F
|
|
|
|
+GLIBC_2.29 __wait F
|
|
|
|
+GLIBC_2.29 __write F
|
|
|
|
+GLIBC_2.29 _pthread_cleanup_pop F
|
|
|
|
+GLIBC_2.29 _pthread_cleanup_pop_restore F
|
|
|
|
+GLIBC_2.29 _pthread_cleanup_push F
|
|
|
|
+GLIBC_2.29 _pthread_cleanup_push_defer F
|
|
|
|
+GLIBC_2.29 accept F
|
|
|
|
+GLIBC_2.29 call_once F
|
|
|
|
+GLIBC_2.29 close F
|
|
|
|
+GLIBC_2.29 cnd_broadcast F
|
|
|
|
+GLIBC_2.29 cnd_destroy F
|
|
|
|
+GLIBC_2.29 cnd_init F
|
|
|
|
+GLIBC_2.29 cnd_signal F
|
|
|
|
+GLIBC_2.29 cnd_timedwait F
|
|
|
|
+GLIBC_2.29 cnd_wait F
|
|
|
|
+GLIBC_2.29 connect F
|
|
|
|
+GLIBC_2.29 flockfile F
|
|
|
|
+GLIBC_2.29 fsync F
|
|
|
|
+GLIBC_2.29 ftrylockfile F
|
|
|
|
+GLIBC_2.29 funlockfile F
|
|
|
|
+GLIBC_2.29 lseek F
|
|
|
|
+GLIBC_2.29 lseek64 F
|
|
|
|
+GLIBC_2.29 msync F
|
|
|
|
+GLIBC_2.29 mtx_destroy F
|
|
|
|
+GLIBC_2.29 mtx_init F
|
|
|
|
+GLIBC_2.29 mtx_lock F
|
|
|
|
+GLIBC_2.29 mtx_timedlock F
|
|
|
|
+GLIBC_2.29 mtx_trylock F
|
|
|
|
+GLIBC_2.29 mtx_unlock F
|
|
|
|
+GLIBC_2.29 nanosleep F
|
|
|
|
+GLIBC_2.29 open F
|
|
|
|
+GLIBC_2.29 open64 F
|
|
|
|
+GLIBC_2.29 pause F
|
|
|
|
+GLIBC_2.29 pread F
|
|
|
|
+GLIBC_2.29 pread64 F
|
|
|
|
+GLIBC_2.29 pthread_attr_destroy F
|
|
|
|
+GLIBC_2.29 pthread_attr_getaffinity_np F
|
|
|
|
+GLIBC_2.29 pthread_attr_getdetachstate F
|
|
|
|
+GLIBC_2.29 pthread_attr_getguardsize F
|
|
|
|
+GLIBC_2.29 pthread_attr_getinheritsched F
|
|
|
|
+GLIBC_2.29 pthread_attr_getschedparam F
|
|
|
|
+GLIBC_2.29 pthread_attr_getschedpolicy F
|
|
|
|
+GLIBC_2.29 pthread_attr_getscope F
|
|
|
|
+GLIBC_2.29 pthread_attr_getstack F
|
|
|
|
+GLIBC_2.29 pthread_attr_getstackaddr F
|
|
|
|
+GLIBC_2.29 pthread_attr_getstacksize F
|
|
|
|
+GLIBC_2.29 pthread_attr_init F
|
|
|
|
+GLIBC_2.29 pthread_attr_setaffinity_np F
|
|
|
|
+GLIBC_2.29 pthread_attr_setdetachstate F
|
|
|
|
+GLIBC_2.29 pthread_attr_setguardsize F
|
|
|
|
+GLIBC_2.29 pthread_attr_setinheritsched F
|
|
|
|
+GLIBC_2.29 pthread_attr_setschedparam F
|
|
|
|
+GLIBC_2.29 pthread_attr_setschedpolicy F
|
|
|
|
+GLIBC_2.29 pthread_attr_setscope F
|
|
|
|
+GLIBC_2.29 pthread_attr_setstack F
|
|
|
|
+GLIBC_2.29 pthread_attr_setstackaddr F
|
|
|
|
+GLIBC_2.29 pthread_attr_setstacksize F
|
|
|
|
+GLIBC_2.29 pthread_barrier_destroy F
|
|
|
|
+GLIBC_2.29 pthread_barrier_init F
|
|
|
|
+GLIBC_2.29 pthread_barrier_wait F
|
|
|
|
+GLIBC_2.29 pthread_barrierattr_destroy F
|
|
|
|
+GLIBC_2.29 pthread_barrierattr_getpshared F
|
|
|
|
+GLIBC_2.29 pthread_barrierattr_init F
|
|
|
|
+GLIBC_2.29 pthread_barrierattr_setpshared F
|
|
|
|
+GLIBC_2.29 pthread_cancel F
|
|
|
|
+GLIBC_2.29 pthread_cond_broadcast F
|
|
|
|
+GLIBC_2.29 pthread_cond_destroy F
|
|
|
|
+GLIBC_2.29 pthread_cond_init F
|
|
|
|
+GLIBC_2.29 pthread_cond_signal F
|
|
|
|
+GLIBC_2.29 pthread_cond_timedwait F
|
|
|
|
+GLIBC_2.29 pthread_cond_wait F
|
|
|
|
+GLIBC_2.29 pthread_condattr_destroy F
|
|
|
|
+GLIBC_2.29 pthread_condattr_getclock F
|
|
|
|
+GLIBC_2.29 pthread_condattr_getpshared F
|
|
|
|
+GLIBC_2.29 pthread_condattr_init F
|
|
|
|
+GLIBC_2.29 pthread_condattr_setclock F
|
|
|
|
+GLIBC_2.29 pthread_condattr_setpshared F
|
|
|
|
+GLIBC_2.29 pthread_create F
|
|
|
|
+GLIBC_2.29 pthread_detach F
|
|
|
|
+GLIBC_2.29 pthread_equal F
|
|
|
|
+GLIBC_2.29 pthread_exit F
|
|
|
|
+GLIBC_2.29 pthread_getaffinity_np F
|
|
|
|
+GLIBC_2.29 pthread_getattr_default_np F
|
|
|
|
+GLIBC_2.29 pthread_getattr_np F
|
|
|
|
+GLIBC_2.29 pthread_getconcurrency F
|
|
|
|
+GLIBC_2.29 pthread_getcpuclockid F
|
|
|
|
+GLIBC_2.29 pthread_getname_np F
|
|
|
|
+GLIBC_2.29 pthread_getschedparam F
|
|
|
|
+GLIBC_2.29 pthread_getspecific F
|
|
|
|
+GLIBC_2.29 pthread_join F
|
|
|
|
+GLIBC_2.29 pthread_key_create F
|
|
|
|
+GLIBC_2.29 pthread_key_delete F
|
|
|
|
+GLIBC_2.29 pthread_kill F
|
|
|
|
+GLIBC_2.29 pthread_kill_other_threads_np F
|
|
|
|
+GLIBC_2.29 pthread_mutex_consistent F
|
|
|
|
+GLIBC_2.29 pthread_mutex_consistent_np F
|
|
|
|
+GLIBC_2.29 pthread_mutex_destroy F
|
|
|
|
+GLIBC_2.29 pthread_mutex_getprioceiling F
|
|
|
|
+GLIBC_2.29 pthread_mutex_init F
|
|
|
|
+GLIBC_2.29 pthread_mutex_lock F
|
|
|
|
+GLIBC_2.29 pthread_mutex_setprioceiling F
|
|
|
|
+GLIBC_2.29 pthread_mutex_timedlock F
|
|
|
|
+GLIBC_2.29 pthread_mutex_trylock F
|
|
|
|
+GLIBC_2.29 pthread_mutex_unlock F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_destroy F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_getkind_np F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_getprioceiling F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_getprotocol F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_getpshared F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_getrobust F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_getrobust_np F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_gettype F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_init F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_setkind_np F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_setprioceiling F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_setprotocol F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_setpshared F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_setrobust F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_setrobust_np F
|
|
|
|
+GLIBC_2.29 pthread_mutexattr_settype F
|
|
|
|
+GLIBC_2.29 pthread_once F
|
|
|
|
+GLIBC_2.29 pthread_rwlock_destroy F
|
|
|
|
+GLIBC_2.29 pthread_rwlock_init F
|
|
|
|
+GLIBC_2.29 pthread_rwlock_rdlock F
|
|
|
|
+GLIBC_2.29 pthread_rwlock_timedrdlock F
|
|
|
|
+GLIBC_2.29 pthread_rwlock_timedwrlock F
|
|
|
|
+GLIBC_2.29 pthread_rwlock_tryrdlock F
|
|
|
|
+GLIBC_2.29 pthread_rwlock_trywrlock F
|
|
|
|
+GLIBC_2.29 pthread_rwlock_unlock F
|
|
|
|
+GLIBC_2.29 pthread_rwlock_wrlock F
|
|
|
|
+GLIBC_2.29 pthread_rwlockattr_destroy F
|
|
|
|
+GLIBC_2.29 pthread_rwlockattr_getkind_np F
|
|
|
|
+GLIBC_2.29 pthread_rwlockattr_getpshared F
|
|
|
|
+GLIBC_2.29 pthread_rwlockattr_init F
|
|
|
|
+GLIBC_2.29 pthread_rwlockattr_setkind_np F
|
|
|
|
+GLIBC_2.29 pthread_rwlockattr_setpshared F
|
|
|
|
+GLIBC_2.29 pthread_setaffinity_np F
|
|
|
|
+GLIBC_2.29 pthread_setattr_default_np F
|
|
|
|
+GLIBC_2.29 pthread_setcancelstate F
|
|
|
|
+GLIBC_2.29 pthread_setcanceltype F
|
|
|
|
+GLIBC_2.29 pthread_setconcurrency F
|
|
|
|
+GLIBC_2.29 pthread_setname_np F
|
|
|
|
+GLIBC_2.29 pthread_setschedparam F
|
|
|
|
+GLIBC_2.29 pthread_setschedprio F
|
|
|
|
+GLIBC_2.29 pthread_setspecific F
|
|
|
|
+GLIBC_2.29 pthread_sigmask F
|
|
|
|
+GLIBC_2.29 pthread_sigqueue F
|
|
|
|
+GLIBC_2.29 pthread_spin_destroy F
|
|
|
|
+GLIBC_2.29 pthread_spin_init F
|
|
|
|
+GLIBC_2.29 pthread_spin_lock F
|
|
|
|
+GLIBC_2.29 pthread_spin_trylock F
|
|
|
|
+GLIBC_2.29 pthread_spin_unlock F
|
|
|
|
+GLIBC_2.29 pthread_testcancel F
|
|
|
|
+GLIBC_2.29 pthread_timedjoin_np F
|
|
|
|
+GLIBC_2.29 pthread_tryjoin_np F
|
|
|
|
+GLIBC_2.29 pthread_yield F
|
|
|
|
+GLIBC_2.29 pwrite F
|
|
|
|
+GLIBC_2.29 pwrite64 F
|
|
|
|
+GLIBC_2.29 raise F
|
|
|
|
+GLIBC_2.29 read F
|
|
|
|
+GLIBC_2.29 recv F
|
|
|
|
+GLIBC_2.29 recvfrom F
|
|
|
|
+GLIBC_2.29 recvmsg F
|
|
|
|
+GLIBC_2.29 sem_close F
|
|
|
|
+GLIBC_2.29 sem_destroy F
|
|
|
|
+GLIBC_2.29 sem_getvalue F
|
|
|
|
+GLIBC_2.29 sem_init F
|
|
|
|
+GLIBC_2.29 sem_open F
|
|
|
|
+GLIBC_2.29 sem_post F
|
|
|
|
+GLIBC_2.29 sem_timedwait F
|
|
|
|
+GLIBC_2.29 sem_trywait F
|
|
|
|
+GLIBC_2.29 sem_unlink F
|
|
|
|
+GLIBC_2.29 sem_wait F
|
|
|
|
+GLIBC_2.29 send F
|
|
|
|
+GLIBC_2.29 sendmsg F
|
|
|
|
+GLIBC_2.29 sendto F
|
|
|
|
+GLIBC_2.29 sigaction F
|
|
|
|
+GLIBC_2.29 sigwait F
|
|
|
|
+GLIBC_2.29 tcdrain F
|
|
|
|
+GLIBC_2.29 thrd_create F
|
|
|
|
+GLIBC_2.29 thrd_detach F
|
|
|
|
+GLIBC_2.29 thrd_exit F
|
|
|
|
+GLIBC_2.29 thrd_join F
|
|
|
|
+GLIBC_2.29 tss_create F
|
|
|
|
+GLIBC_2.29 tss_delete F
|
|
|
|
+GLIBC_2.29 tss_get F
|
|
|
|
+GLIBC_2.29 tss_set F
|
|
|
|
+GLIBC_2.29 wait F
|
|
|
|
+GLIBC_2.29 waitpid F
|
|
|
|
+GLIBC_2.29 write F
|
|
|
|
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..2830a7efd17
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
|
|
|
|
@@ -0,0 +1,79 @@
|
|
|
|
+GLIBC_2.29 __b64_ntop F
|
|
|
|
+GLIBC_2.29 __b64_pton F
|
|
|
|
+GLIBC_2.29 __dn_comp F
|
|
|
|
+GLIBC_2.29 __dn_count_labels F
|
|
|
|
+GLIBC_2.29 __dn_expand F
|
|
|
|
+GLIBC_2.29 __dn_skipname F
|
|
|
|
+GLIBC_2.29 __fp_nquery F
|
|
|
|
+GLIBC_2.29 __fp_query F
|
|
|
|
+GLIBC_2.29 __fp_resstat F
|
|
|
|
+GLIBC_2.29 __hostalias F
|
|
|
|
+GLIBC_2.29 __loc_aton F
|
|
|
|
+GLIBC_2.29 __loc_ntoa F
|
|
|
|
+GLIBC_2.29 __p_cdname F
|
|
|
|
+GLIBC_2.29 __p_cdnname F
|
|
|
|
+GLIBC_2.29 __p_class F
|
|
|
|
+GLIBC_2.29 __p_class_syms D 0x54
|
|
|
|
+GLIBC_2.29 __p_fqname F
|
|
|
|
+GLIBC_2.29 __p_fqnname F
|
|
|
|
+GLIBC_2.29 __p_option F
|
|
|
|
+GLIBC_2.29 __p_query F
|
|
|
|
+GLIBC_2.29 __p_rcode F
|
|
|
|
+GLIBC_2.29 __p_time F
|
|
|
|
+GLIBC_2.29 __p_type F
|
|
|
|
+GLIBC_2.29 __p_type_syms D 0x228
|
|
|
|
+GLIBC_2.29 __putlong F
|
|
|
|
+GLIBC_2.29 __putshort F
|
|
|
|
+GLIBC_2.29 __res_close F
|
|
|
|
+GLIBC_2.29 __res_dnok F
|
|
|
|
+GLIBC_2.29 __res_hnok F
|
|
|
|
+GLIBC_2.29 __res_hostalias F
|
|
|
|
+GLIBC_2.29 __res_isourserver F
|
|
|
|
+GLIBC_2.29 __res_mailok F
|
|
|
|
+GLIBC_2.29 __res_mkquery F
|
|
|
|
+GLIBC_2.29 __res_nameinquery F
|
|
|
|
+GLIBC_2.29 __res_nmkquery F
|
|
|
|
+GLIBC_2.29 __res_nquery F
|
|
|
|
+GLIBC_2.29 __res_nquerydomain F
|
|
|
|
+GLIBC_2.29 __res_nsearch F
|
|
|
|
+GLIBC_2.29 __res_nsend F
|
|
|
|
+GLIBC_2.29 __res_ownok F
|
|
|
|
+GLIBC_2.29 __res_queriesmatch F
|
|
|
|
+GLIBC_2.29 __res_query F
|
|
|
|
+GLIBC_2.29 __res_querydomain F
|
|
|
|
+GLIBC_2.29 __res_search F
|
|
|
|
+GLIBC_2.29 __res_send F
|
|
|
|
+GLIBC_2.29 __sym_ntop F
|
|
|
|
+GLIBC_2.29 __sym_ntos F
|
|
|
|
+GLIBC_2.29 __sym_ston F
|
|
|
|
+GLIBC_2.29 _getlong F
|
|
|
|
+GLIBC_2.29 _getshort F
|
|
|
|
+GLIBC_2.29 inet_net_ntop F
|
|
|
|
+GLIBC_2.29 inet_net_pton F
|
|
|
|
+GLIBC_2.29 inet_neta F
|
|
|
|
+GLIBC_2.29 ns_datetosecs F
|
|
|
|
+GLIBC_2.29 ns_format_ttl F
|
|
|
|
+GLIBC_2.29 ns_get16 F
|
|
|
|
+GLIBC_2.29 ns_get32 F
|
|
|
|
+GLIBC_2.29 ns_initparse F
|
|
|
|
+GLIBC_2.29 ns_makecanon F
|
|
|
|
+GLIBC_2.29 ns_msg_getflag F
|
|
|
|
+GLIBC_2.29 ns_name_compress F
|
|
|
|
+GLIBC_2.29 ns_name_ntol F
|
|
|
|
+GLIBC_2.29 ns_name_ntop F
|
|
|
|
+GLIBC_2.29 ns_name_pack F
|
|
|
|
+GLIBC_2.29 ns_name_pton F
|
|
|
|
+GLIBC_2.29 ns_name_rollback F
|
|
|
|
+GLIBC_2.29 ns_name_skip F
|
|
|
|
+GLIBC_2.29 ns_name_uncompress F
|
|
|
|
+GLIBC_2.29 ns_name_unpack F
|
|
|
|
+GLIBC_2.29 ns_parse_ttl F
|
|
|
|
+GLIBC_2.29 ns_parserr F
|
|
|
|
+GLIBC_2.29 ns_put16 F
|
|
|
|
+GLIBC_2.29 ns_put32 F
|
|
|
|
+GLIBC_2.29 ns_samedomain F
|
|
|
|
+GLIBC_2.29 ns_samename F
|
|
|
|
+GLIBC_2.29 ns_skiprr F
|
|
|
|
+GLIBC_2.29 ns_sprintrr F
|
|
|
|
+GLIBC_2.29 ns_sprintrrf F
|
|
|
|
+GLIBC_2.29 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 00000000000..c6690ef7c13
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
|
|
|
|
@@ -0,0 +1,35 @@
|
|
|
|
+GLIBC_2.29 __mq_open_2 F
|
|
|
|
+GLIBC_2.29 aio_cancel F
|
|
|
|
+GLIBC_2.29 aio_cancel64 F
|
|
|
|
+GLIBC_2.29 aio_error F
|
|
|
|
+GLIBC_2.29 aio_error64 F
|
|
|
|
+GLIBC_2.29 aio_fsync F
|
|
|
|
+GLIBC_2.29 aio_fsync64 F
|
|
|
|
+GLIBC_2.29 aio_init F
|
|
|
|
+GLIBC_2.29 aio_read F
|
|
|
|
+GLIBC_2.29 aio_read64 F
|
|
|
|
+GLIBC_2.29 aio_return F
|
|
|
|
+GLIBC_2.29 aio_return64 F
|
|
|
|
+GLIBC_2.29 aio_suspend F
|
|
|
|
+GLIBC_2.29 aio_suspend64 F
|
|
|
|
+GLIBC_2.29 aio_write F
|
|
|
|
+GLIBC_2.29 aio_write64 F
|
|
|
|
+GLIBC_2.29 lio_listio F
|
|
|
|
+GLIBC_2.29 lio_listio64 F
|
|
|
|
+GLIBC_2.29 mq_close F
|
|
|
|
+GLIBC_2.29 mq_getattr F
|
|
|
|
+GLIBC_2.29 mq_notify F
|
|
|
|
+GLIBC_2.29 mq_open F
|
|
|
|
+GLIBC_2.29 mq_receive F
|
|
|
|
+GLIBC_2.29 mq_send F
|
|
|
|
+GLIBC_2.29 mq_setattr F
|
|
|
|
+GLIBC_2.29 mq_timedreceive F
|
|
|
|
+GLIBC_2.29 mq_timedsend F
|
|
|
|
+GLIBC_2.29 mq_unlink F
|
|
|
|
+GLIBC_2.29 shm_open F
|
|
|
|
+GLIBC_2.29 shm_unlink F
|
|
|
|
+GLIBC_2.29 timer_create F
|
|
|
|
+GLIBC_2.29 timer_delete F
|
|
|
|
+GLIBC_2.29 timer_getoverrun F
|
|
|
|
+GLIBC_2.29 timer_gettime F
|
|
|
|
+GLIBC_2.29 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 00000000000..37e9bace552
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/libthread_db.abilist
|
|
|
|
@@ -0,0 +1,40 @@
|
|
|
|
+GLIBC_2.29 td_init F
|
|
|
|
+GLIBC_2.29 td_log F
|
|
|
|
+GLIBC_2.29 td_symbol_list F
|
|
|
|
+GLIBC_2.29 td_ta_clear_event F
|
|
|
|
+GLIBC_2.29 td_ta_delete F
|
|
|
|
+GLIBC_2.29 td_ta_enable_stats F
|
|
|
|
+GLIBC_2.29 td_ta_event_addr F
|
|
|
|
+GLIBC_2.29 td_ta_event_getmsg F
|
|
|
|
+GLIBC_2.29 td_ta_get_nthreads F
|
|
|
|
+GLIBC_2.29 td_ta_get_ph F
|
|
|
|
+GLIBC_2.29 td_ta_get_stats F
|
|
|
|
+GLIBC_2.29 td_ta_map_id2thr F
|
|
|
|
+GLIBC_2.29 td_ta_map_lwp2thr F
|
|
|
|
+GLIBC_2.29 td_ta_new F
|
|
|
|
+GLIBC_2.29 td_ta_reset_stats F
|
|
|
|
+GLIBC_2.29 td_ta_set_event F
|
|
|
|
+GLIBC_2.29 td_ta_setconcurrency F
|
|
|
|
+GLIBC_2.29 td_ta_thr_iter F
|
|
|
|
+GLIBC_2.29 td_ta_tsd_iter F
|
|
|
|
+GLIBC_2.29 td_thr_clear_event F
|
|
|
|
+GLIBC_2.29 td_thr_dbresume F
|
|
|
|
+GLIBC_2.29 td_thr_dbsuspend F
|
|
|
|
+GLIBC_2.29 td_thr_event_enable F
|
|
|
|
+GLIBC_2.29 td_thr_event_getmsg F
|
|
|
|
+GLIBC_2.29 td_thr_get_info F
|
|
|
|
+GLIBC_2.29 td_thr_getfpregs F
|
|
|
|
+GLIBC_2.29 td_thr_getgregs F
|
|
|
|
+GLIBC_2.29 td_thr_getxregs F
|
|
|
|
+GLIBC_2.29 td_thr_getxregsize F
|
|
|
|
+GLIBC_2.29 td_thr_set_event F
|
|
|
|
+GLIBC_2.29 td_thr_setfpregs F
|
|
|
|
+GLIBC_2.29 td_thr_setgregs F
|
|
|
|
+GLIBC_2.29 td_thr_setprio F
|
|
|
|
+GLIBC_2.29 td_thr_setsigpending F
|
|
|
|
+GLIBC_2.29 td_thr_setxregs F
|
|
|
|
+GLIBC_2.29 td_thr_sigsetmask F
|
|
|
|
+GLIBC_2.29 td_thr_tls_get_addr F
|
|
|
|
+GLIBC_2.29 td_thr_tlsbase F
|
|
|
|
+GLIBC_2.29 td_thr_tsd F
|
|
|
|
+GLIBC_2.29 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 00000000000..cbd11999a4f
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/libutil.abilist
|
|
|
|
@@ -0,0 +1,6 @@
|
|
|
|
+GLIBC_2.29 forkpty F
|
|
|
|
+GLIBC_2.29 login F
|
|
|
|
+GLIBC_2.29 login_tty F
|
|
|
|
+GLIBC_2.29 logout F
|
|
|
|
+GLIBC_2.29 logwtmp F
|
|
|
|
+GLIBC_2.29 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 00000000000..e902fd0607a
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/localplt.data
|
|
|
|
@@ -0,0 +1,16 @@
|
|
|
|
+libc.so: realloc
|
|
|
|
+libc.so: malloc
|
|
|
|
+libc.so: memalign
|
|
|
|
+libc.so: calloc
|
|
|
|
+libc.so: free
|
|
|
|
+# At -Os, a struct assignment in libgcc-static pulls this in
|
|
|
|
+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 00000000000..3d46452e175
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/makecontext.c
|
|
|
|
@@ -0,0 +1,75 @@
|
|
|
|
+/* Create new context for ARC.
|
|
|
|
+ Copyright (C) 2015-2019 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 int sp, *r;
|
|
|
|
+ va_list vl;
|
|
|
|
+ int i, reg_args, stack_args;
|
|
|
|
+
|
|
|
|
+ sp = ((unsigned long int) 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 int) &__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 int) func;
|
|
|
|
+ ucp->uc_mcontext.__callee.__r14 = (unsigned long int) ucp->uc_link;
|
|
|
|
+
|
|
|
|
+ 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 int);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ stack_args = argc - reg_args;
|
|
|
|
+
|
|
|
|
+ if (__glibc_unlikely (stack_args > 0)) {
|
|
|
|
+
|
|
|
|
+ sp -= stack_args * sizeof (unsigned long int);
|
|
|
|
+ ucp->uc_mcontext.__scratch.__sp = sp;
|
|
|
|
+ r = (unsigned long int *)sp;
|
|
|
|
+
|
|
|
|
+ for (i = 0; i < stack_args; i++) {
|
|
|
|
+ *r++ = va_arg(vl, unsigned long int);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ 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 00000000000..3f28f352d91
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/mmap_internal.h
|
|
|
|
@@ -0,0 +1,27 @@
|
|
|
|
+/* mmap - map files or devices into memory. Linux/ARC version.
|
|
|
|
+ Copyright (C) 2017-2019 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
|
|
|
|
+
|
|
|
|
+/* 8K page is default for ARC. */
|
|
|
|
+#define MMAP2_PAGE_UNIT 8192ULL
|
|
|
|
+
|
|
|
|
+#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 00000000000..8a6a0bcf3d5
|
|
|
|
--- /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 00000000000..1cc89317007
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/pt-vfork.S
|
|
|
|
@@ -0,0 +1 @@
|
|
|
|
+/* Not needed. */
|
|
|
|
diff --git a/sysdeps/unix/sysv/linux/arc/setcontext.S b/sysdeps/unix/sysv/linux/arc/setcontext.S
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..8cf4ffcaf5a
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/setcontext.S
|
|
|
|
@@ -0,0 +1,92 @@
|
|
|
|
+/* Set current context for ARC.
|
|
|
|
+ Copyright (C) 2009-2019 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_label .Ldummy
|
|
|
|
+ cfi_undefined (blink)
|
|
|
|
+
|
|
|
|
+ /* 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 00000000000..e527acd7789
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/shlib-versions
|
|
|
|
@@ -0,0 +1,2 @@
|
|
|
|
+DEFAULT GLIBC_2.29
|
|
|
|
+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 00000000000..db7293865f3
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/sigaction.c
|
|
|
|
@@ -0,0 +1,31 @@
|
|
|
|
+/* ARC specific sigaction.
|
|
|
|
+ Copyright (C) 1997-2019 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 SA_RESTORER 0x04000000
|
|
|
|
+
|
|
|
|
+extern void __default_rt_sa_restorer (void);
|
|
|
|
+
|
|
|
|
+#define SET_SA_RESTORER(kact, act) \
|
|
|
|
+ ({ \
|
|
|
|
+ (kact)->sa_restorer = __default_rt_sa_restorer; \
|
|
|
|
+ (kact)->sa_flags |= SA_RESTORER; \
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+#define RESET_SA_RESTORER(act, kact)
|
|
|
|
+
|
|
|
|
+#include <sysdeps/unix/sysv/linux/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 00000000000..acf03c6afd9
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h
|
|
|
|
@@ -0,0 +1,23 @@
|
|
|
|
+/* ARC definitions for signal handling calling conventions.
|
|
|
|
+ Copyright (C) 2017-2019 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 00000000000..573b54e36cf
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/sigrestorer.S
|
|
|
|
@@ -0,0 +1,29 @@
|
|
|
|
+/* Default sigreturn stub for ARC Linux.
|
|
|
|
+ Copyright (C) 2005-2019 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>
|
|
|
|
+
|
|
|
|
+/* Note the NOP has to be outside body. */
|
|
|
|
+ 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 00000000000..853d3805de6
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/swapcontext.S
|
|
|
|
@@ -0,0 +1,92 @@
|
|
|
|
+/* Save and set current context for ARC.
|
|
|
|
+ Copyright (C) 2009-2019 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 00000000000..2d93e49e6a9
|
|
|
|
--- /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-2019 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/ucontext.h b/sysdeps/unix/sysv/linux/arc/sys/ucontext.h
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..7e357bcd65e
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/sys/ucontext.h
|
|
|
|
@@ -0,0 +1,63 @@
|
|
|
|
+/* struct ucontext definition, ARC version.
|
|
|
|
+ Copyright (C) 2017-2019 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>
|
|
|
|
+
|
|
|
|
+typedef struct
|
|
|
|
+ {
|
|
|
|
+ unsigned long int __pad;
|
|
|
|
+ struct {
|
|
|
|
+ unsigned long int __bta;
|
|
|
|
+ unsigned long int __lp_start, __lp_end, __lp_count;
|
|
|
|
+ unsigned long int __status32, __ret, __blink;
|
|
|
|
+ unsigned long int __fp, __gp;
|
|
|
|
+ unsigned long int __r12, __r11, __r10, __r9, __r8, __r7;
|
|
|
|
+ unsigned long int __r6, __r5, __r4, __r3, __r2, __r1, __r0;
|
|
|
|
+ unsigned long int __sp;
|
|
|
|
+ } __scratch;
|
|
|
|
+ unsigned long int __pad2;
|
|
|
|
+ struct {
|
|
|
|
+ unsigned long int __r25, __r24, __r23, __r22, __r21, __r20;
|
|
|
|
+ unsigned long int __r19, __r18, __r17, __r16, __r15, __r14, __r13;
|
|
|
|
+ } __callee;
|
|
|
|
+ unsigned long int __efa;
|
|
|
|
+ unsigned long int __stop_pc;
|
|
|
|
+ unsigned long int __r30, __r58, __r59;
|
|
|
|
+ } mcontext_t;
|
|
|
|
+
|
|
|
|
+/* Userlevel context. */
|
|
|
|
+typedef struct ucontext_t
|
|
|
|
+ {
|
|
|
|
+ unsigned long int __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 00000000000..50d0dc7827a
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/sys/user.h
|
|
|
|
@@ -0,0 +1,31 @@
|
|
|
|
+/* ptrace register data format definitions.
|
|
|
|
+ Copyright (C) 1998-2019 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 00000000000..3fe5fcdd041
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/syscall.S
|
|
|
|
@@ -0,0 +1,38 @@
|
|
|
|
+/* syscall - indirect system call.
|
|
|
|
+ Copyright (C) 2017-2019 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/syscalls.list b/sysdeps/unix/sysv/linux/arc/syscalls.list
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..d0ef5977ee0
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/syscalls.list
|
|
|
|
@@ -0,0 +1,3 @@
|
|
|
|
+# File name Caller Syscall name Args Strong name Weak names
|
|
|
|
+
|
|
|
|
+cacheflush - cacheflush i:pii _flush_cache cacheflush
|
|
|
|
diff --git a/sysdeps/unix/sysv/linux/arc/sysdep.c b/sysdeps/unix/sysv/linux/arc/sysdep.c
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000000..5618f378515
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/sysdep.c
|
|
|
|
@@ -0,0 +1,33 @@
|
|
|
|
+/* ARC wrapper for setting errno.
|
|
|
|
+ Copyright (C) 1997-2019 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 00000000000..9ad95d97ae1
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/sysdep.h
|
|
|
|
@@ -0,0 +1,251 @@
|
|
|
|
+/* Assembler macros for ARC.
|
|
|
|
+ Copyright (C) 2000-2019 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. Since r0 is both
|
|
|
|
+ syscall return reg and function return reg, no work needed. */
|
|
|
|
+# 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 00000000000..ed261399c98
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/ucontext-macros.h
|
|
|
|
@@ -0,0 +1,29 @@
|
|
|
|
+/* Macros for ucontext routines, ARC version.
|
|
|
|
+ Copyright (C) 2017-2019 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 00000000000..d84e92f9f54
|
|
|
|
--- /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 00000000000..7f981d0681c
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/sysdeps/unix/sysv/linux/arc/vfork.S
|
|
|
|
@@ -0,0 +1,42 @@
|
|
|
|
+/* vfork for ARC Linux.
|
|
|
|
+ Copyright (C) 2005-2019 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 b650dc07cc6..5a9f63ff511 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/zic.c b/timezone/zic.c
|
|
|
|
index 2ebc66a9af5..8e8d94fac3a 100644
|
|
|
|
--- a/timezone/zic.c
|
|
|
|
+++ b/timezone/zic.c
|
|
|
|
@@ -39,7 +39,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_IXGRP|S_IROTH|S_IXOTH|S_IWOTH|S_IXOTH)
|
|
|
|
#else
|
|
|
|
#define MKDIR_UMASK 0755
|
|
|
|
#endif
|