diff options
author | Aurelien Jarno <aurelien@aurel32.net> | 2020-02-16 15:55:55 +0100 |
---|---|---|
committer | Aurelien Jarno <aurelien@aurel32.net> | 2020-02-16 15:55:55 +0100 |
commit | ca20bcb2435fe625ae45748b884916fd9ef78115 (patch) | |
tree | 42480097c3a045010922b481cbb526fe956b7693 | |
parent | e0c05718cf312787f0b93398587571fee0b63240 (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/changelog | 3 | ||||
-rw-r--r-- | debian/patches/git-updates.diff | 1256 |
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 |