summaryrefslogtreecommitdiff
path: root/packages/glibc/2.29/0001-Add-ARC-architecture.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/glibc/2.29/0001-Add-ARC-architecture.patch')
-rw-r--r--packages/glibc/2.29/0001-Add-ARC-architecture.patch423
1 files changed, 113 insertions, 310 deletions
diff --git a/packages/glibc/2.29/0001-Add-ARC-architecture.patch b/packages/glibc/2.29/0001-Add-ARC-architecture.patch
index f7441dd..8ccdb65 100644
--- a/packages/glibc/2.29/0001-Add-ARC-architecture.patch
+++ b/packages/glibc/2.29/0001-Add-ARC-architecture.patch
@@ -11,11 +11,115 @@ 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
+---
+ elf/elf.h | 70
+ scripts/build-many-glibcs.py | 4
+ support/Makefile | 5
+ sysdeps/arc/Implies | 4
+ sysdeps/arc/Makefile | 25
+ sysdeps/arc/Versions | 6
+ sysdeps/arc/__longjmp.S | 50
+ sysdeps/arc/abort-instr.h | 2
+ sysdeps/arc/atomic-machine.h | 73
+ sysdeps/arc/bits/endian.h | 12
+ sysdeps/arc/bits/fenv.h | 72
+ sysdeps/arc/bits/link.h | 52
+ sysdeps/arc/bits/setjmp.h | 26
+ sysdeps/arc/bsd-_setjmp.S | 1
+ sysdeps/arc/bsd-setjmp.S | 1
+ sysdeps/arc/configure | 14
+ sysdeps/arc/configure.ac | 11
+ sysdeps/arc/dl-machine.h | 340 +++
+ sysdeps/arc/dl-runtime.c | 39
+ sysdeps/arc/dl-sysdep.h | 25
+ sysdeps/arc/dl-tls.h | 30
+ sysdeps/arc/dl-trampoline.S | 80
+ sysdeps/arc/entry.h | 5
+ sysdeps/arc/gccframe.h | 21
+ sysdeps/arc/gmp-mparam.h | 23
+ sysdeps/arc/jmpbuf-offsets.h | 47
+ sysdeps/arc/jmpbuf-unwind.h | 47
+ sysdeps/arc/ldsodefs.h | 43
+ sysdeps/arc/libc-tls.c | 27
+ sysdeps/arc/machine-gmon.h | 35
+ sysdeps/arc/memusage.h | 23
+ sysdeps/arc/nofpu/Implies | 1
+ sysdeps/arc/nofpu/libm-test-ulps | 390 +++
+ sysdeps/arc/nofpu/libm-test-ulps-name | 1
+ sysdeps/arc/nofpu/math-tests-exceptions.h | 27
+ sysdeps/arc/nofpu/math-tests-rounding.h | 27
+ sysdeps/arc/nptl/Makefile | 22
+ sysdeps/arc/nptl/bits/pthreadtypes-arch.h | 71
+ sysdeps/arc/nptl/bits/semaphore.h | 32
+ sysdeps/arc/nptl/pthread-offsets.h | 4
+ sysdeps/arc/nptl/pthreaddef.h | 32
+ sysdeps/arc/nptl/tcb-offsets.sym | 11
+ sysdeps/arc/nptl/tls.h | 150 +
+ sysdeps/arc/preconfigure | 14
+ sysdeps/arc/setjmp.S | 66
+ sysdeps/arc/sfp-machine.h | 73
+ sysdeps/arc/sotruss-lib.c | 51
+ sysdeps/arc/stackinfo.h | 33
+ sysdeps/arc/start.S | 89
+ sysdeps/arc/sysdep.h | 48
+ sysdeps/arc/tls-macros.h | 47
+ sysdeps/arc/tst-audit.h | 23
+ sysdeps/unix/make-syscalls.sh | 2
+ sysdeps/unix/sysv/linux/arc/Implies | 3
+ sysdeps/unix/sysv/linux/arc/Makefile | 20
+ sysdeps/unix/sysv/linux/arc/Versions | 16
+ sysdeps/unix/sysv/linux/arc/bits/procfs.h | 35
+ sysdeps/unix/sysv/linux/arc/bits/types/__sigset_t.h | 12
+ sysdeps/unix/sysv/linux/arc/c++-types.data | 67
+ sysdeps/unix/sysv/linux/arc/clone.S | 98
+ sysdeps/unix/sysv/linux/arc/configure | 4
+ sysdeps/unix/sysv/linux/arc/configure.ac | 4
+ sysdeps/unix/sysv/linux/arc/dl-static.c | 84
+ sysdeps/unix/sysv/linux/arc/getcontext.S | 63
+ sysdeps/unix/sysv/linux/arc/ipc_priv.h | 21
+ sysdeps/unix/sysv/linux/arc/jmp_buf-macros.h | 6
+ sysdeps/unix/sysv/linux/arc/kernel-features.h | 28
+ sysdeps/unix/sysv/linux/arc/ld.abilist | 9
+ sysdeps/unix/sysv/linux/arc/ldsodefs.h | 32
+ sysdeps/unix/sysv/linux/arc/libBrokenLocale.abilist | 1
+ sysdeps/unix/sysv/linux/arc/libanl.abilist | 4
+ sysdeps/unix/sysv/linux/arc/libc.abilist | 2089 ++++++++++++++++++++
+ sysdeps/unix/sysv/linux/arc/libcrypt.abilist | 2
+ sysdeps/unix/sysv/linux/arc/libdl.abilist | 9
+ sysdeps/unix/sysv/linux/arc/libm.abilist | 753 +++++++
+ sysdeps/unix/sysv/linux/arc/libpthread.abilist | 235 ++
+ sysdeps/unix/sysv/linux/arc/libresolv.abilist | 79
+ sysdeps/unix/sysv/linux/arc/librt.abilist | 35
+ sysdeps/unix/sysv/linux/arc/libthread_db.abilist | 40
+ sysdeps/unix/sysv/linux/arc/libutil.abilist | 6
+ sysdeps/unix/sysv/linux/arc/localplt.data | 16
+ sysdeps/unix/sysv/linux/arc/makecontext.c | 75
+ sysdeps/unix/sysv/linux/arc/mmap_internal.h | 27
+ sysdeps/unix/sysv/linux/arc/profil-counter.h | 2
+ sysdeps/unix/sysv/linux/arc/pt-vfork.S | 1
+ sysdeps/unix/sysv/linux/arc/setcontext.S | 92
+ sysdeps/unix/sysv/linux/arc/shlib-versions | 2
+ sysdeps/unix/sysv/linux/arc/sigaction.c | 31
+ sysdeps/unix/sysv/linux/arc/sigcontextinfo.h | 23
+ sysdeps/unix/sysv/linux/arc/sigrestorer.S | 29
+ sysdeps/unix/sysv/linux/arc/swapcontext.S | 92
+ sysdeps/unix/sysv/linux/arc/sys/cachectl.h | 36
+ sysdeps/unix/sysv/linux/arc/sys/ucontext.h | 63
+ sysdeps/unix/sysv/linux/arc/sys/user.h | 31
+ sysdeps/unix/sysv/linux/arc/syscall.S | 38
+ sysdeps/unix/sysv/linux/arc/syscalls.list | 3
+ sysdeps/unix/sysv/linux/arc/sysdep.c | 33
+ sysdeps/unix/sysv/linux/arc/sysdep.h | 251 ++
+ sysdeps/unix/sysv/linux/arc/ucontext-macros.h | 29
+ sysdeps/unix/sysv/linux/arc/ucontext_i.sym | 20
+ sysdeps/unix/sysv/linux/arc/vfork.S | 42
+ sysdeps/unix/sysv/linux/syscall-names.list | 3
+ timezone/zic.c | 2
+ 103 files changed, 7115 insertions(+), 8 deletions(-)
+
--- a/elf/elf.h
+++ b/elf/elf.h
-@@ -330,7 +330,7 @@ typedef struct
+@@ -330,7 +330,7 @@
#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. */
@@ -24,7 +128,7 @@ index 47a514a389f..bc2184f643c 100644
#define EM_OPEN8 196 /* Open8 RISC */
#define EM_RL78 197 /* Renesas RL78 */
#define EM_VIDEOCORE5 198 /* Broadcom VideoCore V */
-@@ -3996,6 +3996,74 @@ enum
+@@ -3996,6 +3996,74 @@
#define R_NDS32_TLS_TPOFF 102
#define R_NDS32_TLS_DESC 119
@@ -99,11 +203,9 @@ index 47a514a389f..bc2184f643c 100644
__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):
+@@ -155,6 +155,9 @@
'cfg': ['--disable-multi-arch']}])
self.add_config(arch='aarch64_be',
os_name='linux-gnu')
@@ -113,7 +215,7 @@ index 025876486a3..40bf9398d48 100755
self.add_config(arch='alpha',
os_name='linux-gnu')
self.add_config(arch='arm',
-@@ -1265,6 +1268,7 @@ class Config(object):
+@@ -1265,6 +1268,7 @@
def install_linux_headers(self, cmdlist):
"""Install Linux kernel headers."""
arch_map = {'aarch64': 'arm64',
@@ -121,11 +223,9 @@ index 025876486a3..40bf9398d48 100755
'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 = \
+@@ -169,12 +169,7 @@
-DINSTDIR_PATH=\"$(prefix)\" \
-DLIBDIR_PATH=\"$(libdir)\"
@@ -138,9 +238,6 @@ index 432cf2fe6cb..e2a0c0cccf4 100644
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 @@
@@ -148,9 +245,6 @@ index 00000000000..a0f0b00cfac
+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 @@
@@ -179,9 +273,6 @@ index 00000000000..8d2fbe00c5e
+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 @@
@@ -191,9 +282,6 @@ index 00000000000..a41ad34f953
+ __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 @@
@@ -247,17 +335,11 @@ index 00000000000..8296aa445f6
+ 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 @@
@@ -334,9 +416,6 @@ index 00000000000..bdc91d0558f
+#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 @@
@@ -352,9 +431,6 @@ index 00000000000..46f41e3cffe
+#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 @@
@@ -430,9 +506,6 @@ index 00000000000..58388fb43a3
+/* 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 @@
@@ -488,9 +561,6 @@ index 00000000000..c4508ab6664
+ 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 @@
@@ -520,23 +590,14 @@ index 00000000000..3cb457d097c
+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 @@
@@ -554,9 +615,6 @@ index 00000000000..52e286da2eb
+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 @@
@@ -571,9 +629,6 @@ index 00000000000..1074d312f03
+# 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 @@
@@ -917,9 +972,6 @@ index 00000000000..c81acb9d4fd
+}
+
+#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 @@
@@ -962,9 +1014,6 @@ index 00000000000..48f4a5a7e1d
+#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 @@
@@ -993,9 +1042,6 @@ index 00000000000..ffc30b69372
+#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 @@
@@ -1029,9 +1075,6 @@ index 00000000000..7f0cf91e402
+
+/* 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 @@
@@ -1115,9 +1158,6 @@ index 00000000000..9da75fb1fe2
+ 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 @@
@@ -1126,9 +1166,6 @@ index 00000000000..adb01d981af
+#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 @@
@@ -1153,9 +1190,6 @@ index 00000000000..40487fa77b4
+#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 @@
@@ -1182,9 +1216,6 @@ index 00000000000..e30695fc6b2
+#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 @@
@@ -1235,9 +1266,6 @@ index 00000000000..9760f3a3891
+
+/* 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 @@
@@ -1288,9 +1316,6 @@ index 00000000000..47be5758c75
+
+/* 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 @@
@@ -1337,9 +1362,6 @@ index 00000000000..53ef4e1e83d
+#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 @@
@@ -1370,9 +1392,6 @@ index 00000000000..903a75a41b5
+ 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 @@
@@ -1411,9 +1430,6 @@ index 00000000000..1d9e8108d9b
+ __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 @@
@@ -1440,16 +1456,10 @@ index 00000000000..29f234f5bac
+#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 @@
@@ -1843,16 +1853,10 @@ index 00000000000..0e8ef313fa9
+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 @@
@@ -1883,9 +1887,6 @@ index 00000000000..f5c0b73589e
+#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 @@
@@ -1916,9 +1917,6 @@ index 00000000000..e8f76338b1e
+#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 @@
@@ -1944,9 +1942,6 @@ index 00000000000..3c33c9cc112
+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 @@
@@ -2021,9 +2016,6 @@ index 00000000000..eae884f61cf
+#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 @@
@@ -2059,9 +2051,6 @@ index 00000000000..662d08401d0
+ 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 @@
@@ -2069,9 +2058,6 @@ index 00000000000..c363e8cda8d
+#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 @@
@@ -2107,9 +2093,6 @@ index 00000000000..80a109bbd52
+
+/* 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 @@
@@ -2124,9 +2107,6 @@ index 00000000000..56950e0676e
+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 @@
@@ -2280,9 +2260,6 @@ index 00000000000..2c90109d570
+#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 @@
@@ -2300,9 +2277,6 @@ index 00000000000..1152a179c4a
+ fi
+ ;;
+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 @@
@@ -2372,9 +2346,6 @@ index 00000000000..518545a99e8
+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 @@
@@ -2451,9 +2422,6 @@ index 00000000000..5ceaf56a988
+ } 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 @@
@@ -2508,9 +2476,6 @@ index 00000000000..ffbb5bbd6d0
+
+ 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 @@
@@ -2547,9 +2512,6 @@ index 00000000000..fe69161382a
+#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 @@
@@ -2642,9 +2604,6 @@ index 00000000000..4ade1e871f6
+ .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 @@
@@ -2696,9 +2655,6 @@ index 00000000000..127e9b01e73
+# 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 @@
@@ -2749,9 +2705,6 @@ index 00000000000..4d54683eda4
+ "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 @@
@@ -2778,8 +2731,6 @@ index 00000000000..9237ad2440c
+#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 @@
@@ -2791,18 +2742,12 @@ index e39b2d6d521..6a5c10d54e8 100644
# 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 @@
@@ -2826,9 +2771,6 @@ index 00000000000..a6c6dfc6ec6
+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 @@
@@ -2848,9 +2790,6 @@ index 00000000000..3d12161f7fe
+ __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 @@
@@ -2889,9 +2828,6 @@ index 00000000000..b37deaee587
+
+/* 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 @@
@@ -2907,9 +2843,6 @@ index 00000000000..795638a30bd
+} __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 @@
@@ -2980,9 +2913,6 @@ index 00000000000..303f4570c8e
+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 @@
@@ -3084,9 +3014,6 @@ index 00000000000..55c2a2b60ed
+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 @@
@@ -3094,9 +3021,6 @@ index 00000000000..f74fa7cb025
+ # 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 @@
@@ -3104,9 +3028,6 @@ index 00000000000..a9528032d32
+# 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 @@
@@ -3194,9 +3115,6 @@ index 00000000000..1a8757c9840
+}
+
+#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 @@
@@ -3263,9 +3181,6 @@ index 00000000000..723cc237d87
+
+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 @@
@@ -3290,9 +3205,6 @@ index 00000000000..309eb3064e9
+#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 @@
@@ -3302,9 +3214,6 @@ index 00000000000..6c129398483
+#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 @@
@@ -3336,9 +3245,6 @@ index 00000000000..00255337bc8
+
+#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 @@
@@ -3351,9 +3257,6 @@ index 00000000000..71576160edd
+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 @@
@@ -3389,16 +3292,10 @@ index 00000000000..8c5c6800af1
+#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 @@
@@ -3406,9 +3303,6 @@ index 00000000000..416a6f8ddb2
+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 @@
@@ -5501,17 +5395,11 @@ index 00000000000..1e9a5dc9f09
+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 @@
@@ -5524,9 +5412,6 @@ index 00000000000..8fcb609ddcf
+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 @@
@@ -6283,9 +6168,6 @@ index 00000000000..497f6226447
+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 @@
@@ -6524,9 +6406,6 @@ index 00000000000..ea4b79a518e
+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 @@
@@ -6609,9 +6488,6 @@ index 00000000000..2830a7efd17
+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 @@
@@ -6650,9 +6526,6 @@ index 00000000000..c6690ef7c13
+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 @@
@@ -6696,9 +6569,6 @@ index 00000000000..37e9bace552
+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 @@
@@ -6708,9 +6578,6 @@ index 00000000000..cbd11999a4f
+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 @@
@@ -6730,9 +6597,6 @@ index 00000000000..e902fd0607a
+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 @@
@@ -6811,9 +6675,6 @@ index 00000000000..3d46452e175
+}
+
+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 @@
@@ -6844,24 +6705,15 @@ index 00000000000..3f28f352d91
+#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 @@
@@ -6957,17 +6809,11 @@ index 00000000000..8cf4ffcaf5a
+ /* 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 @@
@@ -7002,9 +6848,6 @@ index 00000000000..db7293865f3
+#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 @@
@@ -7031,9 +6874,6 @@ index 00000000000..acf03c6afd9
+
+#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 @@
@@ -7066,9 +6906,6 @@ index 00000000000..573b54e36cf
+ 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 @@
@@ -7164,9 +7001,6 @@ index 00000000000..853d3805de6
+
+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 @@
@@ -7206,9 +7040,6 @@ index 00000000000..2d93e49e6a9
+__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 @@
@@ -7275,9 +7106,6 @@ index 00000000000..7e357bcd65e
+#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 @@
@@ -7312,9 +7140,6 @@ index 00000000000..50d0dc7827a
+};
+
+#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 @@
@@ -7356,18 +7181,12 @@ index 00000000000..3fe5fcdd041
+ 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 @@
@@ -7404,9 +7223,6 @@ index 00000000000..5618f378515
+#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 @@
@@ -7661,9 +7477,6 @@ index 00000000000..9ad95d97ae1
+#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 @@
@@ -7696,9 +7509,6 @@ index 00000000000..ed261399c98
+#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 @@
@@ -7722,9 +7532,6 @@ index 00000000000..d84e92f9f54
+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 @@
@@ -7770,11 +7577,9 @@ index 00000000000..7f981d0681c
+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
+@@ -42,6 +42,9 @@
afs_syscall
alarm
alloc_hugepages
@@ -7784,11 +7589,9 @@ index b650dc07cc6..5a9f63ff511 100644
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;
+@@ -39,7 +39,7 @@
#include <sys/stat.h>
#endif
#ifdef S_IRUSR