Upgrade to 5.3-BETA1: make installkernel - Stop in /usr/src/sys/modules

Ruslan Ermilov ru at FreeBSD.org
Tue Aug 24 23:45:48 PDT 2004

On Tue, Aug 24, 2004 at 03:26:00PM -0400, Chuck Swiger wrote:
> Ruslan Ermilov wrote:
> Would running "mergemaster -p" on systems before the installkernel stage 
> have helped make this work?

> I thought "mergemaster" was supposed to deal with upgrading the parts of 
> the installed system (missing users, rc scripts, tools like make) which 
> might be needed for the installkernel/installworld to run properly.
I don't use mergemaster(8), but I also don't think it plays with
upgrading binaries.  Basically, it does "make distrib-dirs; make
distribution" using src/etc/Makefile, and then guides you through
merging the stuff.

> I also 
> seem to recall that the build system uses the executables from the newly 
> built world when building the kernel;
This seems to be a common misconception.  installworld/installkernel
never uses *new* stuff from newly built world, because it may not be
runnable.  Instead, for tools that are used during build/install, as
the first step, buildworld builds a bootstrap-tools target, which
builds tools that are fresh and adequate for running on the build
host (and on any host which a compatible CPU and __FreeBSD_version).
Moreover, the built world may be for a different hardware architecture.
In this case, you cannot NFS mount /usr/src and /usr/obj from i386
on Alpha, and expect it to work -- or it will attempt to build
some i386 binaries (those that were build during the bootstrap-tools
stage).  OTOH, mounting /, /usr, and /var partitions from your Alpha
on i386, anchoring them to say /mnt, and doing "make installworld
DESTDIR=/mnt" will work.

> could one use the tools from the new 
> world to handle the installation if the existing tools are not adequate?
Only in rare circumstances, and only when you build system is broken.
It's not needed under normal conditions.  Build system may become
broken if you for example delete or modify some header file, do a
partial upgrade like doing "make includes", or if there was a bug
made by a committer that prevents some tool from working at all.
In the latter case, we usually put an entry to src/UPDATING explaining
the possible pitfalls.  See the 20030329 UPDATING entry for an example
of what I'm talking about here.

> [ I suspect the answer is "What happens if the tools just built don't run 
> on the kernel (or world) of the install machine because that box doesn't 
> match the kernel/world of the build system?"  I see.... ]

Ruslan Ermilov
ru at FreeBSD.org
FreeBSD committer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20040825/98781118/attachment-0001.bin

More information about the freebsd-current mailing list