[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Question: bison 2.4.1 breaks binutils/ld/deffilep.y, with fix
From: |
Joel E. Denny |
Subject: |
Re: Question: bison 2.4.1 breaks binutils/ld/deffilep.y, with fix |
Date: |
Tue, 28 Apr 2009 13:37:41 -0400 (EDT) |
On Tue, 28 Apr 2009, Joel E. Denny wrote:
> On Tue, 28 Apr 2009, Danny Backx wrote:
>
> > This started for me as a report from Ismail that the cegcc build broke
> > on his Mac. I asked about this on the binutils list, got a reply from
> > H-P that Ismail went on to verify.
> >
> > Now the result (below) appears to be that the MacOS problem in the
> > binutils/ld only appears when combined with bison 2.4.1.
> > I don't see the issue on my x86 linux PC (I moved bison to 2.4.1 but the
> > binutils build wouldn't break).
> >
> > Can anyone confirm that the patch below (moving some lines in
> > binutils/ld/deffilep.y up) is legitimate ?
>
> Bison 2.3a changed the handling of the relative positions of %union and
> %{...%} in the .y file in a backward-incompatible manner. Based on the
> rest of your email, that appears to be the problem you encountered. It
> also looks like you're generating a deterministic (that is, LALR(1) not
> GLR) parser in C. In that case, the only change is that all %{...%}
> before the first %union are now inserted before rather than after the
> token definitions. Those %{...%} appearing after the first %union are
> still inserted after the token definitions. For a complete explanation,
> see the section for 2.3a in Bison's NEWS file.
>
> I apologize for the inconvenience here. The goal of the change was
> consistency among Bison's skeletons, but I was clearly naive to think
> users were not likely to be dependent on the previous behavior.
> Unfortunately, reverting at this point may just further frustrate all
> users who have managed to update.
>
> While Bison will continue to support %{...%}, you might encourage the
> maintainers of CeGCC to switch from %{...%} to %code {...}, which
binutils not CeGCC.
> eliminates many of these subtle ordering issues. See the section
> "Prologue Alternatives" in the Bison manual for a complete explanation.