aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2002-09-30 14:18:43 +0000
committerChristopher Faylor <me@cgf.cx>2002-09-30 14:18:43 +0000
commit63e5f2006d84d41892dec4d0c1b53c1999ea1faa (patch)
tree95c2a31d6cb756152898978924dba67067509211
parent00a8c44a5bba0acee23f3265c077172a3d0e5e33 (diff)
downloadnewlib-63e5f2006d84d41892dec4d0c1b53c1999ea1faa.zip
newlib-63e5f2006d84d41892dec4d0c1b53c1999ea1faa.tar.gz
newlib-63e5f2006d84d41892dec4d0c1b53c1999ea1faa.tar.bz2
* exceptions.cc (unused_sig_wrapper): Still need additional level of
indirection when setting errno.
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/exceptions.cc5
2 files changed, 8 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 34d90a4..bf0c1e7 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -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.
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index fa8cd63..e15803a 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -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)
);