Hi everyone,
I'm trying to wrap my head around how to use VMMaker to generate source for a VM.
I took a stock 3.9 (Squeak3.9-final-7067, to be precise) image on my Windows machine, installed VMMaker from SqueakMaps, and fired up the VMMakerTool. I checked out http://squeakvm.org/svn/squeak/trunk/platforms into a src directory, and pointed VMMakerTool at it. I told it "build all plugins internally" (because I want to Make It Work first).
That generated some files. (In the unix subdirectory: interp.c, interp.h, sqNamedPrims.h. In unix/vm/intplugins/Foo/, a Foo.c, where Foo is each of the plugin names.)
Then:
cd ~/temp mkdir src cd src svn co http://squeakvm.org/svn/squeak/trunk/platforms
I copied the various produced files on my Windows manually over to the new repository. Then:
mkdir bld cd bld ../platforms/unix/config/configure make
and everything started compiling. Everything went fine, until we started compiling sqUnixSecurity.c, when I got this:
gcc -g -O2 -DLSB_FIRST=1 -DHAVE_CONFIG_H -DSQUEAK_BUILTIN_PLUGIN -I/usr/h ome/frank/temp/src/bld -I/usr/home/frank/temp/src/platforms/unix/vm -I/usr/h ome/frank/temp/src/platforms/Cross/vm -I/usr/home/frank/temp/src/platforms/u nix/src/vm -I/usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin -c -o sqUnixSecurity.o /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c In file included from /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:16: /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:4: error: conflicting types for 'ioDisableImageWrite' /usr/home/frank/temp/src/platforms/Cross/vm/sq.h:345: error: previous declaration of 'ioDisableImageWrite' was here /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:5: error: conflicting types for 'ioCanWriteImage' /usr/home/frank/temp/src/platforms/Cross/vm/sq.h:344: error: previous declaration of 'ioCanWriteImage' was here /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:28: error: conflicting types for 'ioCanRenameImage' /usr/home/frank/temp/src/platforms/Cross/vm/sq.h:343: error: previous declaration of 'ioCanRenameImage' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:67: error: conflicting types for 'ioCanCreatePathOfSize' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:20: error: previous declaration of 'ioCanCreatePathOfSize' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:74: error: conflicting types for 'ioCanListPathOfSize' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:24: error: previous declaration of 'ioCanListPathOfSize' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:81: error: conflicting types for 'ioCanDeletePathOfSize' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:22: error: previous declaration of 'ioCanDeletePathOfSize' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:91: error: conflicting types for 'ioCanOpenFileOfSizeWritable' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:26: error: previous declaration of 'ioCanOpenFileOfSizeWritable' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:98: error: conflicting types for 'ioCanOpenAsyncFileOfSizeWritable' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:25: error: previous declaration of 'ioCanOpenAsyncFileOfSizeWritable' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:104: error: conflicting types for 'ioCanDeleteFileOfSize' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:21: error: previous declaration of 'ioCanDeleteFileOfSize' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:110: error: conflicting types for 'ioCanRenameFileOfSize' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:27: error: previous declaration of 'ioCanRenameFileOfSize' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:117: error: conflicting types for 'ioCanGetFileTypeOfSize' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:23: error: previous declaration of 'ioCanGetFileTypeOfSize' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:123: error: conflicting types for 'ioCanSetFileTypeOfSize' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:29: error: previous declaration of 'ioCanSetFileTypeOfSize' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:132: error: conflicting types for 'ioDisableFileAccess' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:30: error: previous declaration of 'ioDisableFileAccess' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:139: error: conflicting types for 'ioHasFileAccess' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:31: error: previous declaration of 'ioHasFileAccess' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:174: error: conflicting types for 'ioCanCreateSocketOfType' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:16: error: previous declaration of 'ioCanCreateSocketOfType' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:180: error: conflicting types for 'ioCanConnectToPort' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:17: error: previous declaration of 'ioCanConnectToPort' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:186: error: conflicting types for 'ioCanListenOnPort' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:13: error: previous declaration of 'ioCanListenOnPort' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:192: error: conflicting types for 'ioDisableSocketAccess' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:18: error: previous declaration of 'ioDisableSocketAccess' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:199: error: conflicting types for 'ioHasSocketAccess' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:19: error: previous declaration of 'ioHasSocketAccess' was here /usr/home/frank/temp/src/platforms/unix/plugins/SecurityPlugin/sqUnixSecurit y.c:224: error: conflicting types for 'ioInitSecurity' /usr/home/frank/temp/src/platforms/Cross/plugins/SecurityPlugin/SecurityPlug in.h:12: error: previous declaration of 'ioInitSecurity' was here *** Error code 1
Stop in /usr/home/frank/temp/src/bld/SecurityPlugin. *** Error code 1
Stop in /usr/home/frank/temp/src/bld.
I'm running gcc (GCC) 4.2.1 20070719 [FreeBSD].
How have I messed up, and do I need to give any further info?
frank