This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Remove unused fork implementations
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: libc-alpha at sourceware dot org
- Cc: David Miller <davem at davemloft dot net>, Mike Frysinger <vapier at gentoo dot org>
- Date: Tue, 24 Apr 2012 20:04:07 +0000 (UTC)
- Subject: 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