Date: Fri, 24 Apr 2015 13:18:35 +0200 From: Willem Jan Withagen <wjw@digiware.nl> To: Garrett Cooper <yaneurabeya@gmail.com> Cc: Ed Maste <emaste@freebsd.org>, Warren Block <wblock@wonkity.com>, FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: Newer yacc needed for building world Message-ID: <553A268B.4000703@digiware.nl> In-Reply-To: <B8BB6624-FE6E-4BF0-BDB2-DA23A0E7BC7B@gmail.com> References: <5537C3BA.8010206@digiware.nl> <alpine.BSF.2.20.1504221045000.98242@wonkity.com> <5537FCA1.6010108@digiware.nl> <CAPyFy2CmUO65D6D6U4ywaRb4AadH=pqG-sziXEsQd0OKuSBXPg@mail.gmail.com> <5538B5CF.9010508@digiware.nl> <DF687DD3-EC98-4603-98B0-E7553612D780@gmail.com> <A4B632E2-6435-4BC1-A301-0CEEA19BEDB4@gmail.com> <B8BB6624-FE6E-4BF0-BDB2-DA23A0E7BC7B@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 24/04/2015 12:05, Garrett Cooper wrote: > On Apr 24, 2015, at 3:03, Garrett Cooper <yaneurabeya@gmail.com> wrote: > >> On Apr 24, 2015, at 2:59, Garrett Cooper <yaneurabeya@gmail.com> wrote: >> >>> On Apr 23, 2015, at 2:05, Willem Jan Withagen <wjw@digiware.nl> wrote: >>> >>>> On 22/04/2015 23:37, Ed Maste wrote: >>>>> On 22 April 2015 at 15:55, Willem Jan Withagen <wjw@digiware.nl> wrote: >>>>>> >>>>>>> Yes: >>>>>>> https://lists.freebsd.org/pipermail/freebsd-current/2015-February/054740.html >>>>>>> >>>>>> >>>>>> But this is not enough to make yacc part of the build tools?? >>>>> >>>>> yacc is unconditionally built during bootstrap-tools as of r281615. >>>>> What SVN rev is your tree? >>>>> >>>> >>>> # svn info >>>> Path: . >>>> Working Copy Root Path: /usr/src >>>> URL: svn://svn.freebsd.org/base/stable/10 >>>> Relative URL: ^/stable/10 >>>> Repository Root: svn://svn.freebsd.org/base >>>> Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f >>>> Revision: 281853 >>>> Node Kind: directory >>>> Schedule: normal >>>> Last Changed Author: kib >>>> Last Changed Rev: 281849 >>>> Last Changed Date: 2015-04-22 12:59:05 +0200 (Wed, 22 Apr 2015) >>>> >>>> Then I removed /usr/obj/* to get a fresh start. >>>> Removing yacc just gets me into trouble even earlier: >>>> >>>> # make -j 32 buildworld >>>> . >>>> . >>>> . >>>> --- _bootstrap-tools-usr.bin/compile_et --- >>>> --- parse.c --- >>>> yacc -d -o parse.c /usr/src/usr.bin/compile_et/../../contrib/com_err/parse.y >>>> yacc: not found >>>> --- _bootstrap-tools-usr.sbin/bsnmpd/gensnmptree --- >>>> /usr/obj/usr/src/tmp/usr/src/usr.sbin/bsnmpd/gensnmptree created for >>>> /usr/src/usr.sbin/bsnmpd/gensnmptree >>>> --- _bootstrap-tools-usr.bin/compile_et --- >>>> *** [parse.c] Error code 127 >>>> >>>> So I have relatively little further to test. >>>> Perhaps the '-j 32' was a bit aggressive, but it gets fast where the >>>> error is. >>> >>> Well, that’s amusing :(. You found a new race that wasn’t present before my changes to parallelize bootstrap-tools (kerberos comes before yacc in bootstrap-tools). Do you have yacc installed on your machine? >>> Please try out this patch. >>> Thanks! >>> -NGie >>> >>> $ svn diff Makefile.inc1 >>> Index: Makefile.inc1 >>> =================================================================== >>> --- Makefile.inc1 (revision 281823) >>> +++ Makefile.inc1 (working copy) >>> @@ -1358,6 +1358,8 @@ >>> usr.bin/compile_et >>> >>> .ORDER: ${_kerberos5_bootstrap_tools:C/^/${_bt}-/g} >>> + >>> +${_bt}-usr.bin/compile_et: ${_bt}-usr.bin/yacc >>> .endif >>> >>> bootstrap-tools: .PHONY >> >> It’ll also need lex too. This should be a bit more comprehensive: >> >> Index: Makefile.inc1 >> =================================================================== >> --- Makefile.inc1 (revision 281823) >> +++ Makefile.inc1 (working copy) >> @@ -1358,6 +1358,8 @@ >> usr.bin/compile_et >> >> .ORDER: ${_kerberos5_bootstrap_tools:C/^/${_bt}-/g} >> + >> +${_bt}-usr.bin/compile_et: ${_bt}$-usr.bin/lex ${_bt}-usr.bin/yacc >> .endif >> >> bootstrap-tools: .PHONY > > I’ll work out the finally kinks with how to spell lex and yacc… > > This is part of the reason why I think BOOTSTRAPPING needs to be kicked to the curb and everything needs to be built in parallel, but enough people haven’t complained about built failures, so the optimization remains.. > Well, what I did for the above test is mv /usr/bin/yacc /usr/bin/yacc.sav Mainly because I already installed a yacc version that did not run out of tablespace for roken. I'll give your patch a go. Turns out that it is even used before that when building bsnmpd. Which make me wonder why that would be a bootstrap-tool, although that is completely different question. :) Everything in Parallel would be interesting. Somebody posted a URL to an paper on this and no more recursive make because it kills the dependancy information, which I found very interesting. --WjW
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?553A268B.4000703>