Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Jun 2001 17:00:14 -0700 (PDT)
From:      Bruce Evans <bde@zeta.org.au>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: i386/28002: make world fails (ref. to ipf) 
Message-ID:  <200106110000.f5B00Ee83205@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR i386/28002; it has been noted by GNATS.

From: Bruce Evans <bde@zeta.org.au>
To: Peter Wemm <peter@wemm.org>
Cc: freebsd-gnats-submit@FreeBSD.ORG
Subject: Re: i386/28002: make world fails (ref. to ipf) 
Date: Mon, 11 Jun 2001 09:56:24 +1000 (EST)

 On Sun, 10 Jun 2001, Peter Wemm wrote:
 
 >  > > SHARED=symlinks may be broken, but it isn't causing world to die.  I have
 >  > > two recent -stable (as little as 10 minutes ago) builds that I can show you
 >  > > if you dont believe me.
 >  > 
 >  > That is another bug :-).  You must have garbage in /usr/include/netinet
 >  > from a previous installworld.  Buildworld picks up this garbage because
 >  > -nostdinc was removed from CFLAGS in rev.1.105 of src/Makefile.inc1.
 >  
 >  Actually, I did two build/installworlds, in this order.  I was concerned
 >  about junk in /usr/include as a result of switching this box from
 >  -current to -stable.
 >  0) rm -rf /usr/obj/*
 >  1) make buildworld
 
 This can work because you have an old (but sufficiently current to work)
 set of ipfilter headers in /usr/include/netinet ...
 
 >  2) make installworld
 
 and this installs a current set of ipfilter headers in /usr/include/netinet
 (but this set will be "old" again for the next build, because the sources
 may have changed).
 
 >  3) mv /usr/include /usr/include.old; also clean up old files in / and /usr
 
 This gets rid of all the headers ...
 
 >  4) make installworld
 
 ... and this installs all headers again, including a current set of ipfilter
 headers.
 
 >  5) rm -rf /usr/obj/*
 >  6) make world
 
 This works because you have an old (but sufficiently current to work)
 set of ipfilter headers in /usr/include/netinet ...
 
 Here the headers are certainly sufficiently current to work, because
 you just installed them, but this is not true in general.  People
 upgrading from RELENG_4 have the RELENG_4 headers and might fail in
 step (1).
 
 >  The problem is that ipf.c etc has this crud:
 >  #include "ip_compat.h"
 >  #include "ip_fil.h"
 >  #include "ip_nat.h"
 >  #include "ip_state.h"
 >  #include "ipf.h"
 >  #include "ipl.h"
 >  -nostdinc has no bearing on that at all.  We *needed* the -I../../sys/netinet
 >  so that everything was supposed to use the same include files, but in
 >  -current ru@freebsd.org removed it without replacing the functionality.
 
 I see.  ipmon seems to be the only exception.  ipmon/Makefile only used
 -I../../sys, and ipmon.c only uses:
 
 #include "netinet/ip_compat.h"
 #include "netinet/ip_fil.h"
 #include "netinet/ip_proxy.h"
 #include "netinet/ip_nat.h"
 #include "netinet/ip_state.h"
 
 >  Personally, with disk space being as cheap as it is, I feel we should
 >  deorbit SYMLINKS=shared.  After all, some people even build their entire
 >  worlds static.  This would greatly reduce the complexity of building an
 >  include tree and reduce the margin for error.
 
 You mean SHARED=symlinks.  This is more for avoiding having a separate
 copy of the headers than to save space.  Copies of things are sources
 of bitrot.
 
 Bruce
 

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




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