about summary refs log tree commit diff
path: root/linuxthreads
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog14
-rw-r--r--linuxthreads/Makefile3
-rw-r--r--linuxthreads/Versions2
-rw-r--r--linuxthreads/semaphore.c31
4 files changed, 43 insertions, 7 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index dfb0e3d66a..f653383f5e 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,17 @@
+1999-07-09  Cristian Gafton  <gafton@redhat.com>
+
+	* Makefile (libpthread-routines): Add oldsemaphore routine.
+	* Versions: Add sem_destroy; sem_getvalue; sem_init; sem_post;
+	sem_trywait; sem_wait; to GLIBC_2.1.
+	* oldsemaphore.c: New file.
+	* semaphore.c: Add default_symbol_versions for the changed functions.
+	(__new_sem_init): Rename from sem_init.
+	(__new_sem_post): Rename from sem_post.
+	(__new_sem_wait): Rename from sem_wait.
+	(__new_sem_trywait): Rename from sem_trywait.
+	(__new_sem_getvalue): Rename from sem_getvalue.
+	(__new_sem_destroy): Rename from sem_destroy.
+
 1999-06-23  Robey Pointer  <robey@netscape.com>
 
 	* internals.h: Added p_nextlock entry to separate queueing for a
diff --git a/linuxthreads/Makefile b/linuxthreads/Makefile
index 600e194e31..8268666c90 100644
--- a/linuxthreads/Makefile
+++ b/linuxthreads/Makefile
@@ -34,7 +34,8 @@ extra-libs-others := $(extra-libs)
 
 libpthread-routines := attr cancel condvar join manager mutex ptfork \
 		       ptlongjmp pthread signals specific errno lockfile \
-		       semaphore spinlock wrapsyscall rwlock pt-machine
+		       semaphore spinlock wrapsyscall rwlock pt-machine \
+		       oldsemaphore
 
 vpath %.c Examples
 tests = ex1 ex2 ex3 ex4 ex5 ex6
diff --git a/linuxthreads/Versions b/linuxthreads/Versions
index 6b95031820..66a8f46b5c 100644
--- a/linuxthreads/Versions
+++ b/linuxthreads/Versions
@@ -97,6 +97,8 @@ libpthread {
 
     pthread_mutexattr_gettype; pthread_mutexattr_settype;
 
+    sem_destroy; sem_getvalue; sem_init; sem_post; sem_trywait; sem_wait;
+
     # helper functions
     __libc_current_sigrtmin; __libc_current_sigrtmax;
     __libc_allocate_rtsig;
diff --git a/linuxthreads/semaphore.c b/linuxthreads/semaphore.c
index 175302188e..cfad97aced 100644
--- a/linuxthreads/semaphore.c
+++ b/linuxthreads/semaphore.c
@@ -22,7 +22,7 @@
 #include "restart.h"
 #include "queue.h"
 
-int sem_init(sem_t *sem, int pshared, unsigned int value)
+int __new_sem_init(sem_t *sem, int pshared, unsigned int value)
 {
   if (value > SEM_VALUE_MAX) {
     errno = EINVAL;
@@ -38,7 +38,7 @@ int sem_init(sem_t *sem, int pshared, unsigned int value)
   return 0;
 }
 
-int sem_wait(sem_t * sem)
+int __new_sem_wait(sem_t * sem)
 {
   volatile pthread_descr self = thread_self();
 
@@ -65,7 +65,7 @@ int sem_wait(sem_t * sem)
   return 0;
 }
 
-int sem_trywait(sem_t * sem)
+int __new_sem_trywait(sem_t * sem)
 {
   int retval;
 
@@ -81,7 +81,7 @@ int sem_trywait(sem_t * sem)
   return retval;
 }
 
-int sem_post(sem_t * sem)
+int __new_sem_post(sem_t * sem)
 {
   pthread_descr self = thread_self();
   pthread_descr th;
@@ -120,13 +120,13 @@ int sem_post(sem_t * sem)
   return 0;
 }
 
-int sem_getvalue(sem_t * sem, int * sval)
+int __new_sem_getvalue(sem_t * sem, int * sval)
 {
   *sval = sem->__sem_value;
   return 0;
 }
 
-int sem_destroy(sem_t * sem)
+int __new_sem_destroy(sem_t * sem)
 {
   if (sem->__sem_waiting != NULL) {
     __set_errno (EBUSY);
@@ -152,3 +152,22 @@ int sem_unlink(const char *name)
   __set_errno (ENOSYS);
   return -1;
 }
+
+#if defined PIC && DO_VERSIONING
+default_symbol_version (__new_sem_init, sem_init, GLIBC_2.1);
+default_symbol_version (__new_sem_wait, sem_wait, GLIBC_2.1);
+default_symbol_version (__new_sem_trywait, sem_trywait, GLIBC_2.1);
+default_symbol_version (__new_sem_post, sem_post, GLIBC_2.1);
+default_symbol_version (__new_sem_getvalue, sem_getvalue, GLIBC_2.1);
+default_symbol_version (__new_sem_destroy, sem_destroy, GLIBC_2.1);
+#else
+# ifdef weak_alias
+weak_alias (__new_sem_init, sem_init)
+weak_alias (__new_sem_wait, sem_wait)
+weak_alias (__new_sem_trywait, sem_trywait)
+weak_alias (__new_sem_post, sem_post)
+weak_alias (__new_sem_getvalue, sem_getvalue)
+weak_alias (__new_sem_destroy, sem_destroy)
+# endif
+#endif
+