]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 10 Mar 2004 23:14:28 +0000 (23:14 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 10 Mar 2004 23:14:28 +0000 (23:14 +0000)
2004-03-10  Ulrich Drepper  <drepper@redhat.com>

* posix/getopt.c (_): Don't define here for glibc.

ChangeLog
nptl/ChangeLog
nptl/sysdeps/powerpc/tcb-offsets.sym
nptl/sysdeps/unix/sysv/linux/ia64/pt-vfork.S
nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S [moved from nptl/sysdeps/unix/sysv/linux/powerpc/pt-vfork.S with 82% similarity]
nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S [new file with mode: 0644]
nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S [new file with mode: 0644]
nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S [new file with mode: 0644]
posix/getopt.c

index e07376681d0098267fc16575c9e76843c662ebff..e3b02c171ef98f756769e4f7360fce06eca3884b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2004-03-10  Ulrich Drepper  <drepper@redhat.com>
+
+       * posix/getopt.c (_): Don't define here for glibc.
+
 2004-03-10  Jakub Jelinek  <jakub@redhat.com>
 
        * include/libc-symbols.h [__ASSEMBLY__] (compat_text_section,
index 94d2273f926c3df27222f5b5cda93b9443d3a519..436a263a45dd6e27a7aef64f8272372e9331a332 100644 (file)
@@ -1,5 +1,15 @@
 2004-03-10  Jakub Jelinek  <jakub@redhat.com>
 
+       * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file.
+       * sysdeps/powerpc/tcb-offsets.sym: Add PID.
+
+       * sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use
+       a local register for saving old PID.  Negate PID in parent upon exit.
+
        * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
        tcb-offsets.h.
        (__vfork): Negate PID if non-zero and set to INT_MIN if zero
index d6b7560b8e3b0aec6c5548dfc0a814dda41851a0..fddd466f082acd6d60867ce472f564fac4ff6180 100644 (file)
@@ -11,3 +11,4 @@
 #if TLS_MULTIPLE_THREADS_IN_TCB
 MULTIPLE_THREADS_OFFSET                thread_offsetof (header.multiple_threads)
 #endif
+PID                            thread_offsetof (pid)
index f59227c695fc68b127ad86770ac39d5da6e129cb..49398d5c23d6d1e79f7bb682c9945eb6a4811fe8 100644 (file)
 ENTRY(__vfork)
        .prologue       // work around a GAS bug which triggers if
        .body           // first .prologue is not at the beginning of proc.
-       alloc r2=ar.pfs,0,1,2,0
+       alloc r2=ar.pfs,0,0,2,0
        adds r14=PID,r13
        ;; 
-       ld4 loc0=[r14]
+       ld4 r16=[r14]
        ;;
-       sub r15=0,loc0
+       sub r15=0,r16
        mov out0=CLONE_VM+CLONE_VFORK+SIGCHLD
        mov out1=0              /* Standard sp value.                   */
        ;;
        st4 [r14]=r15
        DO_CALL (SYS_ify (clone))
        cmp.eq p0,p7=0,r8
-       cmp.eq p6,p0=-1,r10
        adds r14=PID,r13
        ;;
-(p7)   st4 [r14]=loc0
+(p7)   ld4 r16=[r14]
+       cmp.eq p6,p0=-1,r10
+       ;;
+(p7)   sub r15=0,r16
+       ;;
+(p7)   st4 [r14]=r15
 (p6)   br.cond.spnt.few __syscall_error
        ret
 PSEUDO_END(__vfork)
similarity index 82%
rename from nptl/sysdeps/unix/sysv/linux/powerpc/pt-vfork.S
rename to nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S
index 46e33c07a15f679e978f0f15e67cc8dba3abdc7d..be38fc283a1f2da8971efcb71631e337686af707 100644 (file)
@@ -1,5 +1,6 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
@@ -20,6 +21,7 @@
 #define _ERRNO_H       1
 #include <bits/errno.h>
 #include <kernel-features.h>
+#include <tcb-offsets.h>
 
 /* Clone the calling process, but without copying the whole address space.
    The calling process is suspended until the new process exits or is
    and the process ID of the new process to the old process.  */
 
 ENTRY (__vfork)
-       DO_CALL (SYS_ify (vfork));
+       lwz     0,PID(2)
+       neg     0,0
+       stw     0,PID(2)
+
+       DO_CALL (SYS_ify (vfork))
+
+       cmpwi   1,3,0
+       beqlr-  1
+
+       lwz     0,PID(2)
+       neg     0,0
+       stw     0,PID(2)
+
        PSEUDO_RET
 
 PSEUDO_END (__vfork)
diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
new file mode 100644 (file)
index 0000000..6b15567
--- /dev/null
@@ -0,0 +1,57 @@
+/* Copyright (C) 2004 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <sysdep-cancel.h>
+#define _ERRNO_H       1
+#include <bits/errno.h>
+#include <kernel-features.h>
+#include <tcb-offsets.h>
+
+/* Clone the calling process, but without copying the whole address space.
+   The calling process is suspended until the new process exits or is
+   replaced by a call to `execve'.  Return -1 for errors, 0 to the new process,
+   and the process ID of the new process to the old process.  */
+
+ENTRY (__vfork)
+       lwz     0,PID(2)
+       cmpwi   0,0,0
+       neg     0,0
+       bne-    0,1f
+       lis     0,0x8000
+1:     stw     0,PID(2)
+
+       DO_CALL (SYS_ify (vfork))
+
+       cmpwi   1,3,0
+       beqlr-  1
+
+       lwz     0,PID(2)
+       /* Cannot use clrlwi. here, because cr0 needs to be preserved
+          until PSEUDO_RET.  */
+       clrlwi  4,0,1
+       cmpwi   1,4,0
+       beq-    1,1f
+       neg     4,0
+1:     stw     4,PID(2)
+
+       PSEUDO_RET
+
+PSEUDO_END (__vfork)
+
+weak_alias (__vfork, vfork)
diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S
new file mode 100644 (file)
index 0000000..ec7a2a1
--- /dev/null
@@ -0,0 +1,49 @@
+/* Copyright (C) 2004 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <sysdep-cancel.h>
+#define _ERRNO_H       1
+#include <bits/errno.h>
+#include <kernel-features.h>
+#include <tcb-offsets.h>
+
+/* Clone the calling process, but without copying the whole address space.
+   The calling process is suspended until the new process exits or is
+   replaced by a call to `execve'.  Return -1 for errors, 0 to the new process,
+   and the process ID of the new process to the old process.  */
+
+ENTRY (__vfork)
+       lwz     0,PID(13)
+       neg     0,0
+       stw     0,PID(13)
+
+       DO_CALL (SYS_ify (vfork))
+
+       cmpwi   1,3,0
+       beqlr-  1
+
+       lwz     0,PID(13)
+       neg     0,0
+       stw     0,PID(13)
+
+       PSEUDO_RET
+
+PSEUDO_END (__vfork)
+
+weak_alias (__vfork, vfork)
diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
new file mode 100644 (file)
index 0000000..4820eca
--- /dev/null
@@ -0,0 +1,55 @@
+/* Copyright (C) 2004 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <sysdep-cancel.h>
+#define _ERRNO_H       1
+#include <bits/errno.h>
+#include <kernel-features.h>
+#include <tcb-offsets.h>
+
+/* Clone the calling process, but without copying the whole address space.
+   The calling process is suspended until the new process exits or is
+   replaced by a call to `execve'.  Return -1 for errors, 0 to the new process,
+   and the process ID of the new process to the old process.  */
+
+ENTRY (__vfork)
+       lwz     0,PID(13)
+       cmpwi   0,0,0
+       neg     0,0
+       bne-    0,1f
+       lis     0,0x8000
+1:     stw     0,PID(13)
+
+       DO_CALL (SYS_ify (vfork))
+
+       cmpwi   1,3,0
+       beqlr-  1
+
+       lwz     0,PID(13)
+       clrlwi  4,0,1
+       cmpwi   1,4,0
+       beq-    1,1f
+       neg     4,0
+1:     stw     4,PID(13)
+
+       PSEUDO_RET
+
+PSEUDO_END (__vfork)
+
+weak_alias (__vfork, vfork)
index 4c383a4a4f706d5d6b330bf6a7b2e45be5f77fc4..9ad13a4a927321e5b786d297e2f760fa28ed5f20 100644 (file)
@@ -71,8 +71,8 @@
 # include <libintl.h>
 #else
 # include "gettext.h"
+# define _(msgid) gettext (msgid)
 #endif
-#define _(msgid) gettext (msgid)
 
 #if defined _LIBC && defined USE_IN_LIBIO
 # include <wchar.h>