On Fri, Apr 26, 2002 at 01:44:51PM -0700, Marcel Moolenaar wrote:
> On Fri, Apr 26, 2002 at 10:12:14PM +0300, Ruslan Ermilov wrote:
> > On Fri, Apr 26, 2002 at 11:59:21AM -0700, Marcel Moolenaar wrote:
> > > On Fri, Apr 26, 2002 at 09:26:34PM +0300, Ruslan Ermilov wrote:
> > > 
> > > > I.e., if you built world a month ago, and didn't touch /usr/src
> > > > since, and /usr/obj has "buildworld" output for this /usr/src,
> > > > and you have booted with this world, it should be okay to start
> > > > building today's release.
> > > 
> > > I share my src tree, so I almost always have a /usr/src that's not
> > > in sync with the /usr/obj for and on a particular machine.
> > > 
> > > What goes wrong if /usr/src and /usr/obj are out of sync?
> > > 
> > The prerequisite for a successful "make release" is to "installworld"
> > first the same world as you are currently running.  This is done to
> > create a pristine environment (with an empty /etc/make.conf, etc.)
> > which is then chroot'ed into.
> 
> I see. Doing a "make everything TARGET_ARCH=foo -DNOCLEAN" should
> probably be enough in most cases to sync the object tree, right?
> 
If libraries, kernel, compiler, and headers didn't change, then yes.  :-)
Otherwise, "make world kernel" and reboot is necessary.  So that
the subsequent "installworld" of the same world into the chroot'ed
environment will give you a _compatible_ (with the currently running
kernel) world.

> > Also, when I wrote "/usr/src" and "/usr/obj" I didn't mean them
> > literally.
> 
> That's mostly academic :-)
> 
> BTW: Do you have plans to remove the exception for non-cross builds
>      to have the object tree rooted under /usr/obj/$TARGET_ARCH?
>      The exception was created for make release, but from a pure
>      cross-building point of view it's inconsistent and is one of
>      the blockers to build, say, alpha on i386 and doing a native
>      install on alpha (the other would be having an empty temproot).
> 
Yes, I was planning to do it anyway, for the same reason.  You know,
it's a matter of removing three lines from Makefile.inc1.  :-)
It does not of course prevent you from building alpha on i386 and
then installing on alpha, all that needs to be done on alpha is:

/usr/bin/env MAKEOBJIRPREFIX=/usr/obj/alpha installworld


Cheers,
-- 
Ruslan Ermilov          Sysadmin and DBA,
[EMAIL PROTECTED]           Sunbay Software AG,
[EMAIL PROTECTED]          FreeBSD committer,
+380.652.512.251        Simferopol, Ukraine

http://www.FreeBSD.org  The Power To Serve
http://www.oracle.com   Enabling The Information Age

Attachment: msg37767/pgp00000.pgp
Description: PGP signature

Reply via email to