Subject: port-sparc64/25265: sparc64 release build broken
To: None <gnats-bugs@gnats.netbsd.org>
From: None <dmcmahill@NetBSD.org>
List: netbsd-bugs
Date: 04/20/2004 22:19:49
>Number:         25265
>Category:       port-sparc64
>Synopsis:       sparc64 release build broken
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    port-sparc64-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Apr 21 02:20:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     Dan McMahill
>Release:        NetBSD 2.0C
>Organization:
NetBSD
>Environment:
	
	
System: NetBSD mudshark 2.0C NetBSD 2.0C (MUDSHARK) #19: Sun Apr 18 22:38:53 EDT 2004  root@mudshark:/usr/cvs/src/sys/arch/sparc64/compile/MUDSHARK sparc64
Architecture: sparc64
Machine: sparc64
rev 1.11 of src/distrib/common/list.sysinst

>Description:

rev 1.11 of src/distrib/common/list.sysinst breaks the building of a sparc64 release.

The build was done with:
./build.sh -a sparc64 -m sparc64 -T /usr/build/tools \
   -D /usr/build/destdir.sparc64 -R /usr/build/release release


The failure is at:

cp: /usr/cvs/src/distrib/sparc64/xminiroot/obj/sysinst/sysinstmsgs.fr: No such file or directory

*** Failed target:  work.built
*** Failed command: [ "ramdiskbin /usr/cvs/src/distrib/sparc64/xminiroot/../instfs/disktab.preinstall /usr/cvs/src/dist
rib/sparc64/xminiroot/../instfs/dot.profile /usr/cvs/src/distrib/sparc64/xminiroot/../instfs/termcap.mini /usr/cvs/src/
etc/group /usr/cvs/src/etc/master.passwd /usr/cvs/src/etc/netconfig /usr/cvs/src/etc/protocols /usr/cvs/src/etc/service
s netbsd.gz work.spec /usr/cvs/src/distrib/common/parselist.awk /usr/cvs/src/distrib/sparc64/xminiroot/../instfs/list /
usr/cvs/src/distrib/common/list.sysinst /usr/cvs/src/distrib/sparc64/xminiroot/list.miniroot" = ramdiskbin -a -f work.b
uilt -a work.built -nt ramdiskbin ] || { echo "Building tree into work"; rm -rf work work.built; mkdir -m 755 work && /
usr/build/tools/bin/nbmtree -def work.spec -p work/ -UW && INSTFSDIR=/usr/cvs/src/distrib/sparc64/xminiroot/../instfs N
ETBSDSRCDIR=/usr/cvs/src CRUNCHBIN=ramdiskbin CURDIR=/usr/cvs/src/distrib/sparc64/xminiroot DESTDIR=/usr/build/destdir.
sparc64 DISTRIBDIR=/usr/cvs/src/distrib MACHINE=sparc64 MACHINE_ARCH=sparc64 MAKE=/usr/build/tools/bin/nbmake OBJDIR=/u
sr/cvs/src/distrib/sparc64/xminiroot/obj TARGETDIR=/usr/cvs/src/distrib/sparc64/xminiroot/obj/work awk -f /usr/cvs/src/
distrib/common/parselist.awk -v mode=populate /usr/cvs/src/distrib/sparc64/xminiroot/../instfs/list /usr/cvs/src/distri
b/common/list.sysinst /usr/cvs/src/distrib/sparc64/xminiroot/list.miniroot | sh -e && touch work.built ; }
*** Error code 1

Stop.
nbmake: stopped in /usr/cvs/src/distrib/sparc64/xminiroot


This is because in src/distrib/sparc64/xminiroot/Makefile we have:

.include "${.CURDIR}/../instfs/Makefile.instfs"

which includes the line:

LISTS=          ${INSTFSDIR}/list ${DISTRIBDIR}/common/list.sysinst

rev 1.11 of list.sysinst has:

COPY    ${OBJDIR}/sysinst/sysinstmsgs.fr        sysinstmsgs.fr
COPY    ${OBJDIR}/sysinst/sysinstmsgs.de        sysinstmsgs.de
COPY    ${OBJDIR}/sysinst/sysinstmsgs.pl        sysinstmsgs.pl

This is fine while building in distrib/sparc64/instfs because 
OBJDIR=/usr/cvs/src/distrib/sparc64/instfs/obj

however while bulding in distrib/sparc64/xminiroot, we have
OBJDIR=/usr/cvs/src/distrib/sparc64/xminiroot/obj

but the 3 sysinstmsgs files don't live under ...../xminiroot/obj but rather
..../instfs/obj and you lose.

	
>How-To-Repeat:
./build.sh -a sparc64 -m sparc64 -T /usr/build/tools \
   -D /usr/build/destdir.sparc64 -R /usr/build/release release

wait several hours.

	
>Fix:

either use a different variable in the list.sysinst which is set right, or
modify something in xminiroot to copy or build a sysinst there too.

	
>Release-Note:
>Audit-Trail:
>Unformatted: