From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eric Lilja Newsgroups: gmane.emacs.devel Subject: Re: Building cvs emacs on a dual-core machine Date: Sat, 23 Dec 2006 00:30:54 +0100 Message-ID: References: NNTP-Posting-Host: dough.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: sea.gmane.org 1166830303 24699 80.91.229.10 (22 Dec 2006 23:31:43 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 22 Dec 2006 23:31:43 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Dec 23 00:31:43 2006 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by dough.gmane.org with esmtp (Exim 4.50) id 1Gxtra-0002YF-Gy for ged-emacs-devel@m.gmane.org; Sat, 23 Dec 2006 00:31:42 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1GxtrZ-000300-Uk for ged-emacs-devel@m.gmane.org; Fri, 22 Dec 2006 18:31:42 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1GxtrI-0002xd-J3 for emacs-devel@gnu.org; Fri, 22 Dec 2006 18:31:24 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1GxtrH-0002w8-Kd for emacs-devel@gnu.org; Fri, 22 Dec 2006 18:31:24 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1GxtrH-0002vV-9y for emacs-devel@gnu.org; Fri, 22 Dec 2006 18:31:23 -0500 Original-Received: from [80.91.229.2] (helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA:32) (Exim 4.52) id 1GxtrG-0006Gg-Gk for emacs-devel@gnu.org; Fri, 22 Dec 2006 18:31:23 -0500 Original-Received: from list by ciao.gmane.org with local (Exim 4.43) id 1Gxtr4-0003lH-Ks for emacs-devel@gnu.org; Sat, 23 Dec 2006 00:31:10 +0100 Original-Received: from cust.fiber-lan.vnet.lk.85.194.49.108.stunet.se ([85.194.49.108]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 23 Dec 2006 00:31:10 +0100 Original-Received: from mindcooler by cust.fiber-lan.vnet.lk.85.194.49.108.stunet.se with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 23 Dec 2006 00:31:10 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-To: emacs-devel@gnu.org Original-Lines: 175 Original-X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: cust.fiber-lan.vnet.lk.85.194.49.108.stunet.se User-Agent: Thunderbird 1.5.0.9 (Windows/20061207) In-Reply-To: X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:64137 Archived-At: Eli Zaretskii skrev: >> From: Eric Lilja >> Date: Thu, 21 Dec 2006 01:14:45 +0100 >> >> Eli Zaretskii wrote: >>>> From: Eric Lilja >>>> Date: Wed, 20 Dec 2006 22:03:56 +0100 >>>> >>>> Ok, here's where it errors out (same with --jobs=2 and --jobs=4): >>>> gcc -I. -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0400 -D_X86_=1 -c >>>> -mno-cygwin -mtune=pentium4 -O2 -Di386 -D_CRTAPI1 >>>> =_cdecl -o oo-spd/i386/preprep.o preprep.c >>>> gcc -o oo-spd/i386/preprep.exe \ >>>> -mno-cygwin oo-spd/i386/preprep.o >>>> >>>> Essential Lisp files seem to be missing. You should either >>>> do `make bootstrap' or create `lisp/abbrev.elc' somehow. >>>> >>>> mingw32-make: *** [maybe-bootstrap-SH] Error 255 >>>> >>>> Yes, sorry, I'm on Windows. >>> That's an important piece of knowledge ;-) >>> >>> What version of Make do you have? What does "mingw32-make --version" >>> print? The --jobs option started to work correctly on Windows only in >>> the latest version 3.81 of GNU Make. If you don't have that version >>> of Make, --jobs will be very unreliable on Windows. >> $ mingw32-make --version >> GNU Make 3.81 > > I found and fixed several problems with Windows makefile's which > prevented parallel builds. Please resync with CVS and try again, I > hope it will work now. > > Note that, since the native Windows build of Make (including > mingw32-make) doesn't yet support the jobserver feature, it by default > invokes sub-Make's with --jobs=1 switch, and thus defeats parallelism > in recursive Make invocations. I made a provision for working around > this; to use it, invoke the top-level Make in the nt/ subdirectory > like this: > > mingw32-make bootstrap --jobs=2 XMFLAGS="--jobs=2" > > The XMFLAGS variable is used to pass an explicit --jobs option to > sub-Make's, overriding the default --jobs=1. (There's no requirement > that the argument to --jobs on the command line must be identical to > what you put in XMFLAGS, you can use different numbers if you wish.) > > Please tell if you have any additional problems with parallel builds > on Windows. > > And thanks again for drawing our attention to this. I tried your changes on a fresh checkout (sorry for using time but I thought it would work and wanted to see how big decrease in compile time I would get with your fixes): $ time mingw32-make bootstrap --jobs=2 XMFLAGS="--jobs=2" [Please ignore a syntax error on the next line - it is intentional] /usr/bin/sh: -c: line 0: unexpected EOF while looking for matching `"' /usr/bin/sh: -c: line 1: syntax error: unexpected end of file mkdir "oo-spd" mkdir "oo-spd/i386" echo oo-spd/i386 > stamp_BLD gcc -I. -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0400 -D_X86_=1 -c -mno-cygwin -mtune=pentium4 -O2 -Di386 -D_CRTAPI1 =_cdecl -o oo-spd/i386/addsection.o addsection.c gcc -o oo-spd/i386/addsection.exe \ -mno-cygwin oo-spd/i386/addsection.o -luser32 c:/mingw32-make-3.81-1/bin/mingw32-make -j 1 --jobs=2 -C ../lisp bootstrap-clean [Please ignore a syntax error on the next line - it is intentional] /usr/bin/sh: -c: line 0: unexpected EOF while looking for matching `"' /usr/bin/sh: -c: line 1: syntax error: unexpected end of file mingw32-make[1]: Entering directory `c:/cvsemacs/emacs/lisp' cp c:/cvsemacs/emacs/lisp/ldefs-boot.el c:/cvsemacs/emacs/lisp/loaddefs.el c:/mingw32-make-3.81-1/bin/mingw32-make -wj 1 loaddefs.el-SH for dir in . calc calendar emacs-lisp emulation erc eshell gnus international language mail mh-e net play progmodes term textmodes url obsolete; do rm -f $dir/*.elc; done [Please ignore a syntax error on the next line - it is intentional] /usr/bin/sh: -c: line 0: unexpected EOF while looking for matching `"' /usr/bin/sh: -c: line 1: syntax error: unexpected end of file mingw32-make[2]: Entering directory `c:/cvsemacs/emacs/lisp' echo ";;; loaddefs.el --- automatically extracted autoloads" > loaddefs.el-SH echo ";;" >> loaddefs.el-SH; echo ";;; Code:" >> loaddefs.el-SH echo "(autoload 'define-minor-mode \"easy-mmode\")" >>loaddefs.el-SH echo "(autoload 'define-ccl-program \"ccl\")" >>loaddefs.el-SH echo "(autoload 'regexp-opt \"regexp-opt\")" >>loaddefs.el-SH echo "(autoload 'string-to-list \"mule-util\")" >>loaddefs.el-SH echo "(autoload 'define-derived-mode \"derived\")" >>loaddefs.el-SH echo "(autoload 'encoded-kbd-mode \"encoded-kb\")" >>loaddefs.el-SH echo "(defvar cvs-global-menu nil)" >>loaddefs.el-SH echo "♀" >> loaddefs.el-SH echo ";;; Local Variables:" >> loaddefs.el-SH echo ";;; version-control: never" >> loaddefs.el-SH echo ";;; no-byte-compile: t" >> loaddefs.el-SH echo ";;; no-update-autoloads: t" >> loaddefs.el-SH echo ";;; End:" >> loaddefs.el-SH echo ";;; loaddefs.el ends here" >> loaddefs.el-SH mingw32-make[2]: Leaving directory `c:/cvsemacs/emacs/lisp' cp loaddefs.el-SH c:/cvsemacs/emacs/lisp/loaddefs.el rm loaddefs.el-SH mingw32-make[1]: Leaving directory `c:/cvsemacs/emacs/lisp' c:/mingw32-make-3.81-1/bin/mingw32-make -j 1 --jobs=2 -C ../src clean [Please ignore a syntax error on the next line - it is intentional] /usr/bin/sh: -c: line 0: unexpected EOF while looking for matching `"' /usr/bin/sh: -c: line 1: syntax error: unexpected end of file mingw32-make[1]: Entering directory `c:/cvsemacs/emacs/src' rm *~ "s/*~" "m/*~" rm: cannot remove `*~': No such file or directory rm: cannot remove `s/*~': No such file or directory rm: cannot remove `m/*~': No such file or directory mingw32-make[1]: [clean] Error 1 (ignored) rm rm: missing operand Try `rm --help' for more information. mingw32-make[1]: [clean] Error 1 (ignored) rm -r oo-spd rm: cannot remove `oo-spd': No such file or directory mingw32-make[1]: [clean] Error 1 (ignored) rm stamp_BLD rm: cannot remove `stamp_BLD': No such file or directory mingw32-make[1]: [clean] Error 1 (ignored) mingw32-make[1]: Leaving directory `c:/cvsemacs/emacs/src' c:/mingw32-make-3.81-1/bin/mingw32-make -j 1 --jobs=2 -C ../lib-src clean [Please ignore a syntax error on the next line - it is intentional] /usr/bin/sh: -c: line 0: unexpected EOF while looking for matching `"' /usr/bin/sh: -c: line 1: syntax error: unexpected end of file mingw32-make[1]: Entering directory `c:/cvsemacs/emacs/lib-src' rm *~ DOC* rm: cannot remove `*~': No such file or directory rm: cannot remove `DOC*': No such file or directory mingw32-make[1]: [clean] Error 1 (ignored) rm ctags.c rm: cannot remove `ctags.c': No such file or directory mingw32-make[1]: [clean] Error 1 (ignored) rm getopt.h rm: cannot remove `getopt.h': No such file or directory mingw32-make[1]: [clean] Error 1 (ignored) rm -r oo-spd rm: cannot remove `oo-spd': No such file or directory mingw32-make[1]: [clean] Error 1 (ignored) rm stamp_BLD rm: cannot remove `stamp_BLD': No such file or directory mingw32-make[1]: [clean] Error 1 (ignored) mingw32-make[1]: Leaving directory `c:/cvsemacs/emacs/lib-src' c:/mingw32-make-3.81-1/bin/mingw32-make -j 1 --jobs=2 XMFLAGS="--jobs=2" -C ../src bootstrap [Please ignore a syntax error on the next line - it is intentional] /usr/bin/sh: -c: line 0: unexpected EOF while looking for matching `"' /usr/bin/sh: -c: line 1: syntax error: unexpected end of file mingw32-make[1]: Entering directory `c:/cvsemacs/emacs/nt' mingw32-make[1]: Nothing to be done for `../src'. c:/mingw32-make-3.81-1/bin/mingw32-make -wj 1 --jobs=2 -C -C ../lisp bootstrap-clean mingw32-make: Entering an unknown directory mingw32-make: *** -C: No such file or directory. Stop. mingw32-make: Leaving an unknown directory mingw32-make[1]: *** [bootstrap-gmake] Error 2 mingw32-make[1]: Leaving directory `c:/cvsemacs/emacs/nt' mingw32-make: *** [bootstrap-gmake] Error 2 real 0m5.093s user 0m0.015s sys 0m0.000s hivemind@mindcooler /cygdrive/c/cvsemacs/emacs/nt $ Also, doing an ordinary bootstrap without specifying jobs or XMFLAGS doesn't seem to work right now either. - Eric