[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Building cvs emacs on a dual-core machine
From: |
Eric Lilja |
Subject: |
Re: Building cvs emacs on a dual-core machine |
Date: |
Sat, 23 Dec 2006 00:30:54 +0100 |
User-agent: |
Thunderbird 1.5.0.9 (Windows/20061207) |
Eli Zaretskii skrev:
From: Eric Lilja <address@hidden>
Date: Thu, 21 Dec 2006 01:14:45 +0100
Eli Zaretskii wrote:
From: Eric Lilja <address@hidden>
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
address@hidden /cygdrive/c/cvsemacs/emacs/nt
$
Also, doing an ordinary bootstrap without specifying jobs or XMFLAGS
doesn't seem to work right now either.
- Eric
- Re: Building cvs emacs on a dual-core machine, (continued)
Re: Building cvs emacs on a dual-core machine, Eli Zaretskii, 2006/12/20
- Re: Building cvs emacs on a dual-core machine, Eric Lilja, 2006/12/20
- Re: Building cvs emacs on a dual-core machine, Eric Lilja, 2006/12/20
- Re: Building cvs emacs on a dual-core machine, Eli Zaretskii, 2006/12/20
- Re: Building cvs emacs on a dual-core machine, Eric Lilja, 2006/12/20
- Re: Building cvs emacs on a dual-core machine, Eli Zaretskii, 2006/12/22
- Re: Building cvs emacs on a dual-core machine,
Eric Lilja <=
- Re: Building cvs emacs on a dual-core machine, Eli Zaretskii, 2006/12/22
- Re: Building cvs emacs on a dual-core machine, Eric Lilja, 2006/12/22
- Re: Building cvs emacs on a dual-core machine, Eli Zaretskii, 2006/12/23
- Re: Building cvs emacs on a dual-core machine, Eric Lilja, 2006/12/23
- Re: Building cvs emacs on a dual-core machine, Eric Lilja, 2006/12/23
- Re: Building cvs emacs on a dual-core machine, Eli Zaretskii, 2006/12/23
Re: Building cvs emacs on a dual-core machine, Juanma Barranquero, 2006/12/22
Re: Building cvs emacs on a dual-core machine, Eli Zaretskii, 2006/12/23
Re: Building cvs emacs on a dual-core machine, Richard Stallman, 2006/12/20