Author: schizo
Date: 2006-05-23 01:52:58 +0000 (Tue, 23 May 2006)
New Revision: 1516

Modified:
   glibc-package/branches/glibc-2.4/debian/changelog
   glibc-package/branches/glibc-2.4/debian/patches/glibc235-hppa-lt.diff
   glibc-package/branches/glibc-2.4/debian/patches/linuxthreads-sizefix.diff
Log:
Update linuxthreads tarball to 5/5 HEAD
    - Update linuxthreads-sizefix.diff.
    - Update glibc235-hppa-lt.diff.


Modified: glibc-package/branches/glibc-2.4/debian/changelog
===================================================================
--- glibc-package/branches/glibc-2.4/debian/changelog   2006-05-23 01:47:32 UTC 
(rev 1515)
+++ glibc-package/branches/glibc-2.4/debian/changelog   2006-05-23 01:52:58 UTC 
(rev 1516)
@@ -15,7 +15,8 @@
     - Remove glibc235-gcc4-elf.diff (merged upstream).
     - Remove siginfo_h.diff (merged upstream).
     - Remove everything to do with nscd_nischeck.
-    - Update linuxthreads-sizefix.diff for 2.4.
+    - Update linuxthreads-sizefix.diff.
+    - Update glibc235-hppa-lt.diff.
     - debian/shlibver: Bump up to 2.4-1.
     - Add any/local-bashisms.diff: fix invalid test operator (==)
       in run-iconv-test.sh

Modified: glibc-package/branches/glibc-2.4/debian/patches/glibc235-hppa-lt.diff
===================================================================
--- glibc-package/branches/glibc-2.4/debian/patches/glibc235-hppa-lt.diff       
2006-05-23 01:47:32 UTC (rev 1515)
+++ glibc-package/branches/glibc-2.4/debian/patches/glibc235-hppa-lt.diff       
2006-05-23 01:52:58 UTC (rev 1516)
@@ -238,188 +238,6 @@
  {
    return __pthread_compare_and_swap(ptr, oldval, newval, spinlock);
  }
---- libc-orig/linuxthreads/sysdeps/hppa/pspinlock.c    2002-08-26 
18:39:51.000000000 -0400
-+++ libc/linuxthreads/sysdeps/hppa/pspinlock.c 2004-08-15 14:22:02.000000000 
-0400
-@@ -24,13 +24,10 @@
- int
- __pthread_spin_lock (pthread_spinlock_t *lock)
- {
--  unsigned int val;
-+  volatile unsigned int *addr = __ldcw_align (lock);
- 
--  do
--    asm volatile ("ldcw %1,%0"
--                : "=r" (val), "=m" (*lock)
--                : "m" (*lock));
--  while (!val);
-+  while (__ldcw (addr) == 0)
-+    while (*addr == 0) ;
- 
-   return 0;
- }
-@@ -40,13 +37,9 @@
- int
- __pthread_spin_trylock (pthread_spinlock_t *lock)
- {
--  unsigned int val;
-+  volatile unsigned int *a = __ldcw_align (lock);
- 
--  asm volatile ("ldcw %1,%0"
--              : "=r" (val), "=m" (*lock)
--              : "m" (*lock));
--
--  return val ? 0 : EBUSY;
-+  return __ldcw (a) ? 0 : EBUSY;
- }
- weak_alias (__pthread_spin_trylock, pthread_spin_trylock)
- 
-@@ -54,7 +47,11 @@
- int
- __pthread_spin_unlock (pthread_spinlock_t *lock)
- {
--  *lock = 1;
-+  volatile unsigned int *a = __ldcw_align (lock);
-+  int tmp = 1;
-+  /* This should be a memory barrier to newer compilers */
-+  __asm__ __volatile__ ("stw,ma %1,0(%0)"
-+                        : : "r" (a), "r" (tmp) : "memory");           
-   return 0;
- }
- weak_alias (__pthread_spin_unlock, pthread_spin_unlock)
-@@ -66,7 +63,11 @@
-   /* We can ignore the `pshared' parameter.  Since we are busy-waiting
-      all processes which can access the memory location `lock' points
-      to can use the spinlock.  */
--  *lock = 1;
-+  volatile unsigned int *a = __ldcw_align (lock);
-+  int tmp = 1;
-+  /* This should be a memory barrier to newer compilers */
-+  __asm__ __volatile__ ("stw,ma %1,0(%0)"
-+                        : : "r" (a), "r" (tmp) : "memory");           
-   return 0;
- }
- weak_alias (__pthread_spin_init, pthread_spin_init)
---- libc-orig/linuxthreads/sysdeps/hppa/pt-machine.h   2003-07-31 
15:15:42.000000000 -0400
-+++ libc/linuxthreads/sysdeps/hppa/pt-machine.h        2004-08-23 
14:39:23.000000000 -0400
-@@ -22,41 +22,103 @@
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H   1
- 
-+#include <sys/types.h>
- #include <bits/initspin.h>
- 
- #ifndef PT_EI
- # define PT_EI extern inline __attribute__ ((always_inline))
- #endif
- 
--extern long int testandset (int *spinlock);
--extern int __compare_and_swap (long int *p, long int oldval, long int newval);
-+extern inline long int testandset (__atomic_lock_t *spinlock);
-+extern inline int __compare_and_swap (long int *p, long int oldval, long int 
newval);
-+extern inline int lock_held (__atomic_lock_t *spinlock); 
-+extern inline int __load_and_clear (__atomic_lock_t *spinlock);
- 
- /* Get some notion of the current stack.  Need not be exactly the top
-    of the stack, just something somewhere in the current frame.  */
- #define CURRENT_STACK_FRAME  stack_pointer
- register char * stack_pointer __asm__ ("%r30");
- 
-+/* Get/Set thread-specific pointer.  We have to call into the kernel to
-+ * modify it, but we can read it in user mode.  */
-+
-+#define THREAD_SELF __get_cr27()
-+
-+static inline struct _pthread_descr_struct * __get_cr27(void)
-+{
-+      long cr27;
-+      asm("mfctl %%cr27, %0" : "=r" (cr27) : );
-+      return (struct _pthread_descr_struct *) cr27;
-+}
-+
-+#define INIT_THREAD_SELF(descr, nr) __set_cr27(descr)
-+
-+static inline void __set_cr27(struct _pthread_descr_struct * cr27)
-+{
-+      asm(
-+              "ble    0xe0(%%sr2, %%r0)\n\t"
-+              "copy   %0, %%r26"
-+       : : "r" (cr27) : "r26" );
-+}
-+
-+/* We want the OS to assign stack addresses.  */
-+#define FLOATING_STACKS       1
-+#define ARCH_STACK_MAX_SIZE   8*1024*1024
- 
- /* The hppa only has one atomic read and modify memory operation,
-    load and clear, so hppa spinlocks must use zero to signify that
--   someone is holding the lock.  */
-+   someone is holding the lock.  The address used for the ldcw
-+   semaphore must be 16-byte aligned.  */
-+#define __ldcw(a) ({ \
-+  unsigned int __ret;                                                 \
-+  __asm__ __volatile__("ldcw 0(%1),%0"                                        
\
-+                      : "=r" (__ret) : "r" (a) : "memory");           \
-+  __ret;                                                              \
-+})
-+
-+/* Strongly ordered lock reset */
-+#define __lock_reset(lock_addr, tmp) ({                                       
        \
-+      __asm__ __volatile__ ("stw,ma %1,0(%0)"                                 
\
-+                              : : "r" (lock_addr), "r" (tmp) : "memory");     
\
-+    })
-+
-+/* Because malloc only guarantees 8-byte alignment for malloc'd data,
-+   and GCC only guarantees 8-byte alignment for stack locals, we can't
-+   be assured of 16-byte alignment for atomic lock data even if we
-+   specify "__attribute ((aligned(16)))" in the type declaration.  So,
-+   we use a struct containing an array of four ints for the atomic lock
-+   type and dynamically select the 16-byte aligned int from the array
-+   for the semaphore.  */
-+#define __PA_LDCW_ALIGNMENT 16
-+#define __ldcw_align(a) ({ \
-+  volatile unsigned int __ret = (unsigned int) a;                     \
-+  if ((__ret & ~(__PA_LDCW_ALIGNMENT - 1)) < (unsigned int) a)                
\
-+    __ret = (__ret & ~(__PA_LDCW_ALIGNMENT - 1)) + __PA_LDCW_ALIGNMENT; \
-+  (unsigned int *) __ret;                                             \
-+})
- 
--#define xstr(s) str(s)
--#define str(s) #s
- /* Spinlock implementation; required.  */
--PT_EI long int
--testandset (int *spinlock)
-+PT_EI int
-+__load_and_clear (__atomic_lock_t *spinlock)
- {
--  int ret;
-+  volatile unsigned int *a = __ldcw_align (spinlock);
- 
--  __asm__ __volatile__(
--       "ldcw 0(%2),%0"
--       : "=r"(ret), "=m"(*spinlock)
--       : "r"(spinlock));
-+  return __ldcw (a);
-+}
- 
--  return ret == 0;
-+/* Emulate testandset */
-+PT_EI long int
-+testandset (__atomic_lock_t *spinlock)
-+{
-+  return (__load_and_clear(spinlock) == 0);
- }
--#undef str
--#undef xstr
- 
-+PT_EI int
-+lock_held (__atomic_lock_t *spinlock)
-+{
-+  volatile unsigned int *a = __ldcw_align (spinlock);
-+
-+  return *a == 0;
-+}
-+              
- #endif /* pt-machine.h */
 --- libc-orig/linuxthreads/sysdeps/pthread/bits/initspin.h     2002-08-26 
18:39:44.000000000 -0400
 +++ libc/linuxthreads/sysdeps/pthread/bits/initspin.h  2004-02-23 
09:36:18.000000000 -0500
 @@ -23,6 +23,7 @@
@@ -505,37 +323,6 @@
      PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, PTHREAD_PROCESS_PRIVATE }
  #endif
  
---- libc-orig/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h        
2002-08-26 18:39:55.000000000 -0400
-+++ libc/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h     
2004-02-23 09:35:37.000000000 -0500
-@@ -19,9 +19,23 @@
- 
- /* Initial value of a spinlock.  PA-RISC only implements atomic load
-    and clear so this must be non-zero. */
--#define __LT_SPINLOCK_INIT 1
-+#define __LT_SPINLOCK_INIT ((__atomic_lock_t) { { 1, 1, 1, 1 } })
-+
-+/* Initialize global spinlocks without cast, generally macro wrapped */
-+#define __LT_SPINLOCK_ALT_INIT { { 1, 1, 1, 1 } }
-+
-+/* Macros for lock initializers, not using the above definition.
-+   The above definition is not used in the case that static initializers
-+   use this value. */
-+#define __LOCK_ALT_INITIALIZER { __LT_SPINLOCK_ALT_INIT, 0 }
-+
-+/* Used to initialize _pthread_fastlock's in non-static case */
-+#define __LOCK_INITIALIZER ((struct _pthread_fastlock){ __LT_SPINLOCK_INIT, 0 
})
-+
-+/* Used in pthread_atomic initialization */
-+#define __ATOMIC_INITIALIZER { 0, __LT_SPINLOCK_ALT_INIT }
-+
-+/* Tell the rest of the code that the initializer is non-zero without
-+   explaining it's internal structure */
-+#define __LT_INITIALIZER_NOT_ZERO
- 
--/* Macros for lock initializers, using the above definition. */
--#define __LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT }
--#define __ALT_LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT }
--#define __ATOMIC_INITIALIZER { 0, __LT_SPINLOCK_INIT }
 --- libc-orig/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/pthreadtypes.h    
1969-12-31 19:00:00.000000000 -0500
 +++ libc/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/pthreadtypes.h 
2003-12-08 21:25:00.000000000 -0500
 @@ -0,0 +1,160 @@
@@ -699,210 +486,3 @@
 +typedef unsigned long int pthread_t;
 +
 +#endif        /* bits/pthreadtypes.h */
---- libc-orig/linuxthreads/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h        
2003-10-10 21:28:08.000000000 -0400
-+++ libc/linuxthreads/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h     
2004-09-22 20:05:32.000000000 -0400
-@@ -29,61 +29,109 @@
- #  define NO_ERROR -0x1000
- # endif
- 
-+/* The syscall cancellation mechanism requires userspace
-+   assistance, the following code does roughly this:
-+
-+      do arguments (read arg5 and arg6 to registers)
-+      setup frame
-+      
-+      check if there are threads, yes jump to pseudo_cancel
-+      
-+      unthreaded:
-+              syscall
-+              check syscall return (jump to pre_end)
-+              set errno
-+              set return to -1
-+              (jump to pre_end)
-+              
-+      pseudo_cancel:
-+              cenable
-+              syscall
-+              cdisable
-+              check syscall return (jump to pre_end)
-+              set errno
-+              set return to -1
-+              
-+      pre_end
-+              restore stack
-+      
-+      It is expected that 'ret' and 'END' macros will
-+      append an 'undo arguments' and 'return' to the 
-+      this PSEUDO macro. */
-+   
- # undef PSEUDO
- # define PSEUDO(name, syscall_name, args)                             \
--  ENTRY (name)                                                                
\
--    SINGLE_THREAD_P                                   ASM_LINE_SEP    \
--    cmpib,<> 0,%ret0,Lpseudo_cancel                   ASM_LINE_SEP    \
--    nop                                                       ASM_LINE_SEP    
\
--    DO_CALL(syscall_name, args)                               ASM_LINE_SEP    
\
--    /* DONE! */                                               ASM_LINE_SEP    
\
--    bv 0(2)                                           ASM_LINE_SEP    \
--    nop                                                       ASM_LINE_SEP    
\
--  Lpseudo_cancel:                                     ASM_LINE_SEP    \
--    /* store return ptr */                            ASM_LINE_SEP    \
--    stw %rp, -20(%sr0,%sp)                            ASM_LINE_SEP    \
--    /* save syscall args */                           ASM_LINE_SEP    \
--    PUSHARGS_##args /* MACRO */                               ASM_LINE_SEP    
\
--    STW_PIC                                           ASM_LINE_SEP    \
--    CENABLE /* FUNC CALL */                           ASM_LINE_SEP    \
--    ldo 64(%sp), %sp                                  ASM_LINE_SEP    \
--    ldo -64(%sp), %sp                                 ASM_LINE_SEP    \
--    LDW_PIC                                           ASM_LINE_SEP    \
--    /* restore syscall args */                                ASM_LINE_SEP    
\
--    POPARGS_##args                                    ASM_LINE_SEP    \
--    /* save r4 in arg0 stack slot */                  ASM_LINE_SEP    \
--    stw %r4, -36(%sr0,%sp)                            ASM_LINE_SEP    \
--    /* save mask from cenable */                      ASM_LINE_SEP    \
--    copy %ret0, %r4                                   ASM_LINE_SEP    \
--    ble 0x100(%sr2,%r0)                                       ASM_LINE_SEP    
\
--    ldi SYS_ify (syscall_name), %r20                  ASM_LINE_SEP    \
--    LDW_PIC                                           ASM_LINE_SEP    \
--    /* pass mask as arg0 to cdisable */                       ASM_LINE_SEP    
\
--    copy %r4, %r26                                    ASM_LINE_SEP    \
--    copy %ret0, %r4                                   ASM_LINE_SEP    \
--    CDISABLE                                          ASM_LINE_SEP    \
--    ldo 64(%sp), %sp                                  ASM_LINE_SEP    \
--    ldo -64(%sp), %sp                                 ASM_LINE_SEP    \
--    LDW_PIC                                           ASM_LINE_SEP    \
--    /* compare error */                                       ASM_LINE_SEP    
\
--    ldi NO_ERROR,%r1                                  ASM_LINE_SEP    \
--    /* branch if no error */                          ASM_LINE_SEP    \
--    cmpb,>>=,n %r1,%r4,Lpre_end                               ASM_LINE_SEP    
\
--    nop                                                       ASM_LINE_SEP    
\
--    SYSCALL_ERROR_HANDLER                             ASM_LINE_SEP    \
--    ldo 64(%sp), %sp                                  ASM_LINE_SEP    \
--    ldo -64(%sp), %sp                                 ASM_LINE_SEP    \
--    /* No need to LDW_PIC */                          ASM_LINE_SEP    \
--    /* make syscall res value positive */             ASM_LINE_SEP    \
--    sub %r0, %r4, %r4                                 ASM_LINE_SEP    \
--    /* store into errno location */                   ASM_LINE_SEP    \
--    stw %r4, 0(%sr0,%ret0)                            ASM_LINE_SEP    \
--    /* return -1 */                                   ASM_LINE_SEP    \
--    ldo -1(%r0), %ret0                                        ASM_LINE_SEP    
\
--  Lpre_end:                                           ASM_LINE_SEP    \
--    ldw -20(%sr0,%sp), %rp                                    ASM_LINE_SEP    
\
--    /* No need to LDW_PIC */                          ASM_LINE_SEP    \
--    ldw -36(%sr0,%sp), %r4                            ASM_LINE_SEP
-+      ENTRY (name)                                                    \
-+      DOARGS_##args                                   ASM_LINE_SEP    \
-+      copy TREG, %r1                                  ASM_LINE_SEP    \
-+      copy %sp, TREG                                  ASM_LINE_SEP    \
-+      stwm %r1, 64(%sp)                               ASM_LINE_SEP    \
-+      stw %rp, -20(%sp)                               ASM_LINE_SEP    \
-+      stw TREG, -4(%sp)                               ASM_LINE_SEP    \
-+      /* Done setting up frame, continue... */        ASM_LINE_SEP    \
-+      SINGLE_THREAD_P                                 ASM_LINE_SEP    \
-+      cmpib,<>,n 0,%ret0,L(pseudo_cancel)             ASM_LINE_SEP    \
-+L(unthreaded):                                                ASM_LINE_SEP    
\
-+      /* Save r19 */                                  ASM_LINE_SEP    \
-+      SAVE_PIC(TREG)                                  ASM_LINE_SEP    \
-+      /* Do syscall, delay loads # */                 ASM_LINE_SEP    \
-+      ble  0x100(%sr2,%r0)                            ASM_LINE_SEP    \
-+      ldi SYS_ify (syscall_name), %r20 /* delay */    ASM_LINE_SEP    \
-+      ldi NO_ERROR,%r1                                ASM_LINE_SEP    \
-+      cmpb,>>=,n %r1,%ret0,L(pre_end)                 ASM_LINE_SEP    \
-+      /* Restore r19 from TREG */                     ASM_LINE_SEP    \
-+      LOAD_PIC(TREG) /* delay */                      ASM_LINE_SEP    \
-+      SYSCALL_ERROR_HANDLER                           ASM_LINE_SEP    \
-+      /* Use TREG for temp storage */                 ASM_LINE_SEP    \
-+      copy %ret0, TREG /* delay */                    ASM_LINE_SEP    \
-+      /* OPTIMIZE: Don't reload r19 */                ASM_LINE_SEP    \
-+      /* do a -1*syscall_ret0 */                      ASM_LINE_SEP    \
-+      sub %r0, TREG, TREG                             ASM_LINE_SEP    \
-+      /* Store into errno location */                 ASM_LINE_SEP    \
-+      stw TREG, 0(%sr0,%ret0)                         ASM_LINE_SEP    \
-+      b L(pre_end)                                    ASM_LINE_SEP    \
-+      /* return -1 as error */                        ASM_LINE_SEP    \
-+      ldo -1(%r0), %ret0 /* delay */                  ASM_LINE_SEP    \
-+L(pseudo_cancel):                                     ASM_LINE_SEP    \
-+      PUSHARGS_##args /* Save args */                 ASM_LINE_SEP    \
-+      /* Save r19 into TREG */                        ASM_LINE_SEP    \
-+      CENABLE /* FUNC CALL */                         ASM_LINE_SEP    \
-+      SAVE_PIC(TREG) /* delay */                      ASM_LINE_SEP    \
-+      /* restore syscall args */                      ASM_LINE_SEP    \
-+      POPARGS_##args                                  ASM_LINE_SEP    \
-+      /* save mask from cenable (use stub rp slot) */ ASM_LINE_SEP    \
-+      stw %ret0, -24(%sp)                             ASM_LINE_SEP    \
-+      /* ... SYSCALL ... */                           ASM_LINE_SEP    \
-+      ble 0x100(%sr2,%r0)                             ASM_LINE_SEP    \
-+      ldi SYS_ify (syscall_name), %r20 /* delay */    ASM_LINE_SEP    \
-+      /* ............... */                           ASM_LINE_SEP    \
-+      LOAD_PIC(TREG)                                  ASM_LINE_SEP    \
-+      /* pass mask as arg0 to cdisable */             ASM_LINE_SEP    \
-+      ldw -24(%sp), %r26                              ASM_LINE_SEP    \
-+      CDISABLE                                        ASM_LINE_SEP    \
-+      stw %ret0, -24(%sp) /* delay */                 ASM_LINE_SEP    \
-+      /* Restore syscall return */                    ASM_LINE_SEP    \
-+      ldw -24(%sp), %ret0                             ASM_LINE_SEP    \
-+      /* compare error */                             ASM_LINE_SEP    \
-+      ldi NO_ERROR,%r1                                ASM_LINE_SEP    \
-+      /* branch if no error */                        ASM_LINE_SEP    \
-+      cmpb,>>=,n %r1,%ret0,L(pre_end)                 ASM_LINE_SEP    \
-+      LOAD_PIC(TREG)  /* cond. nullify */             ASM_LINE_SEP    \
-+      copy %ret0, TREG /* save syscall return */      ASM_LINE_SEP    \
-+      SYSCALL_ERROR_HANDLER                           ASM_LINE_SEP    \
-+      /* make syscall res value positive */           ASM_LINE_SEP    \
-+      sub %r0, TREG, TREG     /* delay */             ASM_LINE_SEP    \
-+      /* No need to LOAD_PIC */                       ASM_LINE_SEP    \
-+      /* store into errno location */                 ASM_LINE_SEP    \
-+      stw TREG, 0(%sr0,%ret0)                         ASM_LINE_SEP    \
-+      /* return -1 */                                 ASM_LINE_SEP    \
-+      ldo -1(%r0), %ret0                              ASM_LINE_SEP    \
-+L(pre_end):                                           ASM_LINE_SEP    \
-+      /* Restore rp before exit */                    ASM_LINE_SEP    \
-+      ldw -84(%sr0,%sp), %rp                          ASM_LINE_SEP    \
-+      /* Undo frame */                                ASM_LINE_SEP    \
-+      ldwm -64(%sp),TREG                              ASM_LINE_SEP    \
-+      /* No need to LOAD_PIC */                       ASM_LINE_SEP
- 
- /* Save arguments into our frame */
- # define PUSHARGS_0   /* nothing to do */
-@@ -91,8 +139,8 @@
- # define PUSHARGS_2   PUSHARGS_1 stw %r25, -40(%sr0,%sp)      ASM_LINE_SEP
- # define PUSHARGS_3   PUSHARGS_2 stw %r24, -44(%sr0,%sp)      ASM_LINE_SEP
- # define PUSHARGS_4   PUSHARGS_3 stw %r23, -48(%sr0,%sp)      ASM_LINE_SEP
--# define PUSHARGS_5   PUSHARGS_4 /* Args are on the stack... */
--# define PUSHARGS_6   PUSHARGS_5
-+# define PUSHARGS_5   PUSHARGS_4 stw %r22, -52(%sr0,%sp)      ASM_LINE_SEP 
-+# define PUSHARGS_6   PUSHARGS_5 stw %r21, -56(%sr0,%sp)      ASM_LINE_SEP
- 
- /* Bring them back from the stack */
- # define POPARGS_0    /* nothing to do */
-@@ -101,7 +149,7 @@
- # define POPARGS_3    POPARGS_2 ldw -44(%sr0,%sp), %r24       ASM_LINE_SEP
- # define POPARGS_4    POPARGS_3 ldw -48(%sr0,%sp), %r23       ASM_LINE_SEP
- # define POPARGS_5    POPARGS_4 ldw -52(%sr0,%sp), %r22       ASM_LINE_SEP
--# define POPARGS_6    POPARGS_5 ldw -54(%sr0,%sp), %r21       ASM_LINE_SEP
-+# define POPARGS_6    POPARGS_5 ldw -56(%sr0,%sp), %r21       ASM_LINE_SEP
- 
- # ifdef IS_IN_libpthread
- #  ifdef PIC
-@@ -163,10 +211,10 @@
- /* This ALT version requires newer kernel support */
- #  define SINGLE_THREAD_P_MFCTL                                               
\
-       mfctl %cr27, %ret0                                      ASM_LINE_SEP    
\
--      cmpib,= NO_THREAD_CR27,%ret0,Lstp                       ASM_LINE_SEP    
\
-+      cmpib,= NO_THREAD_CR27,%ret0,L(stp)                     ASM_LINE_SEP    
\
-       nop                                                     ASM_LINE_SEP    
\
-       ldw MULTIPLE_THREADS_OFFSET(%sr0,%ret0),%ret0           ASM_LINE_SEP    
\
-- Lstp:                                                                
ASM_LINE_SEP
-+L(stp):                                                               
ASM_LINE_SEP
- #  ifdef PIC
- /* Slower version uses GOT to get value of __local_multiple_threads */
- #   define SINGLE_THREAD_P                                                    
\
-@@ -174,7 +222,7 @@
-       ldw RT%__local_multiple_threads(%sr0,%r1), %ret0        ASM_LINE_SEP    
\
-       ldw 0(%sr0,%ret0), %ret0                                ASM_LINE_SEP
- #  else
--  /* Slow non-pic version using DP */
-+/* Slow non-pic version using DP */
- #   define SINGLE_THREAD_P                                                    
        \
-       addil LR%__local_multiple_threads-$global$,%r27                 
ASM_LINE_SEP    \
-       ldw RR%__local_multiple_threads-$global$(%sr0,%r1),%ret0        
ASM_LINE_SEP

Modified: 
glibc-package/branches/glibc-2.4/debian/patches/linuxthreads-sizefix.diff
===================================================================
--- glibc-package/branches/glibc-2.4/debian/patches/linuxthreads-sizefix.diff   
2006-05-23 01:47:32 UTC (rev 1515)
+++ glibc-package/branches/glibc-2.4/debian/patches/linuxthreads-sizefix.diff   
2006-05-23 01:52:58 UTC (rev 1516)
@@ -188,26 +188,6 @@
  
  /* Alignment requirements for the TCB.  */
  #  define TLS_TCB_ALIGN __alignof__ (struct _pthread_descr_struct)
-Index: glibc-2.4/linuxthreads/sysdeps/ia64/tls.h
-===================================================================
---- glibc-2.4.orig/linuxthreads/sysdeps/ia64/tls.h     2005-01-09 
15:01:13.000000000 -0500
-+++ glibc-2.4/linuxthreads/sysdeps/ia64/tls.h  2006-03-11 01:00:38.000000000 
-0500
-@@ -65,7 +65,14 @@
- #  define TLS_TCB_SIZE sizeof (tcbhead_t)
- 
- /* This is the size we need before TCB.  */
--#  define TLS_PRE_TCB_SIZE sizeof (struct _pthread_descr_struct)
-+#  ifndef IS_IN_rtld
-+#   define TLS_PRE_TCB_SIZE sizeof (struct _pthread_descr_struct)
-+#  else
-+#   include <nptl-struct-pthread.h>
-+#   define TLS_PRE_TCB_SIZE \
-+  (sizeof (struct _pthread_descr_struct) > NPTL_STRUCT_PTHREAD_SIZE   \
-+   ? sizeof (struct _pthread_descr_struct) : NPTL_STRUCT_PTHREAD_SIZE)
-+#  endif
- 
- /* Alignment requirements for the TCB.  */
- #  define TLS_TCB_ALIGN __alignof__ (struct _pthread_descr_struct)
 Index: glibc-2.4/linuxthreads/sysdeps/powerpc/tls.h
 ===================================================================
 --- glibc-2.4.orig/linuxthreads/sysdeps/powerpc/tls.h  2005-01-09 
15:01:14.000000000 -0500


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to