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

Side by Side Diff: tools/valgrind/build-valgrind-for-chromium.sh

Issue 164434: Move blocks of build-valgrind-for-chromium.sh around to let it build and use ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 11 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 | « no previous file | 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 # Script to build valgrind for use with chromium 2 # Script to build valgrind for use with chromium
3 #
4 # Can also be used to just prepare patched source tarball by setting MAKE_TARBAL L=yes
Lei Zhang 2009/08/12 23:13:27 > 80 chars per line. Is the presubmit check not na
5 # or to just build from a patched source tarball by setting USE_TARBALL=yes
6 # These are useful when configuring jailed buildbots which are not allowed to
7 # fetch valgrind source via svn
3 8
4 # Checkout by date doesn't work unless you specify the friggin' timezone 9 # Checkout by date doesn't work unless you specify the friggin' timezone
5 VALGRIND_SVN_REV=10771 10 VALGRIND_SVN_REV=10771
6 # And svn isn't smart enough to figure out what rev of the linked tree to get 11 # And svn isn't smart enough to figure out what rev of the linked tree to get
7 VEX_SVN_REV=1913 12 VEX_SVN_REV=1913
8 # and TSAN may be out of sync, so you have to check that out by rev anyway 13 # and TSAN may be out of sync, so you have to check that out by rev anyway
9 TSAN_SVN_REV=1111 14 TSAN_SVN_REV=1111
10 15
11 THISDIR=`dirname $0` 16 THISDIR=`dirname $0`
12 THISDIR=`cd $THISDIR && /bin/pwd` 17 THISDIR=`cd $THISDIR && /bin/pwd`
13 18
14 case x"$1" in 19 case x"$1" in
15 x|x/*) ;; 20 x|x/*) ;;
16 *) 21 *)
17 echo "Usage: sh build-valgrind-for-chromium.sh [prefix]" 22 echo "Usage: sh build-valgrind-for-chromium.sh [prefix]"
18 echo "Prefix is optional, but if present, must be the absolute path to where" 23 echo "Prefix is optional, but if present, must be the absolute path to where"
19 echo "you want to install valgrind's bin, include, and lib directories." 24 echo "you want to install valgrind's bin, include, and lib directories."
20 echo "Prefix defaults to /usr/local/valgrind-$SHORTSVNDATE, where" 25 echo "Prefix defaults to /usr/local/valgrind-$VALGRIND_SVN_REV, where"
21 echo "$SHORTSVNDATE is the date used when retrieving valgrind from svn." 26 echo "$VALGRIND_SVN_REV is the revision used when retrieving valgrind from svn ."
22 echo "Will use sudo to do the install if you don't own the parent of prefix." 27 echo "Will use sudo to do the install if you don't own the parent of prefix."
23 exit 1 28 exit 1
24 ;; 29 ;;
25 esac 30 esac
26 31
27 set -x 32 set -x
28 set -e 33 set -e
29 34
30 if ld --version | grep gold 35 if test x"$USE_TARBALL" = xyes && test x"$MAKE_TARBALL" = yes
31 then 36 then
32 # build/install-build-deps leaves original ld around, try using that 37 echo Set only one of MAKE_TARBALL or USE_TARBALL to yes
33 if test -x /usr/bin/ld.orig
34 then
35 echo "Using /usr/bin/ld.orig instead of gold to link valgrind"
36 test -d $THISDIR/override_ld && rm -rf $THISDIR/override_ld
37 mkdir $THISDIR/override_ld
38 ln -s /usr/bin/ld.orig $THISDIR/override_ld/ld
39 PATH="$THISDIR/override_ld:$PATH"
40 else
41 echo "Cannot build valgrind with gold. Please switch to normal /usr/bin/ld, rerun this script, then switch back to gold."
42 exit 1
43 fi
44 fi
45
46 # Desired parent directory for valgrind's bin, include, etc.
47 PREFIX="${1:-/usr/local/valgrind-$VALGRIND_SVN_REV}"
48 parent_of_prefix="`dirname $PREFIX`"
49 if test ! -d "$parent_of_prefix"
50 then
51 echo "Directory $parent_of_prefix does not exist"
52 exit 1 38 exit 1
53 fi 39 fi
54 40
55 # Check out latest version that following patches known to apply against 41 if test x"$USE_TARBALL" != xyes
56 rm -rf valgrind-$VALGRIND_SVN_REV 42 then
57 svn co -r $VALGRIND_SVN_REV svn://svn.valgrind.org/valgrind/trunk valgrind-$VALG RIND_SVN_REV 43 # Check out latest version that following patches known to apply against
44 rm -rf valgrind-$VALGRIND_SVN_REV
45 svn co -r $VALGRIND_SVN_REV svn://svn.valgrind.org/valgrind/trunk valgrind-$VA LGRIND_SVN_REV
58 46
59 cd valgrind-$VALGRIND_SVN_REV 47 cd valgrind-$VALGRIND_SVN_REV
60 48
61 # Make sure svn gets the right version of the external VEX repo, too 49 # Make sure svn gets the right version of the external VEX repo, too
62 svn update -r $VEX_SVN_REV VEX/ 50 svn update -r $VEX_SVN_REV VEX/
63 51
64 # Work around bug https://bugs.kde.org/show_bug.cgi?id=162848 52 # Work around bug https://bugs.kde.org/show_bug.cgi?id=162848
65 # "fork() not handled properly" 53 # "fork() not handled properly"
66 patch -p0 < "$THISDIR"/fork.patch 54 patch -p0 < "$THISDIR"/fork.patch
67 55
68 # Add feature bug https://bugs.kde.org/show_bug.cgi?id=201170 56 # Add feature bug https://bugs.kde.org/show_bug.cgi?id=201170
69 # "Want --show-possible option so I can ignore the bazillion possible leaks..." 57 # "Want --show-possible option so I can ignore the bazillion possible leaks... "
70 patch -p0 < "$THISDIR"/possible.patch 58 patch -p0 < "$THISDIR"/possible.patch
71 59
72 if [ "$INSTALL_TSAN" = "yes" ] 60 if [ "$INSTALL_TSAN" = "yes" ]
73 then 61 then
74 # Add ThreadSanitier to the installation. 62 # Add ThreadSanitier to the installation.
75 # ThreadSanitizer is an experimental dynamic data race detector. 63 # ThreadSanitizer is an experimental dynamic data race detector.
76 # See http://code.google.com/p/data-race-test/wiki/ThreadSanitizer 64 # See http://code.google.com/p/data-race-test/wiki/ThreadSanitizer
77 svn checkout -r $TSAN_SVN_REV http://data-race-test.googlecode.com/svn/trunk/t san tsan 65 svn checkout -r $TSAN_SVN_REV http://data-race-test.googlecode.com/svn/trunk /tsan tsan
78 mkdir tsan/{docs,tests} 66 mkdir tsan/{docs,tests}
79 touch tsan/{docs,tests}/Makefile.am 67 touch tsan/{docs,tests}/Makefile.am
80 patch -p 0 < tsan/valgrind.patch 68 patch -p 0 < tsan/valgrind.patch
69 fi
70
71 sh autogen.sh
72 cd ..
81 fi 73 fi
82 74
83 sh autogen.sh 75 if test x"$MAKE_TARBALL" = xyes
84 ./configure --prefix="$PREFIX"
85 make -j4
86
87 if ./vg-in-place true
88 then 76 then
89 echo built valgrind passes smoke test, good 77 tar -czvf valgrind-$VALGRIND_SVN_REV.tgz valgrind-$VALGRIND_SVN_REV
90 else
91 echo built valgrind fails smoke test
92 exit 1
93 fi 78 fi
94 79
95 test -d $THISDIR/override_ld && rm -rf $THISDIR/override_ld 80 if test x"$USE_TARBALL" = xyes
81 then
82 tar -xzvf valgrind-$VALGRIND_SVN_REV.tgz
83 fi
96 84
97 # Don't use sudo if we own the destination 85 if test x"$MAKE_TARBALL" != xyes
98 if test -w "$parent_of_prefix"
99 then 86 then
100 make install 87 cd valgrind-$VALGRIND_SVN_REV
101 else 88
102 sudo make install 89 if ld --version | grep gold
90 then
91 # build/install-build-deps leaves original ld around, try using that
92 if test -x /usr/bin/ld.orig
93 then
94 echo "Using /usr/bin/ld.orig instead of gold to link valgrind"
95 test -d $THISDIR/override_ld && rm -rf $THISDIR/override_ld
96 mkdir $THISDIR/override_ld
97 ln -s /usr/bin/ld.orig $THISDIR/override_ld/ld
98 PATH="$THISDIR/override_ld:$PATH"
99 else
100 echo "Cannot build valgrind with gold. Please switch to normal /usr/bin/l d, rerun this script, then switch back to gold."
101 exit 1
102 fi
103 fi
104
105 # Desired parent directory for valgrind's bin, include, etc.
106 PREFIX="${1:-/usr/local/valgrind-$VALGRIND_SVN_REV}"
107 parent_of_prefix="`dirname $PREFIX`"
108 if test ! -d "$parent_of_prefix"
109 then
110 echo "Directory $parent_of_prefix does not exist"
111 exit 1
112 fi
113
114 ./configure --prefix="$PREFIX"
115 make -j4
116
117 if ./vg-in-place true
118 then
119 echo built valgrind passes smoke test, good
120 else
121 echo built valgrind fails smoke test
122 exit 1
123 fi
124
125 test -d $THISDIR/override_ld && rm -rf $THISDIR/override_ld
126
127 # Don't use sudo if we own the destination
128 if test -w "$parent_of_prefix"
129 then
130 make install
131 else
132 sudo make install
133 fi
103 fi 134 fi
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698