Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2006-06-02 04:09:50 +0400
committerChristopher Faylor <me@cgf.cx>2006-06-02 04:09:50 +0400
commit2346864a451f0e82c26d083c1fee7c6df07edc68 (patch)
tree744e90adc1c975677be9e407f2fa86a8f0bfe2e3 /winsup/cygwin/gendef
parent3e1290a3053d973bacb7cd2f82124e5c2d0352a2 (diff)
* cygheap.cc (cygheap_fixup_in_child): Don't close parent handle here. Let the
caller do that. * dcrt0.cc (child_info_spawn::handle_spawn): Close parent handle here to allow fixup_after_exec functions to use it. * cygtls.cc (_cygtls::call2): Avoid calling exit thread if called with *crt0_1 functions. * cygtls.h (_cygtls::isinitialized): Check that we actually have a tls before seeing if it is initialized. * gendef (_sigfe_maybe): Ditto. * dcrt0.cc (dll_crt0_1): Remove static, use just one argument. * dll_init.cc (dllcrt0_info): New structure. (dll_dllcrt0): Change into a front-end to renamed dll_dllcrt0_1 so that we'll always be assured of having something like a tls. (dll_dllcrt0_1): New function, basically renamed from from dll_dllcrt0. Unconditionally call _my_tls.init_exception_handler now that we are assured of having a tls. Change variable name from "linking" to "linked". * winsup.h (dll_crt0_1): Declare. (dll_dllcrt0_1): Ditto.
Diffstat (limited to 'winsup/cygwin/gendef')
-rwxr-xr-xwinsup/cygwin/gendef6
1 files changed, 5 insertions, 1 deletions
diff --git a/winsup/cygwin/gendef b/winsup/cygwin/gendef
index b31d71b3a..4f60ea686 100755
--- a/winsup/cygwin/gendef
+++ b/winsup/cygwin/gendef
@@ -104,10 +104,14 @@ __sigfe_maybe:
pushl %ebx
pushl %edx
movl %fs:4,%ebx # location of bottom of stack
+ addl \$$tls::initialized,%ebx # where we will be looking
+ cmpl %ebx,%esp # stack loc > than tls
+ jge 0f # yep. we don't have a tls.
+ subl \$$tls::initialized,%ebx # where we will be looking
movl $tls::initialized(%ebx),%eax
cmpl \$0xc763173f,%eax # initialized?
je 1f
- popl %edx
+0: popl %edx
popl %ebx
ret