mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-13 00:30:07 +00:00
x86: Consolidate NPTL/non versions of clone
This commit is contained in:
parent
1b731c35e6
commit
941d7dfd24
@ -1,5 +1,11 @@
|
||||
2014-05-14 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* 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.
|
||||
|
||||
* sysdeps/i386/nptl/Implies: New file.
|
||||
* sysdeps/x86_64/nptl/Implies: New file.
|
||||
* nptl/sysdeps/unix/sysv/linux/x86/bits/pthreadtypes.h: Moved ...
|
||||
|
@ -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
|
@ -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
|
@ -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
|
||||
|
@ -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. */
|
||||
|
Loading…
Reference in New Issue
Block a user