OSDN Git Service

* gendef (stabilize_sig_stack): Correctly align this pointer for call to
authorcgf <cgf>
Wed, 25 Feb 2004 04:08:00 +0000 (04:08 +0000)
committercgf <cgf>
Wed, 25 Feb 2004 04:08:00 +0000 (04:08 +0000)
_cygtls::call_signal_handler.
* gentls_offsets: Output sizeof field.
* tlsoffsets.h: Regenerate.

winsup/cygwin/ChangeLog
winsup/cygwin/gendef
winsup/cygwin/gentls_offsets
winsup/cygwin/tlsoffsets.h

index 9d00d22..62682f3 100644 (file)
@@ -1,5 +1,12 @@
 2004-02-24  Christopher Faylor  <cgf@redhat.com>
 
+       * gendef (stabilize_sig_stack): Correctly align this pointer for call
+       to _cygtls::call_signal_handler.
+       * gentls_offsets: Output sizeof field.
+       * tlsoffsets.h: Regenerate.
+
+2004-02-24  Christopher Faylor  <cgf@redhat.com>
+
        * dcrt0.cc (_dll_crt0): Don't check sync_startup if threadfunc_ix is set.
 
        * external.cc (cygwin_internal): Implement CW_GET_BINMODE.
index d46dbb9..14c9f67 100755 (executable)
@@ -249,8 +249,9 @@ stabilize_sig_stack:
        jmp     1b
 2:     cmpl    \$0,$tls::sig(%edx)
        jz      3f
-       decl    $tls::stacklock(%edx)
-       movl    %edx,%eax
+       decl    $tls::stacklock(%edx)                   # unlock
+       movl    \$-$tls::sizeof__cygtls,%eax            # point to beginning
+       addl    %edx,%eax                               #  of tls block
        call    __ZN7_cygtls19call_signal_handlerEv
        jmp     1b
 3:     ret
index c69488a..1442927 100755 (executable)
@@ -53,6 +53,7 @@ main(int argc, char **argv)
 # define poffset(f) (((char *) &(foo->f)) - ((char *) foo))
 EOF
     print TMP 'puts ("//;# autogenerated:  Do not edit.\n");', "\n\n";
+    print TMP "printf (\"//; \$tls::sizeof_$struct = %d;\\n\", sizeof($struct\));\n";
     for my $f (@fields) {
        print TMP '  printf ("//; $tls::', $f, ' = %d;\n", ', "offset($f));\n";
        print TMP '  printf ("//; $tls::p', $f, ' = %d;\n", ', "poffset($f));\n";
index af55081..2ff2733 100644 (file)
@@ -1,5 +1,6 @@
 //;# autogenerated:  Do not edit.
 
+//; $tls::sizeof__cygtls = 3744;
 //; $tls::func = -3744;
 //; $tls::pfunc = 0;
 //; $tls::saved_errno = -3740;