Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Aug 1999 11:41:56 -0700 (PDT)
From:      Frank Mayhar <frank@exit.com>
To:        stable@freebsd.org
Subject:   Finally finished upgrading to 3.2-stable.
Message-ID:  <199908151904.MAA53227@realtime.exit.com>

next in thread | raw e-mail | index | archive | help
Well, it certainly wasn't as easy as everyone claims.  Fortunately, I had
a system that's already 3.2 on my network, so this made things much easier.
And for "easier" read "possible."

My setup was a 3.1-RELEASE /usr/src NFS-mounted from the 3.2 machine
onto the 2.2.8 machine.  The /usr/obj was local.

The gotchas I ran into:
	lib/libmytinfo tries to run a few generated executables to generate
	source files.  When doing this in the elf build while still running
	an aout-only kernel, this crashes and burns.  I got around this by
	building libmytinfo on the 3.2 machine while the 2.2.8 machine was
	still in the middle of the libc build.  I then deleted all the object
	files in the directory, but left the generated source files.  When
	the build got there, it had no reason to run the generated executables,
	and continued fine.

	The kernel build _also_ generates an executable, aicasm, to generate
	source files during the "make depend" phase, which crashes when run.
	In addition, the link phases crashes and burns with dozens of undefined
	symbols, for no apparent reason.  I got around _this_ by stopping the
	build on the 2.2.8 machine just after it creates the compile directory
	but before it starts the "make depend" and building the entire kernel
	on the 3.2 machine, then going to the 2.2.8 machine and doing a
	"make -DFORCE install".  Check in tools/tools/upgrade/doupgrade.sh
	for what the upgrade process expects at this point.  I then reran
	"make upgrade" and it ran to completion.

There are actually several points at which you can stop the upgrade, then
restart it and it will continue from the last checkpointed spot.  Among these
are after the aout build is finished and after the kernel is installed.  I
do highly recommend having an already-installed 3.1 or better machine nearby,
as it makes things much easier.  I was still up to 3:00 this morning, though.

After I finished the upgrade, I did a "make installworld" from the 3.2
machine's /usr/src / /usr/obj, to get the former 2.2.8 system up to
3.2-stable.  This had no problems.

And may the gods bless the guy who wrote mergemaster.  It didn't do
_everything_ (I still had to regenerate sendmail.cf and the named files,
and the former _still_ needs a little work), but it makes life _much_
easier than it would otherwise be.

Now all three of my machines here are at 3.2-stable, so I only have to
maintain one /usr/src and one /usr/obj.  Much, much more maintainable.
-- 
Frank Mayhar frank@exit.com



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199908151904.MAA53227>