diff options
author | Christopher Faylor <me@cgf.cx> | 2002-09-30 14:18:43 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2002-09-30 14:18:43 +0000 |
commit | 63e5f2006d84d41892dec4d0c1b53c1999ea1faa (patch) | |
tree | 95c2a31d6cb756152898978924dba67067509211 | |
parent | 00a8c44a5bba0acee23f3265c077172a3d0e5e33 (diff) | |
download | newlib-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/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/exceptions.cc | 5 |
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) ); |