Subject: build.sh weirdness related to env variables?
To: None <current-users@netbsd.org>
From: Jeff Rizzo <riz@boogers.sf.ca.us>
List: current-users
Date: 01/17/2004 09:22:24
I've noticed this before, and it's just now bugging me enough to try
and figure it out.
Starting with a freshly downloaded -current source tree, circa
24 hours ago now, I successfully did a
'build.sh -U tools build distribution sets'. It had completed by this
morning, so I decided to build a GENERIC kernel to test some stuff
out, as I haven't played with a really current -current in a few weeks.
So, I do the following:
boogers:riz /work/netbsd/src> ./build.sh -U kernel=GENERIC releasekernel=GENERIC
... it does the usual "let's rebuild nbmake for the hell of it":
===> build.sh command: ./build.sh -U kernel=GENERIC releasekernel=GENERIC
===> build.sh started: Sat Jan 17 09:02:42 PST 2004
===> No nonexistent/bin/nbmake, needs building.
===> Bootstrapping nbmake
checking for sh... /bin/sh
[snip]
Then, when it starts trying to do the real work, it can't find nbconfig:
===> MACHINE: i386
===> MACHINE_ARCH: i386
===> TOOLDIR path: /work/netbsd/src/obj.i386/tooldir.NetBSD-1.6ZG-i386
===> DESTDIR path: /work/netbsd/src/obj.i386/destdir.i386
===> RELEASEDIR path: /work/netbsd/src/obj.i386/releasedir
===> Created /work/netbsd/src/obj.i386/tooldir.NetBSD-1.6ZG-i386/bin/nbmake
===> makewrapper: /work/netbsd/src/obj.i386/tooldir.NetBSD-1.6ZG-i386/bin/nbmake-i386
===> Updated /work/netbsd/src/obj.i386/tooldir.NetBSD-1.6ZG-i386/bin/nbmake-i386
===> Building kernel without building new tools
===> Building kernel: GENERIC
===> Build directory: /work/netbsd/src/sys/arch/i386/compile/obj.i386/GENERIC
rm -f a.out [Ee]rrs mklog core *.core .gdbinit
./build.sh: /work/netbsd/src/obj.i386/tooldir.NetBSD-1.6ZG-i386/bin/nbconfig: not found
ERROR: nbconfig failed for GENERIC
*** BUILD ABORTED ***
Ok, so that's weird... I *just* built tools last night, and had not
yet rebooted so the version of my kernel hasn't changed. Looks like
there's *two* tooldirs, /work/netbsd/src/obj.i386/tooldir.NetBSD-1.6ZG-i386/
and /work/netbsd/src/tooldir.NetBSD-1.6ZG-i386/ . The one in "obj.i386"
only has nbmake and nbmake-i386 in it, while the other one appears to
have everything, including "nbconfig".
It looks to me like there's probably some interaction with a few env
variables I started setting quite some time ago (before build.sh, anyway):
setenv OBJMACHINE
setenv USR_OBJMACHINE
setenv BSDOBJDIR /usr/obj
# need this for "make obj" to work right
setenv BSDSRCDIR /work/src
OK, so BSDSRCDIR is quite obviously not right. I no longer understand
exactly why I was setting these, and so should probably unset them,
but as it takes on the order of 20 hours to rebuild the world on this
machine, I was hoping to get some insight as to what the heck I *should*
do from someone who pays more attention than I do. :)
Should I just nuke all these vars? Or only some of them?
I like having the machine arch tracked in certain things (like pkgsrc),
which is (I think) why I had OBJMACHINE and USR_OBJMACHINE. But
I seem to have lost track as to what the "recommended" setup is...
Suggestions gratefully received.
Thanks,
+j
--
Jeff Rizzo http://boogers.sf.ca.us/~riz