Subject: Re: Coexistance of multiple toolchains
To: Bucky Katz <bucky@picovex.com>
From: Bucky Katz <bucky@picovex.com>
List: tech-toolchain
Date: 01/27/2007 16:21:28
David Laight <david@l8s.co.uk> writes:

> On Fri, Jan 26, 2007 at 07:00:09PM -0800, Bucky Katz wrote:
>
>> We are building embedded targets and heavily optimize for each
>> target.
>
> My guess is that any space-saving in the obj/tools area really isn't worth
> worrying about.  Completely separating the obj directories means that you
> have a guarantee that nothing is accidentally shared.

We didn't do it that way to save space, so much as it evolved that way
as our understanding of build.sh and our requirements grew.  I have no
preference for obj/$(MACHINE)/$(ISA) versus $(MACHINE)/$(ISA)/obj.

There is a timing saving optimization in that layout that I didn't
think to explain though. Most of our developers either modify our
application or modify kernels. Very few, and very seldom, need to
modify the NetBSD userland, or the tools they use. Separating
/usr/local/netbsd/$(MACHINE)/$(ISA) from $(BASE)/obj/$(MACHINE)/$(ISA)
allows our developers to be able to checkout a tarball of
/usr/local/netbsd/... and not have to make distribution each time I
sync our codebase with current.

In most cases, the developer's $(BASE)/obj is only populated with
kernel files, and they nfs mount
/usr/local/netbsd/$(MACHINE)/$(ISA)/$(DEST)/dest on their development
boards.

While not much of a space savings, for our purpose it is a very useful
time savings.