Fix more stuff broken by recent exported-symbol hackery.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@156 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/arch/x86-linux/vg_libpthread.c b/coregrind/arch/x86-linux/vg_libpthread.c
index 0ed95d0..960d986 100644
--- a/coregrind/arch/x86-linux/vg_libpthread.c
+++ b/coregrind/arch/x86-linux/vg_libpthread.c
@@ -1398,6 +1398,18 @@
weak_alias(pthread_rwlock_unlock, __pthread_rwlock_unlock)
+int
+pthread_rwlock_wrlock (void* /* pthread_rwlock_t* */ rwlock)
+{
+ static int moans = N_MOANS;
+ if (moans-- > 0)
+ kludged("pthread_rwlock_wrlock");
+ return 0;
+}
+
+weak_alias(pthread_rwlock_wrlock, __pthread_wrlock_unlock)
+
+
/* I've no idea what these are, but they get called quite a lot.
Anybody know? */
diff --git a/coregrind/arch/x86-linux/vg_libpthread_unimp.c b/coregrind/arch/x86-linux/vg_libpthread_unimp.c
index 2b9aa63..3bc96f7 100644
--- a/coregrind/arch/x86-linux/vg_libpthread_unimp.c
+++ b/coregrind/arch/x86-linux/vg_libpthread_unimp.c
@@ -107,7 +107,7 @@
void pthread_rwlock_tryrdlock ( void ) { unimp("pthread_rwlock_tryrdlock"); }
void pthread_rwlock_trywrlock ( void ) { unimp("pthread_rwlock_trywrlock"); }
//void pthread_rwlock_unlock ( void ) { unimp("pthread_rwlock_unlock"); }
-void pthread_rwlock_wrlock ( void ) { unimp("pthread_rwlock_wrlock"); }
+//void pthread_rwlock_wrlock ( void ) { unimp("pthread_rwlock_wrlock"); }
void pthread_rwlockattr_destroy ( void ) { unimp("pthread_rwlockattr_destroy"); }
void pthread_rwlockattr_getkind_np ( void ) { unimp("pthread_rwlockattr_getkind_np"); }
void pthread_rwlockattr_getpshared ( void ) { unimp("pthread_rwlockattr_getpshared"); }
@@ -169,7 +169,7 @@
weak_alias(pthread_rwlock_init, __pthread_rwlock_init)
weak_alias(pthread_rwlock_tryrdlock, __pthread_rwlock_tryrdlock)
weak_alias(pthread_rwlock_trywrlock, __pthread_rwlock_trywrlock)
-weak_alias(pthread_rwlock_wrlock, __pthread_rwlock_wrlock)
+//weak_alias(pthread_rwlock_wrlock, __pthread_rwlock_wrlock)
weak_alias(_IO_ftrylockfile, ftrylockfile)
__attribute__((weak)) void pread ( void ) { vgPlain_unimp("pread"); }
diff --git a/coregrind/vg_libpthread.c b/coregrind/vg_libpthread.c
index 0ed95d0..960d986 100644
--- a/coregrind/vg_libpthread.c
+++ b/coregrind/vg_libpthread.c
@@ -1398,6 +1398,18 @@
weak_alias(pthread_rwlock_unlock, __pthread_rwlock_unlock)
+int
+pthread_rwlock_wrlock (void* /* pthread_rwlock_t* */ rwlock)
+{
+ static int moans = N_MOANS;
+ if (moans-- > 0)
+ kludged("pthread_rwlock_wrlock");
+ return 0;
+}
+
+weak_alias(pthread_rwlock_wrlock, __pthread_wrlock_unlock)
+
+
/* I've no idea what these are, but they get called quite a lot.
Anybody know? */
diff --git a/coregrind/vg_libpthread_unimp.c b/coregrind/vg_libpthread_unimp.c
index 2b9aa63..3bc96f7 100644
--- a/coregrind/vg_libpthread_unimp.c
+++ b/coregrind/vg_libpthread_unimp.c
@@ -107,7 +107,7 @@
void pthread_rwlock_tryrdlock ( void ) { unimp("pthread_rwlock_tryrdlock"); }
void pthread_rwlock_trywrlock ( void ) { unimp("pthread_rwlock_trywrlock"); }
//void pthread_rwlock_unlock ( void ) { unimp("pthread_rwlock_unlock"); }
-void pthread_rwlock_wrlock ( void ) { unimp("pthread_rwlock_wrlock"); }
+//void pthread_rwlock_wrlock ( void ) { unimp("pthread_rwlock_wrlock"); }
void pthread_rwlockattr_destroy ( void ) { unimp("pthread_rwlockattr_destroy"); }
void pthread_rwlockattr_getkind_np ( void ) { unimp("pthread_rwlockattr_getkind_np"); }
void pthread_rwlockattr_getpshared ( void ) { unimp("pthread_rwlockattr_getpshared"); }
@@ -169,7 +169,7 @@
weak_alias(pthread_rwlock_init, __pthread_rwlock_init)
weak_alias(pthread_rwlock_tryrdlock, __pthread_rwlock_tryrdlock)
weak_alias(pthread_rwlock_trywrlock, __pthread_rwlock_trywrlock)
-weak_alias(pthread_rwlock_wrlock, __pthread_rwlock_wrlock)
+//weak_alias(pthread_rwlock_wrlock, __pthread_rwlock_wrlock)
weak_alias(_IO_ftrylockfile, ftrylockfile)
__attribute__((weak)) void pread ( void ) { vgPlain_unimp("pread"); }
diff --git a/vg_libpthread.c b/vg_libpthread.c
index 0ed95d0..960d986 100644
--- a/vg_libpthread.c
+++ b/vg_libpthread.c
@@ -1398,6 +1398,18 @@
weak_alias(pthread_rwlock_unlock, __pthread_rwlock_unlock)
+int
+pthread_rwlock_wrlock (void* /* pthread_rwlock_t* */ rwlock)
+{
+ static int moans = N_MOANS;
+ if (moans-- > 0)
+ kludged("pthread_rwlock_wrlock");
+ return 0;
+}
+
+weak_alias(pthread_rwlock_wrlock, __pthread_wrlock_unlock)
+
+
/* I've no idea what these are, but they get called quite a lot.
Anybody know? */
diff --git a/vg_libpthread_unimp.c b/vg_libpthread_unimp.c
index 2b9aa63..3bc96f7 100644
--- a/vg_libpthread_unimp.c
+++ b/vg_libpthread_unimp.c
@@ -107,7 +107,7 @@
void pthread_rwlock_tryrdlock ( void ) { unimp("pthread_rwlock_tryrdlock"); }
void pthread_rwlock_trywrlock ( void ) { unimp("pthread_rwlock_trywrlock"); }
//void pthread_rwlock_unlock ( void ) { unimp("pthread_rwlock_unlock"); }
-void pthread_rwlock_wrlock ( void ) { unimp("pthread_rwlock_wrlock"); }
+//void pthread_rwlock_wrlock ( void ) { unimp("pthread_rwlock_wrlock"); }
void pthread_rwlockattr_destroy ( void ) { unimp("pthread_rwlockattr_destroy"); }
void pthread_rwlockattr_getkind_np ( void ) { unimp("pthread_rwlockattr_getkind_np"); }
void pthread_rwlockattr_getpshared ( void ) { unimp("pthread_rwlockattr_getpshared"); }
@@ -169,7 +169,7 @@
weak_alias(pthread_rwlock_init, __pthread_rwlock_init)
weak_alias(pthread_rwlock_tryrdlock, __pthread_rwlock_tryrdlock)
weak_alias(pthread_rwlock_trywrlock, __pthread_rwlock_trywrlock)
-weak_alias(pthread_rwlock_wrlock, __pthread_rwlock_wrlock)
+//weak_alias(pthread_rwlock_wrlock, __pthread_rwlock_wrlock)
weak_alias(_IO_ftrylockfile, ftrylockfile)
__attribute__((weak)) void pread ( void ) { vgPlain_unimp("pread"); }