Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Aug 2001 10:55:11 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Ruslan Ermilov <ru@FreeBSD.org>
Cc:        Mark Peek <mark@whistle.com>, Bruce Evans <bde@zeta.org.au>, Warner Losh <imp@harmony.village.org>, current@FreeBSD.org
Subject:   Re: Cross builds and upgrade path from 4.x are broken in usr.bin
Message-ID:  <XFMail.010813105511.jhb@FreeBSD.org>
In-Reply-To: <20010813202444.C2099@sunbay.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On 13-Aug-01 Ruslan Ermilov wrote:
> On Fri, Aug 10, 2001 at 11:54:27AM -0700, John Baldwin wrote:
>> 
>> On 10-Aug-01 Ruslan Ermilov wrote:
>> > On Fri, Aug 10, 2001 at 10:04:01AM -0700, Mark Peek wrote:
>> >> At 7:14 PM +0300 8/10/01, Ruslan Ermilov wrote:
>> >> >On Fri, Aug 10, 2001 at 08:38:21AM -0700, Mark Peek wrote:
>> >> >  > At 5:37 PM +0300 8/10/01, Ruslan Ermilov wrote:
>> >> >  > I'm not sure I understand what you mean by "cross-platform"
>> >> >>  installworld. Do you mean "build on a HOST platform and install on
>> >> >>  TARGET", or "build on a HOST, install on HOST but using a TARGET
>> >> >>  disk"?
>> >> >>
>> >> >I meant the latter here.
>> >> 
>> >> Has this ever worked?
>> >> Is it really a goal of the project to have it work?
>> >> 
>> > Yes.  Imagine that you are rolling an Alpha release on an i386 box.
>> 
>> You don't do that.  Cross releases need much more work before that is
>> feasible.  As Mark mentions, there are many thigns that would need to be
>> fixed.  Also, the release process would be hacked, and you still wouldn't
>> have a true "clean room" release since you can't build a "clean room" to run
>> a fresh world in.
>> 
> But this doesn't mean we should add more to this breakage, if we can
> avoid this.  Otherwise, you more and more complicate the task for
> making this scenario possible.

You aren't going to be using a typical installworld to package up a cross
release.  The bits are actually packaged up directly from the /usr/obj tree via
the distribute targets.  The installworlds during release are only to generate
the clean room.

>> >> Your solution does not work. You're creating binary files in HOST 
>> >> format during the build phase and expecting things such as alignment 
>> >> and endianness to be the same as the TARGET format. Unless the tools 
>> >> are built to output for either the appropriate architecture or in a 
>> >> portable, binary format, you will have problems reading the file on 
>> >> the TARGET platform. It probably works for you since you're doing a 
>> >> 4.X->5.0 upgrade on the same platform.
>> >> 
>> > What?  ``file -C'' produces different output on Alpha and on i386?
>> > Are you sure?  (Haven't checked myself.)
>> 
>> sparc64 is big endian.
>> 
> So what?  There are utilities that produce MI binary output.
> Apparently, this one does not.

That answers your question that your cross installworld isn't going to work.
*sigh*  He noted that your solution doesn't work because you are assuming
that the TARGET and HOST file formats are the same.  He's pointing out that
that is not the case.  You asked for an example, and I gave you one. :)

-- 

John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

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




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