Some of the initial errors have to do with the static declarations of logTable and expTable. Here is the output...
libtool: compile: clang -Wall -g -O2 -DNDEBUG -DDEBUGVM=0 -msse2 -DCOGMTVM=0 -pthread -DLSB_FIRST=1 -m64 -Wno-missing-braces -Wno-unknown-pragmas -Wno-unused-value -Wno-unused-label -Wno-unused-function -Wno-unused-variable -DHAVE_CONFIG_H -I/home/rabbit/vm-dev/opensmalltalk-vm/build.linux64x64/squeak.cog.spur/build -I/home/rabbit/vm-dev/opensmalltalk-vm/build.linux64x64/squeak.cog.spur/build -I/home/rabbit/vm-dev/opensmalltalk-vm/platforms/unix/vm -I/home/rabbit/vm-dev/opensmalltalk-vm/platforms/Cross/vm -I/home/rabbit/vm-dev/opensmalltalk-vm/spur64src/vm -I/usr/local/include -m64 -Wno-missing-braces -Wno-unknown-pragmas -Wno-unused-value -Wno-unused-label -Wno-unused-function -Wno-unused-variable -c /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c -fPIC -DPIC -o .libs/RSErasurePlugin.o /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:44:15: error: static declaration of 'exp' follows non-static declaration static usqInt exp(sqInt a); ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:95:17: note: previous declaration is here __MATHCALL_VEC (exp,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:48:15: error: static declaration of 'log' follows non-static declaration static usqInt log(sqInt a); ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:104:17: note: previous declaration is here __MATHCALL_VEC (log,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:166:29: error: redefinition of 'multiplicationTable' as different kind of symbol /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:50:26: note: previous definition is here static unsigned short ** multiplicationTable(void); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:166:66: error: expected '}' /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:166:63: note: to match this '{' /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:180:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:201:11: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] return signal(Exception, "Argument 'divisor' is 0"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:201:18: error: use of undeclared identifier 'Exception' return signal(Exception, "Argument 'divisor' is 0"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:221:1: error: static declaration of 'exp' follows non-static declaration exp(sqInt a) ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:95:17: note: previous declaration is here __MATHCALL_VEC (exp,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:241:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(base) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:270:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:299:1: error: static declaration of 'log' follows non-static declaration log(sqInt a) ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:104:17: note: previous declaration is here __MATHCALL_VEC (log,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:304:3: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:304:10: error: use of undeclared identifier 'RSErasureIllegalArgumentError' signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:307:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:320:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(value) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:328:9: warning: incompatible pointer types returning 'unsigned short **(void)' from a function with result type 'unsigned short **' [-Wincompatible-pointer-types] return multiplicationTable; ^~~~~~~~~~~~~~~~~~~ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:341:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:374:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:380:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:418:24: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] result = ((usqInt) (signal(Exception, "Argument 'divisor' is 0"))); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:418:31: error: use of undeclared identifier 'Exception' result = ((usqInt) (signal(Exception, "Argument 'divisor' is 0"))); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:434:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:455:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:496:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:506:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:550:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:560:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:590:3: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:590:10: error: use of undeclared identifier 'RSErasureIllegalArgumentError' signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:593:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:596:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:638:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:645:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:695:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ 24 warnings and 10 errors generated. make[1]: *** [Makefile:177: RSErasurePlugin.lo] Error 1 make: *** [Makefile:582: RSErasurePlugin.la] Error 2
-- --- Kindly, Robert
I managed to remove all errors. The mvm script generated .la and .lo files, in these locations:
rabbit@ganymede:~/vm-dev/opensmalltalk-vm/build.linux64x64/squeak.cog.spur/build/RSErasurePlugin/ rabbit@ganymede:~/vm-dev/opensmalltalk-vm/build.linux64x64/squeak.cog.spur/buil/RSFECPlugin/
Looking into /usr/local/lib/squeak/5.0-202010010729/ at my previously installed Squeak vm, the plugin files are .so (shared object). Where can I find the .so files for the 2 new plugins I generated? Thx!
--- Kindly, Robert
On 5/29/21 12:15 PM, Robert Withers wrote:
Some of the initial errors have to do with the static declarations of logTable and expTable. Here is the output...
libtool: compile: clang -Wall -g -O2 -DNDEBUG -DDEBUGVM=0 -msse2 -DCOGMTVM=0 -pthread -DLSB_FIRST=1 -m64 -Wno-missing-braces -Wno-unknown-pragmas -Wno-unused-value -Wno-unused-label -Wno-unused-function -Wno-unused-variable -DHAVE_CONFIG_H -I/home/rabbit/vm-dev/opensmalltalk-vm/build.linux64x64/squeak.cog.spur/build -I/home/rabbit/vm-dev/opensmalltalk-vm/build.linux64x64/squeak.cog.spur/build -I/home/rabbit/vm-dev/opensmalltalk-vm/platforms/unix/vm -I/home/rabbit/vm-dev/opensmalltalk-vm/platforms/Cross/vm -I/home/rabbit/vm-dev/opensmalltalk-vm/spur64src/vm -I/usr/local/include -m64 -Wno-missing-braces -Wno-unknown-pragmas -Wno-unused-value -Wno-unused-label -Wno-unused-function -Wno-unused-variable -c /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c -fPIC -DPIC -o .libs/RSErasurePlugin.o /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:44:15: error: static declaration of 'exp' follows non-static declaration static usqInt exp(sqInt a); ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:95:17: note: previous declaration is here __MATHCALL_VEC (exp,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:48:15: error: static declaration of 'log' follows non-static declaration static usqInt log(sqInt a); ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:104:17: note: previous declaration is here __MATHCALL_VEC (log,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:166:29: error: redefinition of 'multiplicationTable' as different kind of symbol /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:50:26: note: previous definition is here static unsigned short ** multiplicationTable(void); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:166:66: error: expected '}' /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:166:63: note: to match this '{' /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:180:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:201:11: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] return signal(Exception, "Argument 'divisor' is 0"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:201:18: error: use of undeclared identifier 'Exception' return signal(Exception, "Argument 'divisor' is 0"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:221:1: error: static declaration of 'exp' follows non-static declaration exp(sqInt a) ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:95:17: note: previous declaration is here __MATHCALL_VEC (exp,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:241:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(base) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:270:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:299:1: error: static declaration of 'log' follows non-static declaration log(sqInt a) ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:104:17: note: previous declaration is here __MATHCALL_VEC (log,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:304:3: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:304:10: error: use of undeclared identifier 'RSErasureIllegalArgumentError' signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:307:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:320:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(value) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:328:9: warning: incompatible pointer types returning 'unsigned short **(void)' from a function with result type 'unsigned short **' [-Wincompatible-pointer-types] return multiplicationTable; ^~~~~~~~~~~~~~~~~~~ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:341:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:374:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:380:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:418:24: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] result = ((usqInt) (signal(Exception, "Argument 'divisor' is 0"))); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:418:31: error: use of undeclared identifier 'Exception' result = ((usqInt) (signal(Exception, "Argument 'divisor' is 0"))); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:434:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:455:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:496:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:506:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:550:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:560:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:590:3: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:590:10: error: use of undeclared identifier 'RSErasureIllegalArgumentError' signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:593:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:596:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:638:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:645:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:695:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ 24 warnings and 10 errors generated. make[1]: *** [Makefile:177: RSErasurePlugin.lo] Error 1 make: *** [Makefile:582: RSErasurePlugin.la] Error 2
--
Kindly, Robert
.la and .lo is libtool stuff, I think they should be made into .so's somewhere down the make pipeline, but my memory is a bit hazy there…
On 29. May 2021, at 19:49, Robert Withers robert.withers@pm.me wrote:
I managed to remove all errors. The mvm script generated .la and .lo files, in these locations:
rabbit@ganymede:~/vm-dev/opensmalltalk-vm/build.linux64x64/squeak.cog.spur/build/RSErasurePlugin/ rabbit@ganymede:~/vm-dev/opensmalltalk-vm/build.linux64x64/squeak.cog.spur/buil/RSFECPlugin/
Looking into /usr/local/lib/squeak/5.0-202010010729/ at my previously installed Squeak vm, the plugin files are .so (shared object). Where can I find the .so files for the 2 new plugins I generated? Thx!
Kindly, Robert
On 5/29/21 12:15 PM, Robert Withers wrote:
Some of the initial errors have to do with the static declarations of logTable and expTable. Here is the output...
libtool: compile: clang -Wall -g -O2 -DNDEBUG -DDEBUGVM=0 -msse2 -DCOGMTVM=0 -pthread -DLSB_FIRST=1 -m64 -Wno-missing-braces -Wno-unknown-pragmas -Wno-unused-value -Wno-unused-label -Wno-unused-function -Wno-unused-variable -DHAVE_CONFIG_H -I/home/rabbit/vm-dev/opensmalltalk-vm/build.linux64x64/squeak.cog.spur/build -I/home/rabbit/vm-dev/opensmalltalk-vm/build.linux64x64/squeak.cog.spur/build -I/home/rabbit/vm-dev/opensmalltalk-vm/platforms/unix/vm -I/home/rabbit/vm-dev/opensmalltalk-vm/platforms/Cross/vm -I/home/rabbit/vm-dev/opensmalltalk-vm/spur64src/vm -I/usr/local/include -m64 -Wno-missing-braces -Wno-unknown-pragmas -Wno-unused-value -Wno-unused-label -Wno-unused-function -Wno-unused-variable -c /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c -fPIC -DPIC -o .libs/RSErasurePlugin.o /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:44:15: error: static declaration of 'exp' follows non-static declaration static usqInt exp(sqInt a); ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:95:17: note: previous declaration is here __MATHCALL_VEC (exp,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:48:15: error: static declaration of 'log' follows non-static declaration static usqInt log(sqInt a); ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:104:17: note: previous declaration is here __MATHCALL_VEC (log,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:166:29: error: redefinition of 'multiplicationTable' as different kind of symbol /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:50:26: note: previous definition is here static unsigned short ** multiplicationTable(void); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:166:66: error: expected '}' /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:166:63: note: to match this '{' /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:180:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:201:11: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] return signal(Exception, "Argument 'divisor' is 0"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:201:18: error: use of undeclared identifier 'Exception' return signal(Exception, "Argument 'divisor' is 0"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:221:1: error: static declaration of 'exp' follows non-static declaration exp(sqInt a) ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:95:17: note: previous declaration is here __MATHCALL_VEC (exp,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:241:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(base) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:270:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:299:1: error: static declaration of 'log' follows non-static declaration log(sqInt a) ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:104:17: note: previous declaration is here __MATHCALL_VEC (log,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:304:3: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:304:10: error: use of undeclared identifier 'RSErasureIllegalArgumentError' signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:307:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:320:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(value) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:328:9: warning: incompatible pointer types returning 'unsigned short **(void)' from a function with result type 'unsigned short **' [-Wincompatible-pointer-types] return multiplicationTable; ^~~~~~~~~~~~~~~~~~~ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:341:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:374:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:380:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:418:24: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] result = ((usqInt) (signal(Exception, "Argument 'divisor' is 0"))); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:418:31: error: use of undeclared identifier 'Exception' result = ((usqInt) (signal(Exception, "Argument 'divisor' is 0"))); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:434:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:455:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:496:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:506:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:550:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:560:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:590:3: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:590:10: error: use of undeclared identifier 'RSErasureIllegalArgumentError' signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:593:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:596:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:638:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:645:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:695:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ 24 warnings and 10 errors generated. make[1]: *** [Makefile:177: RSErasurePlugin.lo] Error 1 make: *** [Makefile:582: RSErasurePlugin.la] Error 2
--
Kindly, Robert
No worries! I found them in the .libs directory under each plugin directory. I am testing the plugins from inside squeak, now. There are errors: primitiveFailed for primLog:, for instance.
--- Kindly, Robert
On 5/29/21 2:08 PM, Tobias Pape wrote:
.la and .lo is libtool stuff, I think they should be made into .so's somewhere down the make pipeline, but my memory is a bit hazy there…
On 29. May 2021, at 19:49, Robert Withers robert.withers@pm.me wrote:
I managed to remove all errors. The mvm script generated .la and .lo files, in these locations:
rabbit@ganymede:~/vm-dev/opensmalltalk-vm/build.linux64x64/squeak.cog.spur/build/RSErasurePlugin/ rabbit@ganymede:~/vm-dev/opensmalltalk-vm/build.linux64x64/squeak.cog.spur/buil/RSFECPlugin/
Looking into /usr/local/lib/squeak/5.0-202010010729/ at my previously installed Squeak vm, the plugin files are .so (shared object). Where can I find the .so files for the 2 new plugins I generated? Thx!
Kindly, Robert
On 5/29/21 12:15 PM, Robert Withers wrote:
Some of the initial errors have to do with the static declarations of logTable and expTable. Here is the output...
libtool: compile: clang -Wall -g -O2 -DNDEBUG -DDEBUGVM=0 -msse2 -DCOGMTVM=0 -pthread -DLSB_FIRST=1 -m64 -Wno-missing-braces -Wno-unknown-pragmas -Wno-unused-value -Wno-unused-label -Wno-unused-function -Wno-unused-variable -DHAVE_CONFIG_H -I/home/rabbit/vm-dev/opensmalltalk-vm/build.linux64x64/squeak.cog.spur/build -I/home/rabbit/vm-dev/opensmalltalk-vm/build.linux64x64/squeak.cog.spur/build -I/home/rabbit/vm-dev/opensmalltalk-vm/platforms/unix/vm -I/home/rabbit/vm-dev/opensmalltalk-vm/platforms/Cross/vm -I/home/rabbit/vm-dev/opensmalltalk-vm/spur64src/vm -I/usr/local/include -m64 -Wno-missing-braces -Wno-unknown-pragmas -Wno-unused-value -Wno-unused-label -Wno-unused-function -Wno-unused-variable -c /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c -fPIC -DPIC -o .libs/RSErasurePlugin.o /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:44:15: error: static declaration of 'exp' follows non-static declaration static usqInt exp(sqInt a); ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:95:17: note: previous declaration is here __MATHCALL_VEC (exp,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:48:15: error: static declaration of 'log' follows non-static declaration static usqInt log(sqInt a); ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:104:17: note: previous declaration is here __MATHCALL_VEC (log,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:166:29: error: redefinition of 'multiplicationTable' as different kind of symbol /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:50:26: note: previous definition is here static unsigned short ** multiplicationTable(void); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:166:66: error: expected '}' /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:166:63: note: to match this '{' /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:180:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:201:11: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] return signal(Exception, "Argument 'divisor' is 0"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:201:18: error: use of undeclared identifier 'Exception' return signal(Exception, "Argument 'divisor' is 0"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:221:1: error: static declaration of 'exp' follows non-static declaration exp(sqInt a) ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:95:17: note: previous declaration is here __MATHCALL_VEC (exp,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:241:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(base) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:270:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:299:1: error: static declaration of 'log' follows non-static declaration log(sqInt a) ^ /usr/include/x86_64-linux-gnu/bits/mathcalls.h:104:17: note: previous declaration is here __MATHCALL_VEC (log,, (_Mdouble_ __x)); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:304:3: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:304:10: error: use of undeclared identifier 'RSErasureIllegalArgumentError' signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:307:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:320:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(value) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:328:9: warning: incompatible pointer types returning 'unsigned short **(void)' from a function with result type 'unsigned short **' [-Wincompatible-pointer-types] return multiplicationTable; ^~~~~~~~~~~~~~~~~~~ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:341:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:374:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:380:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:418:24: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] result = ((usqInt) (signal(Exception, "Argument 'divisor' is 0"))); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:418:31: error: use of undeclared identifier 'Exception' result = ((usqInt) (signal(Exception, "Argument 'divisor' is 0"))); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:434:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:455:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:496:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:506:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:550:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:560:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:590:3: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration] signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:590:10: error: use of undeclared identifier 'RSErasureIllegalArgumentError' signal(RSErasureIllegalArgumentError, "zero argument"); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:593:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:596:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:638:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:645:2: warning: implicit declaration of function 'popthenPushInteger' is invalid in C99 [-Wimplicit-function-declaration] popthenPushInteger(2, result); ^ /home/rabbit/vm-dev/opensmalltalk-vm/src/plugins/RSErasurePlugin/RSErasurePlugin.c:695:5: warning: implicit declaration of function 'twosComplement' is invalid in C99 [-Wimplicit-function-declaration] ? twosComplement(a) ^ 24 warnings and 10 errors generated. make[1]: *** [Makefile:177: RSErasurePlugin.lo] Error 1 make: *** [Makefile:582: RSErasurePlugin.la] Error 2
--
Kindly, Robert
vm-dev@lists.squeakfoundation.org