Re: Newer yacc needed for building world

From: Willem Jan Withagen <wjw_at_digiware.nl>
Date: Sat, 25 Apr 2015 15:40:57 +0200
On 24/04/2015 12:05, Garrett Cooper wrote:
> On Apr 24, 2015, at 3:03, Garrett Cooper <yaneurabeya_at_gmail.com> 
> wrote:
> 
>> On Apr 24, 2015, at 2:59, Garrett Cooper <yaneurabeya_at_gmail.com> 
>> wrote:
>> 
>>> On Apr 23, 2015, at 2:05, Willem Jan Withagen <wjw_at_digiware.nl> 
>>> wrote:
>>> 
>>>> On 22/04/2015 23:37, Ed Maste wrote:
>>>>> On 22 April 2015 at 15:55, Willem Jan Withagen 
>>>>> <wjw_at_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) _at__at_ -1358,6 +1358,8 _at__at_ 
>>> 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) _at__at_ -1358,6 +1358,8 _at__at_ 
>> 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
Received on Sat Apr 25 2015 - 11:50:33 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:57 UTC