Re: Newer yacc needed for building world

From: Garrett Cooper <yaneurabeya_at_gmail.com>
Date: Fri, 24 Apr 2015 03:05:44 -0700
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..

Received on Fri Apr 24 2015 - 08:05:48 UTC

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