I thought I'd try my hand at compiling a MinGW pike. I installed nilsson's MinGW package as well as Pike 7.6.24 and had my paths alll set up properly.
I had to run bison manually, as the MinGW package i'm using didn't have it, so I modified the makefile to skip over that bit. I also had problems configuring in SQLite, as there are missing source files apparently.
The big show stopper right now is sprintf.c:
In file included from C:/Program Files/MinGW/Pike/7.7/src/opcodes.h:192, from C:/Program Files/MinGW/Pike/7.7/src/modules/sprintf/sprintf.c:296: C:/Program Files/MinGW/Pike/7.7/src/global.h:84: error: syntax error before "struct" C:/Program Files/MinGW/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../include/stdio.h:171: error: 'FILE' redeclared as different kind of symbol C:/Program Files/MinGW/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../include/stdio.h:161: error: previous declaration of 'FILE' was here C:/Program Files/MinGW/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../include/stdio.h:176: error: syntax error before "_iob" C:/Program Files/MinGW/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../include/stdio.h:176: warning: type defaults to `int' in declaration of `_iob' C:/Program Files/MinGW/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../include/stdio.h:176: error: conflicting types for '_iob' C:/Program Files/MinGW/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../include/stdio.h:176: error: previous declaration of '_iob' was here C:/Program Files/MinGW/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../include/stdio.h:176: error: conflicting types for '_iob' C:/Program Files/MinGW/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../include/stdio.h:176: error: previous declaration of '_iob' was here C:/Program Files/MinGW/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../include/stdio.h:176: warning: data definition has no type or storage class
and so on for several thousand lines. Has anyone seen this problem?
Bill
I can only contribute the observation that the "struct" in global.h is the very first token to be compiled in sprintf.c. Before it there are only comments, #if's, #ifdef's, #endif's and #define's which shouldn't produce a token. So it's odd that the compiler complains about a parse error before the first token. Maybe the output from the cpp pass could provide a clue.
pike-devel@lists.lysator.liu.se