[roland/alpha] Alpha: Convert fork.c to arch-fork.h

Message ID 20140516202125.0B24A2C39FF@topped-with-meat.com
State Committed
Headers

Commit Message

Roland McGrath May 16, 2014, 8:21 p.m. UTC
  This should have no effect on the compiled code, but it is wholly untested.
Please verify that it indeed does not change the code.  Feel free to commit
it yourself if you want to, or I'll do it on your approval.
What I use to verify no code changes is:

	$ make -j... # build before applying patch
	$ mkdir =stock
	$ cp libc.so =stock/
	... apply the patch ...
	$ make -j... # build after applying patch
	$ diff -u -I '.*file format.*' <(objdump -rd =stock/libc.so) <(objdump -rd libc.so)	


Thanks,
Roland	


	* sysdeps/unix/sysv/linux/alpha/arch-fork.h: New file.
	* sysdeps/unix/sysv/linux/ia64/nptl/fork.c: File removed.
  

Comments

Richard Henderson May 17, 2014, 6:39 p.m. UTC | #1
On 05/16/2014 01:21 PM, Roland McGrath wrote:
> This should have no effect on the compiled code, but it is wholly untested.
> Please verify that it indeed does not change the code.  Feel free to commit
> it yourself if you want to, or I'll do it on your approval.

Thanks.  I'll commit it myself along with a patch to fix some
Alpha breakage due to the not-cancel.h change.  (I'll post that soon.)

I've not bothered to verify no code changes, merely that it works.  ;-)


r~
  

Patch

--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/arch-fork.h
@@ -0,0 +1,28 @@ 
+/* ARCH_FORK definition for Linux fork implementation.  Alpha version.
+   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 <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+
+#define ARCH_FORK()							\
+  INLINE_SYSCALL (clone, 5,						\
+		  CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD,	\
+		  NULL, NULL, &THREAD_SELF->tid, NULL)
--- a/sysdeps/unix/sysv/linux/ia64/nptl/fork.c
+++ /dev/null
@@ -1,30 +0,0 @@ 
-/* Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   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 <sched.h>
-#include <signal.h>
-#include <sysdep.h>
-#include <tls.h>
-
-
-#define ARCH_FORK() \
-  INLINE_SYSCALL (clone2, 6,						      \
-		  CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD,	      \
-		  NULL, 0, NULL, &THREAD_SELF->tid, NULL)
-
-#include <sysdeps/unix/sysv/linux/fork.c>