[prev in list] [next in list] [prev in thread] [next in thread] 

List:       uclibc-cvs
Subject:    [git commit nptl_glibc_sync] Get new nptl building on SH4
From:       carmelo.amoroso () st ! com (Carmelo AMOROSO)
Date:       2010-02-18 8:18:51
Message-ID: 4B7CF7EB.9000809 () st ! com
[Download RAW message or body]

On 2/10/2010 3:24 PM, Khem Raj wrote:
> 
> commit: http://git.uclibc.org/uClibc/commit/?id=ed0915ba70d0ff6ed0a78f45d46822763a580737
>                 
> branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/nptl_glibc_sync
> 
> Signed-off-by: Khem Raj <raj.khem at gmail.com>

Hi Khem,
I have limited capabilities to contribute currently due to a healthy
issue at my shoulder, I'll ask some engineers in my team to do a lot of
tests on sh4.

Cheers,
Carmelo

> ---
> libc/sysdeps/linux/common/pause.c                  |    1 +
> libc/sysdeps/linux/sh/sysdep.h                     |   21 +++++++++++++++++++-
> .../nptl/sysdeps/unix/sysv/linux/Makefile.in       |    6 ++--
> .../nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S |    1 +
> .../nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h |    1 -
> .../unix/sysv/linux/sh/lowlevelrobustlock.S        |    1 +
> .../nptl/sysdeps/unix/sysv/linux/sh/not-cancel.h   |    1 -
> .../unix/sysv/linux/sh/pthread_cond_broadcast.S    |    1 +
> .../unix/sysv/linux/sh/pthread_cond_signal.S       |    1 +
> .../nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S |    1 +
> .../unix/sysv/linux/sh/pthread_rwlock_unlock.S     |    1 +
> libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S |    2 +-
> 12 files changed, 31 insertions(+), 7 deletions(-)
> delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/sh/not-cancel.h
> 
> diff --git a/libc/sysdeps/linux/common/pause.c b/libc/sysdeps/linux/common/pause.c
> index cd0ea4a..132ffa8 100644
> --- a/libc/sysdeps/linux/common/pause.c
> +++ b/libc/sysdeps/linux/common/pause.c
> @@ -37,3 +37,4 @@ weak_alias (__libc_pause, pause)
> #ifdef __UCLIBC_HAS_THREADS_NATIVE__
> LIBC_CANCEL_HANDLED ();		/* sigsuspend handles our cancellation.  */
> #endif
> +
> diff --git a/libc/sysdeps/linux/sh/sysdep.h b/libc/sysdeps/linux/sh/sysdep.h
> index 1d49055..bd62342 100644
> --- a/libc/sysdeps/linux/sh/sysdep.h
> +++ b/libc/sysdeps/linux/sh/sysdep.h
> @@ -273,5 +273,24 @@
> .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
> +
> diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.in \
> b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.in index faa8ea5..0b3b771 100644
> --- a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.in
> +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.in
> @@ -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
> 
> diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S \
> b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S index 6d40364..5428048 \
>                 100644
> --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
> +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
> @@ -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
> diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h \
> b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h index d7fada9..19ce7fe \
>                 100644
> --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h
> +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h
> @@ -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
> diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S \
> b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S index \
>                 dab1ae4..1e05a56 100644
> --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S
> +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S
> @@ -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
> index acf1a61..0000000
> --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/not-cancel.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include "../i386/not-cancel.h"
> diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S \
> b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S index \
>                 3825124..1242fc2 100644
> --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
> +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
> @@ -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
> diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S \
> b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S index \
>                 914a1ba..1c3bacb 100644
> --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
> +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
> @@ -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
> diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S \
> b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S index caebb93..a1477b3 \
>                 100644
> --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S
> +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S
> @@ -20,6 +20,7 @@
> #include <sysdep.h>
> #include <bits/kernel-features.h>
> #include <lowlevellock.h>
> +#include <tcb-offsets.h>
> #include "lowlevel-atomic.h"
> 
> 
> diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S \
> b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S index \
>                 239090b..bc6c6c2 100644
> --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S
> +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S
> @@ -20,6 +20,7 @@
> #include <lowlevellock.h>
> #include <lowlevelrwlock.h>
> #include <bits/kernel-features.h>
> +#include <tcb-offsets.h>
> #include "lowlevel-atomic.h"
> 
> 
> diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S \
> b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S index 5433eac..a45c09f 100644
> --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S
> +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S
> @@ -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)


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic