delorie.com/archives/browse.cgi | search |
X-Recipient: | archive-cygwin AT delorie DOT com |
DomainKey-Signature: | a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:date:from:to:subject:message-id:reply-to | |
:references:mime-version:content-type:in-reply-to; q=dns; s= | |
default; b=Mivi5jAxc9mYYll4x06SCyp/NoRaHbxtchVsRSCy870pAcObgdAGh | |
YOFPWB3bHieux45it07+w6vYvYUlohs+FrykOIZg+4bC6hz/BH9TjxAz+JURbFrZ | |
hETqP1sI9eOlt0IhCbWi9/1ngTIcvfrnvtGrprVMAvViNnye5zrVTM= | |
DKIM-Signature: | v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:date:from:to:subject:message-id:reply-to | |
:references:mime-version:content-type:in-reply-to; s=default; | |
bh=3c4xAwhtSWqsTb+4W/Lpxkdvhpw=; b=GZqOkTDnB6Q5CtL0XgFsM7/29J6w | |
csW5+bL8y4q5GY0a8ZDDDPsedT6hs0wm04OVcbxndog9CIYaXDjikVRaDuoGhgP5 | |
qTeWSrW9Y25kryBpRv56VRJH3hGbMKZjJdqjPFyy00BPyhrKVfSAOJZFGg1f6Ozf | |
HqI5cSjLLm+Mr8o= | |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Id: | <cygwin.cygwin.com> |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
Authentication-Results: | sourceware.org; auth=none |
X-Virus-Found: | No |
X-Spam-SWARE-Status: | No, score=-93.9 required=5.0 tests=AWL,BAYES_00,GOOD_FROM_CORINNA_CYGWIN,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_BRBL_LASTEXT,RCVD_IN_PBL,RCVD_IN_SORBS_DUL,RDNS_DYNAMIC autolearn=ham version=3.3.2 spammy=surrounding, screw, yeah, H*i:CALd |
X-HELO: | calimero.vinschen.de |
Date: | Mon, 4 Jul 2016 11:52:04 +0200 |
From: | Corinna Vinschen <corinna-cygwin AT cygwin DOT com> |
To: | cygwin AT cygwin DOT com |
Subject: | Re: 64 bit Cywgin 2.5.2 on Wine: python fails with sem_init: Invalid argument |
Message-ID: | <20160704095204.GC13445@calimero.vinschen.de> |
Reply-To: | cygwin AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
References: | <CALd+sZSpKSmsQCKt1DFQfAhRJ5OAY2CeafrsqKtN6Mf2zzywTg AT mail DOT gmail DOT com> |
MIME-Version: | 1.0 |
In-Reply-To: | <CALd+sZSpKSmsQCKt1DFQfAhRJ5OAY2CeafrsqKtN6Mf2zzywTg@mail.gmail.com> |
User-Agent: | Mutt/1.6.1 (2016-04-27) |
--u3/rZRmxL6MmkK24 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Qian, On Jul 4 10:45, Qian Hong wrote: > Hi folks, >=20 > When compiling 64 bit Cygwin on Wine, I found a python{2,3} failure > when building documentation [1]: >=20 > xmlto --skip-validation --with-dblatex pdf -o cygwin-ug-net/ -m > /drone/src/github.com/cygwin/cygwin/winsup/doc/fo.xsl > /drone/src/github.com/cygwin/cygwin/winsup/doc/cygwin-ug-net.xml > sem_init: Invalid argument What is python calling sem_init for here?!? That means you need to start cygserver just to build the Cygwin docs natively. Oh well. > [...] > According to my previous experience this happens with previous version > of Cygwin 64 bit on Wine, but works fine on Windows, and works fine on > 32 bit Cygwin on Wine. I can't test latest git HEAD Cygwin version due > to another known failure. Yeah, Vista++ compatiblity... > I tried to track down the problem, and I found during the call of > sem_init(sem, pshared=3D0, value=3D1), in some case pshared and value were > unexpectedly changed to large integers after > verifyable_object_isvalid(). >=20 > I tried to reproduce with a simplified test case, and got the below > code which behaviors wrong but not exactly in the same way: >=20 > #include <unistd.h> > #include <stdlib.h> > #include <string.h> > #include <semaphore.h> > #include <pthread.h> >=20 >=20 > int > main(int argc, char *argv[]) > { > sem_t *p_sem =3D malloc(sizeof(sem_t)); >=20 > memset(p_sem, 0xcc, sizeof(sem_t)); /* trigger exception handling > code in Cygwin sem_init()-->verifyable_object_isvalid() */ This is perfectly valid. The verifyable_object_isvalid code performs an access check which results in an exception for invalid objects, but which is catched by the surrounding __try/__except code. > sem_init(p_sem, 0, 1); >=20 > return 0; > } >=20 > Compiled using Cygwin gcc -pthread, The above code works fine on > Cygwin on Windows and 32 bit Cygwin on Wine, but causes a stack > overflow on 64 bit Cygwin on Wine. Unfortunately it does not fail > exatly in the same way to Cygiwn python, but at least it brings some > interesting question. Stack overflow sounds weird. The execption handling in Cygwin isn't perfect, but an exception in verifyable_object_isvalid should not screw up the stack. > I think it is a Wine bug which does not handle exception correctly, > and I'm trying to track down deeper. At the time could anyone provide > some hint which piece of Cygwin code could I learn to write a pure > Win32 test case emulating the above example? Have a look at verifyable_object_isvalid in general, plus how the exception handling in Cygwin on 64 bit works. I'd suggest to take a look into the implementation of the __try/__except macros in cygtls.h and the exception::myfault handler in exceptions.cc. > I also attached +seh log comparing 64 bit Cygwin and 32 bit Cygwin on > Wine, which show the stackoverflow on 64 bit but handles fine on 32 > bit, hopefully that helps. I created a Wine bug on [2]. Puh, I admit that it doesn't help me much. As a rough guess I'd say that the unwinder failed to unwind correctly for some reason, but I also freely admit that my knowledge on 64 bit unwinding is not exactly complete. I wouldn't exclude the possibility of a bug in Cygwin here. May I point out http://www.nynaeve.net/?p=3D113, which is the last part of a series on 64 bit exception handling and which has pointers to all previous parts of the series. It helped me much to get 64bit exception handling in Cygwin going. HTH, Corinna --=20 Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat --u3/rZRmxL6MmkK24 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJXejHDAAoJEPU2Bp2uRE+g4FkQAI+3Mtzaa+x1pfS/0Bu9zY/j GNzxJAlAHHfATP51jY4nsBRspj3YhpY+j1ReYcjikLqEeqqS/i/XQUaJkcjHU13f lJmWmzepAYjlKpKzGKSMazanWduN1SRpOyyw2FI/SaKogdyRGoyPXIm0QDTzIbjv F0bQAFmNHY6UB8tRNCNKnvdTwr7Iva0b222zmTmQcU8sbEXkIlgubg0Cfrd/F0nL Ys79+4go/+MMNzS5WjwWWPSuwbJE8dnTnit/Lo8cmffLvlfq9XQaPwlenHD4KWti XN4R358zXCd3QHnIPkx0RTk3boHN0couTMukUHajwl3wwtuSworMAWpjYw+ecH5A TT16EyoVhq/olSUjiltvRZB+K309ctEQGDYenZJ9c46bQjyuRZZ+K8emZ0ASYy5Q jCCJLkiXFp1s5/ckRxZDNfDTza5miuHnZwGyaKyE4m0DXmk2TGiUegr0S9TPNTnD B47g7+EK4arhqSPadAOkeTNAHnLxW7bMjmXlhlb59lFODWq871YIpa8o1nEG+UTw 1kQLgTS/CdYUehF+IuFqcww6lNEjn8C7177y3FYB7Qg+w6P3/a5pGIyL/qcYAWeg 3EWwvgsBIbkAmp8MQ7Pudikk3i/N9UknHYTnOPeniCnJGwCIVlkQG3oNavyrDeQN MzKXuYnai5eiItoNyGk3 =XM3g -----END PGP SIGNATURE----- --u3/rZRmxL6MmkK24--
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |