This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[COMMITTED PATCH] x86: Consolidate NPTL/non versions of clone
- From: Roland McGrath <roland at hack dot frob dot com>
- To: "GNU C. Library" <libc-alpha at sourceware dot org>
- Date: Wed, 14 May 2014 10:17:55 -0700 (PDT)
- Subject: [COMMITTED PATCH] x86: Consolidate NPTL/non versions of clone
- Authentication-results: sourceware.org; auth=none
Verified on x86_64-linux-gnu and i686-linux-gnu that no libc.so code
changes.
Thanks,
Roland
* sysdeps/unix/sysv/linux/x86_64/clone.S: Deconditionalize the code
that was previously under [RESET_PID].
* sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
* nptl/sysdeps/unix/sysv/linux/x86_64/clone.S: File removed.
* nptl/sysdeps/unix/sysv/linux/i386/clone.S: File removed.
--- a/nptl/sysdeps/unix/sysv/linux/i386/clone.S
+++ /dev/null
@@ -1,9 +0,0 @@
-/* We want an #include_next, but we are the main source file.
- So, #include ourselves and in that incarnation we can use #include_next. */
-#ifndef INCLUDED_SELF
-# define INCLUDED_SELF
-# include <clone.S>
-#else
-# define RESET_PID
-# include_next <clone.S>
-#endif
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/clone.S
+++ /dev/null
@@ -1,9 +0,0 @@
-/* We want an #include_next, but we are the main source file.
- So, #include ourselves and in that incarnation we can use #include_next. */
-#ifndef INCLUDED_SELF
-# define INCLUDED_SELF
-# include <clone.S>
-#else
-# define RESET_PID
-# include_next <clone.S>
-#endif
--- a/sysdeps/unix/sysv/linux/i386/clone.S
+++ b/sysdeps/unix/sysv/linux/i386/clone.S
@@ -74,9 +74,6 @@ ENTRY (__clone)
movl %eax,8(%ecx)
/* Don't leak any information. */
movl $0,4(%ecx)
-#ifndef RESET_PID
- movl $0,(%ecx)
-#endif
/* Do the system call */
pushl %ebx
@@ -95,10 +92,8 @@ ENTRY (__clone)
cfi_rel_offset (edi, 0)
movl $SYS_ify(clone),%eax
-#ifdef RESET_PID
/* Remember the flag value. */
movl %ebx, (%ecx)
-#endif
/* End FDE now, because in the child the unwind info will be
wrong. */
@@ -121,11 +116,9 @@ L(thread_start):
cfi_undefined (eip);
/* Note: %esi is zero. */
movl %esi,%ebp /* terminate the stack frame */
-#ifdef RESET_PID
testl $CLONE_THREAD, %edi
je L(newpid)
L(haspid):
-#endif
call *%ebx
#ifdef PIC
call L(here)
@@ -137,7 +130,6 @@ L(here):
movl $SYS_ify(exit), %eax
ENTER_KERNEL
-#ifdef RESET_PID
.subsection 2
L(newpid):
testl $CLONE_VM, %edi
@@ -150,7 +142,6 @@ L(nomoregetpid):
movl %eax, %gs:TID
jmp L(haspid)
.previous
-#endif
cfi_endproc;
cfi_startproc
--- a/sysdeps/unix/sysv/linux/x86_64/clone.S
+++ b/sysdeps/unix/sysv/linux/x86_64/clone.S
@@ -92,7 +92,6 @@ L(thread_start):
the outermost frame obviously. */
xorl %ebp, %ebp
-#ifdef RESET_PID
testq $CLONE_THREAD, %rdi
jne 1f
testq $CLONE_VM, %rdi
@@ -103,7 +102,6 @@ L(thread_start):
2: movl %eax, %fs:PID
movl %eax, %fs:TID
1:
-#endif
/* Set up arguments for the function call. */
popq %rax /* Function to call. */