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.