* sysdeps/unix/sysv/linux/powerpc/libc-start.c: Include <sysdep.h>.

This commit is contained in:
Ulrich Drepper 2007-05-26 20:13:27 +00:00
parent d8ff3792a8
commit 6df7ffad19
11 changed files with 27 additions and 31 deletions

View File

@ -1,3 +1,7 @@
2007-05-26 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/powerpc/libc-start.c: Include <sysdep.h>.
2007-05-25 Jakub Jelinek <jakub@redhat.com>
* io/bits/fcntl2.h (__open_2): Add nonnull attribute.

View File

@ -1,5 +1,17 @@
2007-05-26 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/sem_wait.c: Add missing break.
* sysdeps/unix/sysv/linux/sem_timedwait.c: Removed left-over
duplication of __sem_wait_cleanup.
* allocatestack.c: Revert last change.
* init.c: Likewise.
* sysdeps/i386/tls.h: Likewise.
* sysdeps/x86_64/tls.h: Likewise.
* descr.h [TLS_DTV_AT_TP] (struct pthread): Add private_futex field to
header structure.
* sysdeps/powerpc/tcb-offsets.sym: Add PRIVATE_FUTEX_OFFSET.
* sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier):
Add private field.
* sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.

View File

@ -376,9 +376,10 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
__pthread_multiple_threads = *__libc_multiple_threads_ptr = 1;
#endif
#ifdef THREAD_COPY_PRIVATE_FUTEX
#ifndef __ASSUME_PRIVATE_FUTEX
/* The thread must know when private futexes are supported. */
THREAD_COPY_PRIVATE_FUTEX (pd);
pd->header.private_futex = THREAD_GETMEM (THREAD_SELF,
header.private_futex);
#endif
#ifdef NEED_DL_SYSINFO

View File

@ -37,6 +37,7 @@
#endif
#define __need_res_state
#include <resolv.h>
#include <kernel-features.h>
#ifndef TCB_ALIGNMENT
# define TCB_ALIGNMENT sizeof (double)
@ -131,6 +132,9 @@ struct pthread
struct
{
int multiple_threads;
# ifndef __ASSUME_PRIVATE_FUTEX
int private_futex;
# endif
} header;
#endif

View File

@ -284,7 +284,7 @@ __pthread_initialize_minimal_internal (void)
res = INTERNAL_SYSCALL (futex, err, 3, &word,
FUTEX_WAKE | FUTEX_PRIVATE_FLAG, 1);
if (!INTERNAL_SYSCALL_ERROR_P (res, err))
THREAD_SET_PRIVATE_FUTEX (FUTEX_PRIVATE_FLAG);
pd->header.private_futex = FUTEX_PRIVATE_FLAG;
}
#endif

View File

@ -458,16 +458,6 @@ union user_desc_init
#define THREAD_GSCOPE_WAIT() \
GL(dl_wait_lookup_done) ()
#ifndef __ASSUME_PRIVATE_FUTEX
# define THREAD_SET_PRIVATE_FUTEX(value) \
THREAD_SETMEM (THREAD_SELF, header.private_futex, value)
# define THREAD_COPY_PRIVATE_FUTEX(descr) \
((descr)->header.private_futex \
= THREAD_GETMEM (THREAD_SELF, header.private_futex))
#endif
#endif /* __ASSEMBLER__ */
#endif /* tls.h */

View File

@ -15,3 +15,4 @@ MULTIPLE_THREADS_OFFSET thread_offsetof (header.multiple_threads)
PID thread_offsetof (pid)
TID thread_offsetof (tid)
POINTER_GUARD (offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
PRIVATE_FUTEX_OFFSET thread_offsetof (header.private_futex)

View File

@ -31,16 +31,6 @@
extern void __sem_wait_cleanup (void *arg) attribute_hidden;
void
attribute_hidden
__sem_wait_cleanup (void *arg)
{
struct new_sem *isem = (struct new_sem *) arg;
atomic_decrement (&isem->nwaiters);
}
int
sem_timedwait (sem_t *sem, const struct timespec *abstime)
{

View File

@ -65,6 +65,7 @@ __new_sem_wait (sem_t *sem)
{
__set_errno (-err);
err = -1;
break;
}
if (atomic_decrement_if_positive (&isem->value) > 0)

View File

@ -364,14 +364,6 @@ typedef struct
#define THREAD_GSCOPE_WAIT() \
GL(dl_wait_lookup_done) ()
#ifndef __ASSUME_PRIVATE_FUTEX
# define THREAD_SET_PRIVATE_FUTEX(value) \
THREAD_SETMEM (THREAD_SELF, header.private_futex, value)
# define THREAD_COPY_PRIVATE_FUTEX(descr) \
((descr)->header.private_futex \
= THREAD_GETMEM (THREAD_SELF, header.private_futex))
#endif
#endif /* __ASSEMBLER__ */
#endif /* tls.h */

View File

@ -20,6 +20,7 @@
#include <stdlib.h>
#include <unistd.h>
#include <ldsodefs.h>
#include <sysdep.h>
#include <bp-start.h>
#include <bp-sym.h>