Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Mar 2001 16:24:32 -0800
From:      Marcel Moolenaar <marcel@cup.hp.com>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        qa@FreeBSD.org, marcel@FreeBSD.org, Larry Rosenman <ler@lerctr.org>
Subject:   Re: cputype=486
Message-ID:  <3AAD68C0.E7E1DAD@cup.hp.com>
References:  <XFMail.010312145926.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
John Baldwin wrote:
> 
> > Your /usr/lib/libc.a has -march=pentiumpro code and consequently, any
> > binaries that are staticly linked against it.
> 
> Hmm.  Ok, so why do we have the /tmp/install.XXX if we don't use them during
> installworld? 

/tmp/install.XXX is there to save the binaries we use during install
before they are overwritten by versions that may not yet be able to run
on the machine. The idea has the most value in the context of an
automatic upgrade process where you can't reboot after installing the
new kernel and before installing world.

A second purpose is to avoid install conflicts when -j is being used.
The conflict arrises when a binary (say /bin/sh) is being installed
while at the same time is also being executed. There's a short window
when the binary can not be run, causing the install to fail.

> This died on the 486 in installworld.  The installworld should
> be using binaries from the machine being installed to (/tmp/install.XXXX)
> right?

We also pick up the tools we previously built as part of the buildworld.
In this case, there's no point in saving strip if we use the one under
/usr/obj (see below for the flaw in the method). We can't use the one
installed on the system, because that one may not handle the object
format (think aout -> elf transition of example).

> libc.a).  This makes no sense.  In the cross-arch case that would mean we would
> run an i386 binary to strip alpha binaries to try to strip the alpha binaries
> while running the installworld on the alpha.  This would obviously not work.

That's why the binaries are installed under /usr/obj/usr/src/i386. The
binaries are only valid on i386 machines.

Hmmm... If the install is on an Alpha, we don't have a populated
/usr/obj/usr/src/alpha tree and consequently need to copy more tools
into /tmp/install.XXX ... I think we need to make sure the tools always
exist. This may mean that we need to build them during installworld as
well... Hmmm...

-- 
Marcel Moolenaar
  mail: marcel@cup.hp.com / marcel@FreeBSD.org
  tel:  (408) 447-4222

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




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