OSDN Git Service

* exceptions.cc (unused_sig_wrapper): Still need additional level of
authorcgf <cgf>
Mon, 30 Sep 2002 14:18:43 +0000 (14:18 +0000)
committercgf <cgf>
Mon, 30 Sep 2002 14:18:43 +0000 (14:18 +0000)
indirection when setting errno.

winsup/cygwin/ChangeLog
winsup/cygwin/exceptions.cc

index 34d90a4..bf0c1e7 100644 (file)
@@ -1,3 +1,8 @@
+2002-09-30  Christopher Faylor  <cgf@redhat.com>
+
+       * exceptions.cc (unused_sig_wrapper): Still need additional level of
+       indirection when setting errno.
+
 2002-09-30  Robert Collins <rbtcollins@hotmail.com>
 
        * thread.cc (pthread_mutex::initMutex): Use the wrapper init call.
index fa8cd63..e15803a 100644 (file)
@@ -1205,7 +1205,8 @@ _sigreturn:                                                               \n\
 1:     popl    %%eax           # saved errno                           \n\
        testl   %%eax,%%eax     # Is it < 0                             \n\
        jl      2f              # yup.  ignore it                       \n\
-       movl    %%eax,%1                                                \n\
+       movl    %1,%%ebx                                                \n\
+       movl    %%eax,(%%ebx)                                           \n\
 2:     popl    %%eax                                                   \n\
        popl    %%ebx                                                   \n\
        popl    %%ecx                                                   \n\
@@ -1245,7 +1246,7 @@ _sigdelayed0:                                                             \n\
        popl    %%eax                                                   \n\
        jmp     *%%eax                                                  \n\
 __no_sig_end:                                                          \n\
-" : "=m" (sigsave.sig):  "X" (errno),
+" : "=m" (sigsave.sig):  "X" ((char *) &_impure_ptr->_errno),
   "g" (sigsave.retaddr), "g" (sigsave.oldmask), "g" (sigsave.sig),
     "g" (sigsave.func), "g" (sigsave.saved_errno), "g" (sigsave.newmask)
 );