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>