I have installed Cygwin 3.0.7 to my 64-bit Windows 10 system with the latest version of Flex, GCC, GNU M4, GNU Make, and GnuPG. I also have Strawberry Perl installed, and it exists after Cygwin in the path. I then build Bison using the following sequence of commands:

  • tar -xzf bison-3.4.1.tar.gz
  • cd bison-3.4.1
  • ./configure --disable-dependency-tracking --prefix=/cygdrive/C/some/install/path
  • make
  • make install

Everything in the above sequence appears to complete without issue. However, when I attempt to run Bison against a file that previously worked with Bison 3.0.4 that was bundled with Cygwin, the output file isn't generated and the %ERRORLEVEL% environment variable is set to 3328. I don't see anything in the event logs, nor can I find any information when searching for this error online. My command line is:

bison -d -v -o output.cpp input.ypp

The only output I get is:

input.ypp: warning: 4 shift/reduce conflicts [-Wconflicts-sr]

Can anyone think of a reason this wouldn't work properly, or know what error code 3328 means? Any ideas as to how I can debug this further?


I discovered some additional information. I was running the above commands within a Cygwin command prompt, then trying to run Bison from a Windows command prompt. If I remove my custom install directory (the --prefix option), then run from within with a Windows (which requires a full path) or Cygwin command prompt, everything works as expected. Therefore, I have narrowed it down to the --prefix argument. I am trying to build now from a Windows command prompt, but changed the --prefix argument to C:\some\install\path in order to see what happens.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.