Home | History | Annotate | Download | only in tsan
      1 #!/bin/bash
      2 
      3 PIN_ROOT=${PIN_ROOT:-$HOME/pin}
      4 TS_ROOT=${TS_ROOT:-`dirname $0`}
      5 TS_VARIANT=-debug
      6 MT=
      7 
      8 UNAME_OS=`uname -o`
      9 if [ "$UNAME_OS" == "GNU/Linux" ]; then
     10   PIN_BINARY=${PIN_BINARY:-pin}
     11   DLL=so
     12   OS=linux
     13 elif [ "$UNAME_OS" == "Cygwin" ]; then
     14   PIN_BINARY=${PIN_BINARY:-pin.bat}
     15   DLL=dll
     16   OS=windows
     17 fi
     18 
     19 export MSM_THREAD_SANITIZER=1
     20 export INSTRUMENTATION_FRAMEWORK=PIN_LINUX
     21 
     22 
     23 FOLLOW=-follow_execv
     24 PIN_FLAGS=${PIN_FLAGS:-""}
     25 
     26 TS_FLAGS="-short_name"
     27 PIN_FLAGS=""
     28 
     29 VERBOZE=0
     30 
     31 for arg in "$@"; do
     32   case $arg in
     33     --opt) TS_VARIANT="";;
     34     --dbg) TS_VARIANT="-debug";;
     35     --mt)  MT=mt;;
     36     --v=[1-9]) VERBOZE=1; TS_FLAGS="$TS_FLAGS $arg";;
     37     --) shift; break;;
     38     -*) TS_FLAGS="$TS_FLAGS $arg";;
     39     *) break;;
     40   esac
     41   shift
     42 done
     43 
     44 
     45 ulimit -c 0 # core make very little sense here
     46 
     47 if [ $VERBOZE == "1" ] ; then
     48   printf "PIN_ROOT   : %s\n" "$PIN_ROOT"
     49   printf "PIN_BINARY : %s\n" "$PIN_BINARY"
     50   printf "PIN_FLAGS  : %s\n" "$PIN_FLAGS"
     51   printf "TS_ROOT    : %s\n" "$TS_ROOT"
     52   printf "TS_VARIANT : %s\n" "$TS_VARIANT"
     53   printf "TS_FLAGS   : %s\n" "$TS_FLAGS"
     54   printf "PARAMS     : %s\n" "$*"
     55 fi
     56 
     57 if [ "$TS_VARIANT" == "-debug" ] ; then
     58   TS_FLAGS="$TS_FLAGS -slow_asserts"
     59 fi
     60 
     61 TS_PARAMS="$@"
     62 
     63 run() {
     64   echo $@
     65   $@
     66 }
     67 
     68 run $PIN_ROOT/$PIN_BINARY $PIN_FLAGS $FOLLOW \
     69   -t64 $TS_ROOT/bin/amd64-$OS${TS_VARIANT}-ts_pin$MT.$DLL \
     70   -t   $TS_ROOT/bin/x86-$OS${TS_VARIANT}-ts_pin$MT.$DLL \
     71  $TS_FLAGS -- $TS_PARAMS
     72 
     73