Subject: Re: -current bootstrap questions
To: Monroe Williams <monroe@cs.pdx.edu>
From: Alistair G. Crooks <agc@uts.amdahl.com>
List: current-users
Date: 05/15/1995 08:17:42
Hi Monroe,
> I've been keeping up with -current kernels for a while, and finally
> decided to get caught up with the rest of the -current world. I have a
> couple of quesions that I hope will keep me from hosing up my system
> too badly...
>
> - After supping the current.allsrc distribution, how does one go about
> rebuilding the world? It seems like there would be some chicken-and-
> egg problems involved with building the libraries, compiler tools,
> etc. Are the makefiles set up to take care of this?
>
> - Does the build process work by replacing the system it's being
> compiled on, or do you set up a seperate place for all the new
> binaries?
>
> - Is there an easy way for me to tell if anything major was badly
> broken at the time I did the 'sup'? (I know I'll find out sooner or
> later, but it's nice to be warned... :)
The following instructions have helped other people upgrade to -current
[Remember to make yourself a new config (not config.old) kernel config file.]
[Make sure you have COMPAT_10 as part of your kernel config options.]
[This assumes that the -current source is in /usr/src]
(cd /usr/src/usr.sbin/config ; make && make install && make cleandir)
# if you don't do this, config of your kernel config file will
# fail with errors in files.i386
(cd /usr/src/gnu/usr.bin/gas ; make && make install && make cleandir)
# if you don't do this, you won't be able to build locore.s, with
# errors about cpuid instruction not found
(cd /sys/arch/i386/conf ; config MYKERNEL)
(cd /sys/arch/i386/compile/MYKERNEL ; make depend && make)
# copy new kernel to /, and boot off it
(cd /usr/src/share/mk ; make install)
# if you don't do this, you'll get errors building gcc, when it
# doesn't know how to make the manual pages (don't know how to make gcc.0)
(cd /usr/src/gnu/usr.bin/gcc2 ; make && make install && make cleandir)
# it was at this stage that I got REALLY fed up with the
# sh: warning: running as root with dot in PATH
(cd /usr/src/bin/sh ; make && make install && make cleandir)
# Bernd Wisener says that the ld.so that will be built next will
# work only with libc.so.12.0, not with libc.so.12.3
# His instructions to make a working ld.so follow:
# Do NOT run ldconfig while doing the folowing 5 lines ...
(cd /usr/src/include ; make && make install)
cp -p /usr/libexec/ld.so /usr/libexec/ld.so.good
(cd /usr/src/gnu/usr.bin/ld ; make && make install && make cleandir)
cp -p /usr/libexec/ld.so.good /usr/libexec/ld.so
(cd /usr/src/lib ; make && make install && make cleandir)
# Then build ld.so again ...
(cd /usr/src/gnu/usr.bin/ld ; make && make install && make cleandir)
# Thanks, Bernd...
# and now back to the beginning and make the world
(cd /usr/src/bin ; make && make install && make cleandir)
(cd /usr/src/sbin ; make && make install && make cleandir)
mkdir /usr/share/doc/usd/13.viref
# otherwise "make install" in /usr/src/usr.bin will fail because
# the destination directory doesn't exist - from Tom Thai
# if you're using the obj directory hierarchy, use
(cd /usr/src/usr.bin/lex ; cp initscan.c obj/scan.c)
# otherwise (i.e. no obj directory hierarchy)
(cd /usr/src/usr.bin/lex ; cp initscan.c scan.c)
# if you don't, then lex won't be built
(cd /usr/src/usr.bin ; make && make install && make cleandir)
(cd /usr/src/usr.sbin ; make && make install && make cleandir)
(cd /usr/src/libexec ; make && make install && make cleandir)
(cd /usr/src/gnu ; make && make install && make cleandir)
(cd /usr/src/share ; make && make install && make cleandir)
mkdir /usr/share/doc/usd/30.rogue /usr/share/doc/usd/31.trek
# otherwise "make install" in /usr/src/games will fail
(cd /usr/src/games ; make && make install && make cleandir)
Cheers,
Alistair
--
Alistair G. Crooks (agc@uts.amdahl.com) +44 125 234 6377
Amdahl European HQ, Dogmersfield Park, Hartley Wintney, Hants RG27 8TE, UK.
[These are only my opinions, and certainly not those of Amdahl Corporation]