Re: r279278 failed to build (yacc: maximum table size exceeded)

From: Garrett Cooper <yaneurabeya_at_gmail.com>
Date: Wed, 25 Feb 2015 10:55:27 -0800
On Feb 25, 2015, at 10:51, Arseny Nasokin <eirnym_at_gmail.com> wrote:

> On 25 February 2015 at 20:27, Jung-uk Kim <jkim_at_freebsd.org> wrote:
> 
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA256
>> 
>> On 02/25/2015 11:22, Ivan Klymenko wrote:
>>> В Wed, 25 Feb 2015 15:43:27 +0000 Glen Barber <gjb_at_FreeBSD.org>
>>> пишет:
>>> 
>>>> On Wed, Feb 25, 2015 at 07:32:45PM +0400, Arseny Nasokin wrote:
>>>>> I have clean svn tree with base/head branch. I try to build
>>>>> world, but I have some mysterious bugs. The latest is yacc
>>>>> failed to make c file on phase 4.3:
>>>>> 
>>>>> ===> usr.sbin/acpi/iasl (depend) m4 -P
>>>>> -I/usr/src/usr.sbin/acpi/iasl/../../../sys/contrib/dev/acpica/compiler
>>>>> 
>>>>> 
>> 
>> /usr/src/usr.sbin/acpi/iasl/../../../sys/contrib/dev/acpica/compiler/aslparser.y
>>>>>> aslcompiler.y
>>>>> yacc -d -pAslCompiler -oaslcompilerparse.c aslcompiler.y yacc:
>>>>> 89 shift/reduce conflicts. yacc: f - maximum table size
>>>>> exceeded *** Error code 2
>>>>> 
>>>>> /etc/make.conf is /dev/null. I've also tried empty
>>>>> /etc/src.conf with no luck.
>>>>> 
>>>> 
>>>> Out of curiosity, is your src tree mounted via NFS?
>>>> 
>>>> Glen
>>>> 
>>> 
>>> I have a similar problem on revision /usr/src # svn info Path: .
>>> Working Copy Root Path: /usr/src URL:
>>> svn://svn.freebsd.org/base/head Relative URL: ^/head Repository
>>> Root: svn://svn.freebsd.org/base Repository UUID:
>>> ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f Revision: 279213 Node Kind:
>>> directory Schedule: normal Last Changed Author: glebius Last
>>> Changed Rev: 279213 Last Changed Date: 2015-02-23 20:57:09 +0200
>>> (Mon, 23 Feb 2015)
>>> 
>>> http://pastebin.com/FuAUkBmX
>>> 
>>> Source tree is on the zfs /usr/src # zfs list zroot/usr/src NAME
>>> USED  AVAIL  REFER  MOUNTPOINT zroot/usr/src  1.35G   408G  1.35G
>>> /usr/src
>>> 
>>> what is most surprising, the same revision successfully building
>>> for the other 2 computers, including amd64|zfs and i386|ufs.
>> 
>> Your installed yacc(1) is too old, i.e., your world was built from
>> head before r274460.  FYI, this commit fixes the above problem for
>> building from stable:
>> 
>> https://svnweb.freebsd.org/changeset/base/278975
>> 
>> For building from old head (pre-r274460), you have to manually
>> bootstrap yacc first, e.g., something like this:
>> 
>> cd /usr/src/usr.bin/yacc
>> make clean cleandepend
>> make all && make install
>> make clean cleandepend
>> cd /usr/src
>> make buildworld
>> 
>> Jung-uk Kim
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v2
>> 
>> iQEcBAEBCAAGBQJU7gXkAAoJEHyflib82/FGAsMH/iw2oNbyOPY7t/GIm+7QpqKS
>> 4jOZisFY9WD8UCpziqwnp5Ia1A4YC4rn7W5G6wKALHMTuo3kT8lFEWV5sIVhc0dm
>> 7to624zTVsNZqBhCFODRMZSXSlpMNCkjWtixGT1spEmyUAeKSEq5dPLaj3JyOOUw
>> XvZbY6l4f/jFr+68z/uIHRJi3NbP5SODIYuUanO7X0nVuxI0PQNE45o3p2dj7lRJ
>> 9eV0G5/SJUT8uWSuXy2kOY+TZWAk8VTTz/nb+krKPtwBdsv+nhSu3NDuaTJQk4gm
>> KaA+FaOgP/vhyxrF61qBOVq+MDy66/XuU4s/9IKrRoeUrZX0j5X4JoGC1p2+cgU=
>> =lpVt
>> -----END PGP SIGNATURE-----
>> 
> 
> 
> Hi, guys,
> 
> I've found the fix by forcing to add yacc(1) to bootstrap build.
> 
> Makefile.inc1, line 1277:
> 
> if ${BOOTSTRAPPING} < 1001506
> _yacc=      lib/liby \
> 
> change to:
> 
> if ${BOOTSTRAPPING} < 1201506 ## It is for test purposes only!!!
> _yacc=      lib/liby \

It takes a few seconds to build this on my laptop — can we just explicitly turn this on to be sure we’re using the right thing?

% (cd lib/liby; time sh -c 'make obj; make depend; make all')

real    0m0.326s
user    0m0.031s
sys     0m0.111s

% (cd usr.bin/yacc/; time sh -c 'make obj; make depend; make all')

real    0m3.431s
user    0m2.631s
sys     0m0.363s

With me parallelizing bootstrap-tools on HEAD it should be less of an issue stacking on items like this.

Thanks!

Received on Wed Feb 25 2015 - 17:55:30 UTC

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