From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2155) id B77C33858C54; Thu, 14 Jul 2022 18:09:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B77C33858C54 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Corinna Vinschen To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: _dll_crt0: minimize target-specific conditional code X-Act-Checkin: newlib-cygwin X-Git-Author: Corinna Vinschen X-Git-Refname: refs/heads/master X-Git-Oldrev: e46f15c2d168abea34b4d880b4eba38d750c7066 X-Git-Newrev: 5192d5ea51dee786ba1cb97b216bd40115dbbf20 Message-Id: <20220714180927.B77C33858C54@sourceware.org> Date: Thu, 14 Jul 2022 18:09:27 +0000 (GMT) X-BeenThere: cygwin-cvs@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component git logs List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jul 2022 18:09:27 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dnewlib-cygwin.git;h=3D5192d5ea51d= ee786ba1cb97b216bd40115dbbf20 commit 5192d5ea51dee786ba1cb97b216bd40115dbbf20 Author: Corinna Vinschen Date: Thu Jul 14 20:08:58 2022 +0200 Cygwin: _dll_crt0: minimize target-specific conditional code =20 Only the assembler snippet is really x86_64-specific, so minimize the conditional code block to this snippet. =20 Signed-off-by: Corinna Vinschen Diff: --- winsup/cygwin/dcrt0.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index 897a2fba3..97eefa19d 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -1016,7 +1016,6 @@ __cygwin_exit_return: \n\ extern "C" void __stdcall _dll_crt0 () { -#ifdef __x86_64__ /* Starting with Windows 10 rel 1511, the main stack of an application is not reproducible if a 64 bit process has been started from a 32 bit process. Given that we have enough virtual address space on 64 bit @@ -1033,6 +1032,7 @@ _dll_crt0 () PVOID stackaddr =3D create_new_main_thread_stack (allocationbase); if (stackaddr) { +#ifdef __x86_64__ /* Set stack pointer to new address. Set frame pointer to stack pointer and subtract 32 bytes for shadow space. */ __asm__ ("\n\ @@ -1040,6 +1040,9 @@ _dll_crt0 () movq %%rsp, %%rbp \n\ subq $32,%%rsp \n" : : [ADDR] "r" (stackaddr)); +#else +#error unimplemented for this target +#endif /* We're on the new stack now. Free up space taken by the former main thread stack and set DeallocationStack correctly. */ VirtualFree (NtCurrentTeb ()->DeallocationStack, 0, MEM_RELEASE); @@ -1049,9 +1052,6 @@ _dll_crt0 () else fork_info->alloc_stack (); } -#else -#error unimplemented for this target -#endif =20 fesetenv (FE_DFL_ENV); _main_tls =3D &_my_tls;