Re: Strange error kills make world for at least 2 days.

From: Ruslan Ermilov <ru_at_freebsd.org>
Date: Thu, 5 Feb 2004 16:27:54 +0200
On Thu, Feb 05, 2004 at 03:03:05PM +0100, Mattias Larsson wrote:
> > On Wed, Feb 04, 2004 at 09:46:19PM -0500, Jeff Utter wrote:
> > > Hi, i've been trying to makeworld for the last 2 days (killing 
> > > /usr/obj and re-cvsupping /usr/src between each build) and i keep 
> > > getting this same, STRANGE error...
> > > 
[...]
> > > /usr/src/lib/libc/net/nslexer.l: At top level:
> > > /dev/stdout:1678: warning: `yy_flex_realloc' defined but not used
> > > *** Error code 1
> > > 1 error
> > > 
> > > It doesn't even look like an error to me.. it looks like 2 
> > > warnings? 
> > > what is up. I tried building with no optimizations and with
> > > cputype=i686 (instead of p4) same error.. if anyone has any 
> > > ideas, it 
> > > would be greatly appreciated.
> > > 
> > What is the output of the following commands?
> > 
> > 	ident /usr/bin/lex
> > 	cd /usr/src; make -f Makefile.inc1 -V OSRELDATE
> > 	ls -l /usr/include/osreldate.h /usr/bin/lex
> 
> Hi there! I have the exact same problem when making buildworld. These are
> the outputs from the commands.
> 
> gateway# ident /usr/bin/lex
> /usr/bin/lex:
[...]
>      $FreeBSD: src/usr.bin/lex/flex.skl,v 1.7 2002/09/09 02:58:42 obrien Exp $
[...]
> gateway# cd /usr/src; make -f Makefile.inc1 -V OSRELDATE
> 502102
> gateway# ls -l /usr/include/osreldate.h /usr/bin/lex
> -r-xr-xr-x  4 root  wheel  154580  3 Jan 16:40 /usr/bin/lex
> -r--r--r--  1 root  wheel    1528  4 Feb 20:45 /usr/include/osreldate.h
> 
You guys both managed to screw your build systems (I've got the
requested output from originator in a private email).  We need
a working and consistent build system for a successful build,
and part of this requirement is that we trust the value of the
__FreeBSD_version definition from /usr/include/osreldate.h to
determine the version of the build system (headers, libraries,
etc.), OSRELDATE.

It is known that lex(1) prior to flex.skl,v 1.8 and gen.c,v 1.7
have backward compatibility issues and requires bootstrapping,
to not generate compiler warnings.  The said revisions were made
on 2004/01/06, and at that time __FreeBSD_version was 502101, so
Makefile.inc1 bootstraps lex(1) ``.if ${BOOTSTRAPPING} < 502102'',
i.e., we stop bootstrapping on the next version bump that
happened on 2004/01/30.

You broke this because your installed /usr/include/osreldate.h
(the modification date is 2004/02/04) doesn't match the installed
world (/usr/bin/lex is as of 2004/01/03).

Now you tell me how you managed to screw it.

In return, I'll tell you how to proceed.  Run buildworld like
this:

	make buildworld OSRELDATE=502101

Sorry, but we can't protect you from shooting yourself in the
foot.  ;)

If you're in a mood of often doing partial upgrades, including
headers, you might find it useful to set OSRELDATE=0, which
will do an aggressive bootstrapping -- assume that everything
bootstrappable needs to be bootstrapped.


Cheers,
-- 
Ruslan Ermilov
FreeBSD committer
ru_at_FreeBSD.org

Received on Thu Feb 05 2004 - 05:27:43 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:41 UTC