OSDN Git Service

* exceptions.cc (unused_sig_wrapper): Accommodate newer compilers.
authorcgf <cgf>
Mon, 30 Sep 2002 04:26:52 +0000 (04:26 +0000)
committercgf <cgf>
Mon, 30 Sep 2002 04:26:52 +0000 (04:26 +0000)
winsup/cygwin/ChangeLog
winsup/cygwin/exceptions.cc
winsup/cygwin/thread.cc

index 1ca8c93..8d86144 100644 (file)
@@ -1,3 +1,7 @@
+2002-09-30  Christopher Faylor  <cgf@redhat.com>
+
+       * exceptions.cc (unused_sig_wrapper): Accommodate newer compilers.
+
 2002-09-29  Christopher Faylor  <cgf@redhat.com>
 
        * security.cc (allow_ntsec): Default to zero.
index a1d7019..54c5d59 100644 (file)
@@ -1178,7 +1178,13 @@ reset_signal_arrived ()
   sigproc_printf ("reset signal_arrived");
 }
 
-void unused_sig_wrapper ()
+static void unused_sig_wrapper () __attribute__((const, unused));
+
+#undef errno
+#define errno ((DWORD volatile) _impure_ptr) + (((char *) &_impure_ptr->_errno) - ((char *) _impure_ptr))
+
+static void
+unused_sig_wrapper ()
 {
 /* Signal cleanup stuff.  Cleans up stack (too bad that we didn't
    prototype signal handlers as __stdcall), calls _set_process_mask
@@ -1199,8 +1205,7 @@ _sigreturn:                                                               \n\
 1:     popl    %%eax           # saved errno                           \n\
        testl   %%eax,%%eax     # Is it < 0                             \n\
        jl      2f              # yup.  ignore it                       \n\
-       movl    %1,%%ebx                                                \n\
-       movl    %%eax,(%%ebx)                                           \n\
+       movl    %%eax,%1                                                \n\
 2:     popl    %%eax                                                   \n\
        popl    %%ebx                                                   \n\
        popl    %%ecx                                                   \n\
@@ -1240,7 +1245,7 @@ _sigdelayed0:                                                             \n\
        popl    %%eax                                                   \n\
        jmp     *%%eax                                                  \n\
 __no_sig_end:                                                          \n\
-" : "=m" (sigsave.sig) : "m" (&_impure_ptr->_errno),
+" : "=m" (sigsave.sig):  "X" (errno),
   "g" (sigsave.retaddr), "g" (sigsave.oldmask), "g" (sigsave.sig),
     "g" (sigsave.func), "g" (sigsave.saved_errno), "g" (sigsave.newmask)
 );
index 0f27ef3..6411cdb 100644 (file)
@@ -2225,7 +2225,7 @@ pthread_mutex::init (pthread_mutex_t *mutex,
   DWORD waitResult = WaitForSingleObject (mutexInitializationLock, INFINITE);
   if (waitResult != WAIT_OBJECT_0)
     {
-      system_printf ("Received a unexpected wait result on mutexInitializationLock %d\n", waitResult);
+      system_printf ("Received a unexpected wait result on mutexInitializationLock %d, %E\n", waitResult);
       return EINVAL;
     }