From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#9960: Compiling Emacs trunk with MSVC Date: Sat, 05 Nov 2011 23:27:44 +0200 Message-ID: <838vnujm3z.fsf@gnu.org> References: <83sjy5279e.fsf@gnu.org> <8339e2lsu7.fsf@gnu.org> <83zkgakdby.fsf@gnu.org> <4EB5320F.5090800@gmail.com> <83vcqyk8k3.fsf@gnu.org> <4EB540F4.7080106@gmail.com> <83r51mk62f.fsf@gnu.org> <86wrbeo7p5.fsf@googlemail.com> <83k47ejyyt.fsf@gnu.org> <86sjm2o559.fsf@googlemail.com> <86obwqo2hl.fsf@googlemail.com> <86ipmynwds.fsf@googlemail.com> Reply-To: Eli Zaretskii NNTP-Posting-Host: lo.gmane.org X-Trace: dough.gmane.org 1320528630 4628 80.91.229.12 (5 Nov 2011 21:30:30 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 5 Nov 2011 21:30:30 +0000 (UTC) Cc: fabrice.popineau@supelec.fr, 9960@debbugs.gnu.org To: Christoph Scholtes Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Nov 05 22:30:26 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RMnon-0002gF-6P for geb-bug-gnu-emacs@m.gmane.org; Sat, 05 Nov 2011 22:30:25 +0100 Original-Received: from localhost ([::1]:35917 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RMnom-0007KY-IO for geb-bug-gnu-emacs@m.gmane.org; Sat, 05 Nov 2011 17:30:24 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:34497) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RMnok-0007KK-AO for bug-gnu-emacs@gnu.org; Sat, 05 Nov 2011 17:30:23 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RMnoj-0003JM-1g for bug-gnu-emacs@gnu.org; Sat, 05 Nov 2011 17:30:22 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:52645) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RMnoj-0003J7-04 for bug-gnu-emacs@gnu.org; Sat, 05 Nov 2011 17:30:21 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1RMnrK-0007v5-FB for bug-gnu-emacs@gnu.org; Sat, 05 Nov 2011 17:33:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 05 Nov 2011 21:33:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 9960 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 9960-submit@debbugs.gnu.org id=B9960.132052877030426 (code B ref 9960); Sat, 05 Nov 2011 21:33:02 +0000 Original-Received: (at 9960) by debbugs.gnu.org; 5 Nov 2011 21:32:50 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RMnr4-0007ua-6L for submit@debbugs.gnu.org; Sat, 05 Nov 2011 17:32:50 -0400 Original-Received: from mtaout20.012.net.il ([80.179.55.166]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RMnr0-0007uQ-MQ for 9960@debbugs.gnu.org; Sat, 05 Nov 2011 17:32:44 -0400 Original-Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0LU700800IB9IX00@a-mtaout20.012.net.il> for 9960@debbugs.gnu.org; Sat, 05 Nov 2011 23:29:49 +0200 (IST) Original-Received: from HOME-C4E4A596F7 ([84.228.70.69]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0LU7008ZRIDN0VC0@a-mtaout20.012.net.il>; Sat, 05 Nov 2011 23:29:48 +0200 (IST) In-reply-to: <86ipmynwds.fsf@googlemail.com> X-012-Sender: halo1@inter.net.il X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Sat, 05 Nov 2011 17:33:02 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:53569 Archived-At: > From: Christoph Scholtes > Cc: fabrice.popineau@supelec.fr, 9960@debbugs.gnu.org > Date: Sat, 05 Nov 2011 14:32:15 -0600 > > Christoph Scholtes writes: > > > Then we get to emacs.c: > > emacs.c(537) : error C2059: syntax error : '<<' > > emacs.c(537) : error C2059: syntax error : 'constant' > > emacs.c(537) : error C2059: syntax error : ')' > > cl.exe does not like the shift operator in this statement: > > static int __declspec(align(1 << 3)) test = 1; That comes from Fabrice, assuming that removing `static' doesn't help. Does it fail even if you take (1 << 3) in one more level of parentheses? What about an intermediate macro, as in #define FOO (1 << GCTYPEBITS) static int __declspec(align(FOO)) test = 1; ? > Other errors are due to missing definitions in stdint.h. The following > patch fixes this (64bit support added for completeness): Thanks, please install this. > Creating temacs.lib fails when linking with the following errors: > > temacs2.lib(font.obj) : error LNK2019: unresolved external symbol _snprintf referenced in function _font_unparse_xlfd Does this go away if you add "#define snprintf _snprintf" to src/s/ms-w32.h, for MSVC only? > temacs2.lib(fringe.obj) : error LNK2019: unresolved external symbol _window_box_right referenced in function _draw_fringe_bitmap_1 > temacs2.lib(w32term.obj) : error LNK2001: unresolved external symbol _window_box_right These are because xdisp.c defines window_box_right `inline'. (This is an optimized build, right? if not, does it mean that MSVC inlines functions even for a non-optimized builds?) I would suggest to make that `inline' conditional on _MSC_VER being undefined. > temacs2.lib(xdisp.obj) : error LNK2019: unresolved external symbol _strtoimax referenced in function _message_log_check_duplicate Add "#define strtoimax _strtoi64" to src/s/ms-w32.h, conditioned on _MSC_VER. > libgnu.lib(strftime.obj) : error LNK2001: unresolved external symbol _tzname > obj/i386/temacs.bin : fatal error LNK1120: 4 unresolved externals Make this (from src/s/ms-w32.h): #if !defined (_MSC_VER) || (_MSC_VER < 1400) #define tzname _tzname be defined unconditionally. (But leave the "utime" part under the same condition it is today.)