Subject: Re: toolchain/21563: latest crunchgen break build.sh -j x for x >= 4
To: David Laight <david@l8s.co.uk>
From: Stoned Elipot <seb@starfleet.univ-paris7.fr>
List: netbsd-bugs
Date: 05/14/2003 22:24:36
On Wed, May 14, 2003 at 11:42:40AM +0100, David Laight wrote:
> I can see why the change has an effect - because I removed the
> rule that used to be used to build ldd/ldd.o (etc).
> (I found it was been run for each object file in the list...)
>
> However I can't see what is actually wrong :-(
>
> The .WAIT you added is probably necessary - but you said it made
> no difference. OTOH the -j 1 should make that unecessary.
> I've even run without the '-j 1' (with the extra .WAIT), one of the
> program buils failed the first time (it must be missing a .WAIT)
> but rescue itself built ok.
=> Exactly the '-j 1' in Makefile.crunch made me wonder...
> make shouldn't be looking for any of the xxx/xxx.o files until after
> SUBMAKE_TARGETS have all been built and make is run recursively
> (with the same makefile) to build PROG (it is run to build 'all'
> by the outer script). By that time all the xxx/yyy.o should exist.
>
> If it is still failing for you, Ineed to know:
> - the actual screen/log file output from a few lines before the failue
> to the end.
/v/build/20030514/tools/bin/i386--netbsdelf-gcc -Os -Werror -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DDIRENT=1 -Dunix -DASMV -nostdinc -isystem /v/build/20030514/dest/usr/include -c /v/src/gnu/usr.bin/gzip/getopt.c
CC=/v/build/20030514/tools/bin/i386--netbsdelf-gcc /v/build/20030514/tools/bin/nbmkdep -a -DNO_UNDERLINE -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DDIRENT=1 -Dunix -DASMV -nostdinc -isystem /v/build/20030514/dest/usr/include -traditional-cpp /v/src/gnu/usr.bin/gzip/match.S
CC=/v/build/20030514/tools/bin/i386--netbsdelf-gcc /v/build/20030514/tools/bin/nbmkdep -a -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DDIRENT=1 -Dunix -DASMV -nostdinc -isystem /v/build/20030514/dest/usr/include /v/src/gnu/usr.bin/gzip/gzip.c /v/src/gnu/usr.bin/gzip/zip.c /v/src/gnu/usr.bin/gzip/deflate.c /v/src/gnu/usr.bin/gzip/trees.c /v/src/gnu/usr.bin/gzip/bits.c /v/src/gnu/usr.bin/gzip/unzip.c /v/src/gnu/usr.bin/gzip/inflate.c /v/src/gnu/usr.bin/gzip/util.c /v/src/gnu/usr.bin/gzip/crypt.c /v/src/gnu/usr.bin/gzip/lzw.c /v/src/gnu/usr.bin/gzip/unbzip2.c /v/src/gnu/usr.bin/gzip/unlzw.c /v/src/gnu/usr.bin/gzip/unlzh.c /v/src/gnu/usr.bin/gzip/unpack.c /v/src/gnu/usr.bin/gzip/getopt.c
/v/build/20030514/tools/bin/i386--netbsdelf-gcc -DNO_UNDERLINE -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DDIRENT=1 -Dunix -DASMV -nostdinc -isystem /v/build/20030514/dest/usr/include -c -traditional-cpp /v/src/gnu/usr.bin/gzip/match.S
nbmake: nbmake: don't know how to make fdisk/fdisk.o. Stop
*** [rescue] Error code 2
1 error
nbmake: stopped in /v/src/rescue
*** [dependall] Error code 2
1 error
nbmake: stopped in /v/src/rescue
*** Error code 2
Stop.
nbmake: stopped in /v/src
(cd /v/src && /v/build/20030514/tools/bin/nbmake install BUILD_tools=no BUILD_lib=no)
install ===> include
Then the toplevel Makefile proceeded with install!?!!
> - whether the file that was 'missing' is actually present in the object
> directory
# pwd
/v/build/20030514/obj/rescue
# ls -dl fdisk* */fdisk*
drwxr-xr-x 2 root wheel 512 May 14 19:38 fdisk
-rw-r--r-- 1 root wheel 41592 May 14 19:39 fdisk.cro
-rw-r--r-- 1 root wheel 2786 May 14 19:39 fdisk.cro.syms
-rw-r--r-- 1 root wheel 39968 May 14 19:38 fdisk/fdisk.o
-rw-r--r-- 1 root wheel 91 May 14 19:38 fdisk_stub.c
-rw-r--r-- 1 root wheel 724 May 14 19:38 fdisk_stub.o
> - whether re-running nbmake will complete the build, or if theerror is 'hard'.
>
> Running nbmake in src/rescue should be the same as the build you are doing.
# pwd
/v/src/rescue
# /v/build/20030514/tools/bin/nbmake-i386 -j 4 dependall
--- dependall ---
--- rescue ---
RESCUEDIR=/rescue /v/build/20030514/tools/bin/nbmake -j 1 -f rescue.mk all
if [ \! -d cat ]; then mkdir cat; fi; cd cat; printf ".PATH: /v/src/bin/cat\n.CURDIR:= /v/src/bin/cat\n.include \"\${.CURDIR}/Makefile\"\n" | /v/build/20030514/tools/bin/nbmake CRUNCHEDPROG=1 DBG="-Os" -f- depend cat.o
`cat.o' is up to date.
...
`match.o' is up to date.
if [ \! -d fdisk ]; then mkdir fdisk; fi; cd fdisk; printf ".PATH: /v/src/sbin/fdisk\n.CURDIR:= /v/src/sbin/fdisk\n.include \"\${.CURDIR}/Makefile\"\n" | /v/build/20030514/tools/bin/nbmake CRUNCHEDPROG=1 DBG="-Os" -f- depend fdisk.o
depend ===> mbr
`fdisk.o' is up to date.
if [ \! -d ldconfig ]; then mkdir ldconfig; fi; cd ldconfig; printf ".PATH: /v/src/sbin/ldconfig\n.CURDIR:= /v/src/sbin/ldconfig\n.include \"\${.CURDIR}/Makefile\"\n" | /v/build/20030514/tools/bin/nbmake CRUNCHEDPROG=1 DBG="-Os" -f- depend ldconfig.o shlib.o
`ldconfig.o' is up to date.
`shlib.o' is up to date.
test -d /v/build/20030514/obj/rescue && cd /v/build/20030514/obj/rescue; /v/build/20030514/tools/bin/nbmake -f rescue.mk rescue
`rescue' is up to date.
[ -f rescue.stripped -a ! rescue -nt rescue.stripped ] || { echo stripping rescue; /v/build/20030514/tools/bin/i386--netbsdelf-objcopy -S -R .note -R .ident rescue && touch rescue.stripped; }
# echo $?
0
# ls -l /v/build/20030514/obj/rescue/rescue
-rwxr-xr-x 1 root wheel 2543480 May 14 19:39 /v/build/20030514/obj/rescue/rescue
# /v/build/20030514/tools/bin/nbmake-i386 cleandir
...
# /v/build/20030514/tools/bin/nbmake-i386 -j 4 dependall
...
/v/build/20030514/tools/bin/i386--netbsdelf-gcc -DNO_UNDERLINE -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DDIRENT=1 -Dunix -DASMV -nostdinc -isystem /v/build/20030514/dest/usr/include -c -traditional-cpp /v/src/gnu/usr.bin/gzip/match.S
nbmake: nbmake: don't know how to make fdisk/fdisk.o. Stop
*** [rescue] Error code 2
1 error
...
# /v/build/20030514/tools/bin/nbmake-i386 -j 4 dependall
...
`match.o' is up to date.
nbmake: nbmake: don't know how to make fdisk/fdisk.o. Stop
*** [rescue] Error code 2
1 error
nbmake: stopped in /v/src/rescue
*** [dependall] Error code 2
1 error
nbmake: stopped in /v/src/rescue
# /v/build/20030514/tools/bin/nbmake-i386 -j 4 dependall
...
`match.o' is up to date.
nbmake: nbmake: don't know how to make fdisk/fdisk.o. Stop
*** [rescue] Error code 2
1 error
nbmake: stopped in /v/src/rescue
*** [dependall] Error code 2
1 error
nbmake: stopped in /v/src/rescue
#
That's strange a 'make -j 4 dependall' just after the build.sh failure
completed. but subsequent cleandir, make, make, ... fails over and over.