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

[PATCH roland/nptl-mips] MIPS: Consolidate NPTL/non versions of vfork

Not tested at all.  It looks to me like MIPS calls don't use a PLT per se,
but always load from the GOT and then do a proper tail call via register.
So I think the generic pt-vfork.c is safe even without IFUNC, but you tell me.


2014-06-25  Roland McGrath  <>

	* sysdeps/unix/sysv/linux/mips/clone.S: Deconditionalize the code
	that was previously under [RESET_PID].
	* sysdeps/unix/sysv/linux/mips/nptl/clone.S: File removed.

diff --git a/sysdeps/unix/sysv/linux/mips/clone.S b/sysdeps/unix/sysv/linux/mips/clone.S
index d3fd80f..286a6b9 100644
--- a/sysdeps/unix/sysv/linux/mips/clone.S
+++ b/sysdeps/unix/sysv/linux/mips/clone.S
@@ -23,9 +23,7 @@
 #include <sysdep.h>
 #define _ERRNO_H	1
 #include <bits/errno.h>
-#ifdef RESET_PID
 #include <tls.h>
 #define CLONE_VM      0x00000100
 #define CLONE_THREAD  0x00010000
@@ -69,9 +67,7 @@ NESTED(__clone,4*SZREG,sp)
 	PTR_SUBU	a1,32		/* Reserve argument save space.  */
 	PTR_S		a0,0(a1)	/* Save function pointer.  */
 	PTR_S		a3,PTRSIZE(a1)	/* Save argument pointer.  */
-#ifdef RESET_PID
 	LONG_S		a2,(PTRSIZE*2)(a1)	/* Save clone flags.  */
 	move		a0,a2
@@ -134,13 +130,11 @@ L(thread_start):
 	/* The stackframe has been created on entry of clone().  */
-#ifdef RESET_PID
 	/* Check and see if we need to reset the PID.  */
 	LONG_L		a0,(PTRSIZE*2)(sp)
 	and		a1,a0,CLONE_THREAD
 	beqz		a1,L(restore_pid)
 	/* Restore the arg for user's function.  */
 	PTR_L		t9,0(sp)	/* Function pointer.  */
@@ -158,7 +152,6 @@ L(donepid):
 	jal		_exit
-#ifdef RESET_PID
 	and		a1,a0,CLONE_VM
 	li		v0,-1
@@ -170,7 +163,6 @@ L(gotpid):
 	INT_S		v0,PID_OFFSET(v1)
 	INT_S		v0,TID_OFFSET(v1)
 	b		L(donepid)
diff --git a/sysdeps/unix/sysv/linux/mips/nptl/clone.S b/sysdeps/unix/sysv/linux/mips/nptl/clone.S
deleted file mode 100644
index 80c265b..0000000
--- a/sysdeps/unix/sysv/linux/mips/nptl/clone.S
+++ /dev/null
@@ -1,2 +0,0 @@
-#define RESET_PID
-#include <sysdeps/unix/sysv/linux/mips/clone.S>

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