* [PATCH] Some new condvar fixes
@ 2003-01-02 22:17 Jakub Jelinek
2003-01-02 23:14 ` Ulrich Drepper
2003-01-03 1:29 ` Ulrich Drepper
0 siblings, 2 replies; 3+ messages in thread
From: Jakub Jelinek @ 2003-01-02 22:17 UTC (permalink / raw)
To: Ulrich Drepper; +Cc: Glibc hackers
Hi!
I still get failures in tst-aio{,2,3,64} in NPTL
build, but the other problems seem to be gone.
Tested in NPTL and linuxthreads build.
2003-01-02 Jakub Jelinek <jakub@redhat.com>
linuxthreads/
* internals.h (struct pthread_functions): Rename
ptr_pthread_cond_* fields to ptr___pthread_cond_*.
* pthread.c (pthread_functions): Adjust.
* forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
pthread_cond_*@GLIBC_2.0 compatibility symbols.
* Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
and pthread_cond_wait.
nptl/
* Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
and pthread_cond_wait.
* old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
Renamed to...
(__pthread_cond_broadcast_2_0): ... this.
* old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
Renamed to...
(__pthread_cond_destroy_2_0): ... this.
* old_pthread_cond_init.c (__old_pthread_cond_init):
Renamed to...
(__pthread_cond_init_2_0): ... this.
* old_pthread_cond_signal.c (__old_pthread_cond_signal):
Renamed to...
(__pthread_cond_signal_2_0): ... this.
* old_pthread_cond_wait.c (__old_pthread_cond_wait):
Renamed to...
(__pthread_cond_wait_2_0): ... this.
* pthread_cond_destroy.c: Include shlib-compat.h.
(pthread_cond_destroy): Change strong_alias into versioned_symbol.
* pthread_cond_init.c: Include shlib-compat.h.
(pthread_cond_init): Change strong_alias into versioned_symbol.
* pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
fields.
(__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
__pthread_cond_init_2_0, __pthread_cond_signal_2_0,
__pthread_cond_wait_2_0): New prototypes.
(__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
__old_pthread_cond_init, __old_pthread_cond_signal,
__old_pthread_cond_wait): Removed.
* init.c: Include shlib-compat.h.
(pthread_functions): Guard ptr___pthread_attr_init_2_0
initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
ptr___pthread_cond_*_2_0 fields.
* forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
pthread_cond_*@GLIBC_2.0 compatibility symbols.
--- libc/linuxthreads/internals.h.jj 2002-12-31 11:46:37.000000000 +0100
+++ libc/linuxthreads/internals.h 2003-01-02 23:20:40.000000000 +0100
@@ -505,11 +505,12 @@ struct pthread_functions
int (*ptr_pthread_attr_setscope) (pthread_attr_t *, int);
int (*ptr_pthread_condattr_destroy) (pthread_condattr_t *);
int (*ptr_pthread_condattr_init) (pthread_condattr_t *);
- int (*ptr_pthread_cond_broadcast) (pthread_cond_t *);
- int (*ptr_pthread_cond_destroy) (pthread_cond_t *);
- int (*ptr_pthread_cond_init) (pthread_cond_t *, const pthread_condattr_t *);
- int (*ptr_pthread_cond_signal) (pthread_cond_t *);
- int (*ptr_pthread_cond_wait) (pthread_cond_t *, pthread_mutex_t *);
+ int (*ptr___pthread_cond_broadcast) (pthread_cond_t *);
+ int (*ptr___pthread_cond_destroy) (pthread_cond_t *);
+ int (*ptr___pthread_cond_init) (pthread_cond_t *,
+ const pthread_condattr_t *);
+ int (*ptr___pthread_cond_signal) (pthread_cond_t *);
+ int (*ptr___pthread_cond_wait) (pthread_cond_t *, pthread_mutex_t *);
int (*ptr_pthread_equal) (pthread_t, pthread_t);
void (*ptr___pthread_exit) (void *);
int (*ptr_pthread_getschedparam) (pthread_t, int *, struct sched_param *);
--- libc/linuxthreads/forward.c.jj 2002-12-31 11:46:37.000000000 +0100
+++ libc/linuxthreads/forward.c 2003-01-02 23:24:28.000000000 +0100
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -84,18 +84,49 @@ FORWARD (pthread_condattr_destroy, (pthr
FORWARD (pthread_condattr_init, (pthread_condattr_t *attr), (attr), 0)
-FORWARD (pthread_cond_broadcast, (pthread_cond_t *cond), (cond), 0)
+FORWARD (__pthread_cond_broadcast, (pthread_cond_t *cond), (cond), 0)
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
+strong_alias (__pthread_cond_broadcast, __pthread_cond_broadcast_2_0)
+compat_symbol (libc, __pthread_cond_broadcast_2_0, pthread_cond_broadcast,
+ GLIBC_2_0);
+#endif
+versioned_symbol (libc, __pthread_cond_broadcast, pthread_cond_broadcast,
+ GLIBC_2_3_2);
-FORWARD (pthread_cond_destroy, (pthread_cond_t *cond), (cond), 0)
+FORWARD (__pthread_cond_destroy, (pthread_cond_t *cond), (cond), 0)
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
+strong_alias (__pthread_cond_destroy, __pthread_cond_destroy_2_0)
+compat_symbol (libc, __pthread_cond_destroy_2_0, pthread_cond_destroy,
+ GLIBC_2_0);
+#endif
+versioned_symbol (libc, __pthread_cond_destroy, pthread_cond_destroy,
+ GLIBC_2_3_2);
-FORWARD (pthread_cond_init,
+FORWARD (__pthread_cond_init,
(pthread_cond_t *cond, const pthread_condattr_t *cond_attr),
(cond, cond_attr), 0)
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
+strong_alias (__pthread_cond_init, __pthread_cond_init_2_0)
+compat_symbol (libc, __pthread_cond_init_2_0, pthread_cond_init, GLIBC_2_0);
+#endif
+versioned_symbol (libc, __pthread_cond_init, pthread_cond_init, GLIBC_2_3_2);
-FORWARD (pthread_cond_signal, (pthread_cond_t *cond), (cond), 0)
+FORWARD (__pthread_cond_signal, (pthread_cond_t *cond), (cond), 0)
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
+strong_alias (__pthread_cond_signal, __pthread_cond_signal_2_0)
+compat_symbol (libc, __pthread_cond_signal_2_0, pthread_cond_signal,
+ GLIBC_2_0);
+#endif
+versioned_symbol (libc, __pthread_cond_signal, pthread_cond_signal,
+ GLIBC_2_3_2);
-FORWARD (pthread_cond_wait, (pthread_cond_t *cond, pthread_mutex_t *mutex),
+FORWARD (__pthread_cond_wait, (pthread_cond_t *cond, pthread_mutex_t *mutex),
(cond, mutex), 0)
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
+strong_alias (__pthread_cond_wait, __pthread_cond_wait_2_0)
+compat_symbol (libc, __pthread_cond_wait_2_0, pthread_cond_wait, GLIBC_2_0);
+#endif
+versioned_symbol (libc, __pthread_cond_wait, pthread_cond_wait, GLIBC_2_3_2);
FORWARD (pthread_equal, (pthread_t thread1, pthread_t thread2),
--- libc/linuxthreads/Versions.jj 2003-01-02 14:49:53.000000000 +0100
+++ libc/linuxthreads/Versions 2003-01-02 23:59:24.000000000 +0100
@@ -16,6 +16,12 @@ libc {
GLIBC_2.1 {
pthread_attr_init;
}
+ GLIBC_2.3.2 {
+ # Changed pthread_cond_t.
+ pthread_cond_init; pthread_cond_destroy;
+ pthread_cond_wait; pthread_cond_signal;
+ pthread_cond_broadcast;
+ }
GLIBC_PRIVATE {
# Internal libc interface to libpthread
__libc_dl_error_tsd;
--- libc/linuxthreads/pthread.c.jj 2002-12-31 11:46:38.000000000 +0100
+++ libc/linuxthreads/pthread.c 2003-01-03 00:18:38.000000000 +0100
@@ -256,11 +256,11 @@ static struct pthread_functions pthread_
.ptr_pthread_attr_setscope = __pthread_attr_setscope,
.ptr_pthread_condattr_destroy = __pthread_condattr_destroy,
.ptr_pthread_condattr_init = __pthread_condattr_init,
- .ptr_pthread_cond_broadcast = __pthread_cond_broadcast,
- .ptr_pthread_cond_destroy = __pthread_cond_destroy,
- .ptr_pthread_cond_init = __pthread_cond_init,
- .ptr_pthread_cond_signal = __pthread_cond_signal,
- .ptr_pthread_cond_wait = __pthread_cond_wait,
+ .ptr___pthread_cond_broadcast = __pthread_cond_broadcast,
+ .ptr___pthread_cond_destroy = __pthread_cond_destroy,
+ .ptr___pthread_cond_init = __pthread_cond_init,
+ .ptr___pthread_cond_signal = __pthread_cond_signal,
+ .ptr___pthread_cond_wait = __pthread_cond_wait,
.ptr_pthread_equal = __pthread_equal,
.ptr___pthread_exit = __pthread_exit,
.ptr_pthread_getschedparam = __pthread_getschedparam,
--- libc/nptl/Versions.jj 2003-01-02 11:30:43.000000000 +0100
+++ libc/nptl/Versions 2003-01-03 00:17:58.000000000 +0100
@@ -19,6 +19,12 @@ libc {
GLIBC_2.1 {
pthread_attr_init;
}
+ GLIBC_2.3.2 {
+ # Changed pthread_cond_t.
+ pthread_cond_init; pthread_cond_destroy;
+ pthread_cond_wait; pthread_cond_signal;
+ pthread_cond_broadcast;
+ }
}
libpthread {
--- libc/nptl/old_pthread_cond_broadcast.c.jj 2003-01-02 11:17:43.000000000 +0100
+++ libc/nptl/old_pthread_cond_broadcast.c 2003-01-02 22:55:30.000000000 +0100
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -25,7 +25,7 @@
#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
int
-__old_pthread_cond_broadcast (cond)
+__pthread_cond_broadcast_2_0 (cond)
pthread_cond_t *cond;
{
pthread_cond_t **realp = (pthread_cond_t **) cond;
@@ -41,6 +41,6 @@ __old_pthread_cond_broadcast (cond)
return __pthread_cond_broadcast (*realp);
}
-compat_symbol (libpthread, __old_pthread_cond_broadcast,
+compat_symbol (libpthread, __pthread_cond_broadcast_2_0,
pthread_cond_broadcast, GLIBC_2_0);
#endif
--- libc/nptl/old_pthread_cond_destroy.c.jj 2003-01-02 11:17:54.000000000 +0100
+++ libc/nptl/old_pthread_cond_destroy.c 2003-01-02 22:56:11.000000000 +0100
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -24,7 +24,7 @@
#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
int
-__old_pthread_cond_destroy (cond)
+__pthread_cond_destroy_2_0 (cond)
pthread_cond_t *cond;
{
/* Free the memory which was eventually allocated. */
@@ -32,6 +32,6 @@ __old_pthread_cond_destroy (cond)
return 0;
}
-compat_symbol (libpthread, __old_pthread_cond_destroy, pthread_cond_destroy,
+compat_symbol (libpthread, __pthread_cond_destroy_2_0, pthread_cond_destroy,
GLIBC_2_0);
#endif
--- libc/nptl/old_pthread_cond_init.c.jj 2003-01-02 11:18:01.000000000 +0100
+++ libc/nptl/old_pthread_cond_init.c 2003-01-02 22:56:43.000000000 +0100
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -23,7 +23,7 @@
#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
int
-__old_pthread_cond_init (cond, cond_attr)
+__pthread_cond_init_2_0 (cond, cond_attr)
pthread_cond_t *cond;
const pthread_condattr_t *cond_attr;
{
@@ -38,6 +38,6 @@ __old_pthread_cond_init (cond, cond_attr
return 0;
}
-compat_symbol (libpthread, __old_pthread_cond_init, pthread_cond_init,
+compat_symbol (libpthread, __pthread_cond_init_2_0, pthread_cond_init,
GLIBC_2_0);
#endif
--- libc/nptl/old_pthread_cond_signal.c.jj 2003-01-02 11:18:09.000000000 +0100
+++ libc/nptl/old_pthread_cond_signal.c 2003-01-02 22:57:11.000000000 +0100
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -25,7 +25,7 @@
#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
int
-__old_pthread_cond_signal (cond)
+__pthread_cond_signal_2_0 (cond)
pthread_cond_t *cond;
{
pthread_cond_t **realp = (pthread_cond_t **) cond;
@@ -41,6 +41,6 @@ __old_pthread_cond_signal (cond)
return __pthread_cond_signal (*realp);
}
-compat_symbol (libpthread, __old_pthread_cond_signal, pthread_cond_signal,
+compat_symbol (libpthread, __pthread_cond_signal_2_0, pthread_cond_signal,
GLIBC_2_0);
#endif
--- libc/nptl/old_pthread_cond_wait.c.jj 2003-01-02 11:18:26.000000000 +0100
+++ libc/nptl/old_pthread_cond_wait.c 2003-01-02 22:58:50.000000000 +0100
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -25,7 +25,7 @@
#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
int
-__old_pthread_cond_wait (cond, mutex)
+__pthread_cond_wait_2_0 (cond, mutex)
pthread_cond_t *cond;
pthread_mutex_t *mutex;
{
@@ -42,6 +42,6 @@ __old_pthread_cond_wait (cond, mutex)
return __pthread_cond_wait (*realp, mutex);
}
-compat_symbol (libpthread, __old_pthread_cond_wait, pthread_cond_wait,
+compat_symbol (libpthread, __pthread_cond_wait_2_0, pthread_cond_wait,
GLIBC_2_0);
#endif
--- libc/nptl/pthread_cond_destroy.c.jj 2003-01-02 11:30:43.000000000 +0100
+++ libc/nptl/pthread_cond_destroy.c 2003-01-02 23:00:26.000000000 +0100
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -17,6 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <shlib-compat.h>
#include "pthreadP.h"
@@ -26,4 +27,5 @@ __pthread_cond_destroy (cond)
{
return 0;
}
-strong_alias (__pthread_cond_destroy, pthread_cond_destroy)
+versioned_symbol (libpthread, __pthread_cond_destroy,
+ pthread_cond_destroy, GLIBC_2_3_2);
--- libc/nptl/pthread_cond_init.c.jj 2003-01-02 11:30:43.000000000 +0100
+++ libc/nptl/pthread_cond_init.c 2003-01-02 23:01:11.000000000 +0100
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -17,6 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <shlib-compat.h>
#include "pthreadP.h"
@@ -36,4 +37,5 @@ __pthread_cond_init (cond, cond_attr)
return 0;
}
-strong_alias (__pthread_cond_init, pthread_cond_init)
+versioned_symbol (libpthread, __pthread_cond_init,
+ pthread_cond_init, GLIBC_2_3_2);
--- libc/nptl/pthreadP.h.jj 2003-01-02 11:30:43.000000000 +0100
+++ libc/nptl/pthreadP.h 2003-01-02 23:04:31.000000000 +0100
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -88,11 +88,18 @@ struct pthread_functions
int (*ptr_pthread_attr_setscope) (pthread_attr_t *, int);
int (*ptr_pthread_condattr_destroy) (pthread_condattr_t *);
int (*ptr_pthread_condattr_init) (pthread_condattr_t *);
- int (*ptr_pthread_cond_broadcast) (pthread_cond_t *);
- int (*ptr_pthread_cond_destroy) (pthread_cond_t *);
- int (*ptr_pthread_cond_init) (pthread_cond_t *, const pthread_condattr_t *);
- int (*ptr_pthread_cond_signal) (pthread_cond_t *);
- int (*ptr_pthread_cond_wait) (pthread_cond_t *, pthread_mutex_t *);
+ int (*ptr___pthread_cond_broadcast) (pthread_cond_t *);
+ int (*ptr___pthread_cond_destroy) (pthread_cond_t *);
+ int (*ptr___pthread_cond_init) (pthread_cond_t *,
+ const pthread_condattr_t *);
+ int (*ptr___pthread_cond_signal) (pthread_cond_t *);
+ int (*ptr___pthread_cond_wait) (pthread_cond_t *, pthread_mutex_t *);
+ int (*ptr___pthread_cond_broadcast_2_0) (pthread_cond_t *);
+ int (*ptr___pthread_cond_destroy_2_0) (pthread_cond_t *);
+ int (*ptr___pthread_cond_init_2_0) (pthread_cond_t *,
+ const pthread_condattr_t *);
+ int (*ptr___pthread_cond_signal_2_0) (pthread_cond_t *);
+ int (*ptr___pthread_cond_wait_2_0) (pthread_cond_t *, pthread_mutex_t *);
int (*ptr_pthread_equal) (pthread_t, pthread_t);
void (*ptr___pthread_exit) (void *);
int (*ptr_pthread_getschedparam) (pthread_t, int *, struct sched_param *);
@@ -315,15 +322,15 @@ extern int __pthread_enable_asynccancel
extern void __pthread_disable_asynccancel (int oldtype)
internal_function attribute_hidden;
-extern int __old_pthread_cond_broadcast (pthread_cond_t *cond);
-extern int __old_pthread_cond_destroy (pthread_cond_t *cond);
-extern int __old_pthread_cond_init (pthread_cond_t *cond,
+extern int __pthread_cond_broadcast_2_0 (pthread_cond_t *cond);
+extern int __pthread_cond_destroy_2_0 (pthread_cond_t *cond);
+extern int __pthread_cond_init_2_0 (pthread_cond_t *cond,
const pthread_condattr_t *cond_attr);
-extern int __old_pthread_cond_signal (pthread_cond_t *cond);
+extern int __pthread_cond_signal_2_0 (pthread_cond_t *cond);
extern int __old_pthread_cond_timedwait (pthread_cond_t *cond,
pthread_mutex_t *mutex,
const struct timespec *abstime);
-extern int __old_pthread_cond_wait (pthread_cond_t *cond,
+extern int __pthread_cond_wait_2_0 (pthread_cond_t *cond,
pthread_mutex_t *mutex);
/* The two functions are in libc.so and not exported. */
--- libc/nptl/init.c.jj 2002-12-31 09:53:36.000000000 +0100
+++ libc/nptl/init.c 2003-01-03 00:18:51.000000000 +0100
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -30,6 +30,7 @@
#include <tls.h>
#include <fork.h>
#include <version.h>
+#include <shlib-compat.h>
/* XXX For the time being... */
@@ -56,7 +57,9 @@ extern void __libc_setup_tls (size_t tcb
static struct pthread_functions pthread_functions =
{
.ptr_pthread_attr_destroy = __pthread_attr_destroy,
+#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
.ptr___pthread_attr_init_2_0 = __pthread_attr_init_2_0,
+#endif
.ptr___pthread_attr_init_2_1 = __pthread_attr_init_2_1,
.ptr_pthread_attr_getdetachstate = __pthread_attr_getdetachstate,
.ptr_pthread_attr_setdetachstate = __pthread_attr_setdetachstate,
@@ -70,11 +73,18 @@ static struct pthread_functions pthread_
.ptr_pthread_attr_setscope = __pthread_attr_setscope,
.ptr_pthread_condattr_destroy = __pthread_condattr_destroy,
.ptr_pthread_condattr_init = __pthread_condattr_init,
- .ptr_pthread_cond_broadcast = __pthread_cond_broadcast,
- .ptr_pthread_cond_destroy = __pthread_cond_destroy,
- .ptr_pthread_cond_init = __pthread_cond_init,
- .ptr_pthread_cond_signal = __pthread_cond_signal,
- .ptr_pthread_cond_wait = __pthread_cond_wait,
+ .ptr___pthread_cond_broadcast = __pthread_cond_broadcast,
+ .ptr___pthread_cond_destroy = __pthread_cond_destroy,
+ .ptr___pthread_cond_init = __pthread_cond_init,
+ .ptr___pthread_cond_signal = __pthread_cond_signal,
+ .ptr___pthread_cond_wait = __pthread_cond_wait,
+#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
+ .ptr___pthread_cond_broadcast_2_0 = __pthread_cond_broadcast_2_0,
+ .ptr___pthread_cond_destroy_2_0 = __pthread_cond_destroy_2_0,
+ .ptr___pthread_cond_init_2_0 = __pthread_cond_init_2_0,
+ .ptr___pthread_cond_signal_2_0 = __pthread_cond_signal_2_0,
+ .ptr___pthread_cond_wait_2_0 = __pthread_cond_wait_2_0,
+#endif
.ptr_pthread_equal = __pthread_equal,
.ptr___pthread_exit = __pthread_exit,
.ptr_pthread_getschedparam = __pthread_getschedparam,
--- libc/nptl/forward.c.jj 2002-12-31 09:53:36.000000000 +0100
+++ libc/nptl/forward.c 2003-01-02 23:17:58.000000000 +0100
@@ -85,19 +85,54 @@ FORWARD (pthread_attr_setscope, (pthread
FORWARD (pthread_condattr_destroy, (pthread_condattr_t *attr), (attr), 0)
FORWARD (pthread_condattr_init, (pthread_condattr_t *attr), (attr), 0)
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
+FORWARD (__pthread_cond_broadcast_2_0, (pthread_cond_t *cond), (cond), 0)
+compat_symbol (libc, __pthread_cond_broadcast_2_0, pthread_cond_broadcast,
+ GLIBC_2_0);
+#endif
+FORWARD (__pthread_cond_broadcast, (pthread_cond_t *cond), (cond), 0)
+versioned_symbol (libc, __pthread_cond_broadcast, pthread_cond_broadcast,
+ GLIBC_2_3_2);
+
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
+FORWARD (__pthread_cond_destroy_2_0, (pthread_cond_t *cond), (cond), 0)
+compat_symbol (libc, __pthread_cond_destroy_2_0, pthread_cond_destroy,
+ GLIBC_2_0);
+#endif
+FORWARD (__pthread_cond_destroy, (pthread_cond_t *cond), (cond), 0)
+versioned_symbol (libc, __pthread_cond_destroy, pthread_cond_destroy,
+ GLIBC_2_3_2);
-FORWARD (pthread_cond_broadcast, (pthread_cond_t *cond), (cond), 0)
-
-FORWARD (pthread_cond_destroy, (pthread_cond_t *cond), (cond), 0)
-
-FORWARD (pthread_cond_init,
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
+FORWARD (__pthread_cond_init_2_0,
(pthread_cond_t *cond, const pthread_condattr_t *cond_attr),
(cond, cond_attr), 0)
+compat_symbol (libc, __pthread_cond_init_2_0, pthread_cond_init, GLIBC_2_0);
+#endif
+FORWARD (__pthread_cond_init,
+ (pthread_cond_t *cond, const pthread_condattr_t *cond_attr),
+ (cond, cond_attr), 0)
+versioned_symbol (libc, __pthread_cond_init, pthread_cond_init, GLIBC_2_3_2);
-FORWARD (pthread_cond_signal, (pthread_cond_t *cond), (cond), 0)
-
-FORWARD (pthread_cond_wait, (pthread_cond_t *cond, pthread_mutex_t *mutex),
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
+FORWARD (__pthread_cond_signal_2_0, (pthread_cond_t *cond), (cond), 0)
+compat_symbol (libc, __pthread_cond_signal_2_0, pthread_cond_signal,
+ GLIBC_2_0);
+#endif
+FORWARD (__pthread_cond_signal, (pthread_cond_t *cond), (cond), 0)
+versioned_symbol (libc, __pthread_cond_signal, pthread_cond_signal,
+ GLIBC_2_3_2);
+
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
+FORWARD (__pthread_cond_wait_2_0,
+ (pthread_cond_t *cond, pthread_mutex_t *mutex), (cond, mutex), 0)
+compat_symbol (libc, __pthread_cond_wait_2_0, pthread_cond_wait,
+ GLIBC_2_0);
+#endif
+FORWARD (__pthread_cond_wait, (pthread_cond_t *cond, pthread_mutex_t *mutex),
(cond, mutex), 0)
+versioned_symbol (libc, __pthread_cond_wait, pthread_cond_wait,
+ GLIBC_2_3_2);
FORWARD (pthread_equal, (pthread_t thread1, pthread_t thread2),
Jakub
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] Some new condvar fixes
2003-01-02 22:17 [PATCH] Some new condvar fixes Jakub Jelinek
@ 2003-01-02 23:14 ` Ulrich Drepper
2003-01-03 1:29 ` Ulrich Drepper
1 sibling, 0 replies; 3+ messages in thread
From: Ulrich Drepper @ 2003-01-02 23:14 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: Glibc hackers
Jakub Jelinek wrote:
> I still get failures in tst-aio{,2,3,64} in NPTL
> build, but the other problems seem to be gone.
I'm looking at this now. It's no big surprise to me, the code is hardly
tested.
--
--------------. ,-. 444 Castro Street
Ulrich Drepper \ ,-----------------' \ Mountain View, CA 94041 USA
Red Hat `--' drepper at redhat.com `---------------------------
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] Some new condvar fixes
2003-01-02 22:17 [PATCH] Some new condvar fixes Jakub Jelinek
2003-01-02 23:14 ` Ulrich Drepper
@ 2003-01-03 1:29 ` Ulrich Drepper
1 sibling, 0 replies; 3+ messages in thread
From: Ulrich Drepper @ 2003-01-03 1:29 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: Glibc hackers
Jakub Jelinek wrote:
> I still get failures in tst-aio{,2,3,64} in NPTL
> build, but the other problems seem to be gone.
> Tested in NPTL and linuxthreads build.
Thanks. I've applied this and the other two patches. I'll make new
nptl sources available once aio works again.
--
--------------. ,-. 444 Castro Street
Ulrich Drepper \ ,-----------------' \ Mountain View, CA 94041 USA
Red Hat `--' drepper at redhat.com `---------------------------
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2003-01-03 1:29 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-02 22:17 [PATCH] Some new condvar fixes Jakub Jelinek
2003-01-02 23:14 ` Ulrich Drepper
2003-01-03 1:29 ` Ulrich Drepper
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).