Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Jan 1999 20:37:05 +0200 (SAT)
From:      John Hay <jhay@mikom.csir.co.za>
To:        bde@zeta.org.au (Bruce Evans)
Cc:        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:  <199901121837.UAA03327@zibbi.mikom.csir.co.za>
In-Reply-To: <199901121626.DAA09095@godzilla.zeta.org.au> from Bruce Evans at "Jan 13, 99 03:26:02 am"

next in thread | previous in thread | raw e-mail | index | archive | help
Your tone was so neutral that I'm not sure if you are against it and if
it is just informational. :-) Although then it probbably would have
come from Terry. :-)

> >I'd like to commit it, but first want to know if there is serious complaints
> >about it.
> 
> 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.

> `make world' under certain conditions creates .depend files that are
> inconsistent with ones created by plain `make'.  If you know enough
> about the world building process to avoid problems from this, then you
> should know enough to use the same obj directory tree for `make' as for
> `make world' (`MAKEOBJDIRPREFIX=whatever make').  I always build worlds
> in a separate obj tree on purpose.

Shouldn't we then rather rename it to /usr/obj/world to show what it
is used for? Because if I use the normal make I still get elf objects
and binaries even though they aren't build in the /usr/obj/elf/...
subdirectories.

> 
> >The effect is that /usr/obj/elf is no longer used for the elf objects.
> >So if you do a make world and then later go and recompile something in
> >a subdirectory, it will use the same obj directory. Also snaps and
> >release source tarballs won't have the stray .o files anymore.
> 
> `make world' could run `make cleandir' twice to clean up sloppily
> maintained obj trees.  The first pass cleans the canonical object tree
> if it exists and the source tree otherwise, or parts of each if the
> canonical object tree is partial.  The second pass cleans the source
> tree.

More than that is needed for make release. Some parts like the building
of the floppy images with crunchgen assume that make and make world
still work like it did before elf, no objformat object subdirectory
and that both compile in the same directory. While all those things
could be fixed and I can probably put 'setenv MAKEOBJDIRPREFIX=whatever'
in my .cshrc file, it just looked a bit easier and more permanent to
fix Makefile.inc0 now that elf is the default.

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.

> 
> Bruce
> 

John
-- 
John Hay -- John.Hay@mikom.csir.co.za

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?199901121837.UAA03327>