Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1359)

Side by Side Diff: scripts/build-tsan-for-chromium.sh

Issue 3177021: Update TSan to r2386.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/valgrind/
Patch Set: '' Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « binaries/mac/bin/valgrind-tsan.sh ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/sh 1 #!/bin/sh
2 2
3 # Copyright (c) 2009-2010 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2009-2010 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 # Script to build ThreadSanitizer binaries for use with chromium 7 # Script to build ThreadSanitizer binaries for use with chromium
8 source common.sh 8 source common.sh
9 if system_is_snow_leopard 9 if system_is_snow_leopard
10 then 10 then
11 echo "ThreadSanitizer is not supported on Mac OS X 10.6 (Snow Leopard) yet." 11 echo "ThreadSanitizer is not supported on Mac OS X 10.6 yet." >&2
12 echo "See http://code.google.com/p/data-race-test/issues/detail?id=44" >&2
12 exit 1 13 exit 1
13 fi 14 fi
14 15
15 POST_BUILD_HOOK_DEFINED=yes 16 POST_BUILD_HOOK_DEFINED=yes
16 post_build_hook() { 17 post_build_hook() {
17 PLATFORM=$1 18 PLATFORM=$1
18 cd "$THISDIR/tsan/tsan" 19 cd "$THISDIR/tsan/tsan"
19 20
20 SPECIAL_TARGET= 21 SPECIAL_TARGET=
21 SPECIAL_FLAGS= 22 SPECIAL_FLAGS=
(...skipping 15 matching lines...) Expand all
37 VALGRIND_ROOT="$VG_TSAN_DIR" $SPECIAL_TARGET 38 VALGRIND_ROOT="$VG_TSAN_DIR" $SPECIAL_TARGET
38 39
39 OUT_BIN="$ORIG_BINARIES_DIR/$PLATFORM/bin" 40 OUT_BIN="$ORIG_BINARIES_DIR/$PLATFORM/bin"
40 mkdir -p $OUT_BIN 41 mkdir -p $OUT_BIN
41 # See below for the definition of ORIG_BINARIES_DIR 42 # See below for the definition of ORIG_BINARIES_DIR
42 $THISDIR/tsan/tsan/mk-self-contained-valgrind.sh \ 43 $THISDIR/tsan/tsan/mk-self-contained-valgrind.sh \
43 "$VG_TSAN_DIR/out/$PLATFORM" "tsan" \ 44 "$VG_TSAN_DIR/out/$PLATFORM" "tsan" \
44 "$OUT_BIN/valgrind-tsan.sh" 45 "$OUT_BIN/valgrind-tsan.sh"
45 } 46 }
46 47
47 TSAN_REV=2200 48 TSAN_REV=2386
48 TSAN_DIR="$THISDIR/tsan" # Directory to checkout TSan sources 49 TSAN_DIR="$THISDIR/tsan" # Directory to checkout TSan sources
49 rm -rf $TSAN_DIR 50 rm -rf $TSAN_DIR
50 svn co -r "$TSAN_REV" http://data-race-test.googlecode.com/svn/trunk $TSAN_DIR 51 svn co -r "$TSAN_REV" http://data-race-test.googlecode.com/svn/trunk $TSAN_DIR
51 52
52 # The separate .sh file defines Valgrind/VEX revisions. 53 VG_TSAN_DIR="$THISDIR/valgrind" # Directory to checkout Valgrind sources
53 source "tsan/third_party/valgrind_rev.sh" 54 sh tsan/third_party/update_valgrind.sh # Fetch sources from valgrind-variant
54
55 VG_TSAN_DIR="$THISDIR/valgrind-tsan" # Directory to checkout Valgrind sources
56 checkout_and_patch_valgrind "$VALGRIND_REV" "$VEX_REV" "$VG_TSAN_DIR"
57 55
58 cd "$VG_TSAN_DIR" 56 cd "$VG_TSAN_DIR"
59 57
60 # Apply TSan-specific patches except
61 # * limits
62 # * guest_amd64_toIR
63 # since they are already applied in common.sh.
64 rm "$THISDIR"/tsan/valgrind_patches/{limits,guest_amd64_toIR}.patch
65 for P in "$THISDIR"/tsan/valgrind_patches/*.patch
66 do
67 patch -p0 -i $P
68 done
69
70 if [ `uname -s` == "Darwin" ] 58 if [ `uname -s` == "Darwin" ]
71 then 59 then
72 if ls /opt/local/bin/ | grep "^gcc-mp-4\.4" >/dev/null 60 if ls /opt/local/bin/ | grep "^gcc-mp-4\.4" >/dev/null
73 then 61 then
74 export GCC_BINARY_MASK="/opt/local/bin/XXX-mp-4.4" 62 export GCC_BINARY_MASK="/opt/local/bin/XXX-mp-4.4"
75 export PATH="$THISDIR/macports-gcc-wrapper:$PATH" 63 export PATH="$THISDIR/macports-gcc-wrapper:$PATH"
76 echo "Using gcc-4.4 from MacPorts to build ThreadSanitizer." 64 echo "Using gcc-4.4 from MacPorts to build ThreadSanitizer."
77 elif gcc --version | grep " 4\.[0-3]\.[0-9]\| 3\.[0-9]\.[0-9]" >/dev/null 65 elif gcc --version | grep " 4\.[0-3]\.[0-9]\| 3\.[0-9]\.[0-9]" >/dev/null
78 then 66 then
79 echo "Your gcc version is older than 4.4." 67 echo "Your gcc version is older than 4.4."
80 echo "It is recommended to use gcc-4.4 from MacPorts for building" 68 echo "It is recommended to use gcc-4.4 from MacPorts for building"
81 echo "ThreadSanitizer, especially if you plan to commit binaries into SVN." 69 echo "ThreadSanitizer, especially if you plan to commit binaries into SVN."
82 echo "See http://gcc44.darwinports.com/ for getting gcc-4.4" 70 echo "See http://gcc44.darwinports.com/ for getting gcc-4.4"
83 echo "" 71 echo ""
84 echo -n "Do you want to continue using old gcc? (y/N)" 72 echo -n "Do you want to continue using old gcc? (y/N)"
85 read CONFIRMATION 73 read CONFIRMATION
86 if [ "$CONFIRMATION" != "y" ] 74 if [ "$CONFIRMATION" != "y" ]
87 then 75 then
88 exit 1 76 exit 1
89 fi 77 fi
90 fi 78 fi
91 fi 79 fi
92 80
93 # Ugly hack! 81 # Ugly hack!
94 # We build Valrgind binaries in the $VG_TSAN_DIR/out and then pack 82 # We build Valrgind binaries in the $VG_TSAN_DIR/out and then pack
95 # them into self-contained .sh file into $ORIG_BINARIES_DIR/$PLATFORM 83 # them into self-contained .sh file into $ORIG_BINARIES_DIR/$PLATFORM
96 ORIG_BINARIES_DIR=$BINARIES_DIR 84 ORIG_BINARIES_DIR=$BINARIES_DIR
97 BINARIES_DIR="$VG_TSAN_DIR/out" 85 BINARIES_DIR="$VG_TSAN_DIR/out"
98 build_valgrind_for_available_platforms 86 build_valgrind_for_available_platforms
OLDNEW
« no previous file with comments | « binaries/mac/bin/valgrind-tsan.sh ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698