This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports 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]

ARM linuxthreads fix


I appear to have fat-fingered the cancellation wrappers when I was last
working on them.  This patch restores an arm-linux LinuxThreads
configuration.

-- 
Daniel Jacobowitz
CodeSourcery

2006-03-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* sysdeps/unix/sysv/linux/arm/linuxthreads/sysdep-cancel.h
	(PSEUDO): Inline correct versions of PSEUDO_RET_MOV and MAYBE_SAVE_LR.
	(PSEUDO_RET_MOV, MAYBE_SAVE_LR): Don't define.

Index: glibc/ports/sysdeps/unix/sysv/linux/arm/linuxthreads/sysdep-cancel.h
===================================================================
--- glibc.orig/ports/sysdeps/unix/sysv/linux/arm/linuxthreads/sysdep-cancel.h	2005-11-16 13:08:53.000000000 -0500
+++ glibc/ports/sysdeps/unix/sysv/linux/arm/linuxthreads/sysdep-cancel.h	2006-03-01 14:52:13.000000000 -0500
@@ -50,9 +50,10 @@
     bne .Lpseudo_cancel;						\
     DO_CALL (syscall_name, args);					\
     cmn r0, $4096;							\
-    PSEUDO_RET_MOV;							\
+    RETINSTR(cc, lr);							\
+    b PLTJMP(SYSCALL_ERROR);						\
   .Lpseudo_cancel:							\
-    MAYBE_SAVE_LR;							\
+    str lr, [sp, $-4]!;							\
     DOCARGS_##args;	/* save syscall args around CENABLE.  */	\
     CENABLE;								\
     mov ip, r0;		/* put mask in safe place.  */			\
@@ -108,11 +109,6 @@ extern int __local_multiple_threads attr
   ldr ip, =__local_multiple_threads;					\
   ldr ip, [ip];								\
   teq ip, #0;
-#   define MAYBE_SAVE_LR						\
-  str lr, [sp, $-4]!;
-#   define PSEUDO_RET_MOV						\
-  RETINSTR(cc, lr);							\
-  b PLTJMP(SYSCALL_ERROR)
 #   define PSEUDO_PROLOGUE
 #  else
 #   define SINGLE_THREAD_P						\
@@ -122,8 +118,6 @@ extern int __local_multiple_threads attr
   teq ip, #0;
 #   define PSEUDO_PROLOGUE						\
   1:  .word __local_multiple_threads - 2f - 8;
-#   define MAYBE_SAVE_LR	/* lr already saved */
-#   define PSEUDO_RET_MOV PSEUDO_RET
 #  endif
 # endif
 


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