summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAurelien Jarno <aurelien@aurel32.net>2020-02-16 15:55:55 +0100
committerAurelien Jarno <aurelien@aurel32.net>2020-02-16 15:55:55 +0100
commitca20bcb2435fe625ae45748b884916fd9ef78115 (patch)
tree42480097c3a045010922b481cbb526fe956b7693
parente0c05718cf312787f0b93398587571fee0b63240 (diff)
debian/patches/git-updates.diff: update from upstream stable branch:
* debian/patches/git-updates.diff: update from upstream stable branch: - Fix argument passing for inlined syscalls on mips* and riscv64. Closes: #951237.
-rw-r--r--debian/changelog3
-rw-r--r--debian/patches/git-updates.diff1256
2 files changed, 1257 insertions, 2 deletions
diff --git a/debian/changelog b/debian/changelog
index 68204043..4403f70d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -22,6 +22,9 @@ glibc (2.30-0experimental3) UNRELEASED; urgency=medium
* debian/control.in/libc: add a Breaks: against wcc (<< 0.0.2+dfsg-3).
* debian/patches/any/submitted-stt-gnu-ifunc-detection.patch: update to
version 2 of the patch to fix the wrong detection on sparc.
+ * debian/patches/git-updates.diff: update from upstream stable branch:
+ - Fix argument passing for inlined syscalls on mips* and riscv64.
+ Closes: #951237.
-- Samuel Thibault <sthibault@debian.org> Sat, 08 Feb 2020 03:08:56 +0100
diff --git a/debian/patches/git-updates.diff b/debian/patches/git-updates.diff
index 6b663310..29ff4dca 100644
--- a/debian/patches/git-updates.diff
+++ b/debian/patches/git-updates.diff
@@ -220,10 +220,10 @@ index cdb9e14881..bc2f4aae69 100644
* version.h (RELEASE): Set to "stable".
diff --git a/NEWS b/NEWS
-index ee9ed4de5a..15df670edc 100644
+index ee9ed4de5a..555d3b9a09 100644
--- a/NEWS
+++ b/NEWS
-@@ -4,6 +4,38 @@ See the end for copying conditions.
+@@ -4,6 +4,39 @@ See the end for copying conditions.
Please send GNU C library bug reports via <https://sourceware.org/bugzilla/>
using `glibc' in the "product" field.
@@ -258,6 +258,7 @@ index ee9ed4de5a..15df670edc 100644
+ [25225] ld.so fails to link on x86 if GCC defaults to -fcf-protection
+ [25232] No const correctness for strchr et al. for Clang++
+ [25401] Remove incorrect alloc_size attribute from pvalloc
++ [25523] MIPS/Linux inline syscall template is miscompiled
+
Version 2.30
@@ -3397,6 +3398,150 @@ index 79fa4f6147..1c0325e199 100644
/* Clone arguments are (int flags, void * child_stack) */
copy %r24, %r26 /* flags are first */
/* User stack pointer is in the correct register already */
+diff --git a/sysdeps/unix/sysv/linux/microblaze/sysdep.h b/sysdeps/unix/sysv/linux/microblaze/sysdep.h
+index 1228d0c576..4e6e4ba1fa 100644
+--- a/sysdeps/unix/sysv/linux/microblaze/sysdep.h
++++ b/sysdeps/unix/sysv/linux/microblaze/sysdep.h
+@@ -209,8 +209,8 @@ SYSCALL_ERROR_LABEL_DCL: \
+
+ # define inline_syscall0(name,dummy) \
+ ({ \
+- register long __ret __asm__("r3"); \
+- register long __r12 __asm__("r12") = name; \
++ register long int __ret __asm__("r3"); \
++ register long int __r12 __asm__("r12") = name; \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(__ret) \
+ : "r"(__r12) \
+@@ -219,9 +219,10 @@ SYSCALL_ERROR_LABEL_DCL: \
+
+ # define inline_syscall1(name,arg1) \
+ ({ \
+- register long __ret __asm__("r3"); \
+- register long __r12 __asm__("r12") = name; \
+- register long __r5 __asm__("r5") = (long)(arg1); \
++ long int __arg1 = (long int) (arg1); \
++ register long int __ret __asm__("r3"); \
++ register long int __r12 __asm__("r12") = name; \
++ register long int __r5 __asm__("r5") = __arg1; \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(__ret) \
+ : "r"(__r5), "r"(__r12) \
+@@ -230,10 +231,12 @@ SYSCALL_ERROR_LABEL_DCL: \
+
+ # define inline_syscall2(name,arg1,arg2) \
+ ({ \
+- register long __ret __asm__("r3"); \
+- register long __r12 __asm__("r12") = name; \
+- register long __r5 __asm__("r5") = (long)(arg1); \
+- register long __r6 __asm__("r6") = (long)(arg2); \
++ long int __arg1 = (long int) (arg1); \
++ long int __arg2 = (long int) (arg2); \
++ register long int __ret __asm__("r3"); \
++ register long int __r12 __asm__("r12") = name; \
++ register long int __r5 __asm__("r5") = __arg1; \
++ register long int __r6 __asm__("r6") = __arg2; \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(__ret) \
+ : "r"(__r5), "r"(__r6), "r"(__r12) \
+@@ -243,11 +246,14 @@ SYSCALL_ERROR_LABEL_DCL: \
+
+ # define inline_syscall3(name,arg1,arg2,arg3) \
+ ({ \
+- register long __ret __asm__("r3"); \
+- register long __r12 __asm__("r12") = name; \
+- register long __r5 __asm__("r5") = (long)(arg1); \
+- register long __r6 __asm__("r6") = (long)(arg2); \
+- register long __r7 __asm__("r7") = (long)(arg3); \
++ long int __arg1 = (long int) (arg1); \
++ long int __arg2 = (long int) (arg2); \
++ long int __arg3 = (long int) (arg3); \
++ register long int __ret __asm__("r3"); \
++ register long int __r12 __asm__("r12") = name; \
++ register long int __r5 __asm__("r5") = __arg1; \
++ register long int __r6 __asm__("r6") = __arg2; \
++ register long int __r7 __asm__("r7") = __arg3; \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(__ret) \
+ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r12) \
+@@ -257,12 +263,16 @@ SYSCALL_ERROR_LABEL_DCL: \
+
+ # define inline_syscall4(name,arg1,arg2,arg3,arg4) \
+ ({ \
+- register long __ret __asm__("r3"); \
+- register long __r12 __asm__("r12") = name; \
+- register long __r5 __asm__("r5") = (long)(arg1); \
+- register long __r6 __asm__("r6") = (long)(arg2); \
+- register long __r7 __asm__("r7") = (long)(arg3); \
+- register long __r8 __asm__("r8") = (long)(arg4); \
++ long int __arg1 = (long int) (arg1); \
++ long int __arg2 = (long int) (arg2); \
++ long int __arg3 = (long int) (arg3); \
++ long int __arg4 = (long int) (arg4); \
++ register long int __ret __asm__("r3"); \
++ register long int __r12 __asm__("r12") = name; \
++ register long int __r5 __asm__("r5") = __arg1; \
++ register long int __r6 __asm__("r6") = __arg2; \
++ register long int __r7 __asm__("r7") = __arg3; \
++ register long int __r8 __asm__("r8") = __arg4; \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(__ret) \
+ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r8),"r"(__r12) \
+@@ -272,13 +282,18 @@ SYSCALL_ERROR_LABEL_DCL: \
+
+ # define inline_syscall5(name,arg1,arg2,arg3,arg4,arg5) \
+ ({ \
+- register long __ret __asm__("r3"); \
+- register long __r12 __asm__("r12") = name; \
+- register long __r5 __asm__("r5") = (long)(arg1); \
+- register long __r6 __asm__("r6") = (long)(arg2); \
+- register long __r7 __asm__("r7") = (long)(arg3); \
+- register long __r8 __asm__("r8") = (long)(arg4); \
+- register long __r9 __asm__("r9") = (long)(arg5); \
++ long int __arg1 = (long int) (arg1); \
++ long int __arg2 = (long int) (arg2); \
++ long int __arg3 = (long int) (arg3); \
++ long int __arg4 = (long int) (arg4); \
++ long int __arg5 = (long int) (arg5); \
++ register long int __ret __asm__("r3"); \
++ register long int __r12 __asm__("r12") = name; \
++ register long int __r5 __asm__("r5") = __arg1; \
++ register long int __r6 __asm__("r6") = __arg2; \
++ register long int __r7 __asm__("r7") = __arg3; \
++ register long int __r8 __asm__("r8") = __arg4; \
++ register long int __r9 __asm__("r9") = __arg5; \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(__ret) \
+ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r8),"r"(__r9), "r"(__r12) \
+@@ -288,14 +303,20 @@ SYSCALL_ERROR_LABEL_DCL: \
+
+ # define inline_syscall6(name,arg1,arg2,arg3,arg4,arg5,arg6) \
+ ({ \
+- register long __ret __asm__("r3"); \
+- register long __r12 __asm__("r12") = name; \
+- register long __r5 __asm__("r5") = (long)(arg1); \
+- register long __r6 __asm__("r6") = (long)(arg2); \
+- register long __r7 __asm__("r7") = (long)(arg3); \
+- register long __r8 __asm__("r8") = (long)(arg4); \
+- register long __r9 __asm__("r9") = (long)(arg5); \
+- register long __r10 __asm__("r10") = (long)(arg6); \
++ long int __arg1 = (long int) (arg1); \
++ long int __arg2 = (long int) (arg2); \
++ long int __arg3 = (long int) (arg3); \
++ long int __arg4 = (long int) (arg4); \
++ long int __arg5 = (long int) (arg5); \
++ long int __arg6 = (long int) (arg6); \
++ register long int __ret __asm__("r3"); \
++ register long int __r12 __asm__("r12") = name; \
++ register long int __r5 __asm__("r5") = __arg1; \
++ register long int __r6 __asm__("r6") = __arg2; \
++ register long int __r7 __asm__("r7") = __arg3; \
++ register long int __r8 __asm__("r8") = __arg4; \
++ register long int __r9 __asm__("r9") = __arg5; \
++ register long int __r10 __asm__("r10") = __arg6; \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(__ret) \
+ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r8),"r"(__r9), "r"(__r10), \
diff --git a/sysdeps/unix/sysv/linux/mips/Makefile b/sysdeps/unix/sysv/linux/mips/Makefile
index 8217f42e75..03044e7365 100644
--- a/sysdeps/unix/sysv/linux/mips/Makefile
@@ -3521,6 +3666,955 @@ index 9147aa4582..3db1b32b08 100644
+
+LIBC_CONFIG_VAR([mips-force-execstack],[${libc_cv_mips_force_execstack}])
+LIBC_CONFIG_VAR([mips-has-gnustack],[${libc_mips_has_gnustack}])
+diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S
+index 649881f8b1..c0729252a9 100644
+--- a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S
++++ b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S
+@@ -22,9 +22,9 @@
+ .text
+ .set nomips16
+
+-/* long long __mips_syscall5 (long arg1, long arg2, long arg3, long arg4,
+- long arg5,
+- long number) */
++/* long long int __mips_syscall5 (long int arg1, long int arg2, long int arg3,
++ long int arg4, long int arg5,
++ long int number) */
+
+ ENTRY(__mips_syscall5)
+ lw v0, 20(sp)
+diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S
+index 2c954f8e77..e4c95fb1e4 100644
+--- a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S
++++ b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S
+@@ -22,9 +22,9 @@
+ .text
+ .set nomips16
+
+-/* long long __mips_syscall6 (long arg1, long arg2, long arg3, long arg4,
+- long arg5, long arg6,
+- long number) */
++/* long long int __mips_syscall6 (long int arg1, long int arg2, long int arg3,
++ long int arg4, long int arg5, long int arg6,
++ long int number) */
+
+ ENTRY(__mips_syscall6)
+ lw v0, 24(sp)
+diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S
+index fb6c9c5e0f..489fab989c 100644
+--- a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S
++++ b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S
+@@ -22,9 +22,10 @@
+ .text
+ .set nomips16
+
+-/* long long __mips_syscall7 (long arg1, long arg2, long arg3, long arg4,
+- long arg5, long arg6, long arg7,
+- long number) */
++/* long long int __mips_syscall7 (long int arg1, long int arg2, long int arg3,
++ long int arg4, long int arg5, long int arg6,
++ long int arg7,
++ long int number) */
+
+ ENTRY(__mips_syscall7)
+ lw v0, 28(sp)
+diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
+index 4f917c5d34..faa5ac68a3 100644
+--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
++++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
+@@ -19,51 +19,57 @@
+ #ifndef MIPS16_SYSCALL_H
+ #define MIPS16_SYSCALL_H 1
+
+-long long __nomips16 __mips16_syscall0 (long number);
++long long int __nomips16 __mips16_syscall0 (long int number);
+ #define __mips16_syscall0(dummy, number) \
+- __mips16_syscall0 ((long) (number))
++ __mips16_syscall0 ((long int) (number))
+
+-long long __nomips16 __mips16_syscall1 (long a0,
+- long number);
++long long int __nomips16 __mips16_syscall1 (long int a0,
++ long int number);
+ #define __mips16_syscall1(a0, number) \
+- __mips16_syscall1 ((long) (a0), \
+- (long) (number))
++ __mips16_syscall1 ((long int) (a0), \
++ (long int) (number))
+
+-long long __nomips16 __mips16_syscall2 (long a0, long a1,
+- long number);
++long long int __nomips16 __mips16_syscall2 (long int a0, long int a1,
++ long int number);
+ #define __mips16_syscall2(a0, a1, number) \
+- __mips16_syscall2 ((long) (a0), (long) (a1), \
+- (long) (number))
++ __mips16_syscall2 ((long int) (a0), (long int) (a1), \
++ (long int) (number))
+
+-long long __nomips16 __mips16_syscall3 (long a0, long a1, long a2,
+- long number);
++long long int __nomips16 __mips16_syscall3 (long int a0, long int a1,
++ long int a2,
++ long int number);
+ #define __mips16_syscall3(a0, a1, a2, number) \
+- __mips16_syscall3 ((long) (a0), (long) (a1), (long) (a2), \
+- (long) (number))
++ __mips16_syscall3 ((long int) (a0), (long int) (a1), \
++ (long int) (a2), \
++ (long int) (number))
+
+-long long __nomips16 __mips16_syscall4 (long a0, long a1, long a2, long a3,
+- long number);
++long long int __nomips16 __mips16_syscall4 (long int a0, long int a1,
++ long int a2, long int a3,
++ long int number);
+ #define __mips16_syscall4(a0, a1, a2, a3, number) \
+- __mips16_syscall4 ((long) (a0), (long) (a1), (long) (a2), \
+- (long) (a3), \
+- (long) (number))
++ __mips16_syscall4 ((long int) (a0), (long int) (a1), \
++ (long int) (a2), (long int) (a3), \
++ (long int) (number))
+
+ /* The remaining ones use regular MIPS wrappers. */
+
+ #define __mips16_syscall5(a0, a1, a2, a3, a4, number) \
+- __mips_syscall5 ((long) (a0), (long) (a1), (long) (a2), \
+- (long) (a3), (long) (a4), \
+- (long) (number))
++ __mips_syscall5 ((long int) (a0), (long int) (a1), \
++ (long int) (a2), (long int) (a3), \
++ (long int) (a4), \
++ (long int) (number))
+
+ #define __mips16_syscall6(a0, a1, a2, a3, a4, a5, number) \
+- __mips_syscall6 ((long) (a0), (long) (a1), (long) (a2), \
+- (long) (a3), (long) (a4), (long) (a5), \
+- (long) (number))
++ __mips_syscall6 ((long int) (a0), (long int) (a1), \
++ (long int) (a2), (long int) (a3), \
++ (long int) (a4), (long int) (a5), \
++ (long int) (number))
+
+ #define __mips16_syscall7(a0, a1, a2, a3, a4, a5, a6, number) \
+- __mips_syscall7 ((long) (a0), (long) (a1), (long) (a2), \
+- (long) (a3), (long) (a4), (long) (a5), \
+- (long) (a6), \
+- (long) (number))
++ __mips_syscall7 ((long int) (a0), (long int) (a1), \
++ (long int) (a2), (long int) (a3), \
++ (long int) (a4), (long int) (a5), \
++ (long int) (a6), \
++ (long int) (number))
+
+ #endif
+diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
+index c8f6fff40d..28b48d99b8 100644
+--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
++++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
+@@ -20,8 +20,8 @@
+
+ #undef __mips16_syscall0
+
+-long long __nomips16
+-__mips16_syscall0 (long number)
++long long int __nomips16
++__mips16_syscall0 (long int number)
+ {
+ union __mips_syscall_return ret;
+ ret.reg.v0 = INTERNAL_SYSCALL_MIPS16 (number, ret.reg.v1, 0);
+diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
+index 2631ec25aa..0e7ef00a8f 100644
+--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
++++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
+@@ -20,9 +20,9 @@
+
+ #undef __mips16_syscall1
+
+-long long __nomips16
+-__mips16_syscall1 (long a0,
+- long number)
++long long int __nomips16
++__mips16_syscall1 (long int a0,
++ long int number)
+ {
+ union __mips_syscall_return ret;
+ ret.reg.v0 = INTERNAL_SYSCALL_MIPS16 (number, ret.reg.v1, 1,
+diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
+index 235958e355..7464b88d71 100644
+--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
++++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
+@@ -20,9 +20,9 @@
+
+ #undef __mips16_syscall2
+
+-long long __nomips16
+-__mips16_syscall2 (long a0, long a1,
+- long number)
++long long int __nomips16
++__mips16_syscall2 (long int a0, long int a1,
++ long int number)
+ {
+ union __mips_syscall_return ret;
+ ret.reg.v0 = INTERNAL_SYSCALL_MIPS16 (number, ret.reg.v1, 2,
+diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
+index 827c5e23a5..38d48208e0 100644
+--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
++++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
+@@ -20,9 +20,9 @@
+
+ #undef __mips16_syscall3
+
+-long long __nomips16
+-__mips16_syscall3 (long a0, long a1, long a2,
+- long number)
++long long int __nomips16
++__mips16_syscall3 (long int a0, long int a1, long int a2,
++ long int number)
+ {
+ union __mips_syscall_return ret;
+ ret.reg.v0 = INTERNAL_SYSCALL_MIPS16 (number, ret.reg.v1, 3,
+diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
+index 3eb040056a..5027b5ae18 100644
+--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
++++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
+@@ -20,9 +20,9 @@
+
+ #undef __mips16_syscall4
+
+-long long __nomips16
+-__mips16_syscall4 (long a0, long a1, long a2, long a3,
+- long number)
++long long int __nomips16
++__mips16_syscall4 (long int a0, long int a1, long int a2, long int a3,
++ long int number)
+ {
+ union __mips_syscall_return ret;
+ ret.reg.v0 = INTERNAL_SYSCALL_MIPS16 (number, ret.reg.v1, 4,
+diff --git a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
+index 5a2704e3e8..4384bf50ee 100644
+--- a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
++++ b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
+@@ -54,7 +54,7 @@
+ #undef INLINE_SYSCALL
+ #define INLINE_SYSCALL(name, nr, args...) \
+ ({ INTERNAL_SYSCALL_DECL (_sc_err); \
+- long result_var = INTERNAL_SYSCALL (name, _sc_err, nr, args); \
++ long int result_var = INTERNAL_SYSCALL (name, _sc_err, nr, args); \
+ if ( INTERNAL_SYSCALL_ERROR_P (result_var, _sc_err) ) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, _sc_err)); \
+@@ -63,10 +63,10 @@
+ result_var; })
+
+ #undef INTERNAL_SYSCALL_DECL
+-#define INTERNAL_SYSCALL_DECL(err) long err __attribute__ ((unused))
++#define INTERNAL_SYSCALL_DECL(err) long int err __attribute__ ((unused))
+
+ #undef INTERNAL_SYSCALL_ERROR_P
+-#define INTERNAL_SYSCALL_ERROR_P(val, err) ((void) (val), (long) (err))
++#define INTERNAL_SYSCALL_ERROR_P(val, err) ((void) (val), (long int) (err))
+
+ #undef INTERNAL_SYSCALL_ERRNO
+ #define INTERNAL_SYSCALL_ERRNO(val, err) ((void) (err), val)
+@@ -105,11 +105,11 @@
+
+ union __mips_syscall_return
+ {
+- long long val;
++ long long int val;
+ struct
+ {
+- long v0;
+- long v1;
++ long int v0;
++ long int v1;
+ }
+ reg;
+ };
+@@ -154,13 +154,13 @@ union __mips_syscall_return
+
+ #define internal_syscall0(v0_init, input, number, err, dummy...) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long __s0 asm ("$16") __attribute__ ((unused)) \
++ register long int __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+- register long __v0 asm ("$2"); \
+- register long __a3 asm ("$7"); \
++ register long int __v0 asm ("$2"); \
++ register long int __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -177,14 +177,15 @@ union __mips_syscall_return
+
+ #define internal_syscall1(v0_init, input, number, err, arg1) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long __s0 asm ("$16") __attribute__ ((unused)) \
++ long int _arg1 = (long int) (arg1); \
++ register long int __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+- register long __v0 asm ("$2"); \
+- register long __a0 asm ("$4") = (long) (arg1); \
+- register long __a3 asm ("$7"); \
++ register long int __v0 asm ("$2"); \
++ register long int __a0 asm ("$4") = _arg1; \
++ register long int __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -201,15 +202,17 @@ union __mips_syscall_return
+
+ #define internal_syscall2(v0_init, input, number, err, arg1, arg2) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long __s0 asm ("$16") __attribute__ ((unused)) \
++ long int _arg1 = (long int) (arg1); \
++ long int _arg2 = (long int) (arg2); \
++ register long int __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+- register long __v0 asm ("$2"); \
+- register long __a0 asm ("$4") = (long) (arg1); \
+- register long __a1 asm ("$5") = (long) (arg2); \
+- register long __a3 asm ("$7"); \
++ register long int __v0 asm ("$2"); \
++ register long int __a0 asm ("$4") = _arg1; \
++ register long int __a1 asm ("$5") = _arg2; \
++ register long int __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -227,16 +230,19 @@ union __mips_syscall_return
+ #define internal_syscall3(v0_init, input, number, err, \
+ arg1, arg2, arg3) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long __s0 asm ("$16") __attribute__ ((unused)) \
++ long int _arg1 = (long int) (arg1); \
++ long int _arg2 = (long int) (arg2); \
++ long int _arg3 = (long int) (arg3); \
++ register long int __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+- register long __v0 asm ("$2"); \
+- register long __a0 asm ("$4") = (long) (arg1); \
+- register long __a1 asm ("$5") = (long) (arg2); \
+- register long __a2 asm ("$6") = (long) (arg3); \
+- register long __a3 asm ("$7"); \
++ register long int __v0 asm ("$2"); \
++ register long int __a0 asm ("$4") = _arg1; \
++ register long int __a1 asm ("$5") = _arg2; \
++ register long int __a2 asm ("$6") = _arg3; \
++ register long int __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -254,16 +260,20 @@ union __mips_syscall_return
+ #define internal_syscall4(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long __s0 asm ("$16") __attribute__ ((unused)) \
++ long int _arg1 = (long int) (arg1); \
++ long int _arg2 = (long int) (arg2); \
++ long int _arg3 = (long int) (arg3); \
++ long int _arg4 = (long int) (arg4); \
++ register long int __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+- register long __v0 asm ("$2"); \
+- register long __a0 asm ("$4") = (long) (arg1); \
+- register long __a1 asm ("$5") = (long) (arg2); \
+- register long __a2 asm ("$6") = (long) (arg3); \
+- register long __a3 asm ("$7") = (long) (arg4); \
++ register long int __v0 asm ("$2"); \
++ register long int __a0 asm ("$4") = _arg1; \
++ register long int __a1 asm ("$5") = _arg2; \
++ register long int __a2 asm ("$6") = _arg3; \
++ register long int __a3 asm ("$7") = _arg4; \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -287,63 +297,66 @@ union __mips_syscall_return
+ compiler specifics required for the stack arguments to be pushed,
+ which would be the case if these syscalls were inlined. */
+
+-long long __nomips16 __mips_syscall5 (long arg1, long arg2, long arg3,
+- long arg4, long arg5,
+- long number);
++long long int __nomips16 __mips_syscall5 (long int arg1, long int arg2,
++ long int arg3, long int arg4,
++ long int arg5,
++ long int number);
+ libc_hidden_proto (__mips_syscall5, nomips16)
+
+ #define internal_syscall5(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4, arg5) \
+ ({ \
+ union __mips_syscall_return _sc_ret; \
+- _sc_ret.val = __mips_syscall5 ((long) (arg1), \
+- (long) (arg2), \
+- (long) (arg3), \
+- (long) (arg4), \
+- (long) (arg5), \
+- (long) (number)); \
++ _sc_ret.val = __mips_syscall5 ((long int) (arg1), \
++ (long int) (arg2), \
++ (long int) (arg3), \
++ (long int) (arg4), \
++ (long int) (arg5), \
++ (long int) (number)); \
+ err = _sc_ret.reg.v1; \
+ _sc_ret.reg.v0; \
+ })
+
+-long long __nomips16 __mips_syscall6 (long arg1, long arg2, long arg3,
+- long arg4, long arg5, long arg6,
+- long number);
++long long int __nomips16 __mips_syscall6 (long int arg1, long int arg2,
++ long int arg3, long int arg4,
++ long int arg5, long int arg6,
++ long int number);
+ libc_hidden_proto (__mips_syscall6, nomips16)
+
+ #define internal_syscall6(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4, arg5, arg6) \
+ ({ \
+ union __mips_syscall_return _sc_ret; \
+- _sc_ret.val = __mips_syscall6 ((long) (arg1), \
+- (long) (arg2), \
+- (long) (arg3), \
+- (long) (arg4), \
+- (long) (arg5), \
+- (long) (arg6), \
+- (long) (number)); \
++ _sc_ret.val = __mips_syscall6 ((long int) (arg1), \
++ (long int) (arg2), \
++ (long int) (arg3), \
++ (long int) (arg4), \
++ (long int) (arg5), \
++ (long int) (arg6), \
++ (long int) (number)); \
+ err = _sc_ret.reg.v1; \
+ _sc_ret.reg.v0; \
+ })
+
+-long long __nomips16 __mips_syscall7 (long arg1, long arg2, long arg3,
+- long arg4, long arg5, long arg6,
+- long arg7,
+- long number);
++long long int __nomips16 __mips_syscall7 (long int arg1, long int arg2,
++ long int arg3, long int arg4,
++ long int arg5, long int arg6,
++ long int arg7,
++ long int number);
+ libc_hidden_proto (__mips_syscall7, nomips16)
+
+ #define internal_syscall7(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4, arg5, arg6, arg7) \
+ ({ \
+ union __mips_syscall_return _sc_ret; \
+- _sc_ret.val = __mips_syscall7 ((long) (arg1), \
+- (long) (arg2), \
+- (long) (arg3), \
+- (long) (arg4), \
+- (long) (arg5), \
+- (long) (arg6), \
+- (long) (arg7), \
+- (long) (number)); \
++ _sc_ret.val = __mips_syscall7 ((long int) (arg1), \
++ (long int) (arg2), \
++ (long int) (arg3), \
++ (long int) (arg4), \
++ (long int) (arg5), \
++ (long int) (arg6), \
++ (long int) (arg7), \
++ (long int) (number)); \
+ err = _sc_ret.reg.v1; \
+ _sc_ret.reg.v0; \
+ })
+@@ -357,7 +370,7 @@ libc_hidden_proto (__mips_syscall7, nomips16)
+ #define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
+ ({ \
+ long _ret = funcptr (args); \
+- err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \
++ err = ((unsigned long) (_ret) >= (unsigned long int) -4095L); \
+ if (err) \
+ _ret = -_ret; \
+ _ret; \
+diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
+index a4f3547030..e0251d5514 100644
+--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
++++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
+@@ -49,14 +49,14 @@
+
+ /* Convert X to a long long, without losing any bits if it is one
+ already or warning if it is a 32-bit pointer. */
+-#define ARGIFY(X) ((long long) (__typeof__ ((X) - (X))) (X))
++#define ARGIFY(X) ((long long int) (__typeof__ ((X) - (X))) (X))
+
+ /* Define a macro which expands into the inline wrapper code for a system
+ call. */
+ #undef INLINE_SYSCALL
+ #define INLINE_SYSCALL(name, nr, args...) \
+ ({ INTERNAL_SYSCALL_DECL (_sc_err); \
+- long result_var = INTERNAL_SYSCALL (name, _sc_err, nr, args); \
++ long int result_var = INTERNAL_SYSCALL (name, _sc_err, nr, args); \
+ if ( INTERNAL_SYSCALL_ERROR_P (result_var, _sc_err) ) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, _sc_err)); \
+@@ -65,10 +65,10 @@
+ result_var; })
+
+ #undef INTERNAL_SYSCALL_DECL
+-#define INTERNAL_SYSCALL_DECL(err) long err __attribute__ ((unused))
++#define INTERNAL_SYSCALL_DECL(err) long int err __attribute__ ((unused))
+
+ #undef INTERNAL_SYSCALL_ERROR_P
+-#define INTERNAL_SYSCALL_ERROR_P(val, err) ((void) (val), (long) (err))
++#define INTERNAL_SYSCALL_ERROR_P(val, err) ((void) (val), (long int) (err))
+
+ #undef INTERNAL_SYSCALL_ERRNO
+ #define INTERNAL_SYSCALL_ERRNO(val, err) ((void) (err), val)
+@@ -114,13 +114,13 @@
+
+ #define internal_syscall0(v0_init, input, number, err, dummy...) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long long __s0 asm ("$16") __attribute__ ((unused)) \
++ register long long int __s0 asm ("$16") __attribute__ ((unused))\
+ = (number); \
+- register long long __v0 asm ("$2"); \
+- register long long __a3 asm ("$7"); \
++ register long long int __v0 asm ("$2"); \
++ register long long int __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -137,14 +137,15 @@
+
+ #define internal_syscall1(v0_init, input, number, err, arg1) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long long __s0 asm ("$16") __attribute__ ((unused)) \
++ long long int _arg1 = ARGIFY (arg1); \
++ register long long int __s0 asm ("$16") __attribute__ ((unused))\
+ = (number); \
+- register long long __v0 asm ("$2"); \
+- register long long __a0 asm ("$4") = ARGIFY (arg1); \
+- register long long __a3 asm ("$7"); \
++ register long long int __v0 asm ("$2"); \
++ register long long int __a0 asm ("$4") = _arg1; \
++ register long long int __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -161,15 +162,17 @@
+
+ #define internal_syscall2(v0_init, input, number, err, arg1, arg2) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long long __s0 asm ("$16") __attribute__ ((unused)) \
++ long long int _arg1 = ARGIFY (arg1); \
++ long long int _arg2 = ARGIFY (arg2); \
++ register long long int __s0 asm ("$16") __attribute__ ((unused))\
+ = (number); \
+- register long long __v0 asm ("$2"); \
+- register long long __a0 asm ("$4") = ARGIFY (arg1); \
+- register long long __a1 asm ("$5") = ARGIFY (arg2); \
+- register long long __a3 asm ("$7"); \
++ register long long int __v0 asm ("$2"); \
++ register long long int __a0 asm ("$4") = _arg1; \
++ register long long int __a1 asm ("$5") = _arg2; \
++ register long long int __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -187,16 +190,19 @@
+ #define internal_syscall3(v0_init, input, number, err, \
+ arg1, arg2, arg3) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long long __s0 asm ("$16") __attribute__ ((unused)) \
++ long long int _arg1 = ARGIFY (arg1); \
++ long long int _arg2 = ARGIFY (arg2); \
++ long long int _arg3 = ARGIFY (arg3); \
++ register long long int __s0 asm ("$16") __attribute__ ((unused))\
+ = (number); \
+- register long long __v0 asm ("$2"); \
+- register long long __a0 asm ("$4") = ARGIFY (arg1); \
+- register long long __a1 asm ("$5") = ARGIFY (arg2); \
+- register long long __a2 asm ("$6") = ARGIFY (arg3); \
+- register long long __a3 asm ("$7"); \
++ register long long int __v0 asm ("$2"); \
++ register long long int __a0 asm ("$4") = _arg1; \
++ register long long int __a1 asm ("$5") = _arg2; \
++ register long long int __a2 asm ("$6") = _arg3; \
++ register long long int __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -214,16 +220,20 @@
+ #define internal_syscall4(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long long __s0 asm ("$16") __attribute__ ((unused)) \
++ long long int _arg1 = ARGIFY (arg1); \
++ long long int _arg2 = ARGIFY (arg2); \
++ long long int _arg3 = ARGIFY (arg3); \
++ long long int _arg4 = ARGIFY (arg4); \
++ register long long int __s0 asm ("$16") __attribute__ ((unused))\
+ = (number); \
+- register long long __v0 asm ("$2"); \
+- register long long __a0 asm ("$4") = ARGIFY (arg1); \
+- register long long __a1 asm ("$5") = ARGIFY (arg2); \
+- register long long __a2 asm ("$6") = ARGIFY (arg3); \
+- register long long __a3 asm ("$7") = ARGIFY (arg4); \
++ register long long int __v0 asm ("$2"); \
++ register long long int __a0 asm ("$4") = _arg1; \
++ register long long int __a1 asm ("$5") = _arg2; \
++ register long long int __a2 asm ("$6") = _arg3; \
++ register long long int __a3 asm ("$7") = _arg4; \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -241,17 +251,22 @@
+ #define internal_syscall5(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4, arg5) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long long __s0 asm ("$16") __attribute__ ((unused)) \
++ long long int _arg1 = ARGIFY (arg1); \
++ long long int _arg2 = ARGIFY (arg2); \
++ long long int _arg3 = ARGIFY (arg3); \
++ long long int _arg4 = ARGIFY (arg4); \
++ long long int _arg5 = ARGIFY (arg5); \
++ register long long int __s0 asm ("$16") __attribute__ ((unused))\
+ = (number); \
+- register long long __v0 asm ("$2"); \
+- register long long __a0 asm ("$4") = ARGIFY (arg1); \
+- register long long __a1 asm ("$5") = ARGIFY (arg2); \
+- register long long __a2 asm ("$6") = ARGIFY (arg3); \
+- register long long __a3 asm ("$7") = ARGIFY (arg4); \
+- register long long __a4 asm ("$8") = ARGIFY (arg5); \
++ register long long int __v0 asm ("$2"); \
++ register long long int __a0 asm ("$4") = _arg1; \
++ register long long int __a1 asm ("$5") = _arg2; \
++ register long long int __a2 asm ("$6") = _arg3; \
++ register long long int __a3 asm ("$7") = _arg4; \
++ register long long int __a4 asm ("$8") = _arg5; \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -269,18 +284,24 @@
+ #define internal_syscall6(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4, arg5, arg6) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long long __s0 asm ("$16") __attribute__ ((unused)) \
++ long long int _arg1 = ARGIFY (arg1); \
++ long long int _arg2 = ARGIFY (arg2); \
++ long long int _arg3 = ARGIFY (arg3); \
++ long long int _arg4 = ARGIFY (arg4); \
++ long long int _arg5 = ARGIFY (arg5); \
++ long long int _arg6 = ARGIFY (arg6); \
++ register long long int __s0 asm ("$16") __attribute__ ((unused))\
+ = (number); \
+- register long long __v0 asm ("$2"); \
+- register long long __a0 asm ("$4") = ARGIFY (arg1); \
+- register long long __a1 asm ("$5") = ARGIFY (arg2); \
+- register long long __a2 asm ("$6") = ARGIFY (arg3); \
+- register long long __a3 asm ("$7") = ARGIFY (arg4); \
+- register long long __a4 asm ("$8") = ARGIFY (arg5); \
+- register long long __a5 asm ("$9") = ARGIFY (arg6); \
++ register long long int __v0 asm ("$2"); \
++ register long long int __a0 asm ("$4") = _arg1; \
++ register long long int __a1 asm ("$5") = _arg2; \
++ register long long int __a2 asm ("$6") = _arg3; \
++ register long long int __a3 asm ("$7") = _arg4; \
++ register long long int __a4 asm ("$8") = _arg5; \
++ register long long int __a5 asm ("$9") = _arg6; \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -305,7 +326,7 @@
+ #define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
+ ({ \
+ long _ret = funcptr (args); \
+- err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \
++ err = ((unsigned long) (_ret) >= (unsigned long int) -4095L); \
+ if (err) \
+ _ret = -_ret; \
+ _ret; \
+diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
+index 5b4d27757d..11172280c7 100644
+--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
++++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
+@@ -52,7 +52,7 @@
+ #undef INLINE_SYSCALL
+ #define INLINE_SYSCALL(name, nr, args...) \
+ ({ INTERNAL_SYSCALL_DECL (_sc_err); \
+- long result_var = INTERNAL_SYSCALL (name, _sc_err, nr, args); \
++ long int result_var = INTERNAL_SYSCALL (name, _sc_err, nr, args); \
+ if ( INTERNAL_SYSCALL_ERROR_P (result_var, _sc_err) ) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, _sc_err)); \
+@@ -61,10 +61,10 @@
+ result_var; })
+
+ #undef INTERNAL_SYSCALL_DECL
+-#define INTERNAL_SYSCALL_DECL(err) long err __attribute__ ((unused))
++#define INTERNAL_SYSCALL_DECL(err) long int err __attribute__ ((unused))
+
+ #undef INTERNAL_SYSCALL_ERROR_P
+-#define INTERNAL_SYSCALL_ERROR_P(val, err) ((void) (val), (long) (err))
++#define INTERNAL_SYSCALL_ERROR_P(val, err) ((void) (val), (long int) (err))
+
+ #undef INTERNAL_SYSCALL_ERRNO
+ #define INTERNAL_SYSCALL_ERRNO(val, err) ((void) (err), val)
+@@ -110,13 +110,13 @@
+
+ #define internal_syscall0(v0_init, input, number, err, dummy...) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long __s0 asm ("$16") __attribute__ ((unused)) \
++ register long int __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+- register long __v0 asm ("$2"); \
+- register long __a3 asm ("$7"); \
++ register long int __v0 asm ("$2"); \
++ register long int __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -133,14 +133,15 @@
+
+ #define internal_syscall1(v0_init, input, number, err, arg1) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long __s0 asm ("$16") __attribute__ ((unused)) \
++ long int _arg1 = (long int) (arg1); \
++ register long int __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+- register long __v0 asm ("$2"); \
+- register long __a0 asm ("$4") = (long) (arg1); \
+- register long __a3 asm ("$7"); \
++ register long int __v0 asm ("$2"); \
++ register long int __a0 asm ("$4") = _arg1; \
++ register long int __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -157,15 +158,17 @@
+
+ #define internal_syscall2(v0_init, input, number, err, arg1, arg2) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long __s0 asm ("$16") __attribute__ ((unused)) \
++ long int _arg1 = (long int) (arg1); \
++ long int _arg2 = (long int) (arg2); \
++ register long int __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+- register long __v0 asm ("$2"); \
+- register long __a0 asm ("$4") = (long) (arg1); \
+- register long __a1 asm ("$5") = (long) (arg2); \
+- register long __a3 asm ("$7"); \
++ register long int __v0 asm ("$2"); \
++ register long int __a0 asm ("$4") = _arg1; \
++ register long int __a1 asm ("$5") = _arg2; \
++ register long int __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -183,16 +186,19 @@
+ #define internal_syscall3(v0_init, input, number, err, \
+ arg1, arg2, arg3) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long __s0 asm ("$16") __attribute__ ((unused)) \
++ long int _arg1 = (long int) (arg1); \
++ long int _arg2 = (long int) (arg2); \
++ long int _arg3 = (long int) (arg3); \
++ register long int __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+- register long __v0 asm ("$2"); \
+- register long __a0 asm ("$4") = (long) (arg1); \
+- register long __a1 asm ("$5") = (long) (arg2); \
+- register long __a2 asm ("$6") = (long) (arg3); \
+- register long __a3 asm ("$7"); \
++ register long int __v0 asm ("$2"); \
++ register long int __a0 asm ("$4") = _arg1; \
++ register long int __a1 asm ("$5") = _arg2; \
++ register long int __a2 asm ("$6") = _arg3; \
++ register long int __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -210,16 +216,20 @@
+ #define internal_syscall4(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long __s0 asm ("$16") __attribute__ ((unused)) \
++ long int _arg1 = (long int) (arg1); \
++ long int _arg2 = (long int) (arg2); \
++ long int _arg3 = (long int) (arg3); \
++ long int _arg4 = (long int) (arg4); \
++ register long int __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+- register long __v0 asm ("$2"); \
+- register long __a0 asm ("$4") = (long) (arg1); \
+- register long __a1 asm ("$5") = (long) (arg2); \
+- register long __a2 asm ("$6") = (long) (arg3); \
+- register long __a3 asm ("$7") = (long) (arg4); \
++ register long int __v0 asm ("$2"); \
++ register long int __a0 asm ("$4") = _arg1; \
++ register long int __a1 asm ("$5") = _arg2; \
++ register long int __a2 asm ("$6") = _arg3; \
++ register long int __a3 asm ("$7") = _arg4; \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -237,17 +247,22 @@
+ #define internal_syscall5(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4, arg5) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long __s0 asm ("$16") __attribute__ ((unused)) \
++ long int _arg1 = (long int) (arg1); \
++ long int _arg2 = (long int) (arg2); \
++ long int _arg3 = (long int) (arg3); \
++ long int _arg4 = (long int) (arg4); \
++ long int _arg5 = (long int) (arg5); \
++ register long int __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+- register long __v0 asm ("$2"); \
+- register long __a0 asm ("$4") = (long) (arg1); \
+- register long __a1 asm ("$5") = (long) (arg2); \
+- register long __a2 asm ("$6") = (long) (arg3); \
+- register long __a3 asm ("$7") = (long) (arg4); \
+- register long __a4 asm ("$8") = (long) (arg5); \
++ register long int __v0 asm ("$2"); \
++ register long int __a0 asm ("$4") = _arg1; \
++ register long int __a1 asm ("$5") = _arg2; \
++ register long int __a2 asm ("$6") = _arg3; \
++ register long int __a3 asm ("$7") = _arg4; \
++ register long int __a4 asm ("$8") = _arg5; \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -265,18 +280,24 @@
+ #define internal_syscall6(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4, arg5, arg6) \
+ ({ \
+- long _sys_result; \
++ long int _sys_result; \
+ \
+ { \
+- register long __s0 asm ("$16") __attribute__ ((unused)) \
++ long int _arg1 = (long int) (arg1); \
++ long int _arg2 = (long int) (arg2); \
++ long int _arg3 = (long int) (arg3); \
++ long int _arg4 = (long int) (arg4); \
++ long int _arg5 = (long int) (arg5); \
++ long int _arg6 = (long int) (arg6); \
++ register long int __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+- register long __v0 asm ("$2"); \
+- register long __a0 asm ("$4") = (long) (arg1); \
+- register long __a1 asm ("$5") = (long) (arg2); \
+- register long __a2 asm ("$6") = (long) (arg3); \
+- register long __a3 asm ("$7") = (long) (arg4); \
+- register long __a4 asm ("$8") = (long) (arg5); \
+- register long __a5 asm ("$9") = (long) (arg6); \
++ register long int __v0 asm ("$2"); \
++ register long int __a0 asm ("$4") = _arg1; \
++ register long int __a1 asm ("$5") = _arg2; \
++ register long int __a2 asm ("$6") = _arg3; \
++ register long int __a3 asm ("$7") = _arg4; \
++ register long int __a4 asm ("$8") = _arg5; \
++ register long int __a5 asm ("$9") = _arg6; \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+@@ -301,7 +322,7 @@
+ #define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
+ ({ \
+ long _ret = funcptr (args); \
+- err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \
++ err = ((unsigned long) (_ret) >= (unsigned long int) -4095L); \
+ if (err) \
+ _ret = -_ret; \
+ _ret; \
+diff --git a/sysdeps/unix/sysv/linux/mips/mips64/syscall.S b/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
+index 50a6e6dbe9..251d590996 100644
+--- a/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
++++ b/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
+@@ -20,7 +20,7 @@
+ #include <sys/asm.h>
+
+ /* Usage:
+- long syscall (syscall_number, arg1, arg2, arg3, arg4, arg5, arg6, arg7)
++ long int syscall (syscall_number, arg1, arg2, arg3, arg4, arg5, arg6, arg7)
+
+ We need to do some arg shifting, syscall_number will be in v0. */
+
diff --git a/sysdeps/unix/sysv/linux/not-cancel.h b/sysdeps/unix/sysv/linux/not-cancel.h
index 16cc31cba5..bf7d80125a 100644
--- a/sysdeps/unix/sysv/linux/not-cancel.h
@@ -3581,6 +4675,164 @@ index 0000000000..dab61260e5
+ return INLINE_SYSCALL_CALL (pread64, fd, buf, count, SYSCALL_LL64_PRW (offset));
+}
+hidden_def (__pread64_nocancel)
+diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.h b/sysdeps/unix/sysv/linux/riscv/sysdep.h
+index 5470ea3d2a..6fc63852cf 100644
+--- a/sysdeps/unix/sysv/linux/riscv/sysdep.h
++++ b/sysdeps/unix/sysv/linux/riscv/sysdep.h
+@@ -173,10 +173,11 @@
+ # define internal_syscall1(number, err, arg0) \
+ ({ \
+ long int _sys_result; \
++ long int _arg0 = (long int) (arg0); \
+ \
+ { \
+ register long int __a7 asm ("a7") = number; \
+- register long int __a0 asm ("a0") = (long int) (arg0); \
++ register long int __a0 asm ("a0") = _arg0; \
+ __asm__ volatile ( \
+ "scall\n\t" \
+ : "+r" (__a0) \
+@@ -190,11 +191,13 @@
+ # define internal_syscall2(number, err, arg0, arg1) \
+ ({ \
+ long int _sys_result; \
++ long int _arg0 = (long int) (arg0); \
++ long int _arg1 = (long int) (arg1); \
+ \
+ { \
+ register long int __a7 asm ("a7") = number; \
+- register long int __a0 asm ("a0") = (long int) (arg0); \
+- register long int __a1 asm ("a1") = (long int) (arg1); \
++ register long int __a0 asm ("a0") = _arg0; \
++ register long int __a1 asm ("a1") = _arg1; \
+ __asm__ volatile ( \
+ "scall\n\t" \
+ : "+r" (__a0) \
+@@ -208,12 +211,15 @@
+ # define internal_syscall3(number, err, arg0, arg1, arg2) \
+ ({ \
+ long int _sys_result; \
++ long int _arg0 = (long int) (arg0); \
++ long int _arg1 = (long int) (arg1); \
++ long int _arg2 = (long int) (arg2); \
+ \
+ { \
+ register long int __a7 asm ("a7") = number; \
+- register long int __a0 asm ("a0") = (long int) (arg0); \
+- register long int __a1 asm ("a1") = (long int) (arg1); \
+- register long int __a2 asm ("a2") = (long int) (arg2); \
++ register long int __a0 asm ("a0") = _arg0; \
++ register long int __a1 asm ("a1") = _arg1; \
++ register long int __a2 asm ("a2") = _arg2; \
+ __asm__ volatile ( \
+ "scall\n\t" \
+ : "+r" (__a0) \
+@@ -227,13 +233,17 @@
+ # define internal_syscall4(number, err, arg0, arg1, arg2, arg3) \
+ ({ \
+ long int _sys_result; \
++ long int _arg0 = (long int) (arg0); \
++ long int _arg1 = (long int) (arg1); \
++ long int _arg2 = (long int) (arg2); \
++ long int _arg3 = (long int) (arg3); \
+ \
+ { \
+ register long int __a7 asm ("a7") = number; \
+- register long int __a0 asm ("a0") = (long int) (arg0); \
+- register long int __a1 asm ("a1") = (long int) (arg1); \
+- register long int __a2 asm ("a2") = (long int) (arg2); \
+- register long int __a3 asm ("a3") = (long int) (arg3); \
++ register long int __a0 asm ("a0") = _arg0; \
++ register long int __a1 asm ("a1") = _arg1; \
++ register long int __a2 asm ("a2") = _arg2; \
++ register long int __a3 asm ("a3") = _arg3; \
+ __asm__ volatile ( \
+ "scall\n\t" \
+ : "+r" (__a0) \
+@@ -247,14 +257,19 @@
+ # define internal_syscall5(number, err, arg0, arg1, arg2, arg3, arg4) \
+ ({ \
+ long int _sys_result; \
++ long int _arg0 = (long int) (arg0); \
++ long int _arg1 = (long int) (arg1); \
++ long int _arg2 = (long int) (arg2); \
++ long int _arg3 = (long int) (arg3); \
++ long int _arg4 = (long int) (arg4); \
+ \
+ { \
+ register long int __a7 asm ("a7") = number; \
+- register long int __a0 asm ("a0") = (long int) (arg0); \
+- register long int __a1 asm ("a1") = (long int) (arg1); \
+- register long int __a2 asm ("a2") = (long int) (arg2); \
+- register long int __a3 asm ("a3") = (long int) (arg3); \
+- register long int __a4 asm ("a4") = (long int) (arg4); \
++ register long int __a0 asm ("a0") = _arg0; \
++ register long int __a1 asm ("a1") = _arg1; \
++ register long int __a2 asm ("a2") = _arg2; \
++ register long int __a3 asm ("a3") = _arg3; \
++ register long int __a4 asm ("a4") = _arg4; \
+ __asm__ volatile ( \
+ "scall\n\t" \
+ : "+r" (__a0) \
+@@ -268,15 +283,21 @@
+ # define internal_syscall6(number, err, arg0, arg1, arg2, arg3, arg4, arg5) \
+ ({ \
+ long int _sys_result; \
++ long int _arg0 = (long int) (arg0); \
++ long int _arg1 = (long int) (arg1); \
++ long int _arg2 = (long int) (arg2); \
++ long int _arg3 = (long int) (arg3); \
++ long int _arg4 = (long int) (arg4); \
++ long int _arg5 = (long int) (arg5); \
+ \
+ { \
+ register long int __a7 asm ("a7") = number; \
+- register long int __a0 asm ("a0") = (long int) (arg0); \
+- register long int __a1 asm ("a1") = (long int) (arg1); \
+- register long int __a2 asm ("a2") = (long int) (arg2); \
+- register long int __a3 asm ("a3") = (long int) (arg3); \
+- register long int __a4 asm ("a4") = (long int) (arg4); \
+- register long int __a5 asm ("a5") = (long int) (arg5); \
++ register long int __a0 asm ("a0") = _arg0; \
++ register long int __a1 asm ("a1") = _arg1; \
++ register long int __a2 asm ("a2") = _arg2; \
++ register long int __a3 asm ("a3") = _arg3; \
++ register long int __a4 asm ("a4") = _arg4; \
++ register long int __a5 asm ("a5") = _arg5; \
+ __asm__ volatile ( \
+ "scall\n\t" \
+ : "+r" (__a0) \
+@@ -291,16 +312,23 @@
+ # define internal_syscall7(number, err, arg0, arg1, arg2, arg3, arg4, arg5, arg6) \
+ ({ \
+ long int _sys_result; \
++ long int _arg0 = (long int) (arg0); \
++ long int _arg1 = (long int) (arg1); \
++ long int _arg2 = (long int) (arg2); \
++ long int _arg3 = (long int) (arg3); \
++ long int _arg4 = (long int) (arg4); \
++ long int _arg5 = (long int) (arg5); \
++ long int _arg6 = (long int) (arg6); \
+ \
+ { \
+ register long int __a7 asm ("a7") = number; \
+- register long int __a0 asm ("a0") = (long int) (arg0); \
+- register long int __a1 asm ("a1") = (long int) (arg1); \
+- register long int __a2 asm ("a2") = (long int) (arg2); \
+- register long int __a3 asm ("a3") = (long int) (arg3); \
+- register long int __a4 asm ("a4") = (long int) (arg4); \
+- register long int __a5 asm ("a5") = (long int) (arg5); \
+- register long int __a6 asm ("a6") = (long int) (arg6); \
++ register long int __a0 asm ("a0") = _arg0; \
++ register long int __a1 asm ("a1") = _arg1; \
++ register long int __a2 asm ("a2") = _arg2; \
++ register long int __a3 asm ("a3") = _arg3; \
++ register long int __a4 asm ("a4") = _arg4; \
++ register long int __a5 asm ("a5") = _arg5; \
++ register long int __a6 asm ("a6") = _arg6; \
+ __asm__ volatile ( \
+ "scall\n\t" \
+ : "+r" (__a0) \
diff --git a/sysdeps/unix/sysv/linux/riscv/vfork.S b/sysdeps/unix/sysv/linux/riscv/vfork.S
index 67373f181b..dc173d6b47 100644
--- a/sysdeps/unix/sysv/linux/riscv/vfork.S