mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
sparc: Use Linux kABI for syscall return
It changes the sparc internal_syscall* macros to return a negative value instead of the 'g1' register value in the 'err' macro argument. The __SYSCALL_STRING macro is also changed to no set the 'g1' value, since 'o1' already holds all the required information to check if syscall has failed. The macro INTERNAL_SYSCALL_DECL is no longer required, and the INTERNAL_SYSCALL_ERROR_P macro follows the other Linux kABIs. The redefinition of INTERNAL_VSYSCALL_CALL is also no longer required. Checked on sparc64-linux-gnu and sparcv9-linux-gnu. It fixes the sporadic issues on sparc32 where clock_nanosleep does not act as cancellation entrypoint.
This commit is contained in:
@ -109,9 +109,8 @@ ENTRY(name); \
|
||||
#define __SYSCALL_STRING \
|
||||
"ta 0x6d;" \
|
||||
"bcc,pt %%xcc, 1f;" \
|
||||
" mov 0, %%g1;" \
|
||||
" nop;" \
|
||||
"sub %%g0, %%o0, %%o0;" \
|
||||
"mov 1, %%g1;" \
|
||||
"1:"
|
||||
|
||||
#define __SYSCALL_CLOBBERS \
|
||||
|
Reference in New Issue
Block a user