summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--csu/Makefile6
-rw-r--r--linuxthreads/ChangeLog4
-rw-r--r--linuxthreads/Versions3
-rw-r--r--linuxthreads/pthread.c7
-rw-r--r--linuxthreads/sysdeps/pthread/pthread.h8
6 files changed, 30 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index e1136d77d0..ebd237e244 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
 
+	* csu/Makefile ($(objpfx)version-info.h): Get OS name from uname and
+	only fall back on using Linux.
+
 	* elf/dl-version.c (_dl_check_map_versions): New argument trace_mode.
 	Before testing versions check that we actually loaded the object
 	and whether we are in trace mode.  If not loaded during tracing don't
diff --git a/csu/Makefile b/csu/Makefile
index 79eeef190f..1fb2e8f96b 100644
--- a/csu/Makefile
+++ b/csu/Makefile
@@ -182,7 +182,11 @@ $(objpfx)version-info.h: $(common-objpfx)config.make $(all-Banner-files)
 		       version=`uname -r`; \
 		     fi; \
 		   fi; \
-		   echo "\"Compiled on a Linux $$version system" \
+		   os=`uname -s 2> /dev/null`; \
+		   if [ -z "$$os" ]; then \
+		     os=Linux; \
+		   fi; \
+		   echo "\"Compiled on a $$os $$version system" \
 		        "on `date +%Y-%m-%d`.\\n\"" ;; \
 	   *) ;; \
 	 esac; \
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index f9a3bf9240..9a1213b910 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,5 +1,9 @@
 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
 
+	* pthread.c (pthread_yield): New function.
+	* sysdeps/pthread/pthread.h (pthread_yield): Add prototype.
+	* Versions [libpthread] (GLIBC_2.2): Add pthread_yield.
+
 	* pthread.c (pthread_initialize): Avoid a bit more code if
 	realtime signals are known to exist.
 
diff --git a/linuxthreads/Versions b/linuxthreads/Versions
index 92ec98da5f..5579bea011 100644
--- a/linuxthreads/Versions
+++ b/linuxthreads/Versions
@@ -135,5 +135,8 @@ libpthread {
     pthread_spin_destroy; pthread_spin_init; pthread_spin_lock;
     pthread_spin_trylock; pthread_spin_unlock;
     pthread_getcpuclockid;
+
+    # Extensions.
+    pthread_yield;
   }
 }
diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c
index eca90635b0..ae747bc5ac 100644
--- a/linuxthreads/pthread.c
+++ b/linuxthreads/pthread.c
@@ -634,6 +634,13 @@ int pthread_getschedparam(pthread_t thread, int *policy,
   return 0;
 }
 
+int __pthread_yield ()
+{
+  /* For now this is equivalent with the POSIX call.  */
+  return sched_yield ();
+}
+weak_alias (__pthread_yield, pthread_yield)
+
 /* Process-wide exit() request */
 
 static void pthread_exit_process(int retcode, void *arg)
diff --git a/linuxthreads/sysdeps/pthread/pthread.h b/linuxthreads/sysdeps/pthread/pthread.h
index de00130029..e82c4deb99 100644
--- a/linuxthreads/sysdeps/pthread/pthread.h
+++ b/linuxthreads/sysdeps/pthread/pthread.h
@@ -272,6 +272,14 @@ extern int pthread_getconcurrency (void) __THROW;
 extern int pthread_setconcurrency (int __level) __THROW;
 #endif
 
+#ifdef __USE_GNU
+/* Yield the processor to another thread or process.
+   This function is similar to the POSIX `sched_yield' function but
+   might be differently implemented in the case of a m-on-n thread
+   implementation.  */
+extern int pthread_yield (void) __THROW;
+#endif
+
 /* Functions for mutex handling.  */
 
 /* Initialize MUTEX using attributes in *MUTEX_ATTR, or use the