* Versions (libpthread: GLIBC_2.2): Remove

pthread_barrierattr_getpshared, never really existed.
	(libpthread: GLIBC_2.0): Move __pthread_initialize to ...
	(libpthread: GLIBC_PRIVATE): ... here.
This commit is contained in:
Roland McGrath 2003-03-19 03:34:48 +00:00
parent 8a477363f4
commit 043ad426e7
5 changed files with 60 additions and 25 deletions

View File

@ -1,3 +1,10 @@
2003-03-18 Roland McGrath <roland@redhat.com>
* Versions (libpthread: GLIBC_2.2): Remove
pthread_barrierattr_getpshared, never really existed.
(libpthread: GLIBC_2.0): Move __pthread_initialize to ...
(libpthread: GLIBC_PRIVATE): ... here.
2003-03-14 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.

View File

@ -80,7 +80,7 @@ libpthread {
sigwait;
# Protected names for functions used in other shared objects.
__pthread_atfork; __pthread_initialize; __pthread_getspecific;
__pthread_atfork; __pthread_getspecific;
__pthread_key_create; __pthread_mutex_destroy; __pthread_mutex_init;
__pthread_mutex_lock; __pthread_mutex_trylock; __pthread_mutex_unlock;
__pthread_mutexattr_destroy; __pthread_mutexattr_init;
@ -147,7 +147,7 @@ libpthread {
pthread_getcpuclockid;
pthread_barrier_destroy; pthread_barrier_init; pthread_barrier_wait;
pthread_barrierattr_destroy; pthread_barrierattr_init;
pthread_barrierattr_getpshared; pthread_barrierattr_setpshared;
pthread_barrierattr_setpshared;
pthread_mutex_timedlock;
pthread_rwlock_timedrdlock; pthread_rwlock_timedwrlock;
@ -170,6 +170,7 @@ libpthread {
}
GLIBC_PRIVATE {
# Internal libc interface to libpthread
__pthread_initialize;
__pthread_kill_other_threads_np;
}
}

View File

@ -1,3 +1,16 @@
2003-03-18 Roland McGrath <roland@redhat.com>
* Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
pthread_timedjoin_np to ...
(libpthread: GLIBC_2.3.3): ... here.
(libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
* sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
Avoid shadowing VAL variable.
* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
New macro.
2003-03-18 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-cond11.

View File

@ -93,36 +93,38 @@ __pthread_cond_timedwait (cond, mutex, abstime)
while (1)
{
struct timespec rt;
{
#ifdef __NR_clock_gettime
INTERNAL_SYSCALL_DECL (err);
int val = INTERNAL_SYSCALL (clock_gettime, err, 2, cond->__data.__clock,
&ts);
INTERNAL_SYSCALL_DECL (err);
int val = INTERNAL_SYSCALL (clock_gettime, err, 2,
cond->__data.__clock, &rt);
# ifndef __ASSUME_POSIX_TIMERS
if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (val, err), 0))
{
struct timeval tv;
(void) gettimeofday (&tv, NULL);
if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (val, err), 0))
{
struct timeval tv;
(void) gettimeofday (&tv, NULL);
/* Convert the absolute timeout value to a relative timeout. */
rt.tv_sec = abstime->tv_sec - tv.tv_sec;
rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
}
else
/* Convert the absolute timeout value to a relative timeout. */
rt.tv_sec = abstime->tv_sec - tv.tv_sec;
rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
}
else
# endif
{
/* Convert the absolute timeout value to a relative timeout. */
rt.tv_sec = abstime->tv_sec - rt.tv_sec;
rt.tv_nsec = abstime->tv_nsec - rt.tv_nsec;
}
{
/* Convert the absolute timeout value to a relative timeout. */
rt.tv_sec = abstime->tv_sec - rt.tv_sec;
rt.tv_nsec = abstime->tv_nsec - rt.tv_nsec;
}
#else
/* Get the current time. So far we support only one clock. */
struct timeval tv;
(void) gettimeofday (&tv, NULL);
/* Get the current time. So far we support only one clock. */
struct timeval tv;
(void) gettimeofday (&tv, NULL);
/* Convert the absolute timeout value to a relative timeout. */
rt.tv_sec = abstime->tv_sec - tv.tv_sec;
rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
/* Convert the absolute timeout value to a relative timeout. */
rt.tv_sec = abstime->tv_sec - tv.tv_sec;
rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
#endif
}
if (rt.tv_nsec < 0)
{
rt.tv_nsec += 1000000000;

View File

@ -99,6 +99,18 @@
__val; \
})
/* Atomically store newval and return the old value. */
#define __lll_test_and_set(futex, newval) \
({ int __val; \
__asm __volatile ("1: lwarx %0,0,%3\n" \
" stwcx. %2,0,%3\n" \
" bne- 1b" \
: "=&r" (__val), "=m" (*futex) \
: "r" (futex), "r" (newval), "1" (*futex) \
: "cr0"); \
__val; })
extern void __lll_lock_wait (int *futex, int val) attribute_hidden;
#define lll_mutex_lock(lock) \