From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Anyone building Emacs trunk with MinGW w64 (32 bits) Date: Tue, 26 Mar 2013 19:38:18 +0200 Message-ID: <83a9pqysc5.fsf@gnu.org> References: <87zjxumbjf.fsf@wanadoo.es> <83vc8f1t0x.fsf@gnu.org> <87sj3jcr6t.fsf@wanadoo.es> <86zjxrs4jm.fsf@gmail.com> <87k3ovcn1r.fsf@wanadoo.es> <86fvzj2gkz.fsf@gmail.com> <87sj3jaqfs.fsf@wanadoo.es> <83y5dazmpt.fsf@gnu.org> <86ehf2zefk.fsf@gmail.com> <86li9az2sw.fsf@gmail.com> <83hajyz1mi.fsf@gnu.org> <867gku88lx.fsf@gmail.com> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1364319495 23668 80.91.229.3 (26 Mar 2013 17:38:15 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 26 Mar 2013 17:38:15 +0000 (UTC) Cc: emacs-devel@gnu.org To: rzl24ozi@gmail.com, =?iso-8859-1?Q?=D3scar?= Fuentes Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Mar 26 18:38:41 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UKXpW-0005Yh-5R for ged-emacs-devel@m.gmane.org; Tue, 26 Mar 2013 18:38:38 +0100 Original-Received: from localhost ([::1]:46735 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UKXp8-0004Ee-7w for ged-emacs-devel@m.gmane.org; Tue, 26 Mar 2013 13:38:14 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:41055) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UKXp4-0004CV-6v for emacs-devel@gnu.org; Tue, 26 Mar 2013 13:38:11 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UKXp1-0001G2-JX for emacs-devel@gnu.org; Tue, 26 Mar 2013 13:38:10 -0400 Original-Received: from mtaout20.012.net.il ([80.179.55.166]:50971) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UKXp1-0001Fn-BN for emacs-devel@gnu.org; Tue, 26 Mar 2013 13:38:07 -0400 Original-Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0MKA002003LZFS00@a-mtaout20.012.net.il> for emacs-devel@gnu.org; Tue, 26 Mar 2013 19:38:05 +0200 (IST) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MKA001MN3NHTMC0@a-mtaout20.012.net.il>; Tue, 26 Mar 2013 19:38:05 +0200 (IST) In-reply-to: <867gku88lx.fsf@gmail.com> X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 X-Received-From: 80.179.55.166 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:158232 Archived-At: > If USE_NO_MINGW_SETJMP_TWO_ARGS is defined, it seems that emacs crash > when byte-compile. I do not know what happened in this case exactly, > sorry. > > In ms-w32.h, some functions are defined to sys_..., > such as chmod -> sys_chmod. > if it is defined before "#include ", > functions in sys/stat.h are changed. > It cause warning like "warning: 'sys_chmod' redeclared without > dllimport...", I think. so I include it here. > > __start is entry point that specified by linker option in makefile, > but 64bit gcc does not add '_' to symbol, so change _start to > __start. > > > --- ./nt/inc/sys/time.h.orig 2013-03-26 17:33:23.000000000 +0900 > > +++ ./nt/inc/sys/time.h 2013-03-26 21:46:23.425698700 +0900 > : > > This breaks the MinGW32 build, so please see if the current trunk has > > a better solution for this problem. > > I understand. > > > --- ./src/image.c.orig 2013-03-24 18:16:45.000000000 +0900 > > +++ ./src/image.c 2013-03-26 21:46:23.437698700 +0900 > > @@ -5545,6 +5545,9 @@ > > png_byte **rows; > > }; > > > > +#ifdef _W64 > > +#define _setjmp setjmp > > +#endif > > > > Why is this needed? > > In image.c, _setjmp() is used with 1 arg. It seems that some compile error. > This is also related to the following. > > > --- ./src/lisp.h.orig 2013-03-25 12:31:37.000000000 +0900 > > +++ ./src/lisp.h 2013-03-26 21:46:23.442698700 +0900 > > @@ -2164,7 +2164,11 @@ > > > > #ifdef HAVE__SETJMP > > typedef jmp_buf sys_jmp_buf; > > +#ifdef _W64 > > +# define sys_setjmp(j) setjmp (j) > > +#else > > # define sys_setjmp(j) _setjmp (j) > > +#endif > > # define sys_longjmp(j, v) _longjmp (j, v) > > > > And this? > > If USE_NO_MINGW_SETJMP_TWO_ARGS is not defined, > it seems that _setjmp() need 2 args (see mingw-w64's setjmp.h). > so I change this. I think I found a cleaner way of handling the MinGW64 setjmp interface, committed as trunk revision 112145. The 64-bit MinGW64 build still needs some changes, in nt/configure.bat and elsewhere. But I hope the 32-bit build is OK now. Can you two please see if the latest trunk builds with MinGW64 for you? (Remember to re-run configure.bat, as some changes require that.) If there are any problems left, whether errors or warnings, please post them. TIA