all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eric Lilja <mindcooler@gmail.com>
Subject: Re: Building cvs emacs on a dual-core machine
Date: Sat, 23 Dec 2006 00:30:54 +0100	[thread overview]
Message-ID: <emhprb$neh$1@sea.gmane.org> (raw)
In-Reply-To: <uk60jlhws.fsf@gnu.org>

Eli Zaretskii skrev:
>> From: Eric Lilja <mindcooler@gmail.com>
>> Date: Thu, 21 Dec 2006 01:14:45 +0100
>>
>> Eli Zaretskii wrote:
>>>> From: Eric Lilja <mindcooler@gmail.com>
>>>> 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

  reply	other threads:[~2006-12-22 23:30 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-20 11:47 Building cvs emacs on a dual-core machine Eric Lilja
2006-12-20 14:40 ` Kim F. Storm
2006-12-20 19:05   ` Eli Zaretskii
2006-12-21 11:04     ` Kim F. Storm
2006-12-22 14:39     ` Chris Moore
2006-12-22 21:37       ` Eli Zaretskii
2006-12-22 23:39         ` Chris Moore
2006-12-20 18:54 ` Eli Zaretskii
2006-12-20 19:48   ` Eric Lilja
2006-12-20 21:03     ` Eric Lilja
2006-12-20 23:27       ` Eli Zaretskii
2006-12-21  0:14         ` Eric Lilja
2006-12-22 21:50           ` Eli Zaretskii
2006-12-22 23:30             ` Eric Lilja [this message]
2006-12-23  1:50               ` Eli Zaretskii
2006-12-23  2:04                 ` Eric Lilja
2006-12-23 10:42                   ` Eli Zaretskii
2006-12-23 10:59                     ` Eric Lilja
2006-12-23 11:24                       ` Eric Lilja
2006-12-23 12:46                         ` Eli Zaretskii
2007-01-03 20:56                           ` Eric Lilja
2007-01-04  4:15                             ` Eli Zaretskii
2007-01-04 20:17                             ` Randal L. Schwartz
2007-01-04 21:59                               ` Eli Zaretskii
2006-12-23  1:54             ` Juanma Barranquero
2006-12-23  9:53               ` Eli Zaretskii
2006-12-20 22:19 ` Richard Stallman
2006-12-26 19:22   ` Randal L. Schwartz
2006-12-27 21:16     ` Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='emhprb$neh$1@sea.gmane.org' \
    --to=mindcooler@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.