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:
Corinna Vinschen 2022-05-03 14:34:42 +02:00
parent 01c734b0d7
commit b827d4d36a
3 changed files with 4 additions and 12 deletions

View File

@ -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

View File

@ -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 ())

View File

@ -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);