Thanks for the hint.
I just tried to rebuild v10.4.6 (using gcc 4.7.2 from
The first one was:
$ make -f makefile_mingw_utf8Quote
gcc -Wall -pedantic -Wno-uninitialized -Wno-long-long -c -O1 -g -DSUPPORT_UTF8 -DWIN_32 newlisp.c
gcc -Wall -pedantic -Wno-uninitialized -Wno-long-long -c -O1 -g -DSUPPORT_UTF8 -DWIN_32 nl-symbol.c
gcc -Wall -pedantic -Wno-uninitialized -Wno-long-long -c -O1 -g -DSUPPORT_UTF8 -DWIN_32 nl-math.c
nl-math.c:64:5: warning: '_matherr' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
gcc -Wall -pedantic -Wno-uninitialized -Wno-long-long -c -O1 -g -DSUPPORT_UTF8 -DWIN_32 nl-list.c
gcc -Wall -pedantic -Wno-uninitialized -Wno-long-long -c -O1 -g -DSUPPORT_UTF8 -DWIN_32 nl-liststr.c
gcc -Wall -pedantic -Wno-uninitialized -Wno-long-long -c -O1 -g -DSUPPORT_UTF8 -DWIN_32 nl-string.c
gcc -Wall -pedantic -Wno-uninitialized -Wno-long-long -c -O1 -g -DSUPPORT_UTF8 -DWIN_32 nl-filesys.c
gcc -Wall -pedantic -Wno-uninitialized -Wno-long-long -c -O1 -g -DSUPPORT_UTF8 -DWIN_32 nl-sock.c
gcc -Wall -pedantic -Wno-uninitialized -Wno-long-long -c -O1 -g -DSUPPORT_UTF8 -DWIN_32 nl-import.c
gcc -Wall -pedantic -Wno-uninitialized -Wno-long-long -c -O1 -g -DSUPPORT_UTF8 -DWIN_32 nl-xml.c
gcc -Wall -pedantic -Wno-uninitialized -Wno-long-long -c -O1 -g -DSUPPORT_UTF8 -DWIN_32 nl-web.c
nl-web.c:1430:7: error: conflicting types for 'MEDIA_TYPE'
In file included from c:mingwbin../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/include/winscard.h:11:
0,
from c:mingwbin../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/include/windows.h:97,
from c:mingwbin../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/include/winsock2.h:23,
from nl-web.c:25:
c:mingwbin../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/include/winioctl.h:493:3: note: previous dec
laration of 'MEDIA_TYPE' was here
make: *** [nl-web.o] Error 1
So I applied this fix in nl-web.c in line 1426
Code Select
typedef struct
{
char * extension;
char * type;
} T_MEDIA_TYPE;
T_MEDIA_TYPE mediaType[] = {
And the second error was:
$ make -f makefile_mingw_utf8Quote
gcc -Wall -pedantic -Wno-uninitialized -Wno-long-long -c -O1 -g -DSUPPORT_UTF8 -DWIN_32 nl-math.c
nl-math.c:64:5: warning: '_matherr' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
gcc newlisp.o nl-symbol.o nl-math.o nl-list.o nl-liststr.o nl-string.o nl-filesys.o nl-sock.o nl-import.o nl-xml.o nl-w
eb.o nl-matrix.o nl-debug.o pcre.o nl-utf8.o win32-util.o win32-path.o -lws2_32 -o newlisp.exe
c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-m
err.o):merr.c:(.text+0x60): multiple definition of `_matherr'
nl-math.o:c:UsersCSL-NB-064Desktopnewlisp-10.4.6/nl-math.c:64: first defined here
collect2.exe: error: ld returned 1 exit status
Edited nl-math.c line 63 like this:
Code Select
//#ifdef WIN_32
//int _matherr(struct _exception *e) {return 1;}
//#endif
After those 2 fixes, newlisp would compile, but behaved erroneously like this:
Quote
$ newlisp
newLISP v.10.4.6 on Win32 IPv4/6 UTF-8, execute 'newlisp -h' for options.
> (+ 10 20 30)
ERR: missing parenthesis : "...(+ 10 20 30 "
> (exit)
ERR: missing parenthesis : "...(exit "
Err... I give up. Better wait for your next release :D