From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.lisp.guile.user Subject: Re: guile 2.0.9 build on mingw Date: Wed, 12 Jun 2013 20:57:38 +0300 Message-ID: <838v2fky99.fsf@gnu.org> References: <83sj1hv2ml.fsf@gnu.org> <874ndx9y7h.fsf@pobox.com> <83ip2bt4qk.fsf@gnu.org> <8761xqhyyt.fsf@gnu.org> <83li6mt18y.fsf@gnu.org> <83wqq3mcq9.fsf@gnu.org> <87k3m3kor5.fsf@gnu.org> <83ehcalysu.fsf@gnu.org> <87sj0pvl4a.fsf@tines.lan> <837gi1n3v5.fsf@gnu.org> <87k3m1vg8b.fsf@tines.lan> <83txl4lhby.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1371059893 32714 80.91.229.3 (12 Jun 2013 17:58:13 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 12 Jun 2013 17:58:13 +0000 (UTC) Cc: guile-user@gnu.org To: mhw@netris.org, ludo@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Wed Jun 12 19:58:12 2013 Return-path: Envelope-to: guile-user@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 1UmpJE-0000op-Gw for guile-user@m.gmane.org; Wed, 12 Jun 2013 19:58:12 +0200 Original-Received: from localhost ([::1]:60686 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UmpJE-0000vo-3R for guile-user@m.gmane.org; Wed, 12 Jun 2013 13:58:12 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:39862) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UmpJ5-0000vh-Nw for guile-user@gnu.org; Wed, 12 Jun 2013 13:58:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UmpJ3-0005LR-0a for guile-user@gnu.org; Wed, 12 Jun 2013 13:58:03 -0400 Original-Received: from mtaout21.012.net.il ([80.179.55.169]:65066) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UmpJ2-0005KC-PA; Wed, 12 Jun 2013 13:58:00 -0400 Original-Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0MOA00800KFYWD00@a-mtaout21.012.net.il>; Wed, 12 Jun 2013 20:57:31 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MOA008M2KJUPD70@a-mtaout21.012.net.il>; Wed, 12 Jun 2013 20:57:31 +0300 (IDT) In-reply-to: <83txl4lhby.fsf@gnu.org> 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: guile-user@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:10429 Archived-At: > Date: Tue, 11 Jun 2013 19:53:21 +0300 > From: Eli Zaretskii > Cc: ludo@gnu.org, guile-user@gnu.org > > What eventually did the trick was configuring --with-threads=no. Once > I did that, the build ran successfully and almost 100% cleanly to > completion. (I will report the details about "almost" later.) Here's part 1 of those details. First, running the test suite resulted in some failures. test-system-cmds failed because it uses '..' quoting on the command line, which the Windows shell doesn't support. Fixed thusly: --- test-suite/standalone/test-system-cmds~0 2010-12-08 11:07:11.000000000 +0200 +++ test-suite/standalone/test-system-cmds 2013-06-12 13:52:14.333269200 +0300 @@ -10,7 +10,7 @@ "test-system-cmds: (system) did not return a boolean\n") (exit 1))) - (let ((rs (status:exit-val (system "guile -c '(exit 42)'")))) + (let ((rs (status:exit-val (system "guile -c \"(exit 42)\"")))) (if (not (= 42 rs)) (begin (simple-format @@ -39,4 +39,4 @@ ;; Local Variables: ;; mode: scheme -;; End: \ No newline at end of file +;; End: Next, test-unwind failed because it assumed that either $TMPDIR or '/tmp' will exist, none of which can be counted upon on Windows. Here's the fix for that (the declaration of mkstemp avoids compiler warning): --- test-suite/standalone/test-unwind.c~0 2012-01-31 00:32:38.000000000 +0200 +++ test-suite/standalone/test-unwind.c 2013-06-12 14:11:47.967231800 +0300 @@ -200,9 +200,19 @@ check_ports () #define FILENAME_TEMPLATE "/check-ports.XXXXXX" char *filename; const char *tmpdir = getenv ("TMPDIR"); +#ifdef __MINGW32__ + extern int mkstemp (char *); if (tmpdir == NULL) + tmpdir = getenv ("TEMP"); + if (tmpdir == NULL) + tmpdir = getenv ("TMP"); + if (tmpdir == NULL) + tmpdir = "/"; +#else + if (tmpdir == NULL) tmpdir = "/tmp"; +#endif filename = alloca (strlen (tmpdir) + sizeof (FILENAME_TEMPLATE) + 1); strcpy (filename, tmpdir); Finally, the tests in check-guile fail because they unconditionally use features that are not compiled into the MinGW build or not supported by it, like 'lstat', AF_UNIX in sockets, etc. Moreover, whenever a test fails, the run stops without running the rest of the test. Is there a way to skip tests that are known to fail? I see that renaming the corresponding test files to not have the .test extension would probably do the trick, but is there a better way? For that matter, is there a way of forcing the test run to continue even if some test failed? (I would actually suggest to skip tests automatically based on unsupported features.) Thanks.