Cygwin: simplify create_new_main_thread_stack
Originally the function was designed to be used in forked processes as well, but it has never been used this way. Drop the parameter only required for forkees. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
01c734b0d7
commit
b827d4d36a
|
@ -1064,11 +1064,7 @@ _dll_crt0 ()
|
||||||
/* Must be static since it's referenced after the stack and frame
|
/* Must be static since it's referenced after the stack and frame
|
||||||
pointer registers have been changed. */
|
pointer registers have been changed. */
|
||||||
static PVOID allocationbase;
|
static PVOID allocationbase;
|
||||||
SIZE_T commitsize = in_forkee ? (PBYTE) fork_info->stackbase
|
PVOID stackaddr = create_new_main_thread_stack (allocationbase);
|
||||||
- (PBYTE) fork_info->stacklimit
|
|
||||||
: 0;
|
|
||||||
PVOID stackaddr = create_new_main_thread_stack (allocationbase,
|
|
||||||
commitsize);
|
|
||||||
if (stackaddr)
|
if (stackaddr)
|
||||||
{
|
{
|
||||||
/* Set stack pointer to new address. Set frame pointer to
|
/* Set stack pointer to new address. Set frame pointer to
|
||||||
|
|
|
@ -629,7 +629,7 @@ thread_allocator thr_alloc NO_COPY;
|
||||||
maintained by the thr_alloc class. See the description in the x86_64-only
|
maintained by the thr_alloc class. See the description in the x86_64-only
|
||||||
code in _dll_crt0 to understand why we have to do this. */
|
code in _dll_crt0 to understand why we have to do this. */
|
||||||
PVOID
|
PVOID
|
||||||
create_new_main_thread_stack (PVOID &allocationbase, SIZE_T parent_commitsize)
|
create_new_main_thread_stack (PVOID &allocationbase)
|
||||||
{
|
{
|
||||||
PIMAGE_DOS_HEADER dosheader;
|
PIMAGE_DOS_HEADER dosheader;
|
||||||
PIMAGE_NT_HEADERS ntheader;
|
PIMAGE_NT_HEADERS ntheader;
|
||||||
|
@ -647,9 +647,6 @@ create_new_main_thread_stack (PVOID &allocationbase, SIZE_T parent_commitsize)
|
||||||
allocationbase
|
allocationbase
|
||||||
= thr_alloc.alloc (ntheader->OptionalHeader.SizeOfStackReserve);
|
= thr_alloc.alloc (ntheader->OptionalHeader.SizeOfStackReserve);
|
||||||
guardsize = wincap.def_guard_page_size ();
|
guardsize = wincap.def_guard_page_size ();
|
||||||
if (parent_commitsize)
|
|
||||||
commitsize = (SIZE_T) parent_commitsize;
|
|
||||||
else
|
|
||||||
commitsize = ntheader->OptionalHeader.SizeOfStackCommit;
|
commitsize = ntheader->OptionalHeader.SizeOfStackCommit;
|
||||||
commitsize = roundup2 (commitsize, wincap.page_size ());
|
commitsize = roundup2 (commitsize, wincap.page_size ());
|
||||||
if (commitsize > stacksize - guardsize - wincap.page_size ())
|
if (commitsize > stacksize - guardsize - wincap.page_size ())
|
||||||
|
|
|
@ -109,8 +109,7 @@ ssize_t __reg3 check_iovec (const struct iovec *, int, bool);
|
||||||
#define check_iovec_for_write(a, b) check_iovec ((a), (b), true)
|
#define check_iovec_for_write(a, b) check_iovec ((a), (b), true)
|
||||||
|
|
||||||
#ifdef __x86_64__
|
#ifdef __x86_64__
|
||||||
extern PVOID create_new_main_thread_stack (PVOID &allocationbase,
|
extern PVOID create_new_main_thread_stack (PVOID &allocationbase);
|
||||||
SIZE_T parent_commitsize);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern "C" DWORD WINAPI pthread_wrapper (PVOID arg);
|
extern "C" DWORD WINAPI pthread_wrapper (PVOID arg);
|
||||||
|
|
Loading…
Reference in New Issue