aboutsummaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2022-05-03 14:34:42 +0200
committerCorinna Vinschen <corinna@vinschen.de>2022-05-03 14:39:28 +0200
commitb827d4d36a7df77e8e0bcaed38bf639d83f6d233 (patch)
tree370fe68553f375509c4f3b19c28bf8f61fb65748 /winsup
parent01c734b0d7c1ce0f848f7efc091856c58a6ef55e (diff)
downloadnewlib-b827d4d36a7df77e8e0bcaed38bf639d83f6d233.zip
newlib-b827d4d36a7df77e8e0bcaed38bf639d83f6d233.tar.gz
newlib-b827d4d36a7df77e8e0bcaed38bf639d83f6d233.tar.bz2
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>
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/dcrt0.cc6
-rw-r--r--winsup/cygwin/miscfuncs.cc7
-rw-r--r--winsup/cygwin/miscfuncs.h3
3 files changed, 4 insertions, 12 deletions
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index e757c47..dee8482 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -1064,11 +1064,7 @@ _dll_crt0 ()
/* Must be static since it's referenced after the stack and frame
pointer registers have been changed. */
static PVOID allocationbase;
- SIZE_T commitsize = in_forkee ? (PBYTE) fork_info->stackbase
- - (PBYTE) fork_info->stacklimit
- : 0;
- PVOID stackaddr = create_new_main_thread_stack (allocationbase,
- commitsize);
+ PVOID stackaddr = create_new_main_thread_stack (allocationbase);
if (stackaddr)
{
/* Set stack pointer to new address. Set frame pointer to
diff --git a/winsup/cygwin/miscfuncs.cc b/winsup/cygwin/miscfuncs.cc
index fcb0822..905c242 100644
--- a/winsup/cygwin/miscfuncs.cc
+++ b/winsup/cygwin/miscfuncs.cc
@@ -629,7 +629,7 @@ thread_allocator thr_alloc NO_COPY;
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. */
PVOID
-create_new_main_thread_stack (PVOID &allocationbase, SIZE_T parent_commitsize)
+create_new_main_thread_stack (PVOID &allocationbase)
{
PIMAGE_DOS_HEADER dosheader;
PIMAGE_NT_HEADERS ntheader;
@@ -647,10 +647,7 @@ create_new_main_thread_stack (PVOID &allocationbase, SIZE_T parent_commitsize)
allocationbase
= thr_alloc.alloc (ntheader->OptionalHeader.SizeOfStackReserve);
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 ());
if (commitsize > stacksize - guardsize - wincap.page_size ())
commitsize = stacksize - guardsize - wincap.page_size ();
diff --git a/winsup/cygwin/miscfuncs.h b/winsup/cygwin/miscfuncs.h
index 47cef6f..f571031 100644
--- a/winsup/cygwin/miscfuncs.h
+++ b/winsup/cygwin/miscfuncs.h
@@ -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)
#ifdef __x86_64__
-extern PVOID create_new_main_thread_stack (PVOID &allocationbase,
- SIZE_T parent_commitsize);
+extern PVOID create_new_main_thread_stack (PVOID &allocationbase);
#endif
extern "C" DWORD WINAPI pthread_wrapper (PVOID arg);