[Vm-dev] [commit][3044] add ARM build tree skeleton

commits at squeakvm.org commits at squeakvm.org
Wed Jul 16 22:58:05 UTC 2014


Revision: 3044
Author:   rowledge
Date:     2014-07-16 15:58:01 -0700 (Wed, 16 Jul 2014)
Log Message:
-----------
add ARM build tree skeleton

Added Paths:
-----------
    branches/Cog/build.linux32ARMv6/
    branches/Cog/build.linux32ARMv6/HowToBuild
    branches/Cog/build.linux32ARMv6/makeall
    branches/Cog/build.linux32ARMv6/makeproduct
    branches/Cog/build.linux32ARMv6/mkNamedPrims.sh
    branches/Cog/build.linux32ARMv6/squeak.stack.v3/
    branches/Cog/build.linux32ARMv6/squeak.stack.v3/build/
    branches/Cog/build.linux32ARMv6/squeak.stack.v3/build/mvm
    branches/Cog/build.linux32ARMv6/squeak.stack.v3/build/plugins.ext
    branches/Cog/build.linux32ARMv6/squeak.stack.v3/build/plugins.int
    branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.assert/
    branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.assert/mvm
    branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.assert/plugins.ext
    branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.assert/plugins.int
    branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.debug/
    branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.debug/mvm
    branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.debug/plugins.ext
    branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.debug/plugins.int
    branches/Cog/build.linux32ARMv6/squeak.stack.v3/makeallclean
    branches/Cog/build.linux32ARMv6/squeak.stack.v3/makealldirty

Added: branches/Cog/build.linux32ARMv6/HowToBuild
===================================================================
--- branches/Cog/build.linux32ARMv6/HowToBuild	                        (rev 0)
+++ branches/Cog/build.linux32ARMv6/HowToBuild	2014-07-16 22:58:01 UTC (rev 3044)
@@ -0,0 +1,218 @@
+How To Build On Linux
+---------------------
+
+
+Contents:
+	- Overview
+	- Checking out sources to build out-of-the-box
+	- Building out of the box
+	- Building the Bochs Support Libraries
+	- Compiling in 32-bit mode on a 64-bit linux
+	- How to configure and build a VM on Unix
+	- Testing an external plugin has completely linked
+	- Optimization level and gcc version (please read!)
+
+
+Overview
+--------
+The "Cog" VM comes in a bewildering variety of forms.  The first distinction
+is between Squeak/Croquet VMs that run Squeak, Pharo, Cuis, Croquet images
+and their ilk, and between Newspeak VMs that run Newspeak.
+
+Another distinction is between Stack, Cog and Sista VMs.  Stack VMs are those
+with context-to-stack mapping that optimise message sending by keeping method
+activations on a stack instead of in contexts.  These are pure interpreters but
+significantly faster than the standard context-based Interpreter VM.  Cog VMs
+add a JIT to the mix, compiling methods used more than once to maxchine code on
+the fly.  Sista VMs, as yet unrealised and in development, add support for
+adaptive optimization that does speculative inlining at the bytecode-to-bytecode
+level.  These are targeted for release in 2015.
+
+Another distinction is between "v3" VMs and Spur VMs.  "v3" is the original
+object representation for Squeak as described in the back-to-the-future paper.
+Spur, as described on the www.mirandabanda.org blog, is a faster object
+representation which uses generation scavenging, lazy forwarding for fast
+become, and a single object header format common to 32 and 64 bit versions.
+
+Another distinction is between normal single-threaded VMs that schedule "green"
+Smalltalk processes above a single-threaded VM, and "multi-threaded" VMs that
+share the VM between any number of native threads such that only one native
+thread owns the VM at any one time, switching between threads on FFI calls and
+callbacks or on Smalltalk process switches when Smalltalk processes are owned
+by threads.  This multi-threaded support is as yet experimental.
+
+A distinction on linux is between VMs with an itimer hearbeat or a threaded
+heartbeat.  VMs with an itimer hearbeat  use setitimer to deliver a SIGALRM
+signal at regular intervals to interrupt the VM to check for events.  These
+signals can be troublesome, interrupting foreign code that cannot cope with
+such signals.  VMs with a threaded heartbeat use a high-priority thread that
+loops, blocking on nanosleep and then interrupting the VM, performing the same
+function as the itimer heartbeat but without using signals.  These VMs are to
+be preferred but suport for multiple thread priorities in user-level processes
+has only been available on linux in kernels later than 2.6.12.
+
+The final distinction is between production, assert and debug VMs.  Production
+VMs are fully optimized, although they may include debugging symbols, and as
+their name implies are for use in production.  Assert and debug VMs include
+many assert checks that are disabled in the production VMs.  These asserts are
+very helpful in debugging VM problems but significantly impact performance.
+The difference between assert and debug VMs is that assert VMs are compiled
+with moderate optimization, which improves the performance of the asserts,
+whereas debug VMs are compiled with no optimization at all, providing maximum
+debuggability with minimum performance.
+
+This directory tree provides build directories for some of this matrix.  For
+example, squeak.cog.v3 contains build directories for Smalltalk Cog VMs using
+the old object representation, newspeak.stack.spur contains build directories
+for Newspeak Stack VMs using the Spur object representation.  Build as desired.
+
+
+Checking out sources to build out-of-the-box
+--------------------------------------------
+Check-out at least the relevant platform sources, vm and plugin sources, and
+the relevant build directories
+     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
+     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/build.linux32x86
+     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src etc
+		(see section "VM source directories" in the root README)
+
+
+Building out of the box
+-----------------------
+Install the tools (gcc, X11-devel, etc (e.g. libpng, libX11 & libxt source)).
+Then cd to the build directory of your choice, e.g.
+	build.linux32x86/squeak.cog.spur/build
+Then either remove any BochsIA32Plugin line from plugins.ext or build the
+Bochs support libraries (see Building the Bochs Support Libraries below).
+Then execute
+	./mvm
+answering "y" to perform a clean build or "n" to rebuild without recionfiguring.
+The subdirectories confrm to the production/assert/debug x itimer vs threaded
+heartbeat x single vs multi-threaded parts of the matrix described above.  For
+example, build.linux32x86/squeak.cog.v3 includes
+
+	build
+	build.itimerheartbeat
+	build.multithreaded
+
+	build.assert
+	build.assert.itimerheartbeat
+	build.multithreaded.assert
+
+	build.debug
+	build.multithreaded.debug
+	build.debug.itimerheartbeat
+
+subdirectories. It includes two convenience scripts that will make all
+configurations:
+	makeallclean
+	makealldirty
+
+Each build directory contains three files
+	mvm
+	plugins.int
+	plugins.ext
+The mvm script runs ../platforms/unix/config/configure with the relevant
+options, runs make, and then make install to create a VM directory tree in
+../products, ../products/assert or ../products/debug as appropriate.
+plugins.int and plugins.ext determine the set of plugins to be taken from
+the supplied plugins directory (which defaults to ../src/plugins), and which
+are to be linked into the VM (plugins.int) or compiled as external shared
+objects to be dynamically linked at run-time (plugins.ext).
+
+Finally, at the build.linux32x86 level the makeall script will run all the
+makeallclean scripts it can find.
+
+
+Building the Bochs Support Libraries
+------------------------------------
+If you want to get the Cog VM simulator working you'll need to build the
+BochsIA32Plugin and to build that you'll need to first build bochs.  First
+check-out the processor simulator source tree containing Bochs:
+     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
+Then build libraries linuxbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
+  $ cd ../processors/IA32/linuxbochs
+  $ ./conf.COG
+  $ ../bochs/makeem
+
+
+Compiling in 32-bit mode on a 64-bit linux
+-------------------------------
+If you're building the VM on a 64-bit OS, you'll need a compiler which can
+compile and link to 32-bit binaries. On most Linuxes the gcc-multilib package
+provides the 32-bit compiler and the ia32-libs provides the 32-bit libraries.
+You'll also have to add the -m32 switch to all gcc & g++ invocations.  The
+easiest way to do this is to add CC="gcc -m32" & CXX="g++ -m32" to the configure
+script:
+     ../../platforms/unix/config/configure CC="gcc -m32" CXX="g++ -m32" --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
+To run a 32-bit VM on a 64-bit OS, you'll also need the 32-bit libraries
+provided by the ia32-libs package.
+
+According to Paul DeBruicker the following packages need to be installed to
+compile in 32-bt mode on 64-bit ubuntu.  YMMV.
+
+build-essential
+lib32asound2-dev
+libgl1-mesa-dev
+libglu1-mesa-dev
+ia32-libs
+gcc-multilib
+g++multilib
+
+In addition phil at highoctane.be installed libc6dev-i386.
+
+This in itself may not be enough, but persistence will pay off.  See for example
+http://permalink.gmane.org/gmane.comp.lang.smalltalk.pharo.devel/75198.
+
+
+How to configure and build a VM on Unix
+-------------------------------
+The mvm scripts are themselves wrappers around an adaptation of Ian Piumarta's
+Squeak build system above autoconf to the Cog sources.  One can choose the vm
+source files, plugin source files, and optimization level to compile a VM of
+your choice.  To find the full set of options via
+
+	../platforms/unix/config/configure --help
+
+You can see the use of configure in the various mvm scripts in each build
+directory.  
+
+e.g.
+     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
+     make install prefix=WhereYouWantTheVmToGo
+
+	N.B. If you're on a 64-bit linux read 3e below!!
+	N.B. On Ubuntu *do not* supply "LIBS=-lpthread -luuid", i.e. use
+     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0"
+
+
+N.B. The plugin set is defined by plugins.ext and plugins.int in the build dir.
+
+
+
+Testing an external plugin has completely linked
+-------------------------------
+You may find that an external plugin compiles and links but does not load.
+This is usually because it contans undefined symbols.  To find undefined
+symbols, remake the plugin, capturing the link step and then supply
+	-Wl,--warn-unresolved-symbols -Wl,--no-allow-shlib-undefined
+when manually repeating the link command
+
+
+Optimization level and gcc version
+----------------------------------
+There are issues with gcc version > 4.2.1.  Any of the following flags may break the build at -O2:
+-ftree-pre
+-fpartial-inlining
+-fcaller-saves
+
+So turn them off.  e.g.
+     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -fno-caller-saves -fno-partial-inlining -fno-tree-pre -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS="-lpthread -luuid"
+See http://smallissimo.blogspot.fr/2013/02/compiling-squeak-cog-virtual-machine-on.html
+
+There appear to be issues with 3.4.x gcc version on RedHat.  In particular
+compiling the Newspeak VM with either of
+	gcc version 3.4.6 20060404 (Red Hat 3.4.6-3)
+	gcc version 3.4.6 20060404 (Red Hat 3.4.6-10)
+using -O2 results in a VM that segfaults early in startup.  For these compilers
+it is probably wise to use -O1, even though -O3 seems to work.

Added: branches/Cog/build.linux32ARMv6/makeall
===================================================================
--- branches/Cog/build.linux32ARMv6/makeall	                        (rev 0)
+++ branches/Cog/build.linux32ARMv6/makeall	2014-07-16 22:58:01 UTC (rev 3044)
@@ -0,0 +1,9 @@
+#!/bin/bash
+trap 'exit 2' HUP INT PIPE TERM
+for d in newspeak.cog.* newspeak.stack.* squeak.*; do
+	if test -d "$d"; then
+		(cd $d;./makeallclean "$@")
+	else
+		echo no $d directory found
+	fi
+done


Property changes on: branches/Cog/build.linux32ARMv6/makeall
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/build.linux32ARMv6/makeproduct
===================================================================
--- branches/Cog/build.linux32ARMv6/makeproduct	                        (rev 0)
+++ branches/Cog/build.linux32ARMv6/makeproduct	2014-07-16 22:58:01 UTC (rev 3044)
@@ -0,0 +1,9 @@
+#!/bin/bash
+trap 'exit 2' HUP INT PIPE TERM
+for d in newspeak.cog.spur newspeak.cog.spur squeak.cog.spur squeak.cog.v3; do
+	if test -d "$d"; then
+		(cd $d;./makeallclean "$@")
+	else
+		echo no $d directory found
+	fi
+done


Property changes on: branches/Cog/build.linux32ARMv6/makeproduct
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/build.linux32ARMv6/mkNamedPrims.sh
===================================================================
--- branches/Cog/build.linux32ARMv6/mkNamedPrims.sh	                        (rev 0)
+++ branches/Cog/build.linux32ARMv6/mkNamedPrims.sh	2014-07-16 22:58:01 UTC (rev 3044)
@@ -0,0 +1,24 @@
+#!/bin/sh
+# Generate a sqNamedPrims.h file from plugins.int.  The plugins.int used should
+# be the one and only argument.
+if [ $# != 1 -o ! -f "$1" ]; then
+	echo usage $0 plugins.int ">sqNamedPrims.h" 1>&2
+	exit 1
+fi
+echo "/* Automatically generated on "`date`" */"
+echo "extern sqExport vm_exports[];";
+echo "extern sqExport os_exports[];";
+for p in `grep -v '^#' "$1" | sed 's/INTERNAL_PLUGINS = //' | tr -d '\\\\\\012'`
+do
+	echo "extern sqExport "$p"_exports[];"
+done
+echo
+echo "sqExport *pluginExports[] = {"
+echo "	vm_exports,"
+echo "	os_exports,"
+for p in `grep -v '^#' "$1" | sed 's/INTERNAL_PLUGINS = //' | tr -d '\\\\\\012'`
+do
+	echo "	"$p"_exports,"
+done
+echo "	NULL"
+echo "};"


Property changes on: branches/Cog/build.linux32ARMv6/mkNamedPrims.sh
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/build.linux32ARMv6/squeak.stack.v3/build/mvm
===================================================================
--- branches/Cog/build.linux32ARMv6/squeak.stack.v3/build/mvm	                        (rev 0)
+++ branches/Cog/build.linux32ARMv6/squeak.stack.v3/build/mvm	2014-07-16 22:58:01 UTC (rev 3044)
@@ -0,0 +1,32 @@
+#!/bin/bash
+# Stack VM with VM profiler and threaded heartbeat
+INSTALLDIR=stklinuxhtARM
+# Some gcc versions create a broken VM using -O2
+case `gcc -v 2>&1 | grep version | sed 's/gcc version *//'` in
+3.4.*)	OPT="-g -O1 -DNDEBUG -DDEBUGVM=0 -DNO_VM_PROFILE=1";;
+*)		OPT="-g -O3 -DNDEBUG -DDEBUGVM=0 -DNO_VM_PROFILE=1";;
+esac
+
+if [ $# -ge 1 ]; then
+	INSTALLDIR="$1"; shift
+fi
+
+echo -n "clean? "
+read a
+case $a in
+n|no|N|NO)	echo "ok but this isn't safe!!";;
+*)			rm config.h; test -f Makefile && make reallyclean
+esac
+test -f config.h || ../../../platforms/unix/config/configure \
+	--with-src=stacksrc --with-plugins=src/plugins --disable-cogit \
+	--without-vm-display-fbdev --without-npsqueak \
+	CC="gcc " \
+	CXX="g++ " \
+	CFLAGS="$OPT  -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64  -DI_REALLY_DONT_CARE_HOW_UNSAFE_THIS_IS" \
+	LIBS="-lpthread -luuid" \
+	LDFLAGS=-Wl,-z,now
+rm -f vm/sqUnixMain.o # nuke version info
+rm -rf ../../../products/$INSTALLDIR
+# prefer make install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR`
+# but older linux readlinks lack the -f flag and Raspbian lacks `readlinks`
+make install prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG


Property changes on: branches/Cog/build.linux32ARMv6/squeak.stack.v3/build/mvm
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/build.linux32ARMv6/squeak.stack.v3/build/plugins.ext
===================================================================
--- branches/Cog/build.linux32ARMv6/squeak.stack.v3/build/plugins.ext	                        (rev 0)
+++ branches/Cog/build.linux32ARMv6/squeak.stack.v3/build/plugins.ext	2014-07-16 22:58:01 UTC (rev 3044)
@@ -0,0 +1,7 @@
+# Copied, perhaps edited, from ../../src/examplePlugins.ext
+EXTERNAL_PLUGINS = \
+LocalePlugin \
+UnixOSProcessPlugin \
+UUIDPlugin \
+UnicodePlugin \
+XDisplayControlPlugin

Added: branches/Cog/build.linux32ARMv6/squeak.stack.v3/build/plugins.int
===================================================================
--- branches/Cog/build.linux32ARMv6/squeak.stack.v3/build/plugins.int	                        (rev 0)
+++ branches/Cog/build.linux32ARMv6/squeak.stack.v3/build/plugins.int	2014-07-16 22:58:01 UTC (rev 3044)
@@ -0,0 +1,35 @@
+# Copied, perhaps edited, from ../../src/examplePlugins.int
+INTERNAL_PLUGINS = \
+ADPCMCodecPlugin \
+AioPlugin \
+AsynchFilePlugin \
+B2DPlugin \
+BitBltPlugin \
+BMPReadWriterPlugin \
+ZipPlugin \
+DropPlugin \
+DSAPrims \
+FFTPlugin \
+FileCopyPlugin \
+FilePlugin \
+FloatArrayPlugin \
+FloatMathPlugin \
+JoystickTabletPlugin \
+JPEGReaderPlugin \
+JPEGReadWriter2Plugin \
+Klatt \
+LargeIntegers \
+Matrix2x3Plugin \
+MIDIPlugin \
+MiscPrimitivePlugin \
+Mpeg3Plugin \
+RePlugin \
+SecurityPlugin \
+SerialPlugin \
+SocketPlugin \
+SoundCodecPrims \
+SoundGenerationPlugin \
+SoundPlugin \
+StarSqueakPlugin \
+SurfacePlugin \
+VMProfileLinuxSupportPlugin

Added: branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.assert/mvm
===================================================================
--- branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.assert/mvm	                        (rev 0)
+++ branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.assert/mvm	2014-07-16 22:58:01 UTC (rev 3044)
@@ -0,0 +1,28 @@
+#!/bin/bash
+# assert Stack VM with VM profiler and threaded heartbeat
+INSTALLDIR=assert/stklinuxht
+OPT="-g3 -O1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -DDEBUGVM=0"
+
+if [ $# -ge 1 ]; then
+	INSTALLDIR="$1"; shift
+fi
+
+echo -n "clean? "
+read a
+case $a in
+n|no|N|NO)	echo "ok but this isn't safe!!";;
+*)			rm config.h; test -f Makefile && make reallyclean
+esac
+test -f config.h || ../../../platforms/unix/config/configure \
+	--with-src=stacksrc --with-plugins=src/plugins --disable-cogit \
+	--without-vm-display-fbdev --without-npsqueak \
+	CC="gcc -m32" \
+	CXX="g++ -m32" \
+	CFLAGS="$OPT -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64" \
+	LIBS="-lpthread -luuid" \
+	LDFLAGS=-Wl,-z,now
+rm -f vm/sqUnixMain.o # nuke version info
+rm -rf ../../../products/$INSTALLDIR
+# prefer make install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR`
+# but older linux readlinks lack the -f flag
+make install prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG


Property changes on: branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.assert/mvm
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.assert/plugins.ext
===================================================================
--- branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.assert/plugins.ext	                        (rev 0)
+++ branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.assert/plugins.ext	2014-07-16 22:58:01 UTC (rev 3044)
@@ -0,0 +1,9 @@
+# Copied, perhaps edited, from ../../src/examplePlugins.ext
+EXTERNAL_PLUGINS = \
+B3DAcceleratorPlugin \
+SqueakFFIPrims \
+SqueakSSL \
+LocalePlugin \
+UnixOSProcessPlugin \
+UUIDPlugin \
+XDisplayControlPlugin

Added: branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.assert/plugins.int
===================================================================
--- branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.assert/plugins.int	                        (rev 0)
+++ branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.assert/plugins.int	2014-07-16 22:58:01 UTC (rev 3044)
@@ -0,0 +1,37 @@
+# Copied, perhaps edited, from ../../src/examplePlugins.int
+INTERNAL_PLUGINS = \
+ADPCMCodecPlugin \
+AioPlugin \
+AsynchFilePlugin \
+B2DPlugin \
+BitBltPlugin \
+BMPReadWriterPlugin \
+CroquetPlugin \
+ZipPlugin \
+DropPlugin \
+DSAPrims \
+FFTPlugin \
+FileCopyPlugin \
+FilePlugin \
+FloatArrayPlugin \
+FloatMathPlugin \
+IA32ABI \
+JoystickTabletPlugin \
+JPEGReaderPlugin \
+JPEGReadWriter2Plugin \
+Klatt \
+LargeIntegers \
+Matrix2x3Plugin \
+MIDIPlugin \
+MiscPrimitivePlugin \
+Mpeg3Plugin \
+RePlugin \
+SecurityPlugin \
+SerialPlugin \
+SocketPlugin \
+SoundCodecPrims \
+SoundGenerationPlugin \
+SoundPlugin \
+StarSqueakPlugin \
+SurfacePlugin \
+VMProfileLinuxSupportPlugin

Added: branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.debug/mvm
===================================================================
--- branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.debug/mvm	                        (rev 0)
+++ branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.debug/mvm	2014-07-16 22:58:01 UTC (rev 3044)
@@ -0,0 +1,28 @@
+#!/bin/bash
+# debug Stack VM with VM profiler and threaded heartbeat
+INSTALLDIR=debug/stklinuxht
+OPT="-g3 -O0 -DDEBUGVM=1"
+
+if [ $# -ge 1 ]; then
+	INSTALLDIR="$1"; shift
+fi
+
+echo -n "clean? "
+read a
+case $a in
+n|no|N|NO)	echo "ok but this isn't safe!!";;
+*)			rm config.h; test -f Makefile && make reallyclean
+esac
+test -f config.h || ../../../platforms/unix/config/configure \
+	--with-src=stacksrc --with-plugins=src/plugins --disable-cogit \
+	--without-vm-display-fbdev --without-npsqueak \
+	CC="gcc -m32" \
+	CXX="g++ -m32" \
+	CFLAGS="$OPT -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64" \
+	LIBS="-lpthread -luuid" \
+	LDFLAGS=-Wl,-z,now
+rm -f vm/sqUnixMain.o # nuke version info
+rm -rf ../../../products/$INSTALLDIR
+# prefer make install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR`
+# but older linux readlinks lack the -f flag
+make install prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG


Property changes on: branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.debug/mvm
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.debug/plugins.ext
===================================================================
--- branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.debug/plugins.ext	                        (rev 0)
+++ branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.debug/plugins.ext	2014-07-16 22:58:01 UTC (rev 3044)
@@ -0,0 +1,9 @@
+# Copied, perhaps edited, from ../../src/examplePlugins.ext
+EXTERNAL_PLUGINS = \
+B3DAcceleratorPlugin \
+SqueakFFIPrims \
+SqueakSSL \
+LocalePlugin \
+UnixOSProcessPlugin \
+UUIDPlugin \
+XDisplayControlPlugin

Added: branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.debug/plugins.int
===================================================================
--- branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.debug/plugins.int	                        (rev 0)
+++ branches/Cog/build.linux32ARMv6/squeak.stack.v3/build.debug/plugins.int	2014-07-16 22:58:01 UTC (rev 3044)
@@ -0,0 +1,37 @@
+# Copied, perhaps edited, from ../../src/examplePlugins.int
+INTERNAL_PLUGINS = \
+ADPCMCodecPlugin \
+AioPlugin \
+AsynchFilePlugin \
+B2DPlugin \
+BitBltPlugin \
+BMPReadWriterPlugin \
+CroquetPlugin \
+ZipPlugin \
+DropPlugin \
+DSAPrims \
+FFTPlugin \
+FileCopyPlugin \
+FilePlugin \
+FloatArrayPlugin \
+FloatMathPlugin \
+IA32ABI \
+JoystickTabletPlugin \
+JPEGReaderPlugin \
+JPEGReadWriter2Plugin \
+Klatt \
+LargeIntegers \
+Matrix2x3Plugin \
+MIDIPlugin \
+MiscPrimitivePlugin \
+Mpeg3Plugin \
+RePlugin \
+SecurityPlugin \
+SerialPlugin \
+SocketPlugin \
+SoundCodecPrims \
+SoundGenerationPlugin \
+SoundPlugin \
+StarSqueakPlugin \
+SurfacePlugin \
+VMProfileLinuxSupportPlugin

Added: branches/Cog/build.linux32ARMv6/squeak.stack.v3/makeallclean
===================================================================
--- branches/Cog/build.linux32ARMv6/squeak.stack.v3/makeallclean	                        (rev 0)
+++ branches/Cog/build.linux32ARMv6/squeak.stack.v3/makeallclean	2014-07-16 22:58:01 UTC (rev 3044)
@@ -0,0 +1,6 @@
+#!/bin/sh
+trap 'exit 2' HUP INT PIPE TERM
+for d in `dirname $0`/build*; do
+	(cd $d
+	 echo y | ./mvm "$@")
+done


Property changes on: branches/Cog/build.linux32ARMv6/squeak.stack.v3/makeallclean
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/build.linux32ARMv6/squeak.stack.v3/makealldirty
===================================================================
--- branches/Cog/build.linux32ARMv6/squeak.stack.v3/makealldirty	                        (rev 0)
+++ branches/Cog/build.linux32ARMv6/squeak.stack.v3/makealldirty	2014-07-16 22:58:01 UTC (rev 3044)
@@ -0,0 +1,6 @@
+#!/bin/sh
+trap 'exit 2' HUP INT PIPE TERM
+for d in `dirname $0`/build*; do
+	(cd $d
+	 echo n | ./mvm "$@")
+done


Property changes on: branches/Cog/build.linux32ARMv6/squeak.stack.v3/makealldirty
___________________________________________________________________
Added: svn:executable
   + *



More information about the Vm-dev mailing list