VICE monitor fails -- configure it as a with / without feature?
Versatile Commodore Emulator
Brought to you by:
blackystardust,
gpz
Latest source compile fails to build on Fedora 24 Linux these past couple of weeks; and not the first time I've experienced this complex module not passing cross-platform builds from committed source. As an old 8-bit programmer, I find the built-in monitor/debugger useful at times to have, but not at the expense of all VICE machines with the 100s of VICE runtime features I want to enjoy, i.e., Ultimem on VIC.
For those users (which should be nearly ALL of them except a handful) that won't be using this programmer convenience, does it make sense to make this a configure option, --with-monitor / --without-monitor, and bypass advanced compile-time dependencies?
Making install in monitor mon_parse.y:1046:2: error: #else without #if { ^ mon_parse.y: In function ‘parse_and_execute_line’: mon_parse.y:1049:5: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘FILE’ ^ mon_parse.y:1052:2: error: #endif without #if i = (int)strlen(input); ^ ~~~ mon_parse.y:1045:6: error: old-style parameter declarations in prototyped function definition void parse_and_execute_line(char *input) ^~~~~~~~~~~~~~~~~~~~~~ mon_parse.y: At top level: mon_parse.y:1129:2: error: #else without #if /* FIXME: Handle cases when default type is non-numerical */ ^ ~~ mon_parse.y: In function ‘yyerror’: mon_parse.y:1132:5: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘yytype_int16’ } ^ mon_parse.y:1133:5: error: unknown type name ‘yytype_int16’ ^ mon_parse.y:1134:2: error: #endif without #if if ((guess_type == D_NUMBER) || (default_radix == e_decimal)) { ^ ~~~ mon_parse.y:1128:12: error: old-style parameter declarations in prototyped function definition { ^ mon_parse.y: At top level: mon_parse.y:1166:2: error: #else without #if start[4] = '\0'; ^ mon_parse.y: In function ‘resolve_range’: mon_parse.y:1169:5: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘char’ sa = strtol(start, NULL, 16); ^ mon_parse.y:1171:2: error: #endif without #if } ^ mon_parse.y:1164:12: error: old-style parameter declarations in prototyped function definition if (strlen(num) == 8) { ^~~~~~~~~~~~~ mon_parse.c: In function ‘yydestruct’: mon_parse.c:1705:10: error: ‘data’ undeclared (first use in this function) data->s_mark = newss + i; ^~~~ mon_parse.c:1705:10: note: each undeclared identifier is reported only once for each function it appears in mon_parse.c: At top level: mon_parse.c:1709:2: error: #else without #if return YYENOMEM; ^ mon_parse.c:1711:2: error: #endif without #if data->l_base = newvs; ^ ~~ mon_parse.c:1733:1: error: expected identifier or ‘(’ before ‘{’ token } ^ mon_parse.c:1699:1: warning: ‘yydestruct’ defined but not used [-Wunused-function] i = (int) (data->s_mark - data->s_base); ^ ~~~~~~ mon_parse.c:1660:12: warning: ‘yygrowstack’ defined but not used [-Wunused-function] sa = strtol(num, NULL, 8); ^~~~~~~~~~~ mon_parse.y:1164:12: warning: ‘resolve_range’ defined but not used [-Wunused-function] if (strlen(num) == 8) { ^~~~~~~~~~~~~ mon_parse.y:1140:12: warning: ‘resolve_datatype’ defined but not used [-Wunused-function] } ^ mon_parse.y:1128:12: warning: ‘yyerror’ defined but not used [-Wunused-function] { ^ mon_parse.c:1496:20: warning: ‘yystack’ defined but not used [-Wunused-variable] YYINT *s_mark; ^~ mon_parse.c:1147:26: warning: ‘yyrule’ defined but not used [-Wunused-const-variable=] "REG_IYL","PLUS","MINUS","STRING","FILENAME","R_O_L","OPCODE","LABEL", ^~~~~~ mon_parse.c:1107:26: warning: ‘yyname’ defined but not used [-Wunused-const-variable=] #define YYDEBUG 1 ^ mon_parse.c:870:20: warning: ‘yycheck’ defined but not used [-Wunused-const-variable=] 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, ^~~~~~~ mon_parse.c:641:20: warning: ‘yytable’ defined but not used [-Wunused-const-variable=] -17, 61, 306, 103, -44, 1550, 0, -10, 0, -311, ^~~~~~~ mon_parse.c:632:20: warning: ‘yygindex’ defined but not used [-Wunused-const-variable=] 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ^~~~~~~~ mon_parse.c:568:20: warning: ‘yyrindex’ defined but not used [-Wunused-const-variable=] 0, 0, 0, 0, 0, 0, 0, 173, -60, -51, ^~~~~~~~ mon_parse.c:504:20: warning: ‘yysindex’ defined but not used [-Wunused-const-variable=] 125, 273, 126, 160, 161, 153, 180, 181, 127, 93, ^~~~~~~~ mon_parse.c:496:20: warning: ‘yydgoto’ defined but not used [-Wunused-const-variable=] 143, 126, 86, 87, 154, 156, 62, 0, 0, 0, ^~~~~~~ mon_parse.c:432:20: warning: ‘yydefred’ defined but not used [-Wunused-const-variable=] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ^~~~~~~~ mon_parse.c:398:20: warning: ‘yylen’ defined but not used [-Wunused-const-variable=] 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, ^~~~~ mon_parse.c:364:20: warning: ‘yylhs’ defined but not used [-Wunused-const-variable=] #define CMD_CHECKPT_ON 413 ^~~~~ mon_parse.y:92:12: warning: ‘temp’ defined but not used [-Wunused-variable] static int temp; ^~~~ Makefile:606: recipe for target 'mon_parse.o' failed make[5]: *** [mon_parse.o] Error 1
not sure how you managed to get this error at install stage.... could you please give the exact configure line you used and the exact command(s) used to compile? also please attach configure.log. this really should work :)
It fails the same (with the required libXaw-devel package installed) for a generic make distclean, ./configure, and make. But, I generally use:
Egad, I should have dropped the source tree again before posting this. Is there a more preferable way to checkout source (without re-downloading it) than this?
svn checkout svn://svn.code.sf.net/p/vice-emu/code/trunk vice-emu
no, "checkout" pretty much means downloading with svn (there is no local copy of the repo like with eg git)
mmh that said, i cant even get past configure stage here , fails with
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
(using fedora 24 64bit from osboxes.org)
Did you try Subversion-reverting "mon_parse.y", first (maybe, only the working copy of that file was corrupt)?
I just compiled VICE on Fedora 24 with the same configure line except I changed --enable-shared-ffmpeg to --enable-static--ffmeg (shouldn't matter).
Works fine for me. I had to
dnf install gcc-c++
to get rid of the /lib/cpp message, apparently Fedora doesn't install g++ by default.Perhaps just remove the entire SVN copy (rm -rfd) and checkout again. Then just run each command (autogen, configure, make) separately. And if anything fails, post those errors here. Especially config.log would be of help.
Update: this should give us a lot of information:
./configure -v [your configure flags] 2>&1 | tee config2.log
make 2>&1 | tee make.log
And then just attach
config.log
,config2.log
andmake.log
to your message.Last edit: compyx 2016-09-08
I'm closing this bug as well, no response. And I managed to compile and run VICE just fine on the latest Fedora. As for the request to be able to enable/disable the monitor, I don't agree with the assertion that only a few people use it.