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 20:57:54 +0200 Message-ID: <83620eyonh.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> <83a9pqysc5.fsf@gnu.org> <86sj3i6ndd.fsf@gmail.com> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1364324269 12184 80.91.229.3 (26 Mar 2013 18:57:49 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 26 Mar 2013 18:57:49 +0000 (UTC) Cc: emacs-devel@gnu.org To: rzl24ozi@gmail.com Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Mar 26 19:58:16 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 1UKZ4X-0007Bk-M6 for ged-emacs-devel@m.gmane.org; Tue, 26 Mar 2013 19:58:13 +0100 Original-Received: from localhost ([::1]:48957 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UKZ49-0003wL-9t for ged-emacs-devel@m.gmane.org; Tue, 26 Mar 2013 14:57:49 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:37274) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UKZ45-0003vk-0a for emacs-devel@gnu.org; Tue, 26 Mar 2013 14:57:46 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UKZ43-0004KD-Mt for emacs-devel@gnu.org; Tue, 26 Mar 2013 14:57:44 -0400 Original-Received: from mtaout21.012.net.il ([80.179.55.169]:56306) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UKZ43-0004Jt-Eq for emacs-devel@gnu.org; Tue, 26 Mar 2013 14:57:43 -0400 Original-Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0MKA00C007BNPP00@a-mtaout21.012.net.il> for emacs-devel@gnu.org; Tue, 26 Mar 2013 20:57:41 +0200 (IST) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MKA00C307C4HNB0@a-mtaout21.012.net.il>; Tue, 26 Mar 2013 20:57:40 +0200 (IST) In-reply-to: <86sj3i6ndd.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.169 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:158238 Archived-At: > From: rzl24ozi@gmail.com > Date: Wed, 27 Mar 2013 03:13:02 +0900 > > eval.c: In function 'internal_catch': > eval.c:963:3: error: too few arguments to function '_setjmp' > c:\usr\local\strawberry-perl-5.16.3.1-32bit-portable\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/../../../../i686-w64-mingw32/include/setjmp.h:164:63: note: declared here > eval.c: In function 'internal_lisp_condition_case': > eval.c:1126:3: error: too few arguments to function '_setjmp' > c:\usr\local\strawberry-perl-5.16.3.1-32bit-portable\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/../../../../i686-w64-mingw32/include/setjmp.h:164:63: note: declared here Thanks. I'm probably missing something here, please help me see what is it. lisp.h says this: #ifdef HAVE__SETJMP typedef jmp_buf sys_jmp_buf; # define sys_setjmp(j) _setjmp (j) # define sys_longjmp(j, v) _longjmp (j, v) #elif defined HAVE_SIGSETJMP typedef sigjmp_buf sys_jmp_buf; # define sys_setjmp(j) sigsetjmp (j, 0) # define sys_longjmp(j, v) siglongjmp (j, v) #else /* A platform that uses neither _longjmp nor siglongjmp; assume longjmp does not affect the sigmask. */ typedef jmp_buf sys_jmp_buf; # define sys_setjmp(j) setjmp (j) # define sys_longjmp(j, v) longjmp (j, v) #endif The latest trunk avoids defining HAVE__SETJMP for MinGW64, in nt/config.nt (did you remember to run configure.bat?): /* Define to 1 if _setjmp and _longjmp work. MinGW64 uses a 2-argument _setjmp, and setjmp is a macro defined to supply the 2nd arg correctly, so don't use _setjmp directly in that case. */ #ifndef _W64 #define HAVE__SETJMP 1 #endif And HAVE_SIGSETJMP is not defined in the MinGW build. So the above snippet from lisp.h should have define sys_setjmp as a call to setjmp, not to _setjmp. And setjmp is defined as follows on MinGW64's setjmp.h header file: #define setjmp(BUF) _setjmp((BUF), __builtin_frame_address (0)) So why isn't this working? why eval.c somehow calls _setjmp with only 1 argument? I also don't understand these 2 warnings: editfns.c: In function 'format_time_string': editfns.c:1793:32: warning: pointer/integer type mismatch in conditional expression [enabled by default] editfns.c: In function 'Fdecode_time': editfns.c:1844:16: warning: assignment makes pointer from integer without a cast [enabled by default] editfns.c: In function 'Fcurrent_time_string': editfns.c:2011:6: warning: assignment makes pointer from integer without a cast [enabled by default] This sounds like the prototypes of gmtime and/or localtime are not visible to the compiler at this point. But how can that happen, when ms-w32.h, included by config.h, includes time.h which declares these 2 functions?