Subject: Re: libgcc won't build (960210)
To: None <current-users@NetBSD.ORG>
From: Phil Knaack <flipk@ncremp.ag.iastate.edu>
List: current-users
Date: 02/28/1996 12:58:52
>> I don't see why you should necessarily expect that you should be able
>> to do a complete build of -current without installing any of it.
>> Include files are one reason you can't; this libgcc things is another.

earle@isolar.Tujunga.CA.US writes:

>I understand why this is being said, but this is like saying all that work
>to support DESTDIR in the source Makefiles is all for naught.

>Personally I see no reason why you need to install parts of the system to
>make a full system build work.  The DESTDIR stuff seems to work magnificently
>(with the one exception of <curses.h>).  The whole point of DESTDIR, among
>other things, seems to be to allow you to build a complete system without
>biffing your existing one, which is an excellent idea until & unless you
>know that a complete build will work.  Requiring that you overwrite parts of
>your existing system to get through a compile or two of the new system seems
>to me to go completely against that concept.  *Shrug*

	Exactly!

	I have a machine at work which is capable of compiling very quickly,
but it is also the 'work' machine, i.e., it runs things that are rather
mission-critical.

	If something is hosed in a particular snapshot of the NetBSD tree,
I don't want to get halfway through the build to find I can't continue, and
then be left with a non-functional machine until the next update. (Yeah, I
know, backups, backups .. ;)

	Thus, I have used the DESTDIR functionality A LOT to build and test
new systems.

	My process goes roughly something like this (from memory):

- build as much of the tree as I can (into /usr/dest).
- mv /usr/src and /usr/obj into /usr/dest/usr
- chroot into /usr/dest
- continue building/testing from there.

	The fact that I chroot into my DESTDIR after building most of the 
stuff means that I can test every aspect of the new system, including
compiling anything from the new libraries, using the new compiler.

	Admittedly, its a bit of manual labor, but I really can't afford
to have a system of hybrid (and illegitimate/dysfunctional) versions.
DESTDIR allows me to upgrade without hazzards.

	Of course, the DESTDIR functionality has its limits; you can go a 
long ways trying to implement it. A complete DESTDIR implementation would
include building sh,make,yacc,lex,gcc,gas, and everything else that's 
required for a system build and then use those binaries directly during
the rest of the build process. You could then even go to the point of
making it so that you could build an entire i386 system from a nearby alpha.

	So its probably a bit of an extreme, but you can see .. where
do we stop?

	Being able to use the new compiler on the rest of the tree would be
nice; so would using the new lex, yacc, gas, etc .. 

	But unfortunately I think the amount of work involved in making the
tree support this level of DESTDIR usage is probably too much considering the
(relatively) small number of us who use this.

Cheers,
Phil

P.S.: One thing that *could* be done, and I'm sure a lot of us would
	appreciate, is the fixing of that wierd <curses.h> glitch..
--
Phillip F Knaack               flipk@iastate.edu
Database Programmer, NCREMP    Student Development Group
ISU Extension                  Project Vincent, Iowa State University