This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.19-517-gd936d37


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  d936d379eb1837c35e390b6293f15f75b634db6e (commit)
      from  9fa76613d0df2a23e2b979e2303b12d617d6729d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d936d379eb1837c35e390b6293f15f75b634db6e

commit d936d379eb1837c35e390b6293f15f75b634db6e
Author: Roland McGrath <roland@hack.frob.com>
Date:   Mon Jun 2 14:29:19 2014 -0700

    SH: Consolidate NPTL/non versions of vfork

diff --git a/ChangeLog b/ChangeLog
index 75cd049..ad31181 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2014-06-02  Roland McGrath  <roland@hack.frob.com>
+
+	* nptl/sysdeps/unix/sysv/linux/sh/vfork.S: Moved ...
+	* sysdeps/unix/sysv/linux/sh/vfork.S: ... here.
+	Label the code __libc_vfork rather than __vfork.
+	[!NOT_IN_libc] (vfork): Define as weak alias.
+	[!NOT_IN_libc] (__vfork): Define as strong alias, and libc_hidden_def.
+	* sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
+	* nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S: File removed.
+
 2014-06-02  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
 	* malloc/malloc.c (malloc_info): Fix format specifier for
diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S b/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S
deleted file mode 100644
index 1febd1f..0000000
--- a/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   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, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#define _ERRNO_H	1
-#include <bits/errno.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)
-	/* Save the PID value.  */
-	stc	gbr, r2
-	mov.w	.L2, r0
-	mov.l	@(r0,r2), r4
-	neg	r4, r1
-	mov.l	r1, @(r0,r2)
-
-	mov.w	.L1, r3
-	trapa	#0x10
-	mov     r0, r1
-
-	/* Restore the old PID value in the parent.  */
-	tst	r0, r0
-	bt/s	2f
-	 stc	gbr, r2
-	mov.w	.L2, r0
-	mov.l	r4, @(r0,r2)
-	mov	r1, r0
-2:
-	mov	#-12, r2
-	shad	r2, r1
-	not	r1, r1			// r1=0 means r0 = -1 to -4095
-	tst	r1, r1			// i.e. error in linux
-	bf	.Lpseudo_end
-	SYSCALL_ERROR_HANDLER
-.Lpseudo_end:
-	rts
-	 nop
-.L1:
-	.word	__NR_vfork
-.L2:
-	.word	PID - TLS_PRE_TCB_SIZE
-
-PSEUDO_END (__vfork)
-libc_hidden_def (__vfork)
-
-weak_alias (__vfork, vfork)
diff --git a/nptl/sysdeps/unix/sysv/linux/sh/vfork.S b/nptl/sysdeps/unix/sysv/linux/sh/vfork.S
deleted file mode 100644
index 2676858..0000000
--- a/nptl/sysdeps/unix/sysv/linux/sh/vfork.S
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright (C) 2004-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   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, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#define _ERRNO_H	1
-#include <bits/errno.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)
-	/* Save the PID value.  */
-	stc	gbr, r2
-	mov.w	.L2, r0
-	mov.l	@(r0,r2), r4
-	neg	r4, r1
-	tst	r1, r1
-	bf	1f
-	mov	#1, r1
-	rotr	r1
-1:
-	mov.l	r1, @(r0,r2)
-
-	mov.w	.L1, r3
-	trapa	#0x10
-	mov     r0, r1
-
-	/* Restore the old PID value in the parent.  */
-	tst	r0, r0
-	bt.s	2f
-	 stc	gbr, r2
-	mov.w	.L2, r0
-	mov.l	r4, @(r0,r2)
-	mov	r1, r0
-2:
-	mov	#-12, r2
-	shad	r2, r1
-	not	r1, r1			// r1=0 means r0 = -1 to -4095
-	tst	r1, r1			// i.e. error in linux
-	bf	.Lpseudo_end
-	SYSCALL_ERROR_HANDLER
-.Lpseudo_end:
-	rts
-	 nop
-.L1:
-	.word	__NR_vfork
-.L2:
-	.word	PID - TLS_PRE_TCB_SIZE
-	.align	2
-PSEUDO_END (__vfork)
-libc_hidden_def (__vfork)
-
-weak_alias (__vfork, vfork)
diff --git a/sysdeps/unix/sysv/linux/sh/pt-vfork.S b/sysdeps/unix/sysv/linux/sh/pt-vfork.S
new file mode 100644
index 0000000..65cc382
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/pt-vfork.S
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
diff --git a/sysdeps/unix/sysv/linux/sh/vfork.S b/sysdeps/unix/sysv/linux/sh/vfork.S
index 436e4fb..76326f5 100644
--- a/sysdeps/unix/sysv/linux/sh/vfork.S
+++ b/sysdeps/unix/sysv/linux/sh/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2014 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2014 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -18,53 +18,56 @@
 #include <sysdep.h>
 #define _ERRNO_H	1
 #include <bits/errno.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)
-
-#ifdef __NR_vfork
-	mov.w	.L3, r3
-	trapa	#0x10
-	mov     r0, r1
-	mov	#-12, r2
-	shad	r2, r1
-	not	r1, r1			// r1=0 means r0 = -1 to -4095
-	tst	r1, r1			// i.e. error in linux
+ENTRY (__libc_vfork)
+	/* Save the PID value.  */
+	stc	gbr, r2
+	mov.w	.L2, r0
+	mov.l	@(r0,r2), r4
+	neg	r4, r1
+	tst	r1, r1
 	bf	1f
-	mov.w	.L1, r1
-	cmp/eq	r1, r0
-	bt	2f
-	bra	.Lsyscall_error
-	 nop
-.L1:
-	.word	-ENOSYS
-.L3:	.word	__NR_vfork
+	mov	#1, r1
+	rotr	r1
 1:
-	rts
-	 nop
-2:
-#endif
+	mov.l	r1, @(r0,r2)
 
-	/* If we don't have vfork, fork is close enough.  */
-	mov	#+__NR_fork, r3
+	mov.w	.L1, r3
 	trapa	#0x10
 	mov     r0, r1
+
+	/* Restore the old PID value in the parent.  */
+	tst	r0, r0
+	bt.s	2f
+	 stc	gbr, r2
+	mov.w	.L2, r0
+	mov.l	r4, @(r0,r2)
+	mov	r1, r0
+2:
 	mov	#-12, r2
 	shad	r2, r1
 	not	r1, r1			// r1=0 means r0 = -1 to -4095
 	tst	r1, r1			// i.e. error in linux
 	bf	.Lpseudo_end
-.Lsyscall_error:
 	SYSCALL_ERROR_HANDLER
 .Lpseudo_end:
 	rts
 	 nop
+.L1:
+	.word	__NR_vfork
+.L2:
+	.word	PID - TLS_PRE_TCB_SIZE
+	.align	2
+PSEUDO_END (__libc_vfork)
 
-PSEUDO_END (__vfork)
+#if !NOT_IN_libc
+weak_alias (__libc_vfork, vfork)
+strong_alias (__libc_vfork, __vfork)
 libc_hidden_def (__vfork)
-
-weak_alias (__vfork, vfork)
+#endif

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                  |   10 ++++
 nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S |   65 --------------------------
 nptl/sysdeps/unix/sysv/linux/sh/vfork.S    |   70 ----------------------------
 sysdeps/unix/sysv/linux/sh/pt-vfork.S      |    1 +
 sysdeps/unix/sysv/linux/sh/vfork.S         |   61 +++++++++++++-----------
 5 files changed, 43 insertions(+), 164 deletions(-)
 delete mode 100644 nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S
 delete mode 100644 nptl/sysdeps/unix/sysv/linux/sh/vfork.S
 create mode 100644 sysdeps/unix/sysv/linux/sh/pt-vfork.S


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]