Building the VM source

Mario Wolczko mario at Eng.Sun.COM
Wed Oct 30 22:42:53 UTC 1996


> I would like to build the VM source. (Hinting to maybe considering porting
> it to something else, though I understand from reading back through the
> archive of this list that this would be a formidable undertaking. So I best
> not make any promises. :v) However, it's abundantly not clear to me how
> to get the source to build on a SunOS machine. The docs mention some RCS
> setup from UW, but (of course) the source tree isn't set up that way.
> I spent a fair amount of time just getting the compile-time tools in
> bin/sun4 to build. This makes me think that there's probably a "right way"
> to get the tree to build (a "make all" sort of thing), and I don't have it. :v)

Building the VM is definitely non-trivial.  I have an old message that
describes the steps; I've appended it.  It was composed before the
final release, so it may not be totally accurate - let me know if you
have problems.

Mario


--------------------

Here are instructions on how to build the VM.  

1 Put self/bin/shell and one of self/bin/{sun4,svr4} on your path. 
2 Set the env var SELF_WORKING_DIR to the name of the top-level directory
  of the hierarchy
3 Go into one of self/vm/sun4/generated or self/vm/svr4/generated 
  depending on your OS (the former is for SunOS4.x and the latter for
  Solaris 2.[345]) and run "make lists".
4 Go into one of self/vm/sun4/optimized or self/vm/svr4/optimized and
  run make. 


Here's a script of a complete build (under Solaris 2.3).

Script started on Mon Aug 29 11:10:11 1994
obj.$$ uname -a
SunOS obj 5.3 Generic_101349-01 sun4m sparc
obj.$$ gcc -v
Reading specs from /home/kahuna/local_svr4/lib/gcc-lib/sparc-sun-solaris2.3/2.5.5/specs
gcc version 2.5.5
obj.$$ ls
CheckInstall*			bin/
Install*			fast_compiler/
Makefile			includeDB
MakefileCompileTemplate		lookup/
MakefileDebugTemplate		memory/
MakefileFTPTemplate		new_compiler/
MakefileObjTemplate		parser/
MakefileOptimizeTemplate	prims/
MakefileProfileTemplate		runtime/
MakefilePubTemplate		self/
MakefilePublishTemplate		sic/
MakefileSrcTemplate		sun4/
MakefileSun3Template		svr4/
MakefileSun4Template		todo
altered/			typescript
asm/				zone/
obj.$$ cd bin
obj.$$ ls svr4
AddTrailingNewline*	getRevision*		removeUnderscore*
Makefile		isLink*			resetTime*
Update*			linked*			skipComments*
cmprev*			lock_run*		zap*
cwdRootedIn*		makeDepsAndIncs*
dangling*		obj_patch*
obj.$$ cd svr4
obj.$$ export PATH=`pwd`:$PATH
obj.$$ cd ../shell
obj.$$ export PATH=`pwd`:$PATH
obj.$$ pwd
/home/mario/self3/bin/shell
obj.$$ cd ../..
obj.$$ cd svr4
obj.$$ cd optimized
obj.$$ make
make: fopen: ../generated/Dependencies: No such file or directory
make: *** No rule to make target `../generated/Dependencies'.  Stop.
obj.$$ cd ../generated
obj.$$ make lists
Creating include and dependency files
/home/mario/self3/svr4/generated is not rooted in /home/mario/self.
error: should only be executed in sun4/generated svr4/generated
make: *** [lists] Error 1
obj.$$ export SELF_WORKING_DIR=~/self3
obj.$$ make lists
Creating include and dependency files
Finishing up dependencies
New database:
	reading database: ../../includeDB
	computing closures
	writing output files
obj.$$ cd ../optimized
obj.$$ make
Removing locks
Compiling ../../memory/ageTable.c
Compiling ../../memory/allocation.c
Compiling ../../memory/assignmentMap.c
Compiling ../../memory/blockMap.c
Compiling ../../memory/blockOop.c
Compiling ../../memory/byteVectorMap.c
Compiling ../../memory/byteVectorOop.c
Compiling ../../memory/codeSlotsMap.c
Compiling ../../memory/debugPrintable.c
Compiling ../../memory/enumeration.c
Compiling ../../memory/errorCodes.c
Compiling ../../memory/fctProxyMap.c
Compiling ../../memory/fctProxyOop.c
Compiling ../../memory/floatMap.c
Compiling ../../memory/floatOop.c
Compiling ../../memory/foreignOop.c
Compiling ../../memory/immediateMap.c
Compiling ../../memory/map.c
Compiling ../../memory/mapMap.c
Compiling ../../memory/mapOop.c
Compiling ../../memory/mapTable.c
Compiling ../../memory/mapVtbls.c
Compiling ../../memory/markMap.c
Compiling ../../memory/markOop.c
Compiling ../../memory/memOop.c
Compiling ../../memory/mirrorMap.c
Compiling ../../memory/mirrorOop.c
Compiling ../../memory/monitor.c
Compiling ../../memory/monitorBar.c
Compiling ../../memory/objVectorMap.c
Compiling ../../memory/objVectorOop.c
Compiling ../../memory/oop.c
Compiling ../../memory/oopsOop.c
Compiling ../../memory/os.c
Compiling ../../memory/oTable.c
Compiling ../../memory/processMap.c
Compiling ../../memory/processOop.c
Compiling ../../memory/proxyMap.c
Compiling ../../memory/proxyOop.c
Compiling ../../memory/profilerOop.c
Compiling ../../memory/profilerMap.c
Compiling ../../memory/rSet.c
Compiling ../../memory/search.c
Compiling ../../memory/slotDesc.c
Compiling ../../memory/slotList.c
Compiling ../../memory/slotType.c
Compiling ../../memory/slotsMap.c
Compiling ../../memory/slotsOop.c
Compiling ../../memory/smiMap.c
Compiling ../../memory/smiOop.c
Compiling ../../memory/space.c
Compiling ../../memory/stringMap.c
Compiling ../../memory/stringOop.c
Compiling ../../memory/stringTable.c
Assembling sun4.enum.s
Assembling sun4.search.s
Compiling ../../memory/universe.c
Compiling ../../memory/universe.more.c
Compiling ../../memory/util.c
Compiling ../../memory/vframeOop.c
Compiling ../../memory/vframeMap.c
Compiling ../../memory/vmStrings.c
Compiling ../../fast_compiler/blist.c
Compiling ../../fast_compiler/codeGen.c
Compiling ../../fast_compiler/fcompiler.c
Compiling ../../fast_compiler/fscope.c
Compiling ../../fast_compiler/registerState.c
Compiling ../../fast_compiler/registerString.c
Compiling ../../fast_compiler/sun4.codeGen.c
Compiling ../../sic/aNode.c
Compiling ../../sic/basicBlock.c
Compiling ../../sic/bitVector.c
Compiling ../../sic/defUse.c
Compiling ../../sic/inlining.c
Compiling ../../sic/node.c
Compiling ../../sic/nodeGen.c
Compiling ../../sic/opcode.c
Compiling ../../sic/preg.c
Compiling ../../sic/regAlloc.c
Compiling ../../sic/rscope.c
Compiling ../../sic/sic.c
Compiling ../../sic/sicExpr.c
Compiling ../../sic/sicInline.c
Compiling ../../sic/sicPrimline.c
Compiling ../../sic/sicScope.c
Compiling ../../sic/sicSplit.c
Compiling ../../sic/slist.c
Compiling ../../sic/tracing.c
Compiling ../../sic/sun4.node.c
Compiling ../../sic/sun4.genHelper.c
Compiling ../../new_compiler/clist.c
Compiling ../../new_compiler/compiler.c
Compiling ../../new_compiler/conflicts.c
Compiling ../../new_compiler/context.c
Compiling ../../new_compiler/experiment.c
Compiling ../../new_compiler/delay.c
Compiling ../../new_compiler/fixed.c
Compiling ../../new_compiler/gen.c
Compiling ../../new_compiler/genutil.c
Compiling ../../new_compiler/hashTable.c
Compiling ../../new_compiler/inline.c
Compiling ../../new_compiler/moves.c
Compiling ../../new_compiler/msg.c
Compiling ../../new_compiler/name.c
Compiling ../../new_compiler/objectIO.c
Compiling ../../new_compiler/op.c
Compiling ../../new_compiler/oracle.c
Compiling ../../new_compiler/passes.c
Compiling ../../new_compiler/path.c
Compiling ../../new_compiler/pqueue.c
Compiling ../../new_compiler/primline.c
Compiling ../../new_compiler/print.c
Compiling ../../new_compiler/scope.c
Compiling ../../new_compiler/split.c
Compiling ../../new_compiler/table.c
Compiling ../../new_compiler/type.c
Compiling ../../new_compiler/typeGroup.c
Compiling ../../new_compiler/uncommon.c
Compiling ../../new_compiler/use.c
Compiling ../../new_compiler/uses.c
Compiling ../../new_compiler/value.c
Compiling ../../new_compiler/variable.c
Compiling ../../new_compiler/varSet.c
Compiling ../../new_compiler/weight.c
Compiling ../../asm/asm.c
Compiling ../../asm/fields.c
Compiling ../../asm/label.c
Compiling ../../asm/nameDesc.c
Compiling ../../asm/operand.c
Compiling ../../asm/pcDesc.c
Compiling ../../asm/regs.c
Compiling ../../asm/scopeDesc.c
Compiling ../../asm/sparc-disasm.c
Compiling ../../asm/sparc-opc.c
Compiling ../../asm/sparc-pinsn.c
Compiling ../../asm/sun4.asm.c
Compiling ../../asm/sun4.regs.c
Assembling allocZone.s
Compiling ../../zone/addrDesc.c
Compiling ../../zone/countStub.c
Compiling ../../zone/codeTable.c
Compiling ../../zone/ncode.c
Compiling ../../zone/nmethod.c
Compiling ../../zone/nmethodScopes.c
Compiling ../../zone/nmln.c
Compiling ../../zone/fprofiler.c
Compiling ../../zone/scopeDescRecorder.c
Compiling ../../zone/sun4.addrDesc.c
Compiling ../../zone/zoneHeap.c
Compiling ../../zone/zone.c
Compiling ../../parser/byteCodes.c
Compiling ../../parser/expr.c
Compiling ../../parser/kinds.c
Compiling ../../parser/list.c
Compiling ../../parser/parser.c
Compiling ../../parser/positionTable.c
Compiling ../../parser/scanner.c
Compiling ../../parser/send.c
Compiling ../../parser/slot.c
Compiling ../../parser/str.c
Compiling ../../parser/stringUtil.c
Compiling ../../lookup/cacheStub.c
Compiling ../../lookup/sun4.cacheStub.c
Compiling ../../lookup/diDesc.c
Compiling ../../lookup/deps.c
Compiling ../../lookup/key.c
Compiling ../../lookup/lookup.c
Compiling ../../lookup/lookupCache.c
Compiling ../../lookup/machineCache.c
Compiling ../../lookup/sendDesc.c
Compiling ../../lookup/slotRef.c
Compiling ../../lookup/target.c
Compiling ../../runtime/abort.c
../../runtime/abort.c: In function `void fatalHandler()':
../../runtime/abort.c:372: warning: `volatile' function does return
Compiling ../../runtime/aCompiler.c
Compiling ../../runtime/asyncMalloc.c
Compiling ../../runtime/callgraph.c
Compiling ../../runtime/conversion.c
Compiling ../../runtime/debug.c
Compiling ../../runtime/eventlog.c
Compiling ../../runtime/files.c
Compiling ../../runtime/format.c
Compiling ../../runtime/frame.c
Compiling ../../runtime/hprofiler.c
Compiling ../../runtime/init.c
Compiling ../../runtime/itimer.c
Compiling ../../runtime/lprintf.c
Compiling ../../runtime/nprofiler.c
Compiling ../../runtime/nprofiler.copygraph.c
Compiling ../../runtime/process.c
Compiling ../../runtime/processInfo.c
Compiling ../../runtime/recompile.c
Compiling ../../runtime/shell.c
Compiling ../../runtime/stack.c
Assembling sun4.runtime.s
Compiling ../../runtime/timer.c
Compiling ../../runtime/ubDesc.c
Compiling ../../runtime/uncommonBranch.c
Compiling ../../runtime/vframe.c
Compiling ../../runtime/xError.c
Assembling sun4.asmPrims.s
Assembling sun4.memCopyPrims.s
Compiling ../../prims/dynLink.c
Compiling ../../prims/glue.c
Compiling glueDefs.c
Compiling ../../prims/glueSupport.c
Compiling ../../prims/miscPrims.c
Compiling ../../prims/prim.c
Compiling ../../prims/unixPrims.c
Compiling ../../prims/unixPrims.glue.c
Compiling ../../prims/xlibPrims.c
Making debug version of malloc.o
Making write.o
Making exit.o
Compiling vmDate
Linking Self
obj.$$ size Self
2221226 + 48428 + 63412 = 2333066
obj.$$ ls -l Self
-rwxr-xr-x  1 mario    12985496 Aug 29 12:20 Self*
obj.$$ 

script done on Mon Aug 29 12:44:44 1994





More information about the Self-interest mailing list