From b5bc52efe77e9f0deeb2ee141ea066ab18c927da Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 31 Aug 2003 17:24:25 +0000 Subject: Update. 2003-08-30 Jakub Jelinek * sysdeps/generic/sysdep.h (cfi_window_save, CFI_WINDOW_SAVE): Define. * sysdeps/unix/sysv/linux/sparc/bits/setjmp.h: Allow file to be included multiple times. * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone): Pass ptid, tls, ctid arguments to the kernel. * sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c (__getpagesize): Use INTERNAL_SYSCALL instead of __syscall_getpagesize. * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__libc_sigaction): Use INLINE_SYSCALL instead of __syscall_rt_sigaction. * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list (__syscall_getgroups, __syscall_getpagesize, __syscall__llseek, __syscall_setfsgid, __syscall_setfsuid, __syscall_setgid, __syscall_setgroups, __syscall_setregid, __syscall_setreuid, __syscall_ipc, __syscall_setuid, __syscall_rt_sigaction, __syscall_rt_sigpending, __syscall_rt_sigprocmask, __syscall_rt_sigqueueinfo, __syscall_rt_sigsuspend, __syscall_rt_sigtimedwait): Remove unneeded syscall stubs. * sysdeps/unix/sysv/linux/sparc/sparc32/Makefile (sysdep_routines): Remove rt_sigsuspend, rt_sigprocmask, rt_sigtimedwait, rt_sigqueueinfo, rt_sigaction and rt_sigpending. * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h (__CLONE_SYSCALL_STRING): Define. * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S (__socket): Add CFI directives. * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h (__CLONE_SYSCALL_STRING): Define. * sysdeps/unix/sysv/linux/sparc/sysdep.h (INLINE_CLONE_SYSCALL): Define. * sysdeps/unix/sysv/linux/sparc/system.c: New file. * sunrpc/rpc/clnt.h: Remove a few __THROW. * sunrpc/Makefile (CFLAGS-auth_unix.c): Add -fexceptions. (CFLAGS-key_call.c): Likewise. (CFLAGS-pmap_rmt.c): Likewise. * sunrpc/rpc/auth.h: Remove serveral __THROW. (CFLAGS-rcmd.c): Likewise. --- sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'sysdeps/unix/sysv/linux/sparc/sparc64') diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h index 5340fca9d1..7e88ea58ac 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h @@ -152,6 +152,18 @@ SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler) \ "restore %%g0, -1, %%o0;" \ "1:" +#define __CLONE_SYSCALL_STRING \ + "ta 0x6d;" \ + "bcc,pt %%xcc, 1f;" \ + " sub %%o1, 1, %%o1;" \ + "save %%sp, -192, %%sp;" \ + "call __errno_location;" \ + " mov -1, %%i1;" \ + "st %%i0,[%%o0];" \ + "restore %%g0, -1, %%o0;" \ + "1:" \ + "and %%o0, %%o1, %%o0" + #define __INTERNAL_SYSCALL_STRING \ "ta 0x6d;" \ "bcs,a,pt %%xcc, 1f;" \ -- cgit v1.2.3-70-g09d2