about summary refs log tree commit diff
path: root/linuxthreads
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-02-20 22:23:34 +0000
committerUlrich Drepper <drepper@redhat.com>2003-02-20 22:23:34 +0000
commit0585697658a4f4afd4b9811b7a3f73ff820a20d8 (patch)
treed8b46217cefa61586a014dafb6bb4f87a09224c0 /linuxthreads
parenta592f998bb64e8760f9e67170341793cf70ada12 (diff)
downloadglibc-0585697658a4f4afd4b9811b7a3f73ff820a20d8.tar.gz
glibc-0585697658a4f4afd4b9811b7a3f73ff820a20d8.tar.xz
glibc-0585697658a4f4afd4b9811b7a3f73ff820a20d8.zip
Update.
2002-07-24  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/ioperm.c (init_iosys): Yield ENODEV
	on unknown systems.

2003-02-20  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* sysdeps/powerpc/powerpc32/atomicity.h: Remove compiler workaround.
	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_NEW_PRCTL_SYSCALL): Defined for ppc32 too.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fe_nomask.c: Use prctl
	if possible.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Avoid short
	interprocedure branches.
	* sysdeps/powerpc/soft-fp/Dist (sim-full.c, fenv_const.c): Move to...
	* sysdeps/powerpc/nofpu/Dist: ...here.
	* sysdeps/unix/sysv/linux/powerpc/Dist (fe_nomask.c): Move to...
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist: ...here.
	* sysdeps/unix/sysv/linux/s390/s390-64/Dist (kernel_stat.h): Delete.
	* sysdeps/unix/sysv/linux/sparc/Dist (bits/utmpx.h): Delete.
	* sysdeps/unix/sysv/linux/x86_64/Dist (bits/utmpx.h): Delete.
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog5
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S29
2 files changed, 17 insertions, 17 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index f05881dd82..8a7ba0eaa3 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,8 @@
+2003-02-20  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Avoid short
+	interprocedure branches.
+
 2003-02-19  Ulrich Drepper  <drepper@redhat.com>
 
 	* specific.c (pthread_key_delete_helper): Don't use GETMEM, we
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S b/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
index 5054d5f984..ee6254a950 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
+++ b/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
@@ -36,16 +36,15 @@ ENTRY (__vfork)
 	mtlr	9
 	lwz	10,__libc_pthread_functions@got(10)
 	lwz	10,0(10)
-	cmpwi	10,0
-	bne-	HIDDEN_JUMPTARGET(__fork)
 # else
 	.weak	pthread_create
-	lis	9,pthread_create@ha
-	la	9,pthread_create@l(9)
-	cmpwi	9,0
-	bne-	.Lhidden_fork
+	lis	10,pthread_create@ha
+	la	10,pthread_create@l(10)
 # endif
 
+	cmpwi	10,0
+	bne-	.Lhidden_fork
+
 	DO_CALL (SYS_ify (vfork));
 
 # ifdef __ASSUME_VFORK_SYSCALL
@@ -54,28 +53,24 @@ ENTRY (__vfork)
 	bnslr+
 	/* Check if vfork syscall is known at all.  */
 	cmpwi	r3,ENOSYS
-#  ifdef SHARED
-	bne	JUMPTARGET(__syscall_error)
-#  else
-	bne	.Lsyscall_error
-#  endif
+	bne-	.Lsyscall_error
 
 # endif
+
+.Lhidden_fork:
+	b	HIDDEN_JUMPTARGET(__fork)
+
 #endif
 
 #ifndef __ASSUME_VFORK_SYSCALL
 	/* If we don't have vfork, fork is close enough.  */
 
 	DO_CALL (SYS_ify (fork));
-	PSEUDO_RET
-#endif
+	bnslr+
 
-# ifndef SHARED
-.Lhidden_fork:
-	b	HIDDEN_JUMPTARGET(__fork)
 .Lsyscall_error:
 	b	JUMPTARGET(__syscall_error)
-# endif
+#endif
 
 PSEUDO_END (__vfork)
 libc_hidden_def (__vfork)