This is the mail archive of the libc-alpha@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]

Remove unused fork implementations


There are various implementations of fork under sysdeps/unix that are
unused: Linux architectures all use versions under
nptl/sysdeps/unix/sysv/linux and Hurd also has its own version.

I propose this patch to remove the unused implementations.  Tested
x86_64.  David, could you review the removal of the SPARC versions?
(I'd also encourage looking at sysdeps/unix/sparc to see if anything
else there is unused and should be removed.)  I'll remove the
corresponding unused ARM and MIPS files in ports; Mike, you'll
probably want to remove sysdeps/unix/sysv/linux/ia64/fork.S in ports
as unused as well.

2012-04-24  Joseph Myers  <joseph@codesourcery.com>

	* sysdeps/unix/fork.S: Remove file.
	* sysdeps/unix/i386/fork.S: Likewise.
	* sysdeps/unix/sparc/fork.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/fork.S: Likewise.

diff --git a/sysdeps/unix/fork.S b/sysdeps/unix/fork.S
deleted file mode 100644
index 3a8f15d..0000000
--- a/sysdeps/unix/fork.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1991,92,94,95,97,2002 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>
-
-/* This code works for at least m68k.  */
-
-SYSCALL__ (fork, 0)
-	/* R1 is now 0 for the parent and 1 for the child.  Decrement it to
-	   make it -1 (all bits set) for the parent, and 0 (no bits set)
-	   for the child.  Then AND it with R0, so the parent gets
-	   R0&-1==R0, and the child gets R0&0==0.  */
-	subl #1, r1
-	andl r1, r0
-	ret
-PSEUDO_END (__fork)
-libc_hidden_def (__fork)
-
-weak_alias (__fork, fork)
diff --git a/sysdeps/unix/i386/fork.S b/sysdeps/unix/i386/fork.S
deleted file mode 100644
index 1c17991..0000000
--- a/sysdeps/unix/i386/fork.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1991,92,94,95,97,2002 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>
-
-SYSCALL__ (fork, 0)
-	/* R1 is now 0 for the parent and 1 for the child.  Decrement it to
-	   make it -1 (all bits set) for the parent, and 0 (no bits set)
-	   for the child.  Then AND it with R0, so the parent gets
-	   R0&-1==R0, and the child gets R0&0==0.  */
-	decl r1
-	andl r1, r0
-	ret
-PSEUDO_END (__fork)
-libc_hidden_def (__fork)
-
-weak_alias (__fork, fork)
diff --git a/sysdeps/unix/sparc/fork.S b/sysdeps/unix/sparc/fork.S
deleted file mode 100644
index be07ff2..0000000
--- a/sysdeps/unix/sparc/fork.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1991, 92, 94, 95, 97, 99, 2002 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>
-
-SYSCALL__ (fork, 0)
-	/* %o1 is now 0 for the parent and 1 for the child.  Decrement it to
-	   make it -1 (all bits set) for the parent, and 0 (no bits set)
-	   for the child.  Then AND it with %o0, so the parent gets
-	   %o0&-1==pid, and the child gets %o0&0==0.  */
-	sub %o1, 1, %o1
-	retl
-	and %o0, %o1, %o0
-libc_hidden_def (__fork)
-
-weak_alias (__fork, fork)
diff --git a/sysdeps/unix/sysv/linux/sparc/fork.S b/sysdeps/unix/sysv/linux/sparc/fork.S
deleted file mode 100644
index daf09d9..0000000
--- a/sysdeps/unix/sysv/linux/sparc/fork.S
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1997, 1999, 2002 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, 1997.
-
-   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>
-
-PSEUDO (__libc_fork, fork, 0)
-	sub	%o1, 1, %o1
-	retl
-	 and	%o0, %o1, %o0
-PSEUDO_END (__libc_fork)
-
-weak_alias (__libc_fork, __fork)
-libc_hidden_def (__fork)
-weak_alias (__libc_fork, fork)

-- 
Joseph S. Myers
joseph@codesourcery.com


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