Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Dec 1999 15:38:53 -0600
From:      Karl Denninger <karl@Denninger.Net>
To:        Peter Wemm <peter@netplex.com.au>
Cc:        freebsd-hackers@FreeBSD.ORG, marcel@FreeBSD.ORG
Subject:   Re: Reminder - changes to sources and such
Message-ID:  <19991212153853.A1509@Denninger.Net>
In-Reply-To: <19991212213117.94E341CA0@overcee.netplex.com.au>; from Peter Wemm on Mon, Dec 13, 1999 at 05:31:17AM %2B0800
References:  <karl@Denninger.Net> <19991212213117.94E341CA0@overcee.netplex.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Dec 13, 1999 at 05:31:17AM +0800, Peter Wemm wrote:
> Karl Denninger wrote:
> > Hi folks,
> > 
> > Just something to keep in mind....
> > 
> > I am trying to update from a Juneish -CURRENT to a current -CURRENT.
> > 
> > I've run into two instances (the latest being the use of "colldef" in
> > /usr/src/share/colldef) where older binaries are INCOMPATIBLE with the newer
> > files they are processing, AND the "make buildworld" target uses the OLD
> > binary in an attempt to read the NEW file.
> > 
> > This blows up, obviously.
> 
> This would appear to be another thing Marcel has broken..
> 
> colldef used to have special treatment, but it no longer has.
> 
> peter@overcee[5:29am]~src-124> cvs up -p -r1.89 Makefile.inc1 | grep colldef
>                 usr.bin/colldef         \
> peter@overcee[5:29am]~src-125> grep colldef Makefile.inc1 
> peter@overcee[5:29am]~src-126> 
> 
> Cheers,
> -Peter

Thanks Peter.

This kind of thing is an issue that is very real; I've run into it before,
and for a while I had trouble with this kind of thing when I was at MCS
(usually the problem there was in the /usr/share/mk directory, but the same
principle applies)

Can I ask why the makefiles for the world don't build in this order?

1.	Build the "basic" GNU kit necessary to compile things.
2.	Build the LIBRARIES necessary to LINK things.
3.	Rebuild the gnu kid using (2); you now have a self-consistent
	development system regardless of what you started with.

4.	Build the world's binaries.
5.	Process anything in /usr/share or other places that requires
	the use of those binaries, using the OBJECTS compiled in step (4).

This way all you need to build the world is a compiler that kinda works.  
If include files have changed, or binaries that read files have changed, 
it doesn't matter and won't bite you.  As long as you can get executable 
code in step (1) the build will complete AND the completed build will be
up to date using the current headers and libraries.

(I may be missing a step or two here but I think the question I'm asking is
fairly clear) :-)

Special-casing things like this looks rather evil to me; shouldn't we fix
the general case instead?

--
-- 
Karl Denninger (karl@denninger.net)  Web: http://childrens-justice.org
Isn't it time we started putting KIDS first?  See the above URL for
a plan to do exactly that!


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19991212153853.A1509>