From patchwork Mon Nov 28 19:12:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hannes Domani X-Patchwork-Id: 61189 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 276D03852C44 for ; Mon, 28 Nov 2022 19:11:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 276D03852C44 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1669662670; bh=hhkkadsUeOadPm2Ftc9bApkCFZUNDoREJ9zqNrrXu+M=; h=To:Subject:Date:References:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=nHRc2kV80Fs/Omvh93Ar5+MOi2VCtN0JhHV7lqPJ8ki7jlFUbNkrWDYwwIcmvKXnF mIBT/9VC1k4imKaDFDWCEAF9ZIJfnfIJRW6WowF8Ay37wf2jzftaZrieWSPE7KfuOE uVOyq3lPYIjCgrawjkSiI8ZK2BX7bXh7iHwexp1g= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from sonic302-21.consmr.mail.ir2.yahoo.com (sonic302-21.consmr.mail.ir2.yahoo.com [87.248.110.84]) by sourceware.org (Postfix) with ESMTPS id 938573858C62 for ; Mon, 28 Nov 2022 19:10:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 938573858C62 X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1669662645; bh=XA8LTLny7E8IefZUA3eI9qaiF3YihTypTB1qJzLXDiH=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=dBwmpuMCRalPMnQS9twi+50IByLZzxjKiOZm5b/+RPVWllCHKoQb9GZCBUvDijmnAy2UKvPCdHq9IQwF0GV1XnbRKsMQhj54i8Vl/GhRCafgvnTraWDTya7PHySGWPUgkNuICes7Od9/GrOZej4/mnUccOjS9WBasgDCHtzPohJrAljhpNbjX9A+6DsyyxHfxKWbXyt4JWJYKyR9FMbTjwW6FdNju7UxhzW/DXV/z9KvHN15bsbREdtbME7hdYYnIpdl3Z4FFFQhP8Lh7UzWYBgbIyHMgp96wIKxPRwsdrudL8pnffTbF31FspsfrO0UJMwlSpUDEpPAGC37eHdhnw== X-YMail-OSG: 4cz2L_kVM1miFJqRShn42KuJ1NZ1Ret6N4dEskI4QfyX7tMpXbzElMQrPdthgsj OTBwmWfN8hmwGDpilNwJzAQXJu86h.SAr9ZXxeLN0IkzOm2GpqdqWUKC3jhyXkZH8lOplOc3uJVt mTxMBItvjVyAdmAtSMH96Aj.iMbyC4jP5hLyzNU8bHWtbBHQ7MUaf8WeJqqTaILIGZiC6auRZWdv m7DKfQqde2qAVXiixtkaXopFOhvZHiffz.EiT5DRxs_zktOT3SqKjt8wj7jvOudC_3h67R7bnLzB 7UQ68T6Le3cx8ICKp9ctXGc4cstTcGNGpx4Om2BdNStRYVP5SUOnWfPimSVClMWCUvy_pnClOOvZ u2x23p.q.pZRB8znUffw5GmTBMt5LLMFsP_5wGN_gSG97MOTBFpG2ROF9KU..pbuW0VGwdKzxESF lHdayFfvkqJ5TuclDOiwfRUHHEsgxlfVlIeG2XDk_ScJ5Iv5O25bc9X.caGxnf0zefvC9lY2fQAl oxLGaDI2FfSvZ.ouyQdM9WO_4SmodERHYgU0Ehqn0pI7EYUgwj65AkYjh0BxIv5u_tINmoIfwS6f 9aOKlA8qmHR_MnCCdkN_ZCL23u_UyOaorUOAAmv2z1wO3ZhPCx61hbXYzUI2ieRnDT2PSiCIrUEB wErAzopln_DT3UThWypAntnscHmEThaw2AW..IeQZueSyRdCzmQMVYR.8bjZB6vRtIBJIxc6onEg RGgYCTxRPKg2005mAMDABQGCcbb63KPK8TTX5WCxACQuH9dKV4.gvNQjrkhPAleq6BFXyWdLYXv1 3ABzsYj.BcTOkUV2Lad0cvCSUOpL67o98_U2AtHB7EMB6Fv4LRAfI2yH2JHF43ezEHxxRJDF8UHl aSmpjIDj4e2nVExpyFXI_paWVbcFPMhRkcCjvdTDlplAQd664OY557aBviv1GdHhpOHubKjdyQ6B ifpRtweQLe_SVkFMKe7_doAQufvkoeA4HZVCZyp0.5uonP3Cpd_1vOToQQDqYyl9jj39KBbnMqYe MmSj4HZxOY3Fc74o69yBhL4rHAKTPxmPMsnZRt8cLB1D53sRQI.kLFjcTsbhtx.LGRFO77nzjLg2 N9_fjc_U8CCUnJRo2S4XFd2vciHF8HJcmuKBFfUgMNgEX2uv87mkP4oj5B.pcTsDmkPI4ckhmLru 1.NhIjPWfINbqgzl.p3mXeP9jXAox6yb1VtEZObwNOVrqUCvd.Uu4_60rt5rBKFyUeR6L1sc2_hh c_Dqr6v333ragqyKcL3OMb1_1yX18LSEKlxMxOA4MXDek7rbxH_46pjiz7BXdVpt3MEmMlWzy3_M oxVlT87SBoYUqacXGXzDp72Jw3GKPsncKos5fgABMIy94pMisYUiD3mKvAfUlsW0KctuxIlNwlWJ aHELwZ35EHdodT.O67.aTTXgiZwbAqikUZ3VXl8oAwgG9vpNc_RqpZhzIaBhkOug5Dq9PWzlOHgb xDYBn7cbgEiZ7_Z2tSUKMEb7g3YjU4agsx1ThLl5s7THFM5bP__t7cY2lf5AM3xMZ13JHGbYYpmL CakPOfdqSmRi70lM8bdhrAtfIRAn9Obxb02AJlFc2IYtXoR5UjLsHlgPOR7L1lV0E5HXNPJ8d27V Goyrw_KhPCak7vVR8qN6oIn8MgLNwUZTzYcfKzlFcT8NVD67PB9ftEaZq7gFuCqfa6ozClI1AxDH jd9VKmq2aoSHklNG35mJaTu8dngFiYgRV6H47Mlyh2ny3JqxEw2m2kIc9k90SW1y8IMAeLnzITKn vzYW4wpiOYsTBBgmdwOerXpE_XIo.s2IB2AgJyiAVZwqDLdYPiY5tH7VldjNipQHc6uHTZUUHaDx WUDlcyuen2CTkaVafmBpK.BqT7y8aPIyrUxuTl_Wu8BuN96Rf6IfQVfa68sQOn9sN5XijsoPaGUA UJ872mP16ImTE2cd1qsSG4KlwxpDK3ASseES1rvzLvF5GnzO9k0HhQhN80_u0Ry_k_ARI.hVeJt9 1xJr_nwahuWzhPqt36RRfDGz66dV4xfsYcnVCFl_A5mdJ6S7knzImEH2wsM9Eegg6HroKaIZ02FD hEAx9xD0gSrGmHHEnQ9vG0Y4TyryhECe85yXWc8CB5zTDz.qjNSdjVX7dO30FNrXJ1AtLOL_FADg 0q9Lnx6lnWjD_U2JJtqgSnv.7dpEWL5xe9KMVx1j59EjLvq3f0.K6t5Sn60WVGOfHJ6CT0xLHKuF wNRcEzj.h2w9WA06fbT5qhnRs6Q-- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic302.consmr.mail.ir2.yahoo.com with HTTP; Mon, 28 Nov 2022 19:10:45 +0000 Received: by hermes--production-ir2-74cf6dc4df-hf6d4 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID f7d2419a0d94437a4a81115c994e5e89; Mon, 28 Nov 2022 19:10:42 +0000 (UTC) To: gdb-patches@sourceware.org Subject: [PATCH 1/4] Fix calling convention of thread entry point Date: Mon, 28 Nov 2022 20:12:21 +0100 Message-Id: <20221128191224.1411-1-ssbssa@yahoo.de> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 X-Antivirus: Avast (VPS 221128-0, 11/28/2022), Outbound message X-Antivirus-Status: Clean References: <20221128191224.1411-1-ssbssa.ref@yahoo.de> X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Hannes Domani via Gdb-patches From: Hannes Domani Reply-To: Hannes Domani Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" For i686 the CreateThread entry point function needs the WINAPI (stdcall) calling convention: ../../gdb/windows-nat.c: In constructor 'windows_nat_target::windows_nat_target()': ../../gdb/windows-nat.c:450:56: error: invalid user-defined conversion from 'windows_nat_target::windows_nat_target()::' to 'LPTHREAD_START_ROUTINE' {aka 'long unsigned int (__attribute__((stdcall)) *)(void*)'} [-fpermissive] 450 | HANDLE bg_thread = CreateThread (nullptr, 64 * 1024, fn, this, 0, nullptr); | ^~ ../../gdb/windows-nat.c:444:13: note: candidate is: 'constexpr windows_nat_target::windows_nat_target()::::operator DWORD (*)(LPVOID)() const' (near match) 444 | auto fn = [] (LPVOID self) -> DWORD | ^ ../../gdb/windows-nat.c:444:13: note: no known conversion from 'DWORD (*)(LPVOID)' {aka 'long unsigned int (*)(void*)'} to 'LPTHREAD_START_ROUTINE' {aka 'long unsigned int (__attribute__((stdcall)) *)(void*)'} Since it's not possible to change the calling convention of a lambda, I've moved it to a separate function. --- gdb/windows-nat.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c index 5d506507b6d..f61f6c1cb35 100644 --- a/gdb/windows-nat.c +++ b/gdb/windows-nat.c @@ -344,6 +344,9 @@ struct windows_nat_target final : public x86_nat_target BOOL windows_continue (DWORD continue_status, int id, int killed, bool last_call = false); + /* Helper function to start process_thread. */ + static DWORD WINAPI process_thread_starter (LPVOID self); + /* This function implements the background thread that starts inferiors and waits for events. */ void process_thread (); @@ -404,13 +407,8 @@ windows_nat_target::windows_nat_target () m_response_event (CreateEvent (nullptr, false, false, nullptr)), m_wait_event (make_serial_event ()) { - auto fn = [] (LPVOID self) -> DWORD - { - ((windows_nat_target *) self)->process_thread (); - return 0; - }; - - HANDLE bg_thread = CreateThread (nullptr, 64 * 1024, fn, this, 0, nullptr); + HANDLE bg_thread = CreateThread (nullptr, 64 * 1024, + process_thread_starter, this, 0, nullptr); CloseHandle (bg_thread); } @@ -453,6 +451,13 @@ wait_for_single (HANDLE handle, DWORD howlong) } } +DWORD WINAPI +windows_nat_target::process_thread_starter (LPVOID self) +{ + ((windows_nat_target *) self)->process_thread (); + return 0; +} + void windows_nat_target::process_thread () {