patches/glibc/linuxthreads-2.3.2/sysdep-cancel-arm-1.2-1.6.patch
changeset 336 4b0db42fc078
parent 335 f0d84f1d4c93
child 337 f083425c84e3
     1.1 --- a/patches/glibc/linuxthreads-2.3.2/sysdep-cancel-arm-1.2-1.6.patch	Wed Aug 15 16:18:35 2007 +0000
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,53 +0,0 @@
     1.4 -I haven't built glibc-2.3.2 for arm myself, but
     1.5 -http://sources.redhat.com/ml/bug-glibc/2003-05/msg00076.html and
     1.6 -http://www.linux.org.uk/pipermail/linux-arm/2003-November/006560.html
     1.7 -give me the distinct impression that you need the latest sysdep-cancel.h from
     1.8 -cvs.
     1.9 -
    1.10 -Retrieved with
    1.11 -
    1.12 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h.diff?cvsroot=glibc&r1=text&tr1=1.2&r2=text&tr2=1.6&f=u
    1.13 -
    1.14 -===================================================================
    1.15 -RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h,v
    1.16 -retrieving revision 1.2
    1.17 -retrieving revision 1.6
    1.18 -diff -u -r1.2 -r1.6
    1.19 ---- libc/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h	2003/01/12 09:14:25	1.2
    1.20 -+++ libc/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h	2003/06/06 17:31:40	1.6
    1.21 -@@ -24,6 +24,17 @@
    1.22 - 
    1.23 - #if !defined NOT_IN_libc || defined IS_IN_libpthread
    1.24 - 
    1.25 -+/* We push lr onto the stack, so we have to use ldmib instead of ldmia
    1.26 -+   to find the saved arguments.  */
    1.27 -+# ifdef PIC
    1.28 -+#  undef DOARGS_5
    1.29 -+#  undef DOARGS_6
    1.30 -+#  undef DOARGS_7
    1.31 -+#  define DOARGS_5 str r4, [sp, $-4]!; ldr r4, [sp, $8];
    1.32 -+#  define DOARGS_6 mov ip, sp; stmfd sp!, {r4, r5}; ldmib ip, {r4, r5};
    1.33 -+#  define DOARGS_7 mov ip, sp; stmfd sp!, {r4, r5, r6}; ldmib ip, {r4, r5, r6};
    1.34 -+# endif
    1.35 -+
    1.36 - # undef PSEUDO_RET
    1.37 - # define PSEUDO_RET						        \
    1.38 -     ldrcc pc, [sp], $4;						        \
    1.39 -@@ -34,7 +45,7 @@
    1.40 - # define PSEUDO(name, syscall_name, args)				\
    1.41 -   .section ".text";							\
    1.42 -     PSEUDO_PROLOGUE;							\
    1.43 --  ENTRY (name)								\
    1.44 -+  ENTRY (name);								\
    1.45 -     SINGLE_THREAD_P_INT;						\
    1.46 -     bne .Lpseudo_cancel;						\
    1.47 -     DO_CALL (syscall_name, args);					\
    1.48 -@@ -110,7 +121,7 @@
    1.49 -   ldr reg, 2b;								\
    1.50 - 3:									\
    1.51 -   add ip, pc, ip;							\
    1.52 --  ldr ip, [ip, lr];							\
    1.53 -+  ldr ip, [ip, reg];							\
    1.54 -   teq ip, #0;
    1.55 - #   define SINGLE_THREAD_P_INT						\
    1.56 -   str lr, [sp, $-4]!;							\