buildgo.sh revision e0c45610e138c9e0b518189b7fa286f4b7ee6474
1#!/bin/bash 2set -e 3 4SRCS=" 5 tsan_go.cc 6 ../rtl/tsan_clock.cc 7 ../rtl/tsan_flags.cc 8 ../rtl/tsan_md5.cc 9 ../rtl/tsan_mutex.cc 10 ../rtl/tsan_report.cc 11 ../rtl/tsan_rtl.cc 12 ../rtl/tsan_rtl_mutex.cc 13 ../rtl/tsan_rtl_report.cc 14 ../rtl/tsan_rtl_thread.cc 15 ../rtl/tsan_stat.cc 16 ../rtl/tsan_suppressions.cc 17 ../rtl/tsan_sync.cc 18 ../../sanitizer_common/sanitizer_allocator.cc 19 ../../sanitizer_common/sanitizer_common.cc 20 ../../sanitizer_common/sanitizer_flags.cc 21 ../../sanitizer_common/sanitizer_libc.cc 22 ../../sanitizer_common/sanitizer_printf.cc 23 ../../sanitizer_common/sanitizer_thread_registry.cc 24" 25 26if [ "`uname -a | grep Linux`" != "" ]; then 27 SUFFIX="linux_amd64" 28 OSCFLAGS="-fPIC -ffreestanding" 29 OSLDFLAGS="-lpthread -fPIC -fpie" 30 SRCS+=" 31 ../rtl/tsan_platform_linux.cc 32 ../../sanitizer_common/sanitizer_posix.cc 33 ../../sanitizer_common/sanitizer_posix_libcdep.cc 34 ../../sanitizer_common/sanitizer_linux.cc 35 ../../sanitizer_common/sanitizer_linux_libcdep.cc 36 " 37elif [ "`uname -a | grep Darwin`" != "" ]; then 38 SUFFIX="darwin_amd64" 39 OSCFLAGS="-fPIC" 40 OSLDFLAGS="-lpthread -fPIC -fpie" 41 SRCS+=" 42 ../rtl/tsan_platform_mac.cc 43 ../../sanitizer_common/sanitizer_posix.cc 44 ../../sanitizer_common/sanitizer_mac.cc 45 ../../sanitizer_common/sanitizer_posix_libcdep.cc 46 " 47elif [ "`uname -a | grep MINGW`" != "" ]; then 48 SUFFIX="windows_amd64" 49 OSCFLAGS="-Wno-error=attributes -Wno-attributes" 50 OSLDFLAGS="" 51 SRCS+=" 52 ../rtl/tsan_platform_windows.cc 53 ../../sanitizer_common/sanitizer_win.cc 54 " 55else 56 echo Unknown platform 57 exit 1 58fi 59 60SRCS+=$ADD_SRCS 61 62rm -f gotsan.cc 63for F in $SRCS; do 64 cat $F >> gotsan.cc 65done 66 67FLAGS=" -I../rtl -I../.. -I../../sanitizer_common -I../../../include -m64 -Wall -Werror -Wno-maybe-uninitialized -fno-exceptions -fno-rtti -DTSAN_GO -DSANITIZER_GO -DTSAN_SHADOW_COUNT=4 $OSCFLAGS" 68if [ "$DEBUG" == "" ]; then 69 FLAGS+=" -DTSAN_DEBUG=0 -O3 -fomit-frame-pointer" 70else 71 FLAGS+=" -DTSAN_DEBUG=1 -g" 72fi 73 74echo gcc gotsan.cc -S -o tmp.s $FLAGS $CFLAGS 75gcc gotsan.cc -S -o tmp.s $FLAGS $CFLAGS 76cat tmp.s $ASMS > gotsan.s 77echo as gotsan.s -o race_$SUFFIX.syso 78as gotsan.s -o race_$SUFFIX.syso 79 80gcc test.c race_$SUFFIX.syso -m64 -o test $OSLDFLAGS 81GORACE="exitcode=0 atexit_sleep_ms=0" ./test 82