From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.133]) by sourceware.org (Postfix) with ESMTPS id 87B49385783C for ; Mon, 31 Aug 2020 19:41:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 87B49385783C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=cygwin.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=corinna-cygwin@cygwin.com Received: from calimero.vinschen.de ([217.91.18.234]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MIyiY-1jtWQ41LfG-00KOlk for ; Mon, 31 Aug 2020 21:41:54 +0200 Received: by calimero.vinschen.de (Postfix, from userid 500) id BD206A8098A; Mon, 31 Aug 2020 21:41:53 +0200 (CEST) Date: Mon, 31 Aug 2020 21:41:53 +0200 From: Corinna Vinschen To: cygwin@cygwin.com Subject: Re: cpp /usr/include/threads.h fails; modfl segfaults Message-ID: <20200831194153.GH3272@calimero.vinschen.de> Reply-To: cygwin@cygwin.com Mail-Followup-To: cygwin@cygwin.com References: <02b16d2e-9d51-de58-807b-3b31b2565b59.ref@aol.com> <02b16d2e-9d51-de58-807b-3b31b2565b59@aol.com> <20200830130005.GR3272@calimero.vinschen.de> <20200831073500.GU3272@calimero.vinschen.de> <36f6cc1b-1944-f1b6-b832-33205c08bbae@SystematicSw.ab.ca> <20200831184517.GF3272@calimero.vinschen.de> <140d7709-7db0-6935-15c1-786d392d0f53@SystematicSw.ab.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <140d7709-7db0-6935-15c1-786d392d0f53@SystematicSw.ab.ca> X-Provags-ID: V03:K1:M2EDILts1hujxQJ2+oa/KseKIw34r1Oar9B9KV1PqxE65cF8fk7 dZ8rmUkUIkic0xpZ2XvFyH+on2XSiKIKs4R9GbcK7nJDac8zHSgmEFT8vH+SBZmOzUsIKPt vdWyCi6/Gi+PyE+hGm385KBudtrM7Ovqd7rIkSEV7qwk0MpTbV4hkmXyFiJKUpfp9yn6i8G mOvMY4zBqq1hqJzLJxKQQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:qmXXPpbJzIQ=:9maB6mqNI5kt/WDKCAeFZm RMNyGPydcfUboQz9UOvHtKpKgGftXKjvIhx9QghRx6UCvAu9UWnGWRpA4jIzbZT+vXk95iVfc klK4YyU5nCJCdevbW4vlHNDkuUMuCo3R5GZTfMkgHhU4/mcNXc55/PROcXLRwytWV5SdcaCn4 6UNH53G4IMZF5G6q9IHxXmHGGqiURb3EBO722l+6M6U1+/GoVCwGdSntiPKSW7XRexEMBuG9T SsmQA7/VvdFZVcuwrTRuvybDoLEt6jaAnVxQG4k0btUyCi1Vi3cQoam/73ReqkXWlXhdcwmaf prJ7yYNCt5aDYo2r+6XQl8gSVWICqZzVc6InPR4PeaZOq7B6OUqxElXrXY5xBi4MAIttzm5tm XbnCJ6rA14uaEmn05NgSsWfhBzTmYBxs3KrXRonJGik86cN42biM8XpR0ANtpyDA+JTsVh0VK 1QFWToN6pH01SUkM4+Yba4PlNorql64rq3BCaIC4Irg48JqzJKGQ5WXJUK44pcjlxhmCLX6s0 cb0CC3tW9xobvyggPT42ku+Dlkzlf2xtFo9nmkVNvflG1CB+jT2sdT9eApXOf9yCE0NY3Xkv1 ya2LTkezTRbozFSkMeAk5eq8YLKVJEESmSTt7uRMrGHqh55bJDoXtKLmuJnTPlQQRO9gLB2tA Pm21r+0mn6FxFuz1owKOlci1twCEksQOptSTIL/rJNp43tR6biNlKuE48CvK57p667rNN9qs1 zTM71psM62p5AGREoIXzwKs6W6TnBDE/VFjaus2B9GDYlHMWrebA1rR+LWfuvejw7n1xQ61yJ BpmyJKpvjvpBWFmKJsT3u9l0iPZcYpkQpFr9G42hQF92qg0qkaucy6o9/NHPsvDKo+N4DiUBx 9K/A9kux2Cz+dniLa1lA== X-Spam-Status: No, score=-100.3 required=5.0 tests=BAYES_00, GOOD_FROM_CORINNA_CYGWIN, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NEUTRAL, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: cygwin@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 Aug 2020 19:41:56 -0000 On Aug 31 13:24, Brian Inglis wrote: > On 2020-08-31 12:45, Corinna Vinschen wrote: > > On Aug 31 09:37, Brian Inglis wrote: > >> On 2020-08-31 01:35, Corinna Vinschen wrote: > >>> On Aug 30 14:39, Brian Inglis wrote: > >>>> On 2020-08-30 07:00, Corinna Vinschen wrote: > >>>>> On Aug 29 08:52, airplanemath via Cygwin wrote: > >>>>>> I have two reports.  A brief description of the system: > >>>>>> $ uname -a | sed "s/${HOSTNAME}/\${HOSTNAME}/g" > >>>>>> CYGWIN_NT-10.0 ${HOSTNAME} 3.1.7(0.340/5/3) 2020-08-22 17:48 x86_64 Cygwin > >>>> ... > >>>>>> $ cat test.c > >>>>>> #include > >>>>>> #include > >>>>>> #include > >>>>>> > >>>>>> int main(int argc, char *argv[]) { > >>>>>>   long double a, b, c; > >>>>>>   char *num_end = NULL; > >>>>>>   a = b = c = 0.0L; > >>>>>>   if (argc != 2) { > >>>>>>     fprintf(stderr, "Usage: %s NUMBER\n", argv[0]); > >>>>>>     exit(1); > >>>>>>   } > >>>>>>   a = strtold(argv[1], &num_end); > >>>>>>   b = modfl(a, &c); > >>>>>>   printf("%Lf %Lf %Lf\n", a, b, c); > >>>>>>   return 0; > >>>>>> } > >>>>> > >>>>> This is a bug in the assembler code taken from Mingw-w64. The bug has > >>>>> been fixed upstream, so I just pulled in the upstream fixes. > >>>> > >>>> The 64 bit fix doesn't pop eax but *now* flags eax as clobbered, whereas the 32 > >>>> bit fix both pops and *now* flags eax as clobbered, which it really doesn't need > >>>> to do. Is this inconsistent treatment correct? > >>> > >>> You may be right that this is not necessary on i686, but it doesn't > >>> hurt either and I'd like to stick to the upstream code if possible. > >> > >> The upstream patch changed only amd64/x86_64 code sequences for multiple modules > >> including modfl, and left i386/x86 untouched for those modules. > > Just pointing out that they only modify their amd64/x86_64 code which doesn't > push/pop rax/eax: Where are you looking at? As you could see from my output, I was looking at the master branch of the upstream repo. This lengthy discussion for a minor asm snippet doesn't make any sense. If you think this is wrong, send patches to cygwin-patches and explain where you got it from, preferrably as a git patch from the upstream repo. Corinna -- Corinna Vinschen Cygwin Maintainer