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
next prev parent 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.