OSDN Git Service

Get new nptl building on SH4
authorKhem Raj <raj.khem@gmail.com>
Thu, 18 Feb 2010 07:42:28 +0000 (23:42 -0800)
committerKhem Raj <raj.khem@gmail.com>
Thu, 18 Feb 2010 07:42:28 +0000 (23:42 -0800)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
12 files changed:
libc/sysdeps/linux/common/pause.c
libc/sysdeps/linux/sh/sysdep.h
libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.in
libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h
libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S
libpthread/nptl/sysdeps/unix/sysv/linux/sh/not-cancel.h [deleted file]
libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S
libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S
libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S

index cd0ea4a..132ffa8 100644 (file)
@@ -37,3 +37,4 @@ weak_alias (__libc_pause, pause)
 #ifdef __UCLIBC_HAS_THREADS_NATIVE__
 LIBC_CANCEL_HANDLED ();                /* sigsuspend handles our cancellation.  */
 #endif
+
index 1d49055..bd62342 100644 (file)
     .align 2;                          \
  1: .long SYS_ify (syscall_name);      \
  2:
-
 #endif /* __ASSEMBLER__ */
+
+/* Pointer mangling support.  */
+#if defined NOT_IN_libc && defined IS_IN_rtld
+/* We cannot use the thread descriptor because in ld.so we use setjmp
+   earlier than the descriptor is initialized.  Using a global variable
+   is too complicated here since we have no PC-relative addressing mode.  */
+#else
+# ifdef __ASSEMBLER__
+#  define PTR_MANGLE(reg, tmp) \
+     stc gbr,tmp; mov.l @(POINTER_GUARD,tmp),tmp; xor tmp,reg
+#  define PTR_MANGLE2(reg, tmp)        xor tmp,reg
+#  define PTR_DEMANGLE(reg, tmp)       PTR_MANGLE (reg, tmp)
+#  define PTR_DEMANGLE2(reg, tmp)      PTR_MANGLE2 (reg, tmp)
+# else
+#  define PTR_MANGLE(var) \
+     (var) = (void *) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
+#  define PTR_DEMANGLE(var)    PTR_MANGLE (var)
+# endif
+#endif
+
index faa8ea5..0b3b771 100644 (file)
@@ -12,8 +12,7 @@ libpthread_CSRC = pthread_attr_getaffinity.c                          \
                  pthread_yield.c sem_post.c sem_timedwait.c            \
                  pthread_sigqueue.c                                    \
                  sem_trywait.c sem_wait.c pt-fork.c                    \
-                 sigtimedwait.c sigwaitinfo.c sigwait.c pt-sleep.c     \
-                 lowlevelrobustlock.c
+                 sigtimedwait.c sigwaitinfo.c sigwait.c pt-sleep.c
 
 libpthread_SSRC = #ptw-close.S ptw-open.S ptw-waitid.S ptw-waidpid.S ptw-write.S
 
@@ -37,10 +36,11 @@ endif
 
 ifeq ($(TARGET_ARCH),arm)
 libc_SSRC := $(filter-out waitpid.S,$(libc_SSRC))
+libpthread_CSRC += lowlevelrobustlock.c
 endif
 
 ifeq ($(TARGET_ARCH),mips)
-libpthread_CSRC += lowlevellock.c
+libpthread_CSRC += lowlevellock.c lowlevelrobustlock.c
 libc_CSRC += libc-lowlevellock.c
 endif
 
index 6d40364..5428048 100644 (file)
@@ -21,6 +21,7 @@
 #include <pthread-errnos.h>
 #include <bits/kernel-features.h>
 #include <lowlevellock.h>
+#include <tcb-offsets.h>
 #include "lowlevel-atomic.h"
 
        .text
index d7fada9..19ce7fe 100644 (file)
@@ -27,7 +27,6 @@
 #include <bits/kernel-features.h>
 #endif
 
-#define SYS_futex              240
 #define FUTEX_WAIT             0
 #define FUTEX_WAKE             1
 #define FUTEX_CMP_REQUEUE      4
index dab1ae4..1e05a56 100644 (file)
@@ -22,6 +22,7 @@
 #include <lowlevellock.h>
 #include <lowlevelrobustlock.h>
 #include <bits/kernel-features.h>
+#include <tcb-offsets.h>
 #include "lowlevel-atomic.h"
 
        .text
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/not-cancel.h b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/not-cancel.h
deleted file mode 100644 (file)
index acf1a61..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include "../i386/not-cancel.h"
index 3825124..1242fc2 100644 (file)
@@ -22,6 +22,7 @@
 #include <bits/kernel-features.h>
 #include <pthread-pi-defines.h>
 #include <pthread-errnos.h>
+#include <tcb-offsets.h>
 #include "lowlevel-atomic.h"
 
        .text
index 914a1ba..1c3bacb 100644 (file)
@@ -21,6 +21,7 @@
 #include <lowlevelcond.h>
 #include <bits/kernel-features.h>
 #include <pthread-errnos.h>
+#include <tcb-offsets.h>
 #include "lowlevel-atomic.h"
 
        .text
index caebb93..a1477b3 100644 (file)
@@ -20,6 +20,7 @@
 #include <sysdep.h>
 #include <bits/kernel-features.h>
 #include <lowlevellock.h>
+#include <tcb-offsets.h>
 #include "lowlevel-atomic.h"
 
 
index 239090b..bc6c6c2 100644 (file)
@@ -20,6 +20,7 @@
 #include <lowlevellock.h>
 #include <lowlevelrwlock.h>
 #include <bits/kernel-features.h>
+#include <tcb-offsets.h>
 #include "lowlevel-atomic.h"
 
 
index 5433eac..a45c09f 100644 (file)
@@ -66,6 +66,6 @@ ENTRY (__vfork)
        .word   PID - TLS_PRE_TCB_SIZE
        .align  2
 PSEUDO_END (__vfork)
-libc_hidden_def (__vfork)
+hidden_def (vfork)
 
 weak_alias (__vfork, vfork)