mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
* sysdeps/unix/sysv/linux/powerpc/libc-start.c: Include <sysdep.h>.
This commit is contained in:
parent
d8ff3792a8
commit
6df7ffad19
@ -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>
|
2007-05-25 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* io/bits/fcntl2.h (__open_2): Add nonnull attribute.
|
* io/bits/fcntl2.h (__open_2): Add nonnull attribute.
|
||||||
|
@ -1,5 +1,17 @@
|
|||||||
2007-05-26 Ulrich Drepper <drepper@redhat.com>
|
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):
|
* sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier):
|
||||||
Add private field.
|
Add private field.
|
||||||
* sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.
|
* sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.
|
||||||
|
@ -376,9 +376,10 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
|
|||||||
__pthread_multiple_threads = *__libc_multiple_threads_ptr = 1;
|
__pthread_multiple_threads = *__libc_multiple_threads_ptr = 1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef THREAD_COPY_PRIVATE_FUTEX
|
#ifndef __ASSUME_PRIVATE_FUTEX
|
||||||
/* The thread must know when private futexes are supported. */
|
/* 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
|
#endif
|
||||||
|
|
||||||
#ifdef NEED_DL_SYSINFO
|
#ifdef NEED_DL_SYSINFO
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#define __need_res_state
|
#define __need_res_state
|
||||||
#include <resolv.h>
|
#include <resolv.h>
|
||||||
|
#include <kernel-features.h>
|
||||||
|
|
||||||
#ifndef TCB_ALIGNMENT
|
#ifndef TCB_ALIGNMENT
|
||||||
# define TCB_ALIGNMENT sizeof (double)
|
# define TCB_ALIGNMENT sizeof (double)
|
||||||
@ -131,6 +132,9 @@ struct pthread
|
|||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
int multiple_threads;
|
int multiple_threads;
|
||||||
|
# ifndef __ASSUME_PRIVATE_FUTEX
|
||||||
|
int private_futex;
|
||||||
|
# endif
|
||||||
} header;
|
} header;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -284,7 +284,7 @@ __pthread_initialize_minimal_internal (void)
|
|||||||
res = INTERNAL_SYSCALL (futex, err, 3, &word,
|
res = INTERNAL_SYSCALL (futex, err, 3, &word,
|
||||||
FUTEX_WAKE | FUTEX_PRIVATE_FLAG, 1);
|
FUTEX_WAKE | FUTEX_PRIVATE_FLAG, 1);
|
||||||
if (!INTERNAL_SYSCALL_ERROR_P (res, err))
|
if (!INTERNAL_SYSCALL_ERROR_P (res, err))
|
||||||
THREAD_SET_PRIVATE_FUTEX (FUTEX_PRIVATE_FLAG);
|
pd->header.private_futex = FUTEX_PRIVATE_FLAG;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -458,16 +458,6 @@ union user_desc_init
|
|||||||
#define THREAD_GSCOPE_WAIT() \
|
#define THREAD_GSCOPE_WAIT() \
|
||||||
GL(dl_wait_lookup_done) ()
|
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 /* __ASSEMBLER__ */
|
||||||
|
|
||||||
#endif /* tls.h */
|
#endif /* tls.h */
|
||||||
|
@ -15,3 +15,4 @@ MULTIPLE_THREADS_OFFSET thread_offsetof (header.multiple_threads)
|
|||||||
PID thread_offsetof (pid)
|
PID thread_offsetof (pid)
|
||||||
TID thread_offsetof (tid)
|
TID thread_offsetof (tid)
|
||||||
POINTER_GUARD (offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
|
POINTER_GUARD (offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
|
||||||
|
PRIVATE_FUTEX_OFFSET thread_offsetof (header.private_futex)
|
||||||
|
@ -31,16 +31,6 @@
|
|||||||
extern void __sem_wait_cleanup (void *arg) attribute_hidden;
|
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
|
int
|
||||||
sem_timedwait (sem_t *sem, const struct timespec *abstime)
|
sem_timedwait (sem_t *sem, const struct timespec *abstime)
|
||||||
{
|
{
|
||||||
|
@ -65,6 +65,7 @@ __new_sem_wait (sem_t *sem)
|
|||||||
{
|
{
|
||||||
__set_errno (-err);
|
__set_errno (-err);
|
||||||
err = -1;
|
err = -1;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (atomic_decrement_if_positive (&isem->value) > 0)
|
if (atomic_decrement_if_positive (&isem->value) > 0)
|
||||||
|
@ -364,14 +364,6 @@ typedef struct
|
|||||||
#define THREAD_GSCOPE_WAIT() \
|
#define THREAD_GSCOPE_WAIT() \
|
||||||
GL(dl_wait_lookup_done) ()
|
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 /* __ASSEMBLER__ */
|
||||||
|
|
||||||
#endif /* tls.h */
|
#endif /* tls.h */
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <ldsodefs.h>
|
#include <ldsodefs.h>
|
||||||
|
#include <sysdep.h>
|
||||||
#include <bp-start.h>
|
#include <bp-start.h>
|
||||||
#include <bp-sym.h>
|
#include <bp-sym.h>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user