This is the mail archive of the
cygwin-cvs@cygwin.com
mailing list for the Cygwin project.
[newlib-cygwin] _dll_crt0: Drop incorrect check for being started from parent main thread
- From: Corinna Vinschen <corinna at sourceware dot org>
- To: cygwin-cvs at sourceware dot org
- Date: 10 Mar 2017 19:50:57 -0000
- Subject: [newlib-cygwin] _dll_crt0: Drop incorrect check for being started from parent main thread
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=35d344babe154bde4e5dfcc01638251cc50e2e79
commit 35d344babe154bde4e5dfcc01638251cc50e2e79
Author: Corinna Vinschen <corinna@vinschen.de>
Date: Fri Mar 10 20:28:09 2017 +0100
_dll_crt0: Drop incorrect check for being started from parent main thread
This test was broken from the start. It leads to creating a completely
new stack for the main thread of the child process when started from
the main thread of the parent. However, the main thread of a process
can easily running on a completely different stack, if the parent's main
thread was created by calling fork() from a pthread. For an example,
see https://cygwin.com/ml/cygwin/2017-03/msg00113.html
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diff:
---
winsup/cygwin/dcrt0.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index 8ddee0c..ea6adcb 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -1041,7 +1041,7 @@ _dll_crt0 ()
under our own control and avoids collision with the OS. */
if (!dynamically_loaded)
{
- if (!in_forkee || fork_info->from_main)
+ if (!in_forkee)
{
/* Must be static since it's referenced after the stack and frame
pointer registers have been changed. */