Since my last succesful build of LinuxSampler in 2008-10-29 I haven't gotten it to compile at all. The error is always the same: Making all in network make[3]: Entering directory `/usr/src/linuxsampler-cvs/src/network' /bin/sh ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -Wreturn-type -ffast-math -march=nocona-m32 -pipe -O3 -pipe -fomit-frame-pointer -ggdb -pthread -msse -c -o lscpparser.lo lscpparser.cpp mkdir .libs g++ -DHAVE_CONFIG_H -I. -I../.. -Wreturn-type -ffast-math -march=nocona -m32 -pipe -O3 -pipe -fomit-frame-pointer -ggdb -pthread -msse -c lscpparser.cpp -fPIC -DPIC -o .libs/lscpparser.o lscp.y: In function 'int LinuxSampler::yylex(LinuxSampler::_YYSTYPE*)': lscp.y:87: error: 'EXT_ASCII_CHAR' was not declared in this scope make[3]: *** [lscpparser.lo] Error 1 make[3]: Leaving directory `/usr/src/linuxsampler-cvs/src/network' make[2]: Leaving directory `/usr/src/linuxsampler-cvs/src' make[1]: Leaving directory `/usr/src/linuxsampler-cvs' make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 The first time LS failed to build for me was in 2008-11-07, so I suspect that there was some change in 2008-11-01 or 2008-11-02 that did this. I'm not at all sure, though, thanks to the WTF-ness of CVS and me being flex-illiterate. I've tried building with and without assembly optimizations and the instruments DB, no luck.
Probably the auto-generated LSCP parser was not automatically re-generated of the new LSCP definition file (lscp.y). Try: make parser make from the toplevel directory.
I think it's already generated during 'make -f Makefile.cvs' because I see this: Searching for a parser generator...OK (/usr/bin/bison -y) Generating LSCP parser... I tried manually running 'make parser' after ./configure but that didn't affect the outcome from make.
Are you sure bison did not throw out any error message? What is the full output of "make parser"? Please also try to make a completely fresh checkout of LS from CVS and try to build it again. If that doesn't work, please upload your two auto generated files lscpparser.cpp and lscpsymbols.h.
Created attachment 41 [details] lscpparser.cpp
Created attachment 42 [details] lscpsymbols.h
The checkout is completely fresh. Here's the output from 'make parser' and the two files you requested (attached). make[1]: Entering directory `~/tmp/linuxsampler-cvs/src/network' ../../scripts/generate_parser.sh Searching for a parser generator...OK (/usr/bin/bison -y) Generating LSCP parser... conflicts: 1801 shift/reduce, 1045 reduce/reduce conflicts: 1801 shift/reduce, 1045 reduce/reduce Done Updating Documentation/lscp.xml...Done make[1]: Leaving directory `~/tmp/linuxsampler-cvs/src/network'
Well, what do you know. Downgrading bison from 2.4 to 2.3 makes the problem go away. I apologize for the trouble, I was sloppy for initially blaming flex and then slow looking into bison versions. Of course bison 2.4 still thinks that lscp.y is broken.
Does the error with bison 2.4 go away if you add #include "lscpsymbols.h" to lscp.y?
Yes, adding that include seems to fix it.
Marking this one as blocker, as it should be resolved before the upcoming release.
Fix committed to CVS.