Update.
authorUlrich Drepper <drepper@redhat.com>
Fri, 9 Apr 2004 19:10:05 +0000 (19:10 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 9 Apr 2004 19:10:05 +0000 (19:10 +0000)
2004-04-09  Thorsten Kukuk  <kukuk@suse.de>

* sysdeps/s390/ffs.c: Don't add ffsl weak alias on s390x.

2004-04-09  Steven Munroe  <sjmunroe@us.ibm.com>

* sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c: New file.

ChangeLog
linuxthreads/ChangeLog
linuxthreads/sysdeps/powerpc/tls.h
sysdeps/s390/ffs.c

index 7ff7f96..64b03c3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2004-04-09  Thorsten Kukuk  <kukuk@suse.de>
+
+       * sysdeps/s390/ffs.c: Don't add ffsl weak alias on s390x.
+
+2004-04-09  Steven Munroe  <sjmunroe@us.ibm.com>
+
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c: New file.
+
 2004-04-09  Andreas Schwab  <schwab@suse.de>
 
        * sysdeps/unix/sysv/linux/m68k/sysdep.h (INTERNAL_SYSCALL): Add
index 69c0c63..c6060a5 100644 (file)
@@ -1,3 +1,11 @@
+2004-04-09  Steven Munroe  <sjmunroe@us.ibm.com>
+
+       * sysdeps/powerpc/tls.h (TLS_INIT_TP): Eliminate lvalue cast from
+       __thread_self assignment.
+       (THREAD_DTV): Replace __thread_register with __thread_self.
+       (INIT_THREAD_SELF): Eliminate lvalue cast from __thread_self
+       assignment.
+
 2004-04-08  Alexandre Oliva  <aoliva@redhat.com>
 
        * signals.c (pthread_sigmask): Don't ever block or mask
index 76104cd..f6eb48b 100644 (file)
@@ -92,19 +92,24 @@ typedef struct
 /* Return dtv of given thread descriptor.  */
 #  define GET_DTV(TCBP)        (((tcbhead_t *) (TCBP))[-1].dtv)
 
-/* The global register variable is declared in pt-machine.h with
-   the wrong type, but the compiler doesn't like us declaring another.  */
+/* We still need this define so that tcb-offsets.sym can override it and
+   use THREAD_SELF to generate MULTIPLE_THREADS_OFFSET.  */
 #  define __thread_register ((void *) __thread_self)
 
 /* Code to initially initialize the thread pointer.  This might need
    special attention since 'errno' is not yet available and if the
-   operation can cause a failure 'errno' must not be touched.  */
+   operation can cause a failure 'errno' must not be touched.
+   
+   The global register variable is declared in pt-machine.h with the 
+   wrong type, so we need some extra casts to get the desired result.  
+   This avoids a lvalue cast that gcc-3.4 does not like.  */
 # define TLS_INIT_TP(TCBP, SECONDCALL) \
-    (__thread_register = (void *) (TCBP) + TLS_TCB_OFFSET, NULL)
+    (__thread_self = (struct _pthread_descr_struct *) \
+       ((void *) (TCBP) + TLS_TCB_OFFSET), NULL)
 
 /* Return the address of the dtv for the current thread.  */
 #  define THREAD_DTV() \
-     (((tcbhead_t *) (__thread_register - TLS_TCB_OFFSET))[-1].dtv)
+     (((tcbhead_t *) ((void *) __thread_self - TLS_TCB_OFFSET))[-1].dtv)
 
 /* Return the thread descriptor for the current thread.  */
 #  undef THREAD_SELF
@@ -114,7 +119,7 @@ typedef struct
 
 #  undef INIT_THREAD_SELF
 #  define INIT_THREAD_SELF(DESCR, NR) \
-     (__thread_register = ((void *) (DESCR) \
+     (__thread_self = (struct _pthread_descr_struct *)((void *) (DESCR) \
                           + TLS_TCB_OFFSET + TLS_PRE_TCB_SIZE))
 
 /* Make sure we have the p_multiple_threads member in the thread structure.
index f987149..ed7fdc6 100644 (file)
@@ -63,6 +63,8 @@ __ffs (x)
 }
 
 weak_alias (__ffs, ffs)
+#if ULONG_MAX == UINT_MAX
 #undef ffsl
 weak_alias (__ffs, ffsl)
+#endif