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>