linux: Use long int for syscall return value

The linux syscall ABI returns long, so the generic syscall code for
linux should use long for the return value.

This fixes the truncation of the return value of the syscall function
when that does not fit into an int.
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
This commit is contained in:
Xing Li 2022-11-29 19:24:43 +08:00 committed by Adhemerval Zanella
parent 9f482b73f4
commit 36d423e203

View File

@ -33,7 +33,7 @@ syscall (long int number, ...)
long int a5 = va_arg (args, long int);
va_end (args);
int r = INTERNAL_SYSCALL_NCS_CALL (number, a0, a1, a2, a3, a4, a5);
long int r = INTERNAL_SYSCALL_NCS_CALL (number, a0, a1, a2, a3, a4, a5);
if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (r)))
{
__set_errno (-r);