X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=Robust%2Fsrc%2Fbuildscript;h=7abaee6349e5fb081c4fee314ded71540b6bfe98;hb=073c54e79f6e530f6286f018df41a19980b04ae1;hp=913e9f80840bf462d64e54f68500044d3ca9b6c8;hpb=b58f4decd18c83bc2db1c5ba4b8289fd9c817201;p=IRC.git diff --git a/Robust/src/buildscript b/Robust/src/buildscript index 913e9f80..7abaee63 100755 --- a/Robust/src/buildscript +++ b/Robust/src/buildscript @@ -13,6 +13,48 @@ echo -inlineatomic depth inline methods inside of transactions to specified dept echo "-stmarray partial array treatment" echo "-dualview dual view of arrays" echo "-hybrid use fission only when it looks like a good choice" +echo "-numa numa aware" +echo "-eventmonitor turn on transaction event trace recording" +echo +echo OOOJava options +echo -coreprof, turn on profiling API +echo -coreprof-eventwords NUM, space in words/thread for coreprof events +echo -coreprof-checkoverflow, ONLY use for debugging event overflow +echo -coreprof-enable EVENTNAME, only enable desired events to reduce overhead +echo EVENTNAME can be: cpe_main, cpe_runmalloc, cpe_runfree, cpe_poolalloc, cpe_count_poolalloc, cpe_count_poolreuse, cpe_workschedgrab, cpe_taskdispatch, cpe_preparememq, cpe_taskexecute, cpe_taskretire, cpe_taskstallvar, cpe_taskstallmem +echo "-ooojava " +echo -ooodebug general OOOJava debugging messages +echo -ooodebug-disable-task-mem-pool this is a tricky module, disable for simpler runtime +echo -mempool-detect-misuse turn on to find code misusing pool-allocated records +echo -rcr turn on runtime conflict resolver +echo -rcr_debug Shows weakly connected heaproots and which allocation sites were considered for traversal +echo -rcr_debug_verbose in addition to above, also prints out effects passed in, internal representation of effects, and internal representation of reach graph +echo -squeue use single queue +echo -corepin use core pinning +echo -nostalltr turn off RCR traversers that only handle conflicts between task and stallsite +echo -nolock turn off synchronization lock +echo +echo Disjoint Reachability Analysis options +echo -disjoint enable analysis +echo -disjoint-k set k-limit for heap nodes per allocation site +echo "-disjoint-write-dots write reach graphs for all method sols. or only final sols." +echo -disjoint-write-initial-contexts write reach graphs for callee initial contexts from all call sites +echo -disjoint-write-ihms write reach graphs for each call site\'s Initial Heap Model +echo "-disjoint-alias-file write sharing for normal human reading or LaTeX tabbed" +echo "-disjoint-debug-callsite " +echo " To debug call site, give callee caller symbols (ie foo) the analysis visit to start capturing, num captures to take, and whether to halt analysis after capturing" +echo "-disjoint-debug-snap-method " +echo " To take snapshots at statements, give method symbol, the analysis visit to start capturing, num captures to take, and whether to halt analsyis after capturing" +echo "-disjoint-dvisit-stack use stack strat to visit descriptors (tasks or methods)" +echo -disjoint-dvisit-stack-callees-on-top alternate stack strat +echo -disjoint-dvisit-pqueue use prio. q strat to visit descriptors +echo -disjoint-desire-determinism set above interproc for determinism +echo -disjoint-debug-scheduling debug when methods are scheduled for analysis +echo +echo -pointsto-check-v-runtime check allocation site of pointer targets at runtime to help verify heap analysis results +echo +echo "-mlp build mlp code" +echo -mlpdebug if mlp, report progress and interim results echo echo DSM options echo -dsm distributed shared memory @@ -20,7 +62,54 @@ echo -abortreaders abort readers immediately echo -trueprob double - probabiltiy of true branch echo -dsmcaching -enable caching in dsm runtime echo +echo BAMBOO Multicore options +echo -scheduling do task scheduling +echo "-distributioninfo execute to collect distribution info for simulated annealing in multi-core version" +echo "-disall execute to collect whole distribution" +echo "-disstart specify the start number of distribution information collection" +echo -multicore generate multi-core version binary +echo "-numcore set the number of cores (should be used together with -multicore), defaultly set as 1" +echo "-interrupt generate raw version binary with interruption (should be used togethere with -raw)" +echo "-rawpath print out execute path information for raw version (should be used together with -raw)" +echo "-useprofile use profiling data for scheduling (should be used together with -raw)" +echo -printscheduling print out scheduling graphs +echo -printschedulesim print out scheduling simulator result graphs +echo "-tilera_bme generate tilera version binary for Bare Mental Environment (should be used together with -multicore" +echo "-tilera_zlinux generate tilera version binary for Zero-Overhead Linux with multi-process mode (should be used together with -multicore" +echo "-tileraconfig config tilera simulator/pci as nxm (should be used together with -tilera)" +echo "-raw generate raw version binary (should be used together with -multicore)" +echo "-rawconfig config raw simulator as 4xn (should be used together with -raw)" +echo "-tilera_memprof build the memprof version (should be used together with -tilera_xx) " +echo -accurateprofile build with accurate profile information including pre/post task processing info +echo -profile_interrupt build with profile information of interrupts +echo "-useio use standard io to output profiling data (should be used together with -raw and -profile), it only works with single core version" +echo +echo Multicore GC options +echo -multicoregc generate multi-core binary with garbage collection +echo "-numcore4gc set the number of cores for gc (should be used together with -multicoregc), defaultly set as 0" +echo "-gcmem_local set the gc shared memory allocation strategy as local (should be used together with -multicoregc)" +echo "-gcmem_fixed set the gc shared memory allocation strategy as fixed (should be used together with -multicoregc)" +echo "-gcmem_mixed set the gc shared memory allocation strategy as mixed (should be used together with -multicoregc)" +echo "-gcmem_global set the gc shared memory allocation strategy as global (should be used together with -multicoregc)" +echo "-gccache_local set the gc shared memory cache strategy as local (should be used together with -multicoregc)" +echo "-gccache_ran set the gc shared memory cache strategy as random (should be used together with -multicoregc)" +echo "-gccontroller_near set the gc shared memory to use the nearest controller for each core (should be used together with -multicoregc)" +echo "-gccontroller_remote set the gc shared memory to use a remote controller for each core (should be used together with -multicoregc)" +echo "-gcsmallpagesize(2) set the gc shared memory to use small page size (should be used together with -multicoregc)" +echo "-gclargepagesize set the gc shared memory to use large page size (should be used together with -multicoregc)" +echo "-gclargesharedheap(2) set the gc shared memory as large (should be used together with -multicoregc)" +echo "-gccacheadapt setup as cacheadaptable mode (should be used together with -multicoregc)" +echo -gcprofile build with gcprofile options +echo -mgc generate Multicore GC binary without task stuff +echo -objectlockdebug generate OBJECT_LOCK_DEBUG code +echo -gctbldebug generate GC_TBL_DEBUG code +echo +echo SSJava options +echo -ssjava enables SSJava +echo echo Other options +echo -jni enable jni +echo -abcclose turnoff array boundary checks echo -builddir setup different build directory echo -robustroot set up the ROBUSTROOT to directory other than default one echo -readset turn on readset @@ -30,6 +119,7 @@ echo -dmalloc link in dmalloc echo -64bit compile for 64 bit machine echo -32bit compile for 32 bit machine echo -joptimize java compiler optimizations +echo -noloop turnoff loop optimizations echo -recover compile task code echo -fastcheck fast checkpointing for Bristlecone echo -specdir directory @@ -38,25 +128,10 @@ echo -selfloop task - this task cannot self loop forever echo "-excprefetch methoddescriptor - exclude prefetches for this method (specified as class.method)" echo -taskstate do task state analysis echo -tagstate do tag state analysis -echo -scheduling do task scheduling -echo -multicore generate multi-core version binary -echo "-numcore set the number of cores (should be used together with -multicore), defaultly set as 1" -echo "-cacheflush enable cache flush in raw version binary (should be used togethere with -raw)" -echo "-interrupt generate raw version binary with interruption (should be used togethere with -raw)" -echo "-rawpath print out execute path information for raw version (should be used together with -raw)" -echo "-useprofile use profiling data for scheduling (should be used together with -raw)" -echo -printscheduling print out scheduling graphs -echo -printschedulesim print out scheduling simulator result graphs -echo -abcclose close the array boundary check -echo "-tilera generate tilera version binary (should be used together with -multicore" -echo "-tileraconfig config tilera simulator/pci as nxm (should be used together with -tilera)" -echo "-raw generate raw version binary (should be used together with -multicore)" -echo "-rawconfig config raw simulator as 4xn (should be used together with -raw)" -echo -threadsimulate generate multi-thread simulate version binary -echo -multicoregc generate multi-core binary with garbage collection echo -optional enable optional echo -debug generate debug symbols echo -prefetch do prefetch analysis +echo -heapsize-mb NUM set initial heap size in MB, default is 256 echo -garbagestats Print garbage collection statistics echo -webinterface enable web interface echo -runtimedebug printout runtime debug messages @@ -69,18 +144,24 @@ echo -o binary echo -nojava do not run bristlecone compiler echo -instructionfailures inject code for instructionfailures echo -profile build with profile options -echo -accurateprofile build with accurate profile information including pre/post task processing info -echo "-useio use standard io to output profiling data (should be used together with -raw and -profile), it only works with single core version" echo "-enable-assertions execute assert statements during compilation" echo -justanalyze exit after compiler analyses complete -echo "-distributioninfo execute to collect distribution info for simulated annealing in multi-core version" -echo "-disall execute to collect whole distribution" -echo "-disstart specify the start number of distribution information collection" echo -assembly generate assembly +echo -recovery compile recovery code +echo -dsmtask support work and task class library +echo -recoverystats print out recovery record +echo -src-after-pp prints source code after preprocessor to tmp.c +echo -capture-null-dereferences generates code to warn before derefencing null +echo -printlinenum print out line numbers in generated C codes echo -help help } tmpbuilddirectory="tmpbuilddirectory" +JNI=false +SSJAVA=false +SRCAFTERPP=false; +COREPROF=false; +NUMA=false; SANDBOX=false; ABORTREADERS=false; ROBUSTROOT=~/research/Robust/src @@ -89,31 +170,64 @@ STMRUNTIME=$ROBUSTROOT/Runtime/STM/ DSMRECOVERYRUNTIME=$ROBUSTROOT/Runtime/DSTM/interface_recovery/ REPAIRROOT=~/research/Repair/RepairCompiler/ CURDIR=`pwd` +SQUEUE=false DSMFLAG=false DSMRECOVERY=false FASTMEMCPY=false STMARRAY=false DUALVIEW=false STM=false +EVENTMONITOR=false NOJAVA=false CHECKFLAG=false RECOVERFLAG=false MLP_ON=false +RCR=false +RCR_DEBUG=false +RCR_DEBUG_VERBOSE=false MLPDEBUG=false MULTICOREFLAG=false RAWFLAG=false TILERAFLAG=false +TILERABMEFLAG=false +TILERAZLINUXFLAG=false +TILERAMEMPROFFLAG=false TILERACONFIG='' -CACHEFLUSHFLAG=false +TILERACORES='' RAWCONFIG='' DEBUGFLAG=false RAWPATHFLAG=false PROFILEFLAG=false +GCPROFILEFLAG=false +GCPROFILESFLAG=false ACCURATEPROFILEFLAG=false +PROFILEINTERRUPTFLAG=false USEIOFLAG=false INTERRUPTFLAG=false THREADSIMULATEFLAG=false; MULTICOREGCFLAG=false; +GCMEMLOCALFLAG=false; +GCMEMFIXEDFLAG=false; +GCMEMMIXEDFLAG=false; +GCMEMGLOBALFLAG=false; +GCCACHELOCALFLAG=false; +GCCACHERANFLAG=false; +GCCONTROLLERNEARFLAG=false; +GCCONTROLLERREMOTEFLAG=false; +GCSMALLPAGESIZEFLAG=false; +GCLARGEPAGESIZEFLAG=false; +GCLARGEPAGESIZE2FLAG=false; +GCLARGESHAREDHEAPFLAG=false; +GCSMALLPAGESIZEFLAG2=false; +GCLARGESHAREDHEAPFLAG2=false; +GCCACHEADAPTFLAG=false +GCCACHEADAPTPOLICYFLAG=false +GCCACHEADAPTPOLICY='' +GCCACHESAMPLINGFLAG=false +MGCFLAG=false +MGCINTELFLAG=false +OBJECTLOCKDEBUGFLAG=false +GCTBLDEBUGFLAG=false USEDMALLOC=false THREADFLAG=false FASTCHECK=false @@ -126,6 +240,9 @@ JAVAOPTS='' OPTIONALFLAG=false EXITAFTERANALYSIS=false ASSEMBLY=false +GCCORES='' +TILERAN1COREFLAG=false +TILERA56COREFLAG=false if [[ -z $1 ]] then @@ -139,9 +256,21 @@ if [[ $1 = '-help' ]] then printhelp exit +elif [[ $1 = '-jni' ]] +then +JNI=true +JAVAOPTS="$JAVAOPTS -jni" +EXTRAOPTIONS="$EXTRAOPTIONS -DJNI -I$ROBUSTROOT/Runtime/jni" elif [[ $1 = '-justanalyze' ]] then EXITAFTERANALYSIS=true +elif [[ $1 = '-capture-null-dereferences' ]] +then +JAVAOPTS="$JAVAOPTS -capture-null-dereferences" +EXTRAOPTIONS="$EXTRAOPTIONS -DCAPTURE_NULL_DEREFERENCES" +elif [[ $1 = '-src-after-pp' ]] +then +SRCAFTERPP=true elif [[ $1 = '-assembly' ]] then ASSEMBLY=true @@ -155,6 +284,10 @@ then SANDBOX=true EXTRAOPTIONS="$EXTRAOPTIONS -DSANDBOX" JAVAOPTS="$JAVAOPTS -sandbox" +elif [[ $1 = '-numa' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -DAFFINITY -D_GNU_SOURCE" +NUMA=true elif [[ $1 = '-robustroot' ]] then ROBUSTROOT="$2" @@ -166,12 +299,17 @@ shift elif [[ $1 = '-nojava' ]] then NOJAVA=true +elif [[ $1 = '-eventmonitor' ]] +then +JAVAOPTS="$JAVAOPTS -eventmonitor" +EVENTMONITOR=true +EXTRAOPTIONS="$EXTRAOPTIONS -DEVENTMONITOR" elif [[ $1 = '-garbagestats' ]] then EXTRAOPTIONS="$EXTRAOPTIONS -DGARBAGESTATS" elif [[ $1 = '-64bit' ]] then -EXTRAOPTIONS="$EXTRAOPTIONS -DBIT64" +EXTRAOPTIONS="$EXTRAOPTIONS -DBIT64 -m64" elif [[ $1 = '-32bit' ]] then EXTRAOPTIONS="$EXTRAOPTIONS -m32" @@ -255,13 +393,29 @@ shift elif [[ $1 = '-mac' ]] then EXTRAOPTIONS="$EXTRAOPTIONS -DMAC" +elif [[ $1 = '-squeue' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -DSQUEUE" +elif [[ $1 = '-corepin' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -DCOREPIN" +SQUEUE=true elif [[ $1 = '-profile' ]] then PROFILEFLAG=true EXTRAOPTIONS="$EXTRAOPTIONS -pg" +elif [[ $1 = '-gcprofile' ]] +then +GCPROFILEFLAG=true +elif [[ $1 = '-gcprofile_s' ]] +then +GCPROFILESFLAG=true elif [[ $1 = '-accurateprofile' ]] then ACCURATEPROFILEFLAG=true +elif [[ $1 = '-profile_interrupt' ]] +then +PROFILEINTERRUPTFLAG=true elif [[ $1 = '-useio' ]] then USEIOFLAG=true @@ -281,21 +435,40 @@ JAVAOPTS="$JAVAOPTS -multicore" elif [[ $1 = '-numcore' ]] then JAVAOPTS="$JAVAOPTS -numcore $2" +TILERACORES="$2" +if [[ "$2" -gt "1" ]] +then +TILERAN1COREFLAG=true +if [[ "$2" -eq "56" ]] +then +TILERA56COREFLAG=true +fi +fi +shift +elif [[ $1 = '-numcore4gc' ]] +then +JAVAOPTS="$JAVAOPTS -numcore4gc $2" +GCCORES="GC_$2" shift elif [[ $1 = '-raw' ]] then RAWFLAG=true JAVAOPTS="$JAVAOPTS -raw" -elif [[ $1 = '-tilera' ]] +elif [[ $1 = '-tilera_bme' ]] then TILERAFLAG=true +TILERABMEFLAG=true +elif [[ $1 = '-tilera_zlinux' ]] +then +TILERAFLAG=true +TILERAZLINUXFLAG=true +elif [[ $1 = '-tilera_memprof' ]] +then +TILERAMEMPROFFLAG=true elif [[ $1 = '-tileraconfig' ]] then TILERACONFIG="$2" shift -elif [[ $1 = '-cacheflush' ]] -then -CACHEFLUSHFLAG=true elif [[ $1 = '-rawconfig' ]] then RAWCONFIG="$2" @@ -303,9 +476,6 @@ shift elif [[ $1 = '-interrupt' ]] then INTERRUPTFLAG=true -elif [[ $1 = '-threadsimulate' ]] -then -THREADSIMULATEFLAG=true elif [[ $1 = '-abcclose' ]] then JAVAOPTS="$JAVAOPTS -abcclose" @@ -317,6 +487,73 @@ elif [[ $1 = '-multicoregc' ]] then MULTICOREGCFLAG=true JAVAOPTS="$JAVAOPTS -multicoregc" +elif [[ $1 = '-gcmem_local' ]] +then +GCMEMLOCALFLAG=true +elif [[ $1 = '-gcmem_fixed' ]] +then +GCMEMFIXEDFLAG=true +elif [[ $1 = '-gcmem_mixed' ]] +then +GCMEMMIXEDFLAG=true +elif [[ $1 = '-gcmem_global' ]] +then +GCMEMGLOBALFLAG=true +elif [[ $1 = '-gccache_local' ]] +then +GCCACHELOCALFLAG=true +elif [[ $1 = '-gccache_ran' ]] +then +GCCACHERANFLAG=true +elif [[ $1 = '-gccontroller_near' ]] +then +GCCONTROLLERNEARFLAG=true +elif [[ $1 = '-gccontroller_remote' ]] +then +GCCONTROLLERREMOTEFLAG=true +elif [[ $1 = '-gcsmallpagesize' ]] +then +GCSMALLPAGESIZEFLAG=true +elif [[ $1 = '-gcsmallpagesize2' ]] +then +GCSMALLPAGESIZEFLAG2=true +elif [[ $1 = '-gclargepagesize' ]] +then +GCLARGEPAGESIZEFLAG=true +elif [[ $1 = '-gclargepagesize2' ]] +then +GCLARGEPAGESIZE2FLAG=true +elif [[ $1 = '-gclargesharedheap' ]] +then +GCLARGESHAREDHEAPFLAG=true +elif [[ $1 = '-gclargesharedheap2' ]] +then +GCLARGESHAREDHEAPFLAG2=true +elif [[ $1 = '-gccacheadapt' ]] +then +GCCACHEADAPTFLAG=true +elif [[ $1 = '-gccacheadaptpolicy' ]] +then +GCCACHEADAPTPOLICYFLAG=true +GCCACHEADAPTPOLICY="$2" +shift +elif [[ $1 = '-gccachesampling' ]] +then +GCCACHESAMPLINGFLAG=true +elif [[ $1 = '-mgc' ]] +then +MGCFLAG=true +JAVAOPTS="$JAVAOPTS -mgc" +elif [[ $1 = '-mgcintel' ]] +then +MGCINTELFLAG=true +elif [[ $1 = '-objectlockdebug' ]] +then +OBJECTLOCKDEBUGFLAG=true +JAVAOPTS="$JAVAOPTS -objectlockdebug" +elif [[ $1 = '-gctbldebug' ]] +then +GCTBLDEBUGFLAG=true elif [[ $1 = '-dmalloc' ]] then USEDMALLOC=true @@ -337,6 +574,9 @@ JAVAOPTS="$JAVAOPTS -instructionfailures" elif [[ $1 = '-joptimize' ]] then JAVAOPTS="$JAVAOPTS -optimize" +elif [[ $1 = '-noloop' ]] +then +JAVAOPTS="$JAVAOPTS -noloop" elif [[ $1 = '-dcopts' ]] then JAVAOPTS="$JAVAOPTS -dcopts" @@ -352,10 +592,88 @@ elif [[ $1 = '-minimize' ]] then JAVAOPTS="$JAVAOPTS -minimize" +elif [[ $1 = '-ooojava' ]] +then +MLP_ON=true +JAVAOPTS="$JAVAOPTS -ooojava $2 $3" +EXTRAOPTIONS="$EXTRAOPTIONS -DPRECISE_GC -lpthread -DMLP" +shift +shift + +elif [[ $1 = '-ooodebug-disable-task-mem-pool' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -DOOO_DISABLE_TASKMEMPOOL" + +elif [[ $1 = '-ssjava' ]] +then +SSJAVA=true +JAVAOPTS="$JAVAOPTS -ssjava" + +elif [[ $1 = '-mempool-detect-misuse' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -DMEMPOOL_DETECT_MISUSE" + +elif [[ $1 = '-heapsize-mb' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -DINITIALHEAPSIZE_MB=($2)" +shift + +elif [[ $1 = '-nostalltr' ]] +then +JAVAOPTS="$JAVAOPTS -nostalltr" + +elif [[ $1 = '-printlinenum' ]] +then +JAVAOPTS="$JAVAOPTS -printlinenum" + +elif [[ $1 = '-rcr' ]] +then +JAVAOPTS="$JAVAOPTS -rcr" +RCR=true +EXTRAOPTIONS="$EXTRAOPTIONS -DRCR -I$ROBUSTROOT/Runtime/oooJava" + +elif [[ $1 = '-rcr_debug' ]] +then +JAVAOPTS="$JAVAOPTS -rcr_debug" +RCR_DEBUG=true + +elif [[ $1 = '-rcr_debug_verbose' ]] +then +JAVAOPTS="$JAVAOPTS -rcr_debug_verbose" +RCR_DEBUG_VERBOSE=true + +elif [[ $1 = '-debug-deque' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -DDEBUG_DEQUE" + +elif [[ $1 = '-nolock' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -DNOLOCK" + +elif [[ $1 = '-coreprof' ]] +then +COREPROF=true +JAVAOPTS="$JAVAOPTS -coreprof" +EXTRAOPTIONS="$EXTRAOPTIONS -DCOREPROF -I$ROBUSTROOT/Runtime/coreprof" + +elif [[ $1 = '-coreprof-eventwords' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -DCP_MAXEVENTWORDS=($2)" +shift + +elif [[ $1 = '-coreprof-checkoverflow' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -DCOREPROF_CHECKOVERFLOW" + +elif [[ $1 = '-coreprof-enable' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -D$2" +shift + elif [[ $1 = '-mlp' ]] then MLP_ON=true -EXTRAOPTIONS="$EXTRAOPTIONS -DPRECISE_GC -lpthread" +EXTRAOPTIONS="$EXTRAOPTIONS -DPRECISE_GC -lpthread -DMLP" JAVAOPTS="$JAVAOPTS -mlp $2 $3" shift shift @@ -408,6 +726,10 @@ elif [[ $1 = '-recovery' ]] then EXTRAOPTIONS="$EXTRAOPTIONS -DRECOVERY" DSMRECOVERY=true +elif [[ $1 = '-recoverystats' ]] +then +JAVAOPTS="$JAVAOPTS -recoverystats" +EXTRAOPTIONS="$EXTRAOPTIONS -DRECOVERYSTATS" elif [[ $1 = '-distributioninfo' ]] then JAVAOPTS="$JAVAOPTS -distributioninfo" @@ -437,6 +759,8 @@ done BUILDDIR="$CURDIR/$tmpbuilddirectory" +BAMBOORUNTIME=$ROBUSTROOT/Runtime/bamboo + cd $1 cd $CURDIR shift @@ -448,54 +772,98 @@ then JAVAOPTS="$JAVAOPTS -struct structfile" fi + + +######################### # Setup class path +######################### +if $JNI + then + JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/classpath/ -classlibrary $ROBUSTROOT/classpath/vm/reference" + +elif $MGCINTELFLAG + then + JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/MGC/ -classlibrary $ROBUSTROOT/ClassLibrary/MGC/gnu/" + +elif $MGCFLAG + then + #base multicore gc files + JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/MGC/ -classlibrary $ROBUSTROOT/ClassLibrary/MGC/gnu/" + +elif $SSJAVA + then + JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/SSJava" -if $RECOVERFLAG -then -if $FASTCHECK -then -#fast transactions -JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/FastCheck" -else -#base bristlecone files -JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/Bristlecone" -fi else -if $DSMFLAG -then -#dsm stuff -JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/JavaDSM" -elif $STM -then -JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/JavaSTM" -elif $THREADFLAG -then -#threading java stuff -JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/JavaThread" + if $RECOVERFLAG + then + if $FASTCHECK + then + #fast transactions + JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/FastCheck" + else + #base bristlecone files + JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/Bristlecone" + fi + + elif $DSMFLAG + then + #dsm stuff + JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/JavaDSM" + + elif $STM + then + JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/JavaSTM" + + elif $THREADFLAG + then + #threading java stuff + JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/JavaThread" + + else + #base java stuff + JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/Java" + fi fi -#base java stuff -JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/Java" + +# everyone gets this except ssjava! +if ! $SSJAVA + then + JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/ -classlibrary $ROBUSTROOT/ClassLibrary/gnu/" fi +######################### +# end classpath +######################### + + # Build bristlecone/java sources if $MULTICOREFLAG -then -if ! ${ROBUSTROOT}/ourjava -Xms50m -Xmx1500m $JAVAFORWARDOPTS -classpath $ROBUSTROOT/../cup/:$ROBUSTROOT Main.Main -classlibrary \ -$ROBUSTROOT/ClassLibrary/ -classlibrary $ROBUSTROOT/ClassLibrary/gnu/ \ --dir $BUILDDIR $JAVAOPTS $SRCFILES -then exit $? -fi + then + if ! ${ROBUSTROOT}/ourjava -Xms50m -Xmx1500m $JAVAFORWARDOPTS -classpath $ROBUSTROOT/../cup/:$ROBUSTROOT Main.Main \ + -dir $BUILDDIR $JAVAOPTS $SRCFILES + then exit $? + fi + else -#if ! ${ROBUSTROOT}/ourjava -Xms5m -Xmx100m $JAVAFORWARDOPTS -classpath $ROBUSTROOT/../cup/:$ROBUSTROOT Main.Main -classlibrary \ -if ! $NOJAVA -then -if ! ${ROBUSTROOT}/ourjava -Xms50m -Xmx1500m $JAVAFORWARDOPTS -classpath $ROBUSTROOT/../cup/:$ROBUSTROOT Main.Main -classlibrary \ -$ROBUSTROOT/ClassLibrary/ -classlibrary $ROBUSTROOT/ClassLibrary/gnu/ -dir $BUILDDIR -precise \ -$JAVAOPTS $SRCFILES -then exit $? -fi -fi + + if $MGCINTELFLAG + then + if ! ${ROBUSTROOT}/ourjava -Xms50m -Xmx1500m $JAVAFORWARDOPTS -classpath $ROBUSTROOT/../cup/:$ROBUSTROOT Main.Main $JAVAOPTS \ + -dir $BUILDDIR -precise $SRCFILES + then exit $? + fi + + else + if ! $NOJAVA + then + if ! ${ROBUSTROOT}/ourjava -Xms50m -Xmx1500m $JAVAFORWARDOPTS -classpath $ROBUSTROOT/../cup/:$ROBUSTROOT Main.Main \ + -dir $BUILDDIR -precise $JAVAOPTS $SRCFILES + then exit $? + fi + fi + fi fi if $EXITAFTERANALYSIS @@ -552,11 +920,6 @@ rm ./* export RAWRGCCFLAGS="-DTASK -DMULTICORE -DRAW" -if $CACHEFLUSHFLAG -then # print path -RAWRGCCFLAGS="${RAWRGCCFLAGS} -DCACHEFLUSH" -fi - if $RAWPATHFLAG then # print path RAWRGCCFLAGS="${RAWRGCCFLAGS} -DRAWPATH" @@ -595,15 +958,17 @@ else MAKEFILE="$MAKEFILE.$RAWCONFIG" fi #useio version -cp $ROBUSTROOT/Runtime/RAW/$MAKEFILE ./Makefile +cp $BAMBOORUNTIME/RAW/$MAKEFILE ./Makefile cp ../Runtime/*.c ./ cp ../Runtime/*.h ./ cp ../Runtime/*.S ./ cp ../Runtime/*.s ./ -cp ../Runtime/RAW/*.c ./ -cp ../Runtime/RAW/*.h ./ -cp ../Runtime/RAW/*.S ./ -cp ../Runtime/RAW/*.s ./ +cp $BAMBOORUNTIME/*.c ./ +cp $BAMBOORUNTIME/*.h ./ +cp $BAMBOORUNTIME/RAW/*.c ./ +cp $BAMBOORUNTIME/RAW/*.h ./ +cp $BAMBOORUNTIME/RAW/*.S ./ +cp $BAMBOORUNTIME/RAW/*.s ./ cp ../$tmpbuilddirectory/*.c ./ cp ../$tmpbuilddirectory/*.h ./ @@ -612,19 +977,56 @@ make elif $TILERAFLAG then # TILERAFLAG TILERADIR="$CURDIR/tilera" +if $TILERABMEFLAG +then # TILERABMEFLAG +TILERA_INDIR="BME" +MAKEFILE="Makefile.tilera.$TILERACORES" +#SIMHVC="sim.hvc.$TILERACONFIG" +PCIHVC="pci.hvc.$TILERACORES" +if $TILERA56COREFLAG +then + PCIHVC="$PCIHVC.56" +fi +elif $TILERAZLINUXFLAG +then # TILERAZLINUXFLAG +TILERA_INDIR="ZLinux" MAKEFILE="Makefile.tilera.$TILERACONFIG" -SIMHVC="sim.hvc.$TILERACONFIG" -PCIHVC="pci.hvc.$TILERACONFIG" +fi + mkdir $TILERADIR cd $TILERADIR make clean rm ./* -export TILERACFLAGS="-DTASK -DMULTICORE -DCLOSE_PRINT" +if $MGCFLAG +then +export TILERACFLAGS="-DMULTICORE -DCLOSE_PRINT -DTILERA" +else +export TILERACFLAGS="-DTASK -DMULTICORE -DCLOSE_PRINT -DTILERA" +fi -if $CACHEFLUSHFLAG -then # print path -TILERACFLAGS="${TILERACFLAGS} -DCACHEFLUSH" +if $GCTBLDEBUGFLAG +then +TILERACFLAGS="${TILERACFLAGS} -DGC_TBL_DEBUG" +fi + +if $OBJECTLOCKDEBUGFLAG +then +TILERACFLAGS="${TILERACFLAGS} -DOBJECT_LOCK_DEBUG" +fi + +if $TILERAMEMPROFFLAG +then # not only with 1 core + PCIHVC="$PCIHVC.memprof" + TILERACFLAGS="${TILERACFLAGS} -DBAMBOO_MEMPROF" +fi + +if $TILERABMEFLAG +then # TILERABMEFLAG +TILERACFLAGS="${TILERACFLAGS} -DTILERA_BME" +elif $TILERAZLINUXFLAG +then # TILERAZLINUXFLAG +TILERACFLAGS="${TILERACFLAGS} -DTILERA_ZLINUX" fi if $RAWPATHFLAG @@ -647,6 +1049,11 @@ then # accurateprofile version TILERACFLAGS="${TILERACFLAGS} -DACCURATEPROFILE" fi +if $PROFILEINTERRUPTFLAG +then # profile_interrupt version +TILERACFLAGS="${TILERACFLAGS} -DPROFILE_INTERRUPT" +fi + if $USEIOFLAG then # useio version TILERACFLAGS="${TILERACFLAGS} -DUSEIO" @@ -657,47 +1064,176 @@ then #INTERRUPT version TILERACFLAGS="${TILERACFLAGS} -DINTERRUPT" fi #INTERRUPT version +if $MGCFLAG +then #MGCFLAG +TILERACFLAGS="${TILERACFLAGS} -DMGC -DMGC_SPEC" +fi + if $MULTICOREGCFLAG then #MULTICOREGC version -TILERACFLAGS="${TILERACFLAGS} -DMULTICORE_GC" +TILERACFLAGS="${TILERACFLAGS} -DMULTICORE_GC -D${GCCORES}" +fi + +if $GCPROFILEFLAG +then # GC_PROFILE version +TILERACFLAGS="${TILERACFLAGS} -DGC_PROFILE" +fi + +if $GCPROFILESFLAG +then # GC_PROFILE_S version +TILERACFLAGS="${TILERACFLAGS} -DGC_PROFILE_S" +fi + +if $GCMEMLOCALFLAG +then # SMEMLOCAL version +TILERACFLAGS="${TILERACFLAGS} -DSMEML" +fi + +if $GCMEMFIXEDFLAG +then # SMEMFIXED version +TILERACFLAGS="${TILERACFLAGS} -DSMEMF" +fi + +if $GCMEMMIXEDFLAG +then # SMEMMIXED version +TILERACFLAGS="${TILERACFLAGS} -DSMEMM" +fi + +if $GCMEMGLOBALFLAG +then # SMEMGLOBAL version +TILERACFLAGS="${TILERACFLAGS} -DSMEMG" +fi + +if $GCCACHELOCALFLAG +then # CACHE_LOCAL version +TILERACFLAGS="${TILERACFLAGS} -DCACHE_LOCAL" +fi + +if $GCCACHERANFLAG +then # CACHE_RAN version +TILERACFLAGS="${TILERACFLAGS} -DCACHE_RAN" +fi + +if $GCCONTROLLERNEARFLAG +then # CONTROLLER_NEAR version +TILERACFLAGS="${TILERACFLAGS} -DCONTROLLER_NEAR" +fi + +if $GCCONTROLLERREMOTEFLAG +then # CONTROLLER_REMOTE version +TILERACFLAGS="${TILERACFLAGS} -DCONTROLLER_REMOTE" +fi + +if $GCSMALLPAGESIZEFLAG +then # GC_SMALLPAGESIZE version +TILERACFLAGS="${TILERACFLAGS} -DGC_SMALLPAGESIZE" +fi + +if $GCLARGEPAGESIZEFLAG +then # GC_LARGEPAGESIZE version +TILERACFLAGS="${TILERACFLAGS} -DGC_LARGEPAGESIZE" +fi + +if $GCLARGEPAGESIZE2FLAG +then # GC_LARGEPAGESIZE2 version +TILERACFLAGS="${TILERACFLAGS} -DGC_LARGEPAGESIZE2" +fi + +if $GCLARGESHAREDHEAPFLAG +then # GC_LARGESHAREDHEAP version +TILERACFLAGS="${TILERACFLAGS} -DGC_LARGESHAREDHEAP" +fi + +if $GCSMALLPAGESIZEFLAG2 +then # GC_SMALLPAGESIZE2 version +TILERACFLAGS="${TILERACFLAGS} -DGC_SMALLPAGESIZE2" +fi + +if $GCLARGESHAREDHEAPFLAG2 +then # GC_LARGESHAREDHEAP2 version +TILERACFLAGS="${TILERACFLAGS} -DGC_LARGESHAREDHEAP2" +fi + +if $GCCACHEADAPTFLAG +then # GC_CACHE_ADAPT version +TILERACFLAGS="${TILERACFLAGS} -DGC_CACHE_ADAPT" +fi + +if $GCCACHEADAPTPOLICYFLAG +then # GC_CACHE_ADAPT version +TILERACFLAGS="${TILERACFLAGS} -DGC_CACHE_ADAPT_POLICY${GCCACHEADAPTPOLICY}" +fi + +if $GCCACHESAMPLINGFLAG +then # GC_CACHE_ADAPT version +TILERACFLAGS="${TILERACFLAGS} -DGC_CACHE_SAMPLING" fi -cp $ROBUSTROOT/Tilera/Runtime/$MAKEFILE ./Makefile -cp $ROBUSTROOT/Tilera/Runtime/$SIMHVC ./sim.hvc -cp $ROBUSTROOT/Tilera/Runtime/$PCIHVC ./pci.hvc -cp $ROBUSTROOT/Tilera/Runtime/bamboo-vmlinux-pci.hvc ./bamboo-vmlinux-pci.hvc -cp ../Runtime/multicoretask.c ./ -cp ../Runtime/multicoreruntime.c ./ +if $MGCFLAG +then +cp $ROBUSTROOT/Tilera/Runtime/MGC/$MAKEFILE ./Makefile +else +cp $ROBUSTROOT/Tilera/Runtime/$TILERA_INDIR/$MAKEFILE ./Makefile +fi +if $TILERABMEFLAG +then # TILERABMEFLAG +#cp $ROBUSTROOT/Tilera/Runtime/$TILERA_INDIR/$SIMHVC ./sim.hvc +cp $ROBUSTROOT/Tilera/Runtime/$TILERA_INDIR/$PCIHVC ./pci.hvc +if $TILERA56COREFLAG +then +cp $ROBUSTROOT/Tilera/Runtime/$TILERA_INDIR/bamboo-vmlinux-pci.hvc.56 ./bamboo-vmlinux-pci.hvc.56 +else +cp $ROBUSTROOT/Tilera/Runtime/$TILERA_INDIR/bamboo-vmlinux-pci.hvc ./bamboo-vmlinux-pci.hvc +fi +fi cp ../Runtime/Queue.c ./ cp ../Runtime/file.c ./ cp ../Runtime/math.c ./ +if [ !$MGCFLAG ] +then cp ../Runtime/object.c ./ +fi cp ../Runtime/GenericHashtable.c ./ cp ../Runtime/SimpleHash.c ./ cp ../Runtime/ObjectHash.c ./ cp ../Runtime/socket.c ./ cp ../Runtime/mem.c ./ -cp ../Runtime/multicoregarbage.c ./ cp ../Runtime/GenericHashtable.h ./ cp ../Runtime/mem.h ./ -cp ../Runtime/multicoreruntime.h ./ +if [ !$MGCFLAG ] +then cp ../Runtime/object.h ./ +fi cp ../Runtime/ObjectHash.h ./ cp ../Runtime/Queue.h ./ cp ../Runtime/runtime.h ./ cp ../Runtime/SimpleHash.h ./ -cp ../Runtime/multicoregc.h ./ -cp ../Runtime/multicoregarbage.h ./ -cp ../Runtime/multicorehelper.h ./ +cp $BAMBOORUNTIME/*.c ./ +cp $BAMBOORUNTIME/*.h ./ cp ../Tilera/Runtime/*.c ./ cp ../Tilera/Runtime/*.h ./ +cp ../Tilera/Runtime/$TILERA_INDIR/*.c ./ +cp ../Tilera/Runtime/$TILERA_INDIR/*.h ./ +if $TILERAZLINUXFLAG +then # TILERAZLINUXFLAG +cp ../Tilera/Runtime/$TILERA_INDIR/*.S ./ +fi +#if $TILERAMEMPROFFLAG +#then # TILERAMEMPROFFLAG +cp ../Tilera/Runtime/$TILERA_INDIR/linux_client.c ./ +#fi +if $MGCFLAG +then +cp ../Tilera/Runtime/MGC/*.c ./ +cp ../Tilera/Runtime/MGC/*.h ./ +fi cp ../Tilera/lib/* ./ cp ../$tmpbuilddirectory/*.c ./ cp ../$tmpbuilddirectory/*.h ./ make -else #!RAWFLAG && !TILERAFLAG +else #!RAWFLAG && !TILERABMEFLAG && ! TILERAZLINUXFLAG cd $CURDIR INCLUDES="$INCLUDES -I$ROBUSTROOT/Runtime -I. -IRuntime/include \ @@ -705,7 +1241,8 @@ INCLUDES="$INCLUDES -I$ROBUSTROOT/Runtime -I. -IRuntime/include \ if $MULTICOREFLAG then -RUNTIMEFILE="$ROBUSTROOT/Runtime/multicoreruntime.c $ROBUSTROOT/Runtime/multicoretask.c" +RUNTIMEFILE="$BAMBOORUNTIME/multicoreruntime.c $BAMBOORUNTIME/multicoretask.c" +INCLUDES="$INCLUDES -I$BAMBOORUNTIME" else RUNTIMEFILE="$ROBUSTROOT/Runtime/runtime.c $ROBUSTROOT/Runtime/task.c" fi @@ -715,9 +1252,25 @@ $ROBUSTROOT/Runtime/file.c $ROBUSTROOT/Runtime/Queue.c \ $ROBUSTROOT/Runtime/SimpleHash.c $ROBUSTROOT/Runtime/option.c \ $ROBUSTROOT/Runtime/ObjectHash.c \ $ROBUSTROOT/Runtime/garbage.c $ROBUSTROOT/Runtime/socket.c \ +$ROBUSTROOT/Runtime/taskgarbage.c $ROBUSTROOT/Runtime/oojgarbage.c \ $ROBUSTROOT/Runtime/math.c \ $ROBUSTROOT/Runtime/GenericHashtable.c $ROBUSTROOT/Runtime/object.c" +if $JNI +then +FILES="$FILES $ROBUSTROOT/Runtime/jni/jni.c $ROBUSTROOT/Runtime/jni/jni-stuff.c" +fi + +if $NUMA +then +FILES="$FILES $ROBUSTROOT/Runtime/affinity.c" +fi + +if $EVENTMONITOR +then +FILES="$FILES $ROBUSTROOT/Runtime/STM/monitor.c" +fi + if $FASTMEMCPY then FILES="$FILES $ROBUSTROOT/Runtime/memcpy32.o $ROBUSTROOT/Runtime/instrset32.o" @@ -728,12 +1281,13 @@ then if $DSMRECOVERY then EXTRAOPTIONS="$EXTRAOPTIONS -lpthread -DCOMPILER -DDSTM -I$DSMRECOVERYRUNTIME" -FILES="$FILES $DSMRECOVERYRUNTIME/trans.c $DSMRECOVERYRUNTIME/mcpileq.c $DSMRECOVERYRUNTIME/objstr.c $DSMRECOVERYRUNTIME/dstm.c $DSMRECOVERYRUNTIME/mlookup.c $DSMRECOVERYRUNTIME/clookup.c $DSMRECOVERYRUNTIME/llookup.c $DSMRECOVERYRUNTIME/tlookup.c $DSMRECOVERYRUNTIME/threadnotify.c $DSMRECOVERYRUNTIME/dstmserver.c $DSMRECOVERYRUNTIME/plookup.c $DSMRECOVERYRUNTIME/ip.c $DSMRECOVERYRUNTIME/queue.c $DSMRECOVERYRUNTIME/prelookup.c $DSMRECOVERYRUNTIME/machinepile.c $ROBUSTROOT/Runtime/localobjects.c $ROBUSTROOT/Runtime/thread.c $DSMRECOVERYRUNTIME/sockpool.c $DSMRECOVERYRUNTIME/addUdpEnhance.c $DSMRECOVERYRUNTIME/signal.c $DSMRECOVERYRUNTIME/gCollect.c $DSMRECOVERYRUNTIME/addPrefetchEnhance.c $DSMRECOVERYRUNTIME/dsmlock.c" +FILES="$FILES $DSMRECOVERYRUNTIME/trans.c $DSMRECOVERYRUNTIME/mcpileq.c $DSMRECOVERYRUNTIME/objstr.c $DSMRECOVERYRUNTIME/dstm.c $DSMRECOVERYRUNTIME/altmlookup.c $DSMRECOVERYRUNTIME/clookup.c $DSMRECOVERYRUNTIME/llookup.c $DSMRECOVERYRUNTIME/tlookup.c $DSMRECOVERYRUNTIME/threadnotify.c $DSMRECOVERYRUNTIME/dstmserver.c $DSMRECOVERYRUNTIME/plookup.c $DSMRECOVERYRUNTIME/ip.c $DSMRECOVERYRUNTIME/queue.c $DSMRECOVERYRUNTIME/altprelookup.c $DSMRECOVERYRUNTIME/machinepile.c $ROBUSTROOT/Runtime/localobjects.c $ROBUSTROOT/Runtime/thread.c $DSMRECOVERYRUNTIME/sockpool.c $DSMRECOVERYRUNTIME/addUdpEnhance.c $DSMRECOVERYRUNTIME/signal.c $DSMRECOVERYRUNTIME/gCollect.c $DSMRECOVERYRUNTIME/addPrefetchEnhance.c $DSMRECOVERYRUNTIME/dsmlock.c $DSMRECOVERYRUNTIME/translist.c $DSMRECOVERYRUNTIME/paxos.c" else EXTRAOPTIONS="$EXTRAOPTIONS -lpthread -DCOMPILER -DDSTM -I$DSMRUNTIME" -FILES="$FILES $DSMRUNTIME/trans.c $DSMRUNTIME/mcpileq.c $DSMRUNTIME/objstr.c $DSMRUNTIME/dstm.c $DSMRUNTIME/mlookup.c $DSMRUNTIME/clookup.c $DSMRUNTIME/llookup.c $DSMRUNTIME/threadnotify.c $DSMRUNTIME/dstmserver.c $DSMRUNTIME/plookup.c $DSMRUNTIME/ip.c $DSMRUNTIME/queue.c $DSMRUNTIME/prelookup.c $DSMRUNTIME/machinepile.c $ROBUSTROOT/Runtime/localobjects.c $ROBUSTROOT/Runtime/thread.c $DSMRUNTIME/sockpool.c $DSMRUNTIME/addUdpEnhance.c $DSMRUNTIME/signal.c $DSMRUNTIME/gCollect.c $DSMRUNTIME/addPrefetchEnhance.c $DSMRUNTIME/dsmlock.c $DSMRUNTIME/prefetch.c" +FILES="$FILES $DSMRUNTIME/trans.c $DSMRUNTIME/mcpileq.c $DSMRUNTIME/objstr.c $DSMRUNTIME/dstm.c $DSMRUNTIME/clookup.c $DSMRUNTIME/llookup.c $DSMRUNTIME/threadnotify.c $DSMRUNTIME/dstmserver.c $DSMRUNTIME/plookup.c $DSMRUNTIME/ip.c $DSMRUNTIME/queue.c $DSMRUNTIME/altprelookup.c $DSMRUNTIME/machinepile.c $ROBUSTROOT/Runtime/localobjects.c $ROBUSTROOT/Runtime/thread.c $DSMRUNTIME/sockpool.c $DSMRUNTIME/addUdpEnhance.c $DSMRUNTIME/signal.c $DSMRUNTIME/gCollect.c $DSMRUNTIME/addPrefetchEnhance.c $DSMRUNTIME/dsmlock.c $DSMRUNTIME/prefetch.c $DSMRUNTIME/altmlookup.c" fi fi + if $STM then EXTRAOPTIONS="$EXTRAOPTIONS -lpthread -DCOMPILER -I$STMRUNTIME" @@ -742,8 +1296,13 @@ fi if $SANDBOX then +if $DSMFLAG +then +FILES="$FILES $DSMRUNTIME/sandbox.c" +else FILES="$FILES $STMRUNTIME/sandbox.c" fi +fi if $ABORTREADERS then @@ -755,11 +1314,25 @@ then FILES="$FILES $ROBUSTROOT/Runtime/localobjects.c" fi +if $COREPROF +then +FILES="$FILES $ROBUSTROOT/Runtime/coreprof/coreprof.c" +fi + +if $RCR +then +FILES="$FILES $tmpbuilddirectory/RuntimeConflictResolver.c $ROBUSTROOT/Runtime/oooJava/hashRCR.c $ROBUSTROOT/Runtime/oooJava/Queue_RCR.c $ROBUSTROOT/Runtime/oooJava/hashStructure.c $ROBUSTROOT/Runtime/oooJava/trqueue.c $ROBUSTROOT/Runtime/oooJava/rcr_runtime.c" +fi + if $MLP_ON then FILES="$FILES $ROBUSTROOT/Runtime/mlp_runtime.c" FILES="$FILES $ROBUSTROOT/Runtime/psemaphore.c" FILES="$FILES $ROBUSTROOT/Runtime/workschedule.c" +if ! $SQUEUE +then +FILES="$FILES $ROBUSTROOT/Runtime/deque.c" +fi fi if $RECOVERFLAG @@ -803,6 +1376,9 @@ then EXTRAOPTIONS="$EXTRAOPTIONS -ldmalloc -DDMALLOC" fi +echo Compiling C... +echo EXTRAOPTIONS=$EXTRAOPTIONS + if $ASSEMBLY then gcc -S $INCLUDES $EXTRAOPTIONS -DPRECISE_GC \ @@ -811,13 +1387,21 @@ fi if $MULTICOREFLAG then -gcc $INCLUDES $EXTRAOPTIONS \ -$tmpbuilddirectory/methods.c $FILES -lm -o $MAINFILE.bin +NONMULTICOREOPTS= else -gcc $INCLUDES $EXTRAOPTIONS -DPRECISE_GC \ -$tmpbuilddirectory/methods.c $FILES -lm -o $MAINFILE.bin +NONMULTICOREOPTS=-DPRECISE_GC +fi + +if $SRCAFTERPP +then +gcc -E $INCLUDES $EXTRAOPTIONS $NONMULTICOREOPTS \ +$tmpbuilddirectory/methods.c $FILES > tmp.c fi +gcc $INCLUDES $EXTRAOPTIONS $NONMULTICOREOPTS \ +$tmpbuilddirectory/methods.c $FILES -lm -o $MAINFILE.bin + + fi #!RAWFLAG