From owner-freebsd-current@FreeBSD.ORG Sat Apr 25 13:50:33 2015 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6DF32935; Sat, 25 Apr 2015 13:50:33 +0000 (UTC) Received: from smtp.digiware.nl (unknown [IPv6:2001:4cb8:90:ffff::3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1693C1117; Sat, 25 Apr 2015 13:50:32 +0000 (UTC) Received: from rack1.digiware.nl (unknown [127.0.0.1]) by smtp.digiware.nl (Postfix) with ESMTP id D28E716A4B2; Sat, 25 Apr 2015 15:50:30 +0200 (CEST) X-Virus-Scanned: amavisd-new at digiware.nl Received: from smtp.digiware.nl ([127.0.0.1]) by rack1.digiware.nl (rack1.digiware.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qceREY6N5ez4; Sat, 25 Apr 2015 15:50:02 +0200 (CEST) Received: from [IPv6:2001:4cb8:3:1:9d5b:6fac:30b6:fba1] (unknown [IPv6:2001:4cb8:3:1:9d5b:6fac:30b6:fba1]) by smtp.digiware.nl (Postfix) with ESMTPA id 58EE916A45A; Sat, 25 Apr 2015 15:41:00 +0200 (CEST) Message-ID: <553B9969.1070602@digiware.nl> Date: Sat, 25 Apr 2015 15:40:57 +0200 From: Willem Jan Withagen User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Garrett Cooper CC: Ed Maste , Warren Block , FreeBSD Current Subject: Re: Newer yacc needed for building world References: <5537C3BA.8010206@digiware.nl> <5537FCA1.6010108@digiware.nl> <5538B5CF.9010508@digiware.nl> In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Apr 2015 13:50:33 -0000 On 24/04/2015 12:05, Garrett Cooper wrote: > On Apr 24, 2015, at 3:03, Garrett Cooper > wrote: > >> On Apr 24, 2015, at 2:59, Garrett Cooper >> wrote: >> >>> On Apr 23, 2015, at 2:05, Willem Jan Withagen >>> wrote: >>> >>>> On 22/04/2015 23:37, Ed Maste wrote: >>>>> On 22 April 2015 at 15:55, Willem Jan Withagen >>>>> 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.. > Remember I moved /usr/bin/out of the path. Which would be different for using an outdated yacc. Which is where the bug originally started. This fixes the problem for a non-parallel build. But once parallel builds (with -j > 5 ) are done, the .for _tool in \ loop runs into trouble when _yacc is not finished/started before config is being build. Normally this would not be a problem as long as config is not dependant on any of the new features/size in the yacc to be build. --WjW