[Vm-dev] StackVM builds for RaspberryPi
Casey Ransberger
casey.obrien.r at gmail.com
Thu Jul 18 19:49:15 UTC 2013
Okay! I finally found a scrap of time in the next couple of days to try this. I thought I saw a commit roll by about the faster BitBlt getting incorporated into the Cog sources; is that going to change/eliminate any of the steps below?
On Jul 5, 2013, at 8:52 PM, tim Rowledge <tim at rowledge.org> wrote:
>
>
> On 05-07-2013, at 6:00 PM, Casey Ransberger <casey.obrien.r at gmail.com> wrote:
>
>> I'd like to give it a shot.
>>
>
> OK; try this -
>
> • Get source tree from SVN - StackVM MC repositories & package loading
> • Create new generated sources - the svn copy is Cog stuff -
> • Load VMMaker
> • Build new stack sources
> • configure the build stuff
> • remove some cruft that ought to never get into the files
> • from unixbuild/bld/plugins.int
> • IA32ABI (which didn't get vmm-made anyway)
> • CroquetPlugin
> • from unixbuild/bld/plugins.ext
> • B3DAcceleratorPlugin
> • BochsIA32Plugin
> • SqueakSSL
> • from unixbuild/bld/Makefile
> • CroquetPlugin
> • IA32ABI
> • BochsIA32Plugin
> • SqueakSSL
> • check vm/Makefile (derived from platforms/unix/vm/Makefile.in ?) has sqUnixHeartbeat$o in the IOBJS list
> • make will then re-config some stuff because of those changes,
> • so make *again*
>
> Load VMMaker
> =========
> For Stack/Cog use VMMaker.oscog, not vmmaker-oscog.
> Load 'http://source.squeak.org/FFI' - FFI-Pools first
> Load 'http://www.squeaksource.com/Speech' - SharedPool-Speech next
> Load 'http://source.squeak.org/VMMaker' - VMMaker.oscog next
> also need Balloon-Engine-Pools from vmmaker
>
> Build new stack sources
> ===============
> Use a src dir with different name to avoid overwriting Cog pre-built stuff. Say 'pi-stack-src' as shown here.
>
> Note that during a first run it will probably complain about a dNU because Byte3ShiftNegated is nil - this seems to be some obscure issue in initialising values in ObjectMemory>byteSwapped: but that gets fixed simply by finding VMMaker>generateInterpreterFile in the stack, doing a restart and proceed. Really odd bug.
>
> VMMaker
> generate: StackInterpreter
> to: (FileDirectory default directoryNamed: 'pi-stack-src') fullName
> platformDir: (FileDirectory default directoryNamed: 'platforms') fullName
> excluding: #(BrokenPlugin CroquetPlugin IA32ABIPlugin ImmX11Plugin InternetConfigPlugin MacMenubarPlugin NewsqueakIA32ABIPlugin QuicktimePlugin TestOSAPlugin ThreadedARMFFIPlugin ThreadedFFIPlugin ThreadedIA32FFIPlugin ThreadedPPCBEFFIPlugin VMProfileMacSupportPlugin)
>
>
> configure the build stuff
> ================
> cd into unixbuild/bld (etc)
> Note use of --with-src= to set directory where source was generated (StackVM source generation)
>
> config for debug -
> ../../platforms//unix/config/configure --without-npsqueak --with-x --with-src=pi-stack-src --disable-cogit CFLAGS="-g3 -O0-DUSE_GLOBAL_STRUCT -DUSE_GLOBAL_STRUCT_REG="r6" -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DSTACKVM=1 -DDEBUGVM=1" Libs=-lpthread
>
> config for non-debug
> ../../platforms//unix/config/configure --without-npsqueak --with-x --with-src=pi-stack-src --disable-cogit CFLAGS="-g3 -O3 -DUSE_GLOBAL_STRUCT=1 -DUSE_GLOBAL_STRUCT_REG="r6" -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DSTACKVM=1 -DDEBUGVM=0" Libs=-lpthread
>
> ie.
> no browser plugin --without-npsqueak
> with x11 dispaly stuff --with-x
> use src from foo --with-src=foo
> don't build cog, just stack --disable-cogit
> Libs=-lpthread - thread stuff
> set c flags to insane nonsense -
> g3 - debug level information
> -O3 - optimiser; use O0 for a debug vm, some files are carefully set to other value due to gcc bugs
> -DUSE_GLOBAL_STRUCT=1 - use the big globals array
> -DUSE_GLOBAL_STRUC_REG="r6" - set up global register to point to array; r6 for Pi is only good one
> -D_GNU_SOURCE
> -D_FILE_OFFSET_BITS=64 - for file ptr sizeof
> -DNDEBUG - no debug
> -DITIMER_HEARTBEAT=1 - use the interval timer heartbeat for process checking
> -DNO_VM_PROFILE=1 - don't include profiling code
> -DSTACKVM=1 - enable stack vm
> -DDEBUGVM=0 - don't do debug vm
>
>
>
>
> tim
> --
> tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
> Fractured Idiom:- RIGOR MORRIS - The cat is dead
>
>
More information about the Vm-dev
mailing list