The version of GNU Bison on my mac is 2.3 but I know that Bison 2.5 was released long ago. The book Flex & Bison uses version 2.5.
Should I upgrade to 2.5 m
I had the same issue MacOSX 10.9.5.
After doing:
brew install bison
I added this to my bash profile:
export PATH=/usr/local/Cellar/bison/3.0.4/bin:$PATH
(by the time you read this, your version may be different from 3.0.4)
And after I restarted the Terminal it picked up the new version of Bison when I did bison -V
If you use Brew:
brew tap homebrew/dupes && brew install bison
If you use MacPorts:
sudo port install bison
If you use Fink, they're still on 2.3, just like Apple, so you'll have to edit the package yourself.
If you know how to install Unix software, download it, untar, then configure/make/install as usual.
If all of the above are Greek to you, look at http://mxcl.github.com/homebrew/ and http://macports.org and decide which one looks friendlier to you.
If you are using zsh
:
$ brew unlink bison
$ echo 'export PATH="/usr/local/opt/bison/bin:$PATH"' >> ~/.zshrc
$ export LDFLAGS="-L/usr/local/opt/bison/lib"
$ source ~/.zshrc
$ bison -V
bison (GNU Bison) 3.4.1
Written by Robert Corbett and Richard Stallman.
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
you can install a new version with homebrew:
$ brew install bison
...
This formula is keg-only, which means it was not symlinked into /usr/local.
Mac OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.
Some formulae require a newer version of bison.
Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:
LDFLAGS: -L/usr/local/opt/bison/lib
==> Summary
Because bison was been installed,the default version on osx is 2.3. So we should do something as follow:
Install a higher version os bison
If you use Brew, try to use this command--brew install bison, it will install bison 3.0.2. The binary package is under /usr/local/Cellar/bison/3.0.4/bin/ in my computer.
Or you can install bison through source code, follow instructions on offical website http://www.gnu.org/software/bison/.
Replace the old one(you need sudo or root permission)
$ which bison --- find the installed path,in my computer it's /usr/bin/bison
$ cd /usr/bin
$ sudo mv bison bison.2.3
$ sudo cp /usr/local/Cellar/bison/3.0.4/bin/bison bison
Then you can install thrift without this problem.
So I figured out how to get rid of bison build issues on Mojave and Catalina.
Here's what I did:
$ brew install bison
$ cp /usr/local/opt/bison/bin/bison /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/bison
--
Didn't need admin privileges, the cp command will overwrite the bison binary in your Xcode app with the latest one installed by homebrew.
now I can do this:
$ bison -V
bison (GNU Bison) 3.7.1
Been having so many problems building wine on multiple macOS systems running Mojave. Mostly due to this weird need for a library I've never heard of, but this fix got it working.