From: cgf Date: Wed, 2 Mar 2005 16:13:20 +0000 (+0000) Subject: * autoload.cc (LoadDLLprime): Mask error code to low-order 16 bits. X-Git-Tag: pre_wait_sig_exit~2828 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=a1251f70af7812ae9444cffb712f6ab55e1fde3b;p=pf3gnuchains%2Fpf3gnuchains4x.git * autoload.cc (LoadDLLprime): Mask error code to low-order 16 bits. (noload): Preserve sign when returning error code. --- diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 2b2f1caea8..5424793500 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,10 @@ 2005-03-02 Christopher Faylor + * autoload.cc (LoadDLLprime): Mask error code to low-order 16 bits. + (noload): Preserve sign when returning error code. + +2005-03-02 Christopher Faylor + * spawn.cc (do_cleanup): Properly restore SIGINT/SIGQUIT even if they had previously been SIG_DFL. diff --git a/winsup/cygwin/autoload.cc b/winsup/cygwin/autoload.cc index 59c24f7c29..805b765c1b 100644 --- a/winsup/cygwin/autoload.cc +++ b/winsup/cygwin/autoload.cc @@ -89,7 +89,7 @@ _win32_" mangle (name, n) ": \n\ 1:movl (2f),%eax \n\ call *(%eax) \n\ 2:.long ." #dllname "_info \n\ - .long (" #n "+" #notimp ") | " #err "<<16 \n\ + .long (" #n "+" #notimp ") | (((" #err ") & 0xffff) <<16) \n\ .asciz \"" #name "\" \n\ .text \n\ "); @@ -128,7 +128,7 @@ noload: \n\ pushl %eax # First argument \n\ call _SetLastError@4 # Set it \n\ popl %eax # Get back argument \n\ - shrl $16,%eax # return value in high order word \n\ + sarl $16,%eax # return value in high order word \n\ jmp *%edx # Return \n\ 1: \n\ movl (%edx),%eax # Handle value \n\