* dcrt0.cc (alloc_stack): Move _main_tls if stack is relocated.

This commit is contained in:
Christopher Faylor 2003-12-12 05:04:47 +00:00
parent c76d70d7c0
commit fac0681d6c
2 changed files with 21 additions and 13 deletions

View File

@ -1,3 +1,7 @@
2003-12-12 Christopher Faylor <cgf@redhat.com>
* dcrt0.cc (alloc_stack): Move _main_tls if stack is relocated.
2003-12-11 Christopher Faylor <cgf@redhat.com>
* miscfuncs.cc (low_priority_sleep): Correct thinko which caused

View File

@ -54,6 +54,16 @@ bool strip_title_path;
bool allow_glob = true;
codepage_type current_codepage = ansi_cp;
static NO_COPY int mypid = 0;
int __argc_safe;
int _declspec(dllexport) __argc;
char _declspec(dllexport) **__argv;
vfork_save NO_COPY *main_vfork = NULL;
extern "C" void __sinit (_reent *);
_threadinfo NO_COPY *_main_tls;
int cygwin_finished_initializing;
/* Used in SIGTOMASK for generating a bit for insertion into a sigset_t.
@ -507,24 +517,18 @@ alloc_stack (child_info_fork *ci)
if (!VirtualQuery ((LPCVOID) &b, &sm, sizeof sm))
api_fatal ("fork: couldn't get stack info, %E");
if (sm.AllocationBase != ci->stacktop)
alloc_stack_hard_way (ci, b + sizeof (b) - 1);
else
if (sm.AllocationBase == ci->stacktop)
ci->stacksize = 0;
else
{
alloc_stack_hard_way (ci, b + sizeof (b) - 1);
_main_tls = &_my_tls;
_main_tls->init_thread (NULL);
}
return;
}
static NO_COPY int mypid = 0;
int __argc_safe;
int _declspec(dllexport) __argc;
char _declspec(dllexport) **__argv;
vfork_save NO_COPY *main_vfork = NULL;
extern "C" void __sinit (_reent *);
_threadinfo NO_COPY *_main_tls;
/* Take over from libc's crt0.o and start the application. Note the
various special cases when Cygwin DLL is being runtime loaded (as
opposed to being link-time loaded by Cygwin apps) from a non