Last updated at 8:26 pm UTC on 30 March 1999
Before trying anything ambitious, I tried to build a vanilla
VM from the 2.3 sources.
There are a couple of gotcha's:
Here are some notes that describe small fix ups to the
sources in the 2.3 image.
Ryan Davis, Bob Arning and Duanne Maxwell helped explain what to do
to make a Mac VM, thanks very much.
Duanne's clear directions are below, or see Ryan's notes
I've put a copy of these notes on a page on the Swiki for
> >Has any one built a vanilla PPC VM on a Mac directly
> >from the 2.3 image sources, using Code Warrior3.2 or newer?
> >I just did that, in anticipation of some fiddling with the
> >VM, and found 3 small items (1 and 3 may be related).
> >1. There is a reference to a constant, 'kCurrentFragArch' which
> >doesn't seem to be in any of the header files.
> Change it to "kCompiledCFragArch"
> >2. There is an 'long' variable named 'junk' in the sound support
> >file, which the compiler thinks should be 'unsigned long'.
> Make the change:
> Delay(1, (unsigned long )&junk);
> >After making changes to the source support files with my fingers
> >for these two items, I get a useable VM to link, but then:
> >3. The named plugin mechanism seems to have trouble finding
> >the VM file itself as a plug in source.
> In the "Edit:SqueakPPC Settings...", select "Linker:PPC PEF" and set the
> Fragment Name to "SqueakVMPrims". This is the fragment name the external
> primitive mechanism wants for internalized named primitives.
> You may also need to make the PBxxxAsync calls get recognized in
> "sqMacAsyncFilePrims.c". The best way to do this is to insert the lines:
> #undef OLDROUTINELOCATIONS
> #define OLDROUTINELOCATIONS 1
> just before the inclusion of . This will have to be fixed in a
> bette way in the long run - I believe these particular calls are being
> Good luck!