Re: md5c.c is broken on amd64

From: Kris Kennaway <kris_at_obsecurity.org>
Date: Tue, 17 Jan 2006 21:28:20 -0500
On Tue, Jan 17, 2006 at 05:21:04PM -0800, Steve Kargl wrote:
> On Wed, Jan 18, 2006 at 12:41:37AM +0100, Poul-Henning Kamp wrote:
> > In message <20060117222233.GA99076_at_troutmask.apl.washington.edu>, Steve Kargl writes:
> > >It just isn't my day to work on upgrade a 3 day old -current. ;(
> > >
> > >/usr/src/lib/libcrypt/../libmd/md5c.c: In function `__MD5Update':
> > >/usr/src/lib/libcrypt/../libmd/md5c.c:154: error: argument "in" doesn't match prototype
> > >/usr/include/sys/md5.h:41: error: prototype declaration
> > >*** Error code 1
> > 
> > Either you got a very unlucky CVSUP timing or you didn't run buildworld
> > because it looks like you have an old <sys/md5.h> and a new source tree...
> > 
> 
> I didn't do a buildworld.  It appears that one can no longer
> rebuild only a part of the tree.  I did
> 
> rm -rf /usr/obj/*
> cd /usr/src/lib
> make clean && make cleandepend && make cleandir
> make depend
> make
> 
> Report problem.

Since you are building your source tree against old headers and
libraries, the only situation in which this will work is when the
headers (and libraries) haven't changed significantly between your
installed version and new sources.  In practice this means you can
only get away with it when doing 'small enough' upgrades.

A more reliable, but still not 100% reliable, method to upgrade your
system more quickly than building world is to add:

make includes
make libraries

before 'make depend', which works around those two problems.  It still
doesn't work around other kinds of bootstrapping problems that occur
from time to time, which buildworld is designed to solve.

But of course, when either of these methods fail, the responsible
thing to do is to fall back to a buildworld before claiming the
existence of problems.

Kris

Received on Wed Jan 18 2006 - 01:28:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:51 UTC