Bison/Yacc Host requirement
dbn.lists at gmail.com
Sun Aug 6 16:02:38 PDT 2006
On 8/5/06, Thinus Pollard <thinus-list at erlfinsys.net> wrote:
> I don't know where this is supposed to go. Host system requirements does not
> mention bison or yacc. My bash ./configure command failed looking for yacc in
> chapter 5. Resolution is a breeze, just install bison
Thanks for the report. Bison should probably be in the host
requirements. Looking at support/aclocal.m4 in the bash tarball shows
dnl intl/plural.c is generated from intl/plural.y. It requires bison,
dnl because plural.y uses bison specific features. It requires at least
dnl bison-1.26 because earlier versions generate a plural.c that doesn't
dnl bison is only needed for the maintainer (who touches plural.y). But in
dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
dnl the rule in general Makefile. Now, some people carelessly touch the
dnl files or have a broken "make" program, hence the plural.c rule will
dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
dnl present or too old.
It then goes on to check just that. l So, it looks like bison-1.26 is
definitely a host requirement.
Wait. I just figured out why no one noticed this before. Bison is only
needed because the bash upstream fixes tarball modifies parse.y, hence
bison is needed. And this patch was added to Ch. 5 bash at the last
minute. The placement of bison in Ch. 6 is specifically to address
this situation. Cc'ing lfs-dev.
So, bison isn't strictly a host requirement because typically the
bison conversion is done by the upstream maintainer, usually via `make
dist'. In this case it is a requirement, and it's probably not a bad
idea anyways to guard against these situations in the future.
More information about the lfs-support