From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs,gmane.emacs.pretest.bugs Subject: bug#1705: 23.0.60; parallel build failure: `mh-e' was not provided Date: Sat, 27 Dec 2008 14:19:44 +0200 Message-ID: References: <20081225222756.8855CC16C7F@mt-computer.local> Reply-To: Eli Zaretskii , 1705@emacsbugs.donarmstrong.com NNTP-Posting-Host: lo.gmane.org X-Trace: ger.gmane.org 1230381831 18496 80.91.229.12 (27 Dec 2008 12:43:51 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 27 Dec 2008 12:43:51 +0000 (UTC) Cc: emacs-pretest-bug@gnu.org, bug-gnu-emacs@gnu.org To: Markus Triska , 1705@emacsbugs.donarmstrong.com Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Dec 27 13:44:58 2008 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1LGYXJ-0002l0-T6 for geb-bug-gnu-emacs@m.gmane.org; Sat, 27 Dec 2008 13:44:58 +0100 Original-Received: from localhost ([127.0.0.1]:47242 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LGYW6-0004Xx-JS for geb-bug-gnu-emacs@m.gmane.org; Sat, 27 Dec 2008 07:43:42 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LGYVq-0004MM-Tj for bug-gnu-emacs@gnu.org; Sat, 27 Dec 2008 07:43:26 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LGYVp-0004Le-Je for bug-gnu-emacs@gnu.org; Sat, 27 Dec 2008 07:43:25 -0500 Original-Received: from [199.232.76.173] (port=47160 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LGYVp-0004LQ-Fg for bug-gnu-emacs@gnu.org; Sat, 27 Dec 2008 07:43:25 -0500 Original-Received: from rzlab.ucr.edu ([138.23.92.77]:35093) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LGYVo-0003yq-8J for bug-gnu-emacs@gnu.org; Sat, 27 Dec 2008 07:43:24 -0500 Original-Received: from rzlab.ucr.edu (rzlab.ucr.edu [127.0.0.1]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id mBRChLpj031944; Sat, 27 Dec 2008 04:43:22 -0800 Original-Received: (from debbugs@localhost) by rzlab.ucr.edu (8.13.8/8.13.8/Submit) id mBRCU3Pb028350; Sat, 27 Dec 2008 04:30:03 -0800 X-Loop: owner@emacsbugs.donarmstrong.com Resent-From: Eli Zaretskii Resent-To: bug-submit-list@donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Sat, 27 Dec 2008 12:30:03 +0000 Resent-Message-ID: Resent-Sender: owner@emacsbugs.donarmstrong.com X-Emacs-PR-Message: followup 1705 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Original-Received: via spool by submit@emacsbugs.donarmstrong.com id=B.123038042126938 (code B ref -1); Sat, 27 Dec 2008 12:30:03 +0000 Original-Received: (at submit) by emacsbugs.donarmstrong.com; 27 Dec 2008 12:20:21 +0000 X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. Original-Received: from fencepost.gnu.org (fencepost.gnu.org [140.186.70.10]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id mBRCKIK9026927 for ; Sat, 27 Dec 2008 04:20:19 -0800 Original-Received: from mail.gnu.org ([199.232.76.166]:53972 helo=mx10.gnu.org) by fencepost.gnu.org with esmtp (Exim 4.67) (envelope-from ) id 1LGY8V-00085M-NW for emacs-pretest-bug@gnu.org; Sat, 27 Dec 2008 07:19:19 -0500 Original-Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1LGY9P-0001n6-Tc for emacs-pretest-bug@gnu.org; Sat, 27 Dec 2008 07:20:17 -0500 Original-Received: from mtaout6.012.net.il ([84.95.2.16]:46377) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LGY9P-0001mu-GF; Sat, 27 Dec 2008 07:20:15 -0500 Original-Received: from conversion-daemon.i-mtaout6.012.net.il by i-mtaout6.012.net.il (HyperSendmail v2007.08) id <0KCJ00800BK1MV00@i-mtaout6.012.net.il>; Sat, 27 Dec 2008 14:22:17 +0200 (IST) Original-Received: from HOME-C4E4A596F7 ([77.126.252.83]) by i-mtaout6.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0KCJ00LKKBP4QMH0@i-mtaout6.012.net.il>; Sat, 27 Dec 2008 14:22:17 +0200 (IST) In-reply-to: <20081225222756.8855CC16C7F@mt-computer.local> X-012-Sender: halo1@inter.net.il X-detected-operating-system: by monty-python.gnu.org: Solaris 10 (1203?) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) Resent-Date: Sat, 27 Dec 2008 07:43:25 -0500 X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:23505 gmane.emacs.pretest.bugs:23560 Archived-At: > From: Markus Triska > Date: Thu, 25 Dec 2008 23:27:56 +0100 (CET) > Cc: > > > A parallel compilation (-j 2) with today's CVS version aborted with: > > In toplevel form: > mh-e/mh-folder.el:34:1:Error: Required feature `mh-e' was not provided > Wrote /Users/mt/emacs/lisp/mh-e/mh-e.elc > Compiling /Users/mt/emacs/lisp/mh-e/mh-funcs.el > make[1]: *** [/Users/mt/emacs/lisp/mh-e/mh-folder.elc] Error 1 > make[1]: *** Waiting for unfinished jobs.... > make[1]: *** Waiting for unfinished jobs.... > No MH variant found on the system > Wrote /Users/mt/emacs/lisp/mh-e/mh-funcs.elc > make: *** [lisp] Error 2 This is because we don't tell Make all the truth about the dependencies between Lisp files, so it by default assumes that mh-funcs.elc and mh-e.elc are independent, and compiles them in two different jobs that run in parallel. But the truth is that mh-funcs.el says this: (require 'mh-e) which causes Emacs to look for mh-e.elc when it compiles mh-funcs.el. So there's a race condition here between the 2 jobs that Make runs in parallel under "-j 2": one job compiles mh-e.el and writes mh-e.elc, while the other job, which compiles mh-funcs.el, reads from mh-e.elc. In this case, the reading job evidently accessed mh-e.elc after it was already created, but before it was written in its fullness (as you see above, the "Wrote /Users/mt/emacs/lisp/mh-e/mh-e.elc" message is printed _after_ the error message). So the "provide" form was not yet in mh-e.elc when it was read, and Emacs barfed. In general, we lack such dependencies all over lisp/Makefile.in, so I submit that "make -j N" works for us by sheer luck: I'm guessing that this is due to small values of N and the fact that $(ELCFILES) causes Make to compile files in alphabetic order, combined with very few dependencies between Lisp files whose names come close to one another in that order. But given a large enough value of N (and a correspondingly large number of processors on the system), we should see such failures all the time. I added to lisp/Makefile.in a series of dependencies that should fix the case of MH-E compilation. Please see if this fixes the problem for you. If you have more than 2 processors, it would make sense to try "make -j N" with values of N larger than 2, to increase the probability of such a clash.