about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--linuxthreads/ChangeLog8
-rw-r--r--linuxthreads/sysdeps/powerpc/tls.h17
-rw-r--r--sysdeps/s390/ffs.c2
4 files changed, 29 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 7ff7f96bab..64b03c3dd1 100644
--- 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
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 69c0c63161..c6060a5c51 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -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
diff --git a/linuxthreads/sysdeps/powerpc/tls.h b/linuxthreads/sysdeps/powerpc/tls.h
index 76104cd14c..f6eb48b434 100644
--- a/linuxthreads/sysdeps/powerpc/tls.h
+++ b/linuxthreads/sysdeps/powerpc/tls.h
@@ -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.
diff --git a/sysdeps/s390/ffs.c b/sysdeps/s390/ffs.c
index f987149a8a..ed7fdc682e 100644
--- a/sysdeps/s390/ffs.c
+++ b/sysdeps/s390/ffs.c
@@ -63,6 +63,8 @@ __ffs (x)
 }
 
 weak_alias (__ffs, ffs)
+#if ULONG_MAX == UINT_MAX
 #undef ffsl
 weak_alias (__ffs, ffsl)
+#endif