Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Apr 2015 15:40:57 +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:  <553B9969.1070602@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..
> 

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



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