Bison/Yacc Host requirement

Dan Nicholson 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
this:

  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 compile.
  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.

--
Dan



More information about the lfs-support mailing list