* using the 3.9g-7061 image, and my 3.8b4 VM * using squeakmap, installed VMMaker 3.8b6 -- received an error message "This package depends on the following classes: FFIContants" -- You must resolve these dependencies before you will be able to load these definitions: pretty much all of the FFI plugin. -- I clicked proceed, will deal with this later when things break because of this issue. * removed the "bad" Win32VMMaker and installed the "good" one from the SVN code. * pulled the corresponding Rev 1444 code from SVN for platforms/Cross and platforms/win32 * setup paths, and selected interna vs. external plugins in VMMaker * generated code * attempted build -- failed (note a later discovery indicated/proved that this was not the correct solution). no plugins.int or plugins.ext found. + copied the ones from my 3.8b4 build * attempted build -- failed no sq.h found. + copied all files from platforms/Cross/vm to platforms/win32/vm (as all turned out to be missing) * attempted build -- failed In file included from vm\sq.h:19, from ./vm/sqNamedPrims.c:14: vm\sqMemoryAccess.h:22: interp.h: No such file or directory vm\sqMemoryAccess.h:59: #error long long integers are not 64-bits wide? + commented out all of "#if defined(HAVE_INTERP_H) except for the 32bit VM define on line 24. * attempted build -- failed ./vm/sqWin32PluginSupport.c:4: ..\plugins\FilePlugin\FilePlugin.h: No such file or directory + copied FilePlugin.h from platforms/Cross/plugins/FilePlugin to platforms/win32/plugins/FilePlugin * attempted build -- failed make: *** No rule to make target `interp.c', needed by `gnu-interp.c'. Stop. + *YIKES* -- after some digging around, I copied the generated interp.c and interp.h into the platforms/win32 directory * attempted build -- failed make: *** plugins/ADPCMCodecPlugin: No such file or directory. Stop. make: *** [ADPCMCodecPlugin.lib] Error 2 + *YIKES* -- rather than remove and regen, I grabbed the one from 3.8b4 vm build. * attempted build -- failed previous error above repeated; + I did a compare of the 3.8b4 and 1444 plugins directory, and copied all missing plugins over. + { BitBlt, BMPReadWriter, DSA, FFT, FloatArray, Genie, JPEGReader, Klatt, LargeIntegers, Matrix2x3, MiscPrimitive, Squeak3d, StarSqueak, Zip } * attempted build -- failed sqWin32AsyncFilePrims.c:50: AsynchFilePlugin.h: No such file or directory make[1]: *** [sqWin32AsyncFilePrims.o] Error 1 + copied from platforms/Cross/plugins/AsynchFilePlugin * attempted build -- failed sqWin32D3D.c:30: ..\SurfacePlugin\SurfacePlugin.h: No such file or directory sqWin32D3D.c:31: B3DAcceleratorPlugin.h: No such file or directory make[1]: *** [sqWin32D3D.o] Error 1 make[1]: Leaving directory `C:/home/squeak/squeak-3.9/build/platforms/win32/plugins/B3DAcceleratorPlugin' make: *** [B3DAcceleratorPlugin.lib] Error 2 + copied files from platforms/Cross/plugins; note that several files appeared to missing from B3DAccelerator { B3DAcceleratorPlugin.h, sqOpenGLRenderer.c, sqOpenGLRenderer.h } -- all files copied over. * attempted build -- failed several more missing plugins found, { Squeak3d, B2D, RePlugin, SoundCodePrims, SoundGeneration } + copied from platforms/Cross/plugins. (note, these were present in 1444 Cross, but not 1444 win32) * attempted build -- failed LargeIntegers.c:1130: redefinition of `flag' LargeIntegers.c:70: `flag' previously defined here make[1]: *** [LargeIntegers.o] Error 1 + root cause of this was in vm/sqMemoryAccess.h -- a different defintion of flag, that had a "this doesn't belong here ..." remark. So I commented it out, deleted the contents of win32/release and did a rebuild. * attempted build -- failed sqWin32NewNet.c:24: SocketPlugin.h: No such file or directory make[1]: *** [sqWin32NewNet.o] Error 1 make[1]: Leaving directory `C:/home/squeak/squeak-3.9/build/platforms/win32/plugins/SocketPlugin' make: *** [SocketPlugin.lib] Error 2 + copied from platforms/Cross/plugins/SocketPlugin to platforms/win32/plugins/SocketPlugin * attempted build -- failed sqWin32Sound.c:18: SoundPlugin.h: No such file or directory make[1]: *** [sqWin32Sound.o] Error 1 make[1]: Leaving directory `C:/home/squeak/squeak-3.9/build/platforms/win32/plugins/SoundPlugin' make: *** [SoundPlugin.lib] Error 2 + copied from platforms/Cross/plugins/SoundPlugin to platforms/win32/plugins/SoundPlugin * attempted build -- failed ./release/sqNamedPrims.o: In function `findLoadedModule': //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:48: undefined reference to `AsynchFilePlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:48: undefined reference to `B3DAcceleratorPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:48: undefined reference to `Squeak3D_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:49: undefined reference to `DropPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:51: undefined reference to `FilePlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:54: undefined reference to `Mpeg3Plugin_exports' ./release/sqNamedPrims.o: In function `addToModuleList': //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:58: undefined reference to `RePlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:58: undefined reference to `SecurityPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:58: undefined reference to `SerialPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:58: undefined reference to `SocketPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:58: undefined reference to `SoundCodecPrims_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:61: undefined reference to `SoundGenerationPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:61: undefined reference to `SoundPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:61: undefined reference to `UUIDPlugin_exports' ./release/sqWin32Exports.o(.data+0x8)://C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqWin32Exports.c: undefined reference to `win32JoystickDebugInfo' ./release/sqWin32Exports.o(.data+0x14)://C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqWin32Exports.c: undefined reference to `win32JoystickDebugPrintRawValues' ./release/sqWin32Exports.o(.data+0x20)://C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqWin32Exports.c: undefined reference to `win32JoystickDebugPrintAlternativeValues' ./release/sqWin32PluginSupport.o: In function `primitivePluginRequestFileHandle': //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqWin32PluginSupport.c:252: undefined reference to `fileRecordSize' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqWin32PluginSupport.c:254: undefined reference to `fileValueOf' ./release/gnu-interp.o: In function `addressOfstartingAtsize': //C/home/squeak/squeak-3.9/build/platforms/win32/gnu-interp.c:2191: undefined reference to `flag' ./release/gnu-interp.o: In function `byteSizeOf': //C/home/squeak/squeak-3.9/build/platforms/win32/gnu-interp.c:2876: undefined reference to `flag' ./release/gnu-interp.o: In function `byteSwapByteObjectsFromto': //C/home/squeak/squeak-3.9/build/platforms/win32/gnu-interp.c:2946: undefined reference to `flag' ./release/gnu-interp.o: In function `copyObjtoSegmentaddrstopAtsaveOopAtheaderAt': //C/home/squeak/squeak-3.9/build/platforms/win32/gnu-interp.c:3868: undefined reference to `flag' //C/home/squeak/squeak-3.9/build/platforms/win32/gnu-interp.c:3889: undefined reference to `flag' ./release/gnu-interp.o://C/home/squeak/squeak-3.9/build/platforms/win32/gnu-interp.c:3950: more undefined references to `flag' follow ./release/DropPlugin.lib(sqWin32Drop.o.b): In function `dropRequestFileHandle': //C/home/squeak/squeak-3.9/build/platforms/win32/plugins/DropPlugin/sqWin32Drop.c:739: undefined reference to `fileRecordSize' //C/home/squeak/squeak-3.9/build/platforms/win32/plugins/DropPlugin/sqWin32Drop.c:742: undefined reference to `fileValueOf' make: *** [Croquet.exe] Error 1 + went back and added croquet to my list of plugins -- why is this trying to build croquet? upon examination, files in platforms/Cross/plugins/CroquetPlugin were not in the equivalent win32 directory, so I copied them over + removed flag from LargeIntegers.c and un-commented it in sqMemoryAccess.h. Cleaned out platforms/win32/release, rebuilt + rebuild removed all errors related to flag. + moved all plugins to internal, and rebuilt * attempted build -- failed sqWin32MIDI.c:20: MIDIPlugin.h: No such file or directory make[1]: *** [sqWin32MIDI.o] Error 1 make[1]: Leaving directory `C:/home/squeak/squeak-3.9/build/platforms/win32/plugins/MIDIPlugin' make: *** [MIDIPlugin.lib] Error 2 + copied MIDIPlugin.h from platforms/Cross/plugins/MIDIPlugin to platforms/win32/plugins/MIDIPlugin. * attempted build -- failed ./release/sqNamedPrims.o: In function `findLoadedModule': //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:48: undefined reference to `AsynchFilePlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:48: undefined reference to `B3DAcceleratorPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:48: undefined reference to `Squeak3D_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:49: undefined reference to `DropPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:51: undefined reference to `FilePlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:54: undefined reference to `Mpeg3Plugin_exports' ./release/sqNamedPrims.o: In function `addToModuleList': //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:58: undefined reference to `RePlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:58: undefined reference to `SecurityPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:58: undefined reference to `SerialPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:58: undefined reference to `SocketPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:58: undefined reference to `SoundCodecPrims_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:61: undefined reference to `SoundGenerationPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:61: undefined reference to `SoundPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:61: undefined reference to `UUIDPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:61: undefined reference to `JoystickTabletPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:61: undefined reference to `MIDIPlugin_exports' ./release/sqWin32PluginSupport.o: In function `primitivePluginRequestFileHandle': //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqWin32PluginSupport.c:252: undefined reference to `fileRecordSize' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqWin32PluginSupport.c:254: undefined reference to `fileValueOf' ./release/DropPlugin.lib(sqWin32Drop.o.b): In function `dropRequestFileHandle': //C/home/squeak/squeak-3.9/build/platforms/win32/plugins/DropPlugin/sqWin32Drop.c:739: undefined reference to `fileRecordSize' //C/home/squeak/squeak-3.9/build/platforms/win32/plugins/DropPlugin/sqWin32Drop.c:742: undefined reference to `fileValueOf' make: *** [Croquet.exe] Error 1 + after some digging around, I discovered that the FilePlugin.c file that was being generated had not been copied over to the plugins directory ... so I manualy moved it, and that removed the "fileRecordSize" and "fileValueOf" problems. * attempted build -- failed ./release/sqNamedPrims.o: In function `findLoadedModule': //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:48: undefined reference to `AsynchFilePlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:48: undefined reference to `B3DAcceleratorPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:48: undefined reference to `Squeak3D_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:49: undefined reference to `DropPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:54: undefined reference to `Mpeg3Plugin_exports' ./release/sqNamedPrims.o: In function `addToModuleList': //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:58: undefined reference to `RePlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:58: undefined reference to `SecurityPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:58: undefined reference to `SerialPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:58: undefined reference to `SocketPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:58: undefined reference to `SoundCodecPrims_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:61: undefined reference to `SoundGenerationPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:61: undefined reference to `SoundPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:61: undefined reference to `UUIDPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:61: undefined reference to `JoystickTabletPlugin_exports' //C/home/squeak/squeak-3.9/build/platforms/win32/./vm/sqNamedPrims.c:61: undefined reference to `MIDIPlugin_exports' + after some consideration, I noticed a slight difference in the "*_exports" problem -- FilePlugin_exports had been resolved by the last fix ("fileRecordSize" and "fileValueOf") so I just copied the contents of build/src for all plugins into the plugins directory * attempted build -- failed. This was actually a number of builds resulting in a number of new "file not found" problems, all of which I resolved by copying missing files from the platforms/Cross file tree. A cleanout of release and a few rebuilds. I am guessing this was caused by my paths in VMMaker. path to platforms code --> C:\home\squeak\squeak-3.9\build\platforms path to generated sources --> C:\home\squeak\squeak-3.9\build\platforms\win32\build\src Actually, I would hazard a more precise guess that the problem is the latter. As an aside I also found at this time the generated plugins.int and plugins.ext files ... so my first fix above is obviously wrong. * attempted build -- succeeded -- but I ended up with a croquet.exe, not a squeak.exe.