Subject: Re: read only /usr/src & build.sh
To: None <netbsd-help@NetBSD.org>
From: Jukka Salmi <j+nbsd@2007.salmi.ch>
List: netbsd-help
Date: 11/11/2007 12:04:12
Aleksey Cheusov --> netbsd-help (2007-11-11 12:14:07 +0200):
> Ok. I don't know what I did, but now
>     ./build.sh -O /srv/obj -u tools
> works fine.
> 
> But now I have 
> 0 src>./build.sh -O /srv/obj -T /srv/obj/tools kernel=GENERIC 
> ===> build.sh command: ./build.sh -O /srv/obj -T /srv/obj/tools kernel=GENERIC
> ===> build.sh started: Sun Nov 11 12:09:43 EET 2007
> ===> NetBSD version:   4.0_RC4
> ===> MACHINE:          i386
> ===> MACHINE_ARCH:     i386
> ===> Build platform:   NetBSD 4.0_RC3 i386
> ===> HOST_SH:          /bin/sh
> ===> TOOLDIR path:     /srv/obj/tools
> ===> DESTDIR path:     /srv/obj/destdir
> ===> RELEASEDIR path:  /srv/obj/release
> ===> makewrapper:      /srv/obj/tools/bin/nbmake-i386
> ===> Updated /srv/obj/tools/bin/nbmake-i386
> ===> Building kernel without building new tools
> ===> Building kernel:  GENERIC
> ===> Build directory:  /srv/src/sys/arch/i386/compile/GENERIC
> mkdir: /srv/src/sys/arch/i386/compile/GENERIC: Read-only file system
> 
> ERROR: Cannot mkdir: /srv/src/sys/arch/i386/compile/GENERIC
> *** BUILD ABORTED ***
> 1 src>

Hmm, this also works fine here (on -current, with a basically empty
/etc/mk.conf):

$ mount | grep /usr/src
/a/src/nbsd/c on /usr/src type null (read-only, nosuid, nodev, local)
$ cd /usr/src
$ ./build.sh -O ~/temp2/obj -T ~/temp2/obj/tools tools
[...]
$ ./build.sh -O ~/temp2/obj -T ~/temp2/obj/tools kernel=GENERIC
===> build.sh command: ./build.sh -O /home/jukka/temp2/obj -T /home/jukka/temp2/obj/tools kernel=GENERIC
===> build.sh started: Sun Nov 11 11:48:33 CET 2007
===> NetBSD version:   4.99.35
===> MACHINE:          i386
===> MACHINE_ARCH:     i386
===> Build platform:   NetBSD 4.99.34 i386
===> HOST_SH:          /bin/sh
===> TOOLDIR path:     /home/jukka/temp2/obj/tools
===> DESTDIR path:     /home/jukka/temp2/obj/destdir.i386
===> RELEASEDIR path:  /home/jukka/temp2/obj/releasedir
===> makewrapper:      /home/jukka/temp2/obj/tools/bin/nbmake-i386
===> Updated /home/jukka/temp2/obj/tools/bin/nbmake-i386
===> Building kernel without building new tools
#    objdir  /home/jukka/temp2/obj/sys/arch/i386/compile
===> Building kernel:  GENERIC
===> Build directory:  /home/jukka/temp2/obj/sys/arch/i386/compile/GENERIC
rm -f a.out [Ee]rrs mklog core *.core .gdbinit  
Build directory is /home/jukka/temp2/obj/sys/arch/i386/compile/GENERIC
Don't forget to run "make depend"
[...]


> P.S.
> I whould prefer to use MAKEOBJDIR=/srv/obj in mk.conf
> instead of ./build.sh -O but this doesn't work :-( Is this bug-o-feature?

See the description of .OBJDIR in the make(1) manpage.


Cheers, Jukka

-- 
bashian roulette:
$ ((RANDOM%6)) || rm -rf ~