File powerpc-tabort-usage.patch of Package glibc

2015-08-25  Paul E. Murphy  <murphyp@linux.vnet.ibm.com>

	* sysdeps/powerpc/powerpc32/sysdep.h (ABORT_TRANSACTION): Use
	register other than r0 for tabort, it has special meaning.
	* sysdeps/powerpc/powerpc64/sysdep.h (ABORT_TRANSACTION): Likewise
	* sysdeps/unix.sysv/linux/powerpc/syscall.S (syscall): Abort
	transaction before starting syscall.

Index: glibc-2.22/sysdeps/powerpc/powerpc32/sysdep.h
===================================================================
--- glibc-2.22.orig/sysdeps/powerpc/powerpc32/sysdep.h
+++ glibc-2.22/sysdeps/powerpc/powerpc32/sysdep.h
@@ -95,8 +95,8 @@ GOT_LABEL:			;					      \
     lwz      0,TM_CAPABLE(2);	\
     cmpwi    0,0;		\
     beq	     1f;		\
-    li	     0,_ABORT_SYSCALL;	\
-    tabort.  0;			\
+    li       11,_ABORT_SYSCALL;	\
+    tabort.  11;		\
     .align 4;			\
 1:
 #else
Index: glibc-2.22/sysdeps/powerpc/powerpc64/sysdep.h
===================================================================
--- glibc-2.22.orig/sysdeps/powerpc/powerpc64/sysdep.h
+++ glibc-2.22/sysdeps/powerpc/powerpc64/sysdep.h
@@ -279,8 +279,8 @@ LT_LABELSUFFIX(name,_name_end): ; \
     lwz      0,TM_CAPABLE(13);	\
     cmpwi    0,0;		\
     beq	     1f;		\
-    li	     0,_ABORT_SYSCALL;	\
-    tabort.  0;			\
+    li       11,_ABORT_SYSCALL;	\
+    tabort.  11;		\
     .align 4;                   \
 1:
 #else
Index: glibc-2.22/sysdeps/unix/sysv/linux/powerpc/syscall.S
===================================================================
--- glibc-2.22.orig/sysdeps/unix/sysv/linux/powerpc/syscall.S
+++ glibc-2.22/sysdeps/unix/sysv/linux/powerpc/syscall.S
@@ -18,6 +18,7 @@
 #include <sysdep.h>
 
 ENTRY (syscall)
+	ABORT_TRANSACTION
 	mr   r0,r3
 	mr   r3,r4
 	mr   r4,r5
openSUSE Build Service is sponsored by