* dcrt0.cc: Semi-revert commit 12743c2d5d.
        (dll_crt0_0): Drop setting wow64_needs_stack_adjustment on 64 bit.
        (_dll_crt0): Split out 64 bit code again and always create new main
        thread stack, unless forked off from the non main thread in the parent.
        Call create_new_main_thread_stack with parent stack commitsize if
        started from the parent's main thread.
        Only call child_info_fork::alloc_stack for the latter case on 64 bit.
        Slightly rearrange moving rsp and rbp to new stack and document how.
        Revert 32 bit wow64 handling to its former self.
        * miscfunc.cc (create_new_main_thread_stack): Take a commitsize
        parameter and use it if it's not 0.  Don't set _main_tls here, it's
        done in the caller _dll_crt0 anyway.  Return stackbase - 16 bytes,
        rather than stacklimit (which was very wrong anyway).
        * miscfuncs.h (create_new_main_thread_stack): Accommodate declaration
        to aforementioned change.
        * wincap.h (wincaps::has_3264_stack_broken): Remove element.
        * wincap.cc: Ditto, throughout.
        * wow64.cc: Semi-revert to pre-12743c2d5d2721f3a80b4d7671a349be03c1f520
        but keep architecture-agnostic type changes intact.  Fix formatting.
        * wow64.h: Revert to pre-12743c2d5d2721f3a80b4d7671a349be03c1f520.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
		
	
		
			
				
	
	
		
			22 lines
		
	
	
		
			607 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			607 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* wow64.h
 | 
						|
 | 
						|
   Copyright 2011, 2012, 2015 Red Hat, Inc.
 | 
						|
 | 
						|
This file is part of Cygwin.
 | 
						|
 | 
						|
This software is a copyrighted work licensed under the terms of the
 | 
						|
Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 | 
						|
details. */
 | 
						|
 | 
						|
#ifndef __x86_64__
 | 
						|
/* WOW64 only plays a role in the 32 bit version.  Don't use any of this
 | 
						|
   in the 64 bit version. */
 | 
						|
 | 
						|
extern bool NO_COPY wow64_needs_stack_adjustment;
 | 
						|
 | 
						|
extern bool wow64_test_for_64bit_parent ();
 | 
						|
extern PVOID wow64_revert_to_original_stack (PVOID &allocationbase);
 | 
						|
extern void wow64_respawn_process () __attribute__ ((noreturn));
 | 
						|
 | 
						|
#endif /* !__x86_64__ */
 |