[Vm-dev] Building a 64-bit VM for FreeBSD

Frank Shearar frank.shearar at angband.za.org
Wed Feb 4 09:31:12 UTC 2009


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



More information about the Vm-dev mailing list