X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=Robust%2Fsrc%2Fbuildscript;h=7abaee6349e5fb081c4fee314ded71540b6bfe98;hb=073c54e79f6e530f6286f018df41a19980b04ae1;hp=e328f0c8b1151fba926894e591df7f1c67530529;hpb=7947f56e2dd6932e200e675c43f452a4ab6c4fa5;p=IRC.git diff --git a/Robust/src/buildscript b/Robust/src/buildscript index e328f0c8..7abaee63 100755 --- a/Robust/src/buildscript +++ b/Robust/src/buildscript @@ -50,6 +50,8 @@ 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 @@ -67,7 +69,6 @@ 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 "-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)" @@ -150,12 +151,14 @@ 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; @@ -191,7 +194,6 @@ TILERAZLINUXFLAG=false TILERAMEMPROFFLAG=false TILERACONFIG='' TILERACORES='' -CACHEFLUSHFLAG=false RAWCONFIG='' DEBUGFLAG=false RAWPATHFLAG=false @@ -258,14 +260,17 @@ 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 @@ -464,9 +469,6 @@ elif [[ $1 = '-tileraconfig' ]] then TILERACONFIG="$2" shift -elif [[ $1 = '-cacheflush' ]] -then -CACHEFLUSHFLAG=true elif [[ $1 = '-rawconfig' ]] then RAWCONFIG="$2" @@ -602,6 +604,11 @@ 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" @@ -765,74 +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 $MGCINTELFLAG -then -JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/MGC/ -classlibrary $ROBUSTROOT/ClassLibrary/MGC/gnu/" -else -if $MGCFLAG -then -#base multicore gc files -JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/MGC/ -classlibrary $ROBUSTROOT/ClassLibrary/MGC/gnu/" -else -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" -fi -#base java stuff -JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/Java" -fi + 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 + +# 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 \ --dir $BUILDDIR $JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/ \ --classlibrary $ROBUSTROOT/ClassLibrary/gnu/ $SRCFILES -then exit $? -fi -else -#if ! ${ROBUSTROOT}/ourjava -Xms5m -Xmx100m $JAVAFORWARDOPTS -classpath $ROBUSTROOT/../cup/:$ROBUSTROOT Main.Main -classlibrary \ -if $MGCINTELFLAG -then -if ! ${ROBUSTROOT}/ourjava -Xms50m -Xmx1500m $JAVAFORWARDOPTS -classpath $ROBUSTROOT/../cup/:$ROBUSTROOT Main.Main $JAVAOPTS -classlibrary \ -$ROBUSTROOT/ClassLibrary/ -classlibrary $ROBUSTROOT/ClassLibrary/gnu/ -dir $BUILDDIR -precise \ -$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 ! $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 -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 @@ -889,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" @@ -1003,11 +1029,6 @@ then # TILERAZLINUXFLAG TILERACFLAGS="${TILERACFLAGS} -DTILERA_ZLINUX" fi -if $CACHEFLUSHFLAG -then # print path -TILERACFLAGS="${TILERACFLAGS} -DCACHEFLUSH" -fi - if $RAWPATHFLAG then # print path TILERACFLAGS="${TILERACFLAGS} -DRAWPATH" @@ -1187,20 +1208,8 @@ cp ../Runtime/ObjectHash.h ./ cp ../Runtime/Queue.h ./ cp ../Runtime/runtime.h ./ cp ../Runtime/SimpleHash.h ./ -cp $BAMBOORUNTIME/multicoretask.c ./ -cp $BAMBOORUNTIME/multicoreruntime.c ./ -cp $BAMBOORUNTIME/multicoremem.c ./ -cp $BAMBOORUNTIME/multicoregarbage.c ./ -cp $BAMBOORUNTIME/GCSharedHash.c ./ -cp $BAMBOORUNTIME/MGCHash.c ./ -cp $BAMBOORUNTIME/multicoreruntime.h ./ -cp $BAMBOORUNTIME/multicoremem.h ./ -cp $BAMBOORUNTIME/multicoregarbage.h ./ -cp $BAMBOORUNTIME/multicorecache.h ./ -cp $BAMBOORUNTIME/multicoregc.h ./ -cp $BAMBOORUNTIME/multicorehelper.h ./ -cp $BAMBOORUNTIME/GCSharedHash.h ./ -cp $BAMBOORUNTIME/MGCHash.h ./ +cp $BAMBOORUNTIME/*.c ./ +cp $BAMBOORUNTIME/*.h ./ cp ../Tilera/Runtime/*.c ./ cp ../Tilera/Runtime/*.h ./ cp ../Tilera/Runtime/$TILERA_INDIR/*.c ./ @@ -1243,9 +1252,15 @@ $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"