Re: Installing Cross Builds

2002-03-31 Thread Marcel Moolenaar

On Sun, Mar 31, 2002 at 07:39:33PM -0800, Crist J. Clark wrote:
> On Sun, Mar 31, 2002 at 05:57:31PM -0800, Marcel Moolenaar wrote:
> > On Fri, Mar 29, 2002 at 01:10:17PM -0800, Crist J. Clark wrote:
> > > After reviewing the world Makefiles, it sure looks like FreeBSD does
> > > not support 'installworld' of a cross build?
> > 
> > Running installworld on machine X, when you did a cross-build for
> > machine X on machine Y is broken. All other cases should work,
> > AFACT.
> > 
> > The brokenness is directly caused by inconsistent setting of OBJTREE.
> > This is indirectly caused make release, for make release expects the
> > object tree to be under /usr/obj and not /usr/obj/${TARGET_ARCH}.
> 
> Well, the more direct reason for the breakage is caused by the fact
> that the PATH during install is,
> 
>   ${WORLDTMP}/usr/sbin:${WORLDTMP}/usr/bin:${WORLDTMP}/usr/games:${INSTALLTMP}
> 
> Which is usually ${OBJTREE}${.CURDIR}/${MACHINE_ARCH}. But that
> directory doesn't exist. (Or is that what you are saying?)

It's not what I was saying, but you're right. I ran into this as well.
See below.

What I was saying is that a native build populates /usr/obj/,
but a cross build populates /usr/obj//. It
would be more consistent to always populate /usr/obj/,
and fix make release.

> If you fix
> that, there is the same issue with ${OBJFORMAT_PATH}. Once you fix
> that, you have shared lib problems. (I've never quite figured out what
> ${INSTALLTMP} is even there for.)

The fix would be to populate WORLDTMP, or otherwise make sure those
binaries are in INSTALLTMP as well. The reason for INSTALLTMP is to
avoid pulling the rug from under your feet when you have a single
pass upgrade. We don't have that (yet?). We tell people to install
a new kernel, reboot and then run installworld. A single pass upgrade
would save enough programs and libraries to complete the upgrade and
then do a reboot. Another problem is parallelism. You may run into
the situation that you both install and run the same binary. This can
cause breakages.

-- 
 Marcel Moolenaar USPA: A-39004  [EMAIL PROTECTED]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Installing Cross Builds

2002-03-31 Thread Crist J. Clark

On Sun, Mar 31, 2002 at 05:57:31PM -0800, Marcel Moolenaar wrote:
> On Fri, Mar 29, 2002 at 01:10:17PM -0800, Crist J. Clark wrote:
> > After reviewing the world Makefiles, it sure looks like FreeBSD does
> > not support 'installworld' of a cross build?
> 
> Running installworld on machine X, when you did a cross-build for
> machine X on machine Y is broken. All other cases should work,
> AFACT.
> 
> The brokenness is directly caused by inconsistent setting of OBJTREE.
> This is indirectly caused make release, for make release expects the
> object tree to be under /usr/obj and not /usr/obj/${TARGET_ARCH}.

Well, the more direct reason for the breakage is caused by the fact
that the PATH during install is,

  ${WORLDTMP}/usr/sbin:${WORLDTMP}/usr/bin:${WORLDTMP}/usr/games:${INSTALLTMP}

Which is usually ${OBJTREE}${.CURDIR}/${MACHINE_ARCH}. But that
directory doesn't exist. (Or is that what you are saying?) If you fix
that, there is the same issue with ${OBJFORMAT_PATH}. Once you fix
that, you have shared lib problems. (I've never quite figured out what
${INSTALLTMP} is even there for.)
-- 
Crist J. Clark | [EMAIL PROTECTED]
   | [EMAIL PROTECTED]
http://people.freebsd.org/~cjc/| [EMAIL PROTECTED]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Installing Cross Builds

2002-03-31 Thread Marcel Moolenaar

On Fri, Mar 29, 2002 at 01:10:17PM -0800, Crist J. Clark wrote:
> After reviewing the world Makefiles, it sure looks like FreeBSD does
> not support 'installworld' of a cross build?

Running installworld on machine X, when you did a cross-build for
machine X on machine Y is broken. All other cases should work,
AFACT.

The brokenness is directly caused by inconsistent setting of OBJTREE.
This is indirectly caused make release, for make release expects the
object tree to be under /usr/obj and not /usr/obj/${TARGET_ARCH}.

-- 
 Marcel Moolenaar USPA: A-39004  [EMAIL PROTECTED]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message