[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