Date: Wed, 22 Dec 2021 10:58:50 -0600 From: Warner Losh <imp@bsdimp.com> To: Gary Jennejohn <gljennjohn@gmail.com> Cc: FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: WITHOUT_PF breaks buildworld Message-ID: <CANCZdfqAdO1HMDnWMsEU1LarRj36GzA%2Bog%2BxGkBY6rziA_yLWQ@mail.gmail.com> In-Reply-To: <20211222170151.05a4afe3@ernst.home> References: <20211219114723.338b235e@ernst.home> <61bf1204.1c69fb81.2c8fc.3280SMTPIN_ADDED_BROKEN@mx.google.com> <20211219122443.1c84093f@ernst.home> <CAGgez=%2B_jdDn6dfOeo%2BuBeeFNzBfD57HL4wUrw=X-BmGg7mPyg@mail.gmail.com> <74FC7625-295C-4DEC-BF35-434B5F8D7832@FreeBSD.org> <20211222165154.33ef54fd@ernst.home> <20211222170151.05a4afe3@ernst.home>
next in thread | previous in thread | raw e-mail | index | archive | help
--000000000000e73f8d05d3bf0941 Content-Type: text/plain; charset="UTF-8" On Wed, Dec 22, 2021, 10:02 AM Gary Jennejohn <gljennjohn@gmail.com> wrote: > On Wed, 22 Dec 2021 16:51:54 +0100 > Gary Jennejohn <gljennjohn@gmail.com> wrote: > > On Wed, 22 Dec 2021 16:27:52 +0100 > Kristof Provost <kp@FreeBSD.org> wrote: > > > On 22 Dec 2021, at 8:21, Konrad Sewi??o-Jopek wrote: > > > Hi, > > > > > > I think the reason is somewhere in tools/build/test-includes: > > > > > > --- net/if_pfsync.o --- > > > In file included from net/if_pfsync.c:1: > > > In file included from > > > [...]freebsd/arm64.aarch64/tmp/usr/include/net/if_pfsync.h:56: > > > [...]freebsd/arm64.aarch64/tmp/usr/include/net/pfvar.h:65:10: fatal > error: > > > 'netpfil/pf/pf.h' file not found > > > #include <netpfil/pf/pf.h> > > > ^~~~~~~~~~~~~~~~~ > > > 1 error generated. > > > *** [net/if_pfsync.o] Error code 1 > > > > > > make[3]: stopped in [...]freebsd/tools/build/test-includes > > > --- net/pfvar.o --- > > > > In file included from net/pfvar.c:1: > > > > [...]freebsd/arm64.aarch64/tmp/usr/include/net/pfvar.h:65:10: fatal > error: > > > > 'netpfil/pf/pf.h' file not found > > > > #include <netpfil/pf/pf.h> > > > > ^~~~~~~~~~~~~~~~~ > > > > 1 error generated. > > > > *** [net/pfvar.o] Error code 1 > > > > > > > > make[3]: stopped in [...]freebsd/tools/build/test-includes > > > > 2 errors > > > > > > > > make[3]: stopped in [...]freebsd/tools/build/test-includes > > > > *** [test-includes] Error code 2 > > > > > > > > make[2]: stopped in [...]freebsd > > > > 1 error > > > > > > > > Best regards, > > > > Konrad Sewi??o-Jopek > > > > > > > > > > > > niedz., 19 gru 2021 o 12:26 Gary Jennejohn <gljennjohn@gmail.com> > > > > napisa?(a): > > > > > > > >> On Sun, 19 Dec 2021 19:05:35 +0800 > > > >> Alastair Hogge <agh@riseup.net> wrote: > > > >> > > > >>> On Sunday, 19 December 2021 6:47:23 PM AWST Gary Jennejohn wrote: > > > > >>>> Some recent change, probably in a .mk file, breaks builworld on > HEAD > > > >>>> when WITHOUT_PF is enabled in src.conf. > > > >>> > > > >>> I have had to disable WITHOUT_PF since 2020-07-27, but probably > earlier. > > > >>> > > > >> > > > >> Hmm. I did a successful buildworld a few days ago with WITHOUT_PF > > > >> enabled, so it's new breakge for me at least. > > > >> > > > >> I don't enable pf in the kernel and don't need it in userland. > > > >> > > > >>>> Disabling WITHOUT_PF results in a successful buildworld. > > > >>>> > > > >>>> The reported error is that netpfil/pf/pf.h can't be found. > > > >>> > > > >>> Some ports depend on that too. > > > >>> > > > >> > > This is the test-includes target, which validates that include files are > self-contained (that is, you can '#include <$file>' without prerequisites. > > The target fails because it looks at all headers in /usr/src/sys and > then tries to build them, but some of those headers (like the pf headers) > include other headers that may not be getting installed because they're > disabled. > > > > I'm not quite sure how to best fix this. > > > > Note that it is not happening because some pf tools are still getting > built. This is a validation target that fails. > > > > We could potentially add the pf headers to BADHDRS depending on the > WITHOUT_ flag, but that would mean manually maintaining badfiles.inc. > > Or perhaps we should keep installing the pf headers even when WITHOUT_PF > is set, but I'm not actually sure how we convince the build system to do > that. Or if it's a good idea. > > > > Warner might have better ideas on how to fix this. > > > > This simple patch to /usr/src/include/Makefile fixes it for me: > > --- Makefile.orig 2021-12-22 13:37:02.817745000 +0100 > +++ Makefile 2021-12-22 13:37:12.177336000 +0100 > @@ -246,9 +246,7 @@ > INCSGROUPS+= IPFILTER > .endif > > -.if ${MK_PF} != "no" > INCSGROUPS+= PF > -.endif > > .if ${MK_CDDL} != "no" > INCSGROUPS+= NVPAIR > > Since pf.h is used so widely in the tree it's probably the simplest fix. > I like this. I'd unconditionally remove the test in preference to adding it conditionally. Warner --000000000000e73f8d05d3bf0941 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"auto"><div><br><br><div class=3D"gmail_quote"><div dir=3D"ltr" = class=3D"gmail_attr">On Wed, Dec 22, 2021, 10:02 AM Gary Jennejohn <<a h= ref=3D"mailto:gljennjohn@gmail.com" target=3D"_blank" rel=3D"noreferrer">gl= jennjohn@gmail.com</a>> wrote:<br></div><blockquote class=3D"gmail_quote= " style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">O= n Wed, 22 Dec 2021 16:51:54 +0100<br> Gary Jennejohn <<a href=3D"mailto:gljennjohn@gmail.com" rel=3D"noreferre= r noreferrer" target=3D"_blank">gljennjohn@gmail.com</a>> wrote:<br> <br> On Wed, 22 Dec 2021 16:27:52 +0100<br> Kristof Provost <kp@FreeBSD.org> wrote:<br> <br> > On 22 Dec 2021, at 8:21, Konrad Sewi??o-Jopek wrote:=C2=A0 <br> > > Hi,<br> > ><br> > > I think the reason is somewhere in tools/build/test-includes:<br> > ><br> > > --- net/if_pfsync.o ---<br> > > In file included from net/if_pfsync.c:1:<br> > > In file included from<br> > > [...]freebsd/arm64.aarch64/tmp/usr/include/net/if_pfsync.h:56:<br= > > > [...]freebsd/arm64.aarch64/tmp/usr/include/net/pfvar.h:65:10: fat= al error:<br> > > 'netpfil/pf/pf.h' file not found<br> > > #include <netpfil/pf/pf.h><br> > >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^~~~~~~~~~~~~~~~~<br> > > 1 error generated.<br> > > *** [net/if_pfsync.o] Error code 1<br> > ><br> > > make[3]: stopped in [...]freebsd/tools/build/test-includes<br> > > --- net/pfvar.o ---<br> > > > In file included from net/pfvar.c:1:<br> > > > [...]freebsd/arm64.aarch64/tmp/usr/include/net/pfvar.h:65:10= : fatal error:<br> > > > 'netpfil/pf/pf.h' file not found<br> > > > #include <netpfil/pf/pf.h><br> > > >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^~~~~~~~~~~~~~~~~<br> > > > 1 error generated.<br> > > > *** [net/pfvar.o] Error code 1<br> > > ><br> > > > make[3]: stopped in [...]freebsd/tools/build/test-includes<b= r> > > > 2 errors<br> > > ><br> > > > make[3]: stopped in [...]freebsd/tools/build/test-includes<b= r> > > > *** [test-includes] Error code 2<br> > > ><br> > > > make[2]: stopped in [...]freebsd<br> > > > 1 error<br> > > ><br> > > > Best regards,<br> > > > Konrad Sewi??o-Jopek<br> > > ><br> > > ><br> > > > niedz., 19 gru 2021 o 12:26 Gary Jennejohn <<a href=3D"ma= ilto:gljennjohn@gmail.com" rel=3D"noreferrer noreferrer" target=3D"_blank">= gljennjohn@gmail.com</a>><br> > > > napisa?(a):<br> > > >=C2=A0 =C2=A0 <br> > > >> On Sun, 19 Dec 2021 19:05:35 +0800<br> > > >> Alastair Hogge <<a href=3D"mailto:agh@riseup.net" rel= =3D"noreferrer noreferrer" target=3D"_blank">agh@riseup.net</a>> wrote:<= br> > > >>=C2=A0 =C2=A0 <br> > > >>> On Sunday, 19 December 2021 6:47:23 PM AWST Gary Jen= nejohn wrote:=C2=A0 =C2=A0 <br> > > >>>> Some recent change, probably in a .mk file, brea= ks builworld on HEAD<br> > > >>>> when WITHOUT_PF is enabled in src.conf.=C2=A0 = =C2=A0 <br> > > >>><br> > > >>> I have had to disable WITHOUT_PF since 2020-07-27, b= ut probably earlier.<br> > > >>>=C2=A0 =C2=A0 <br> > > >><br> > > >> Hmm.=C2=A0 I did a successful buildworld a few days ago = with WITHOUT_PF<br> > > >> enabled, so it's new breakge for me at least.<br> > > >><br> > > >> I don't enable pf in the kernel and don't need i= t in userland.<br> > > >>=C2=A0 =C2=A0 <br> > > >>>> Disabling WITHOUT_PF results in a successful bui= ldworld.<br> > > >>>><br> > > >>>> The reported error is that netpfil/pf/pf.h can&#= 39;t be found.=C2=A0 =C2=A0 <br> > > >>><br> > > >>> Some ports depend on that too.<br> > > >>>=C2=A0 =C2=A0 <br> > > >>=C2=A0 =C2=A0 <br> > This is the test-includes target, which validates that include files a= re self-contained (that is, you can '#include <$file>' withou= t prerequisites.<br> > The target fails because it looks at all headers in /usr/src/sys and t= hen tries to build them, but some of those headers (like the pf headers) in= clude other headers that may not be getting installed because they're d= isabled.<br> > <br> > I'm not quite sure how to best fix this.<br> > <br> > Note that it is not happening because some pf tools are still getting = built. This is a validation target that fails.<br> > <br> > We could potentially add the pf headers to BADHDRS depending on the WI= THOUT_ flag, but that would mean manually maintaining badfiles.inc.<br> > Or perhaps we should keep installing the pf headers even when WITHOUT_= PF is set, but I'm not actually sure how we convince the build system t= o do that. Or if it's a good idea.<br> > <br> > Warner might have better ideas on how to fix this.<br> >=C2=A0 =C2=A0<br> <br> This simple patch to /usr/src/include/Makefile fixes it for me:<br> <br> --- Makefile.orig=C2=A0 =C2=A0 =C2=A0 =C2=A02021-12-22 13:37:02.817745000 += 0100<br> +++ Makefile=C2=A0 =C2=A0 2021-12-22 13:37:12.177336000 +0100<br> @@ -246,9 +246,7 @@<br> =C2=A0INCSGROUPS+=3D=C2=A0 =C2=A0IPFILTER<br> =C2=A0.endif<br> <br> -.if ${MK_PF} !=3D "no"<br> =C2=A0INCSGROUPS+=3D=C2=A0 =C2=A0PF<br> -.endif<br> <br> =C2=A0.if ${MK_CDDL} !=3D "no"<br> =C2=A0INCSGROUPS+=3D=C2=A0 =C2=A0NVPAIR<br> <br> Since pf.h is used so widely in the tree it's probably the simplest fix= .<br></blockquote></div></div><div dir=3D"auto"><br></div><div dir=3D"auto"= >I like this. I'd unconditionally remove the test in preference to addi= ng it conditionally.=C2=A0</div><div dir=3D"auto"><br></div><div dir=3D"aut= o">Warner</div></div> --000000000000e73f8d05d3bf0941--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfqAdO1HMDnWMsEU1LarRj36GzA%2Bog%2BxGkBY6rziA_yLWQ>