Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Jan 1999 07:45:25 +1100 (EST)
From:      John Birrell  <jb@cimlogic.com.au>
To:        jhay@mikom.csir.co.za (John Hay)
Cc:        bde@zeta.org.au, current@FreeBSD.ORG
Subject:   Re: /usr/obj/elf, /usr/obj/aout, /usr/obj - breaks make all vs make buildworld, and other things.  Time to make elf the default
Message-ID:  <199901122045.HAA08298@cimlogic.com.au>
In-Reply-To: <199901121837.UAA03327@zibbi.mikom.csir.co.za> from John Hay at "Jan 12, 1999  8:37: 5 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
John Hay wrote:
> > It was a feature to build the world in a separate subdirectory.
> 
> Was the "feature" on purpose or was it just the way it was done? My
> impression is that it was done to seperate the elf and aout objects
> during the first elf transition and when there still might have been
> aout files lying around from before the aouts were compiled in the
> aout subdirectory.

It was done to ensure that the elf build didn't see any turds from
previous aout builds. This still applies to people upgrading from 2.2.X
or 3.0-CURRENT pre 3.0-RELEASE (ugh what stupid numbering we have!).
I wanted to modify `make' to treat all object directories that way
(instead of using the existing MAKEOBJDIRPREFIX), but I didn't want to
add the object format checking code without a library function (to avoid
duplicating code all over the tree). I convinced jdp to add getobjformat(3)
to libc, however the timing was too close to 3.0-RELEASE to make the change.

We regularly see people complaining about build problems that are
the result of them doing a make in specific directories outside a
make world. I think that the number of developers who want make world
to share the object directories with their individual makes out-weighs
my desire to stop people shooting themselves in the foot (when they
probably shouldn't be using -current anyway).

> Hmmm. Another option might be to make MAKEOBJDIRPREFIX=/usr/obj/elf
> the default, so that it will also be used by normal make. Although
> I don't like this so much, because when we finally get rid of all
> the aout things, we will sit with an unnecessary elf directory in
> the /usr/obj directory.

Another reason why I wanted the extra object directory level was to
help support cross-compilation. I don't like the NetBSD way of creating
obj.i386 etc directories. I was hoping to be able to set OBJFORMAT
to alpha-elf64 (for instance) on i386 and have that build the world
in /usr/obj/alpha-elf64. Support for this would still require lots
of changes to other makefiles which check OBJFORMAT==elf.

Since most people only care about i386 (and to a lesser extent alpha),
I doubt that the cross-compilation issues are worth considering at this
point. People are too ready to shoot down any new ideas.

-- 
John Birrell - jb@cimlogic.com.au; jb@freebsd.org http://www.cimlogic.com.au/
CIMlogic Pty Ltd, GPO Box 117A, Melbourne Vic 3001, Australia +61 418 353 137

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?199901122045.HAA08298>