about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-04-25 04:33:05 +0000
committerUlrich Drepper <drepper@redhat.com>2000-04-25 04:33:05 +0000
commite19ae111e949f40b7b39d73aa63720c53694fdec (patch)
tree5fe483a9bdfeffc82050fad1786c9eb0aaf3c39d
parent9bf4d6404e8f73c86ec4391fad107840a2e6341d (diff)
downloadglibc-e19ae111e949f40b7b39d73aa63720c53694fdec.tar.gz
glibc-e19ae111e949f40b7b39d73aa63720c53694fdec.tar.xz
glibc-e19ae111e949f40b7b39d73aa63720c53694fdec.zip
Update.
	* pthread.c: Remove special treatement for interrupt handlers on x86.
-rw-r--r--linuxthreads/ChangeLog1
-rw-r--r--linuxthreads/pthread.c31
2 files changed, 1 insertions, 31 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 0934404371..a04d39814f 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,5 +1,6 @@
 2000-04-24  Ulrich Drepper  <drepper@redhat.com>
 
+	* pthread.c: Remove special treatement for interrupt handlers on x86.
 	* manager.c (pthread_free): Use FREE_THREAD not FREE_THREAD_SELF.
 	* sysdeps/i386/useldt.h: Use "q" constraint instead of "r" where
 	necessary.
diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c
index 3375f7eaac..737042002a 100644
--- a/linuxthreads/pthread.c
+++ b/linuxthreads/pthread.c
@@ -21,9 +21,6 @@
 #include <string.h>
 #include <unistd.h>
 #include <fcntl.h>
-#ifdef __i386__
-# include <ucontext.h>
-#endif
 #include <sys/wait.h>
 #include <sys/resource.h>
 #include <shlib-compat.h>
@@ -195,10 +192,6 @@ extern int _h_errno;
 static void pthread_exit_process(int retcode, void *arg);
 static void pthread_handle_sigcancel(int sig);
 static void pthread_handle_sigrestart(int sig);
-#ifdef __i386__
-static void pthread_handle_sigrestart_nonrt(int sig, struct sigcontext ctx);
-static void pthread_handle_sigcancel_nonrt(int sig, struct sigcontext ctx);
-#endif
 static void pthread_handle_sigdebug(int sig);
 
 /* Signal numbers used for the communication.
@@ -362,19 +355,11 @@ static void pthread_initialize(void)
   /* Setup signal handlers for the initial thread.
      Since signal handlers are shared between threads, these settings
      will be inherited by all other threads. */
-#ifndef __i386__
   sa.sa_handler = pthread_handle_sigrestart;
-#else
-  sa.sa_handler = (__sighandler_t) pthread_handle_sigrestart_nonrt;
-#endif
   sigemptyset(&sa.sa_mask);
   sa.sa_flags = 0;
   __sigaction(__pthread_sig_restart, &sa, NULL);
-#ifndef __i386__
   sa.sa_handler = pthread_handle_sigcancel;
-#else
-  sa.sa_handler = (__sighandler_t) pthread_handle_sigcancel_nonrt;
-#endif
   sa.sa_flags = 0;
   __sigaction(__pthread_sig_cancel, &sa, NULL);
   if (__pthread_sig_debug > 0) {
@@ -660,14 +645,6 @@ static void pthread_handle_sigrestart(int sig)
     siglongjmp(*THREAD_GETMEM(self, p_signal_jmp), 1);
 }
 
-#ifdef __i386__
-static void pthread_handle_sigrestart_nonrt(int sig, struct sigcontext ctx)
-{
-  asm volatile ("movw %w0,%%gs" : : "r" (ctx.gs));
-  pthread_handle_sigrestart(sig);
-}
-#endif
-
 /* The handler for the CANCEL signal checks for cancellation
    (in asynchronous mode), for process-wide exit and exec requests.
    For the thread manager thread, redirect the signal to
@@ -702,14 +679,6 @@ static void pthread_handle_sigcancel(int sig)
   }
 }
 
-#ifdef __i386__
-static void pthread_handle_sigcancel_nonrt(int sig, struct sigcontext ctx)
-{
-  asm volatile ("movw %w0,%%gs" : : "r" (ctx.gs));
-  pthread_handle_sigcancel(sig);
-}
-#endif
-
 /* Handler for the DEBUG signal.
    The debugging strategy is as follows:
    On reception of a REQ_DEBUG request (sent by new threads created to