mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
Update.
2003-03-13 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/ia64/sysdep.h (BREAK_INSN_1, BREAK_INSN, ASM_OUTARGS_0, ASM_OUTARGS_1, ASM_OUTARGS_2, ASM_OUTARGS_3, ASM_OUTARGS_4, ASM_OUTARGS_5, ASM_OUTARGS_6): Define. (INTERNAL_SYSCALL, INLINE_SYSCALL): Use it. Make syscall arguments clobbered by the syscall. (ASM_ARGS_1, ASM_ARGS_2, ASM_ARGS_3, ASM_ARGS_4, ASM_ARGS_5, ASM_ARGS_6): Change constraints from r to index of corresponding output register. * sysdeps/unix/sysv/linux/ia64/clone2.S (__clone2): Swap ptid and ctid to match kernel. * sysdeps/unix/sysv/linux/ia64/system.c (FORK): Likewise. * sysdeps/powerpc/powerpc64/elf/configure.in: Remove * sysdeps/powerpc/powerpc64/elf/configure: Regenerated.
This commit is contained in:
parent
7588880f50
commit
b5ec56172d
18
ChangeLog
18
ChangeLog
@ -1,8 +1,22 @@
|
||||
2003-03-13 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/ia64/sysdep.h (BREAK_INSN_1, BREAK_INSN,
|
||||
ASM_OUTARGS_0, ASM_OUTARGS_1, ASM_OUTARGS_2, ASM_OUTARGS_3,
|
||||
ASM_OUTARGS_4, ASM_OUTARGS_5, ASM_OUTARGS_6): Define.
|
||||
(INTERNAL_SYSCALL, INLINE_SYSCALL): Use it. Make syscall arguments
|
||||
clobbered by the syscall.
|
||||
(ASM_ARGS_1, ASM_ARGS_2, ASM_ARGS_3, ASM_ARGS_4, ASM_ARGS_5,
|
||||
ASM_ARGS_6): Change constraints from r to index of corresponding
|
||||
output register.
|
||||
* sysdeps/unix/sysv/linux/ia64/clone2.S (__clone2): Swap
|
||||
ptid and ctid to match kernel.
|
||||
* sysdeps/unix/sysv/linux/ia64/system.c (FORK): Likewise.
|
||||
|
||||
2003-03-12 Steven Munroe <sjmunroe@us.ibm.com>
|
||||
|
||||
* sysdeps/powerpc/powerpc64/elf/configure.in: Remove
|
||||
* sysdeps/powerpc/powerpc64/elf/configure.in: Remove
|
||||
AC_DEFINE(PI_STATIC_AND_HIDDEN). Not supported for PowerPC64.
|
||||
* sysdeps/powerpc/powerpc64/elf/configure: Regenerated.
|
||||
* sysdeps/powerpc/powerpc64/elf/configure: Regenerated.
|
||||
|
||||
2003-03-11 Roland McGrath <roland@redhat.com>
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2003-03-13 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
|
||||
ctid to match kernel.
|
||||
|
||||
2003-03-12 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
|
||||
|
@ -26,6 +26,6 @@
|
||||
#define ARCH_FORK() \
|
||||
INLINE_SYSCALL (clone2, 6, \
|
||||
CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \
|
||||
NULL, 0, &THREAD_SELF->tid, NULL, NULL)
|
||||
NULL, 0, NULL, &THREAD_SELF->tid, NULL)
|
||||
|
||||
#include "../fork.c"
|
||||
|
@ -42,8 +42,8 @@ ENTRY(__clone2)
|
||||
mov out0=in3 /* Flags are first syscall argument. */
|
||||
mov out1=in1 /* Stack address. */
|
||||
mov out2=in2 /* Stack size. */
|
||||
mov out3=in7 /* Child TID Pointer */
|
||||
mov out4=in5 /* Parent TID Pointer */
|
||||
mov out3=in5 /* Parent TID Pointer */
|
||||
mov out4=in7 /* Child TID Pointer */
|
||||
mov out5=in6 /* TLS pointer */
|
||||
DO_CALL (SYS_ify (clone2))
|
||||
cmp.eq p6,p0=-1,r10
|
||||
|
@ -105,6 +105,9 @@
|
||||
|
||||
#else /* not __ASSEMBLER__ */
|
||||
|
||||
#define BREAK_INSN_1(num) "break " #num ";;\n\t"
|
||||
#define BREAK_INSN(num) BREAK_INSN_1(num)
|
||||
|
||||
/* On IA-64 we have stacked registers for passing arguments. The
|
||||
"out" registers end up being the called function's "in"
|
||||
registers.
|
||||
@ -121,10 +124,10 @@
|
||||
register long _r15 asm ("r15") = __NR_##name; \
|
||||
long _retval; \
|
||||
LOAD_ARGS_##nr (args); \
|
||||
__asm __volatile ("break %3;;\n\t" \
|
||||
__asm __volatile (BREAK_INSN (__BREAK_SYSCALL) \
|
||||
: "=r" (_r8), "=r" (_r10), "=r" (_r15) \
|
||||
: "i" (__BREAK_SYSCALL), "2" (_r15) \
|
||||
ASM_ARGS_##nr \
|
||||
ASM_OUTARGS_##nr \
|
||||
: "2" (_r15) ASM_ARGS_##nr \
|
||||
: "memory" ASM_CLOBBERS_##nr); \
|
||||
_retval = _r8; \
|
||||
if (_r10 == -1) \
|
||||
@ -145,10 +148,10 @@
|
||||
register long _r15 asm ("r15") = __NR_##name; \
|
||||
long _retval; \
|
||||
LOAD_ARGS_##nr (args); \
|
||||
__asm __volatile ("break %3;;\n\t" \
|
||||
__asm __volatile (BREAK_INSN (__BREAK_SYSCALL) \
|
||||
: "=r" (_r8), "=r" (_r10), "=r" (_r15) \
|
||||
: "i" (__BREAK_SYSCALL), "2" (_r15) \
|
||||
ASM_ARGS_##nr \
|
||||
ASM_OUTARGS_##nr \
|
||||
: "2" (_r15) ASM_ARGS_##nr \
|
||||
: "memory" ASM_CLOBBERS_##nr); \
|
||||
_retval = _r8; \
|
||||
err = _r10; \
|
||||
@ -180,13 +183,21 @@
|
||||
register long _out5 asm ("out5") = (long) (out5); \
|
||||
LOAD_ARGS_5 (out0, out1, out2, out3, out4)
|
||||
|
||||
#define ASM_OUTARGS_0
|
||||
#define ASM_OUTARGS_1 ASM_OUTARGS_0, "=r" (_out0)
|
||||
#define ASM_OUTARGS_2 ASM_OUTARGS_1, "=r" (_out1)
|
||||
#define ASM_OUTARGS_3 ASM_OUTARGS_2, "=r" (_out2)
|
||||
#define ASM_OUTARGS_4 ASM_OUTARGS_3, "=r" (_out3)
|
||||
#define ASM_OUTARGS_5 ASM_OUTARGS_4, "=r" (_out4)
|
||||
#define ASM_OUTARGS_6 ASM_OUTARGS_5, "=r" (_out5)
|
||||
|
||||
#define ASM_ARGS_0
|
||||
#define ASM_ARGS_1 ASM_ARGS_0, "r" (_out0)
|
||||
#define ASM_ARGS_2 ASM_ARGS_1, "r" (_out1)
|
||||
#define ASM_ARGS_3 ASM_ARGS_2, "r" (_out2)
|
||||
#define ASM_ARGS_4 ASM_ARGS_3, "r" (_out3)
|
||||
#define ASM_ARGS_5 ASM_ARGS_4, "r" (_out4)
|
||||
#define ASM_ARGS_6 ASM_ARGS_5, "r" (_out5)
|
||||
#define ASM_ARGS_1 ASM_ARGS_0, "3" (_out0)
|
||||
#define ASM_ARGS_2 ASM_ARGS_1, "4" (_out1)
|
||||
#define ASM_ARGS_3 ASM_ARGS_2, "5" (_out2)
|
||||
#define ASM_ARGS_4 ASM_ARGS_3, "6" (_out3)
|
||||
#define ASM_ARGS_5 ASM_ARGS_4, "7" (_out4)
|
||||
#define ASM_ARGS_6 ASM_ARGS_5, "8" (_out5)
|
||||
|
||||
#define ASM_CLOBBERS_0 ASM_CLOBBERS_1, "out0"
|
||||
#define ASM_CLOBBERS_1 ASM_CLOBBERS_2, "out1"
|
||||
|
@ -35,7 +35,7 @@
|
||||
#ifdef __ASSUME_CLONE_THREAD_FLAGS
|
||||
# define FORK() \
|
||||
INLINE_SYSCALL (clone2, 6, CLONE_PARENT_SETTID | SIGCHLD, NULL, 0, \
|
||||
NULL, &pid, NULL)
|
||||
&pid, NULL, NULL)
|
||||
#endif
|
||||
|
||||
static void cancel_handler (void *arg);
|
||||
|
Loading…
Reference in New Issue
Block a user