Index: tools/valgrind/build-valgrind-for-chromium.sh |
=================================================================== |
--- tools/valgrind/build-valgrind-for-chromium.sh (revision 23214) |
+++ tools/valgrind/build-valgrind-for-chromium.sh (working copy) |
@@ -1,5 +1,10 @@ |
#!/bin/sh |
# Script to build valgrind for use with chromium |
+# |
+# Can also be used to just prepare patched source tarball by setting MAKE_TARBALL=yes |
Lei Zhang
2009/08/12 23:13:27
> 80 chars per line. Is the presubmit check not na
|
+# or to just build from a patched source tarball by setting USE_TARBALL=yes |
+# These are useful when configuring jailed buildbots which are not allowed to |
+# fetch valgrind source via svn |
# Checkout by date doesn't work unless you specify the friggin' timezone |
VALGRIND_SVN_REV=10771 |
@@ -17,8 +22,8 @@ |
echo "Usage: sh build-valgrind-for-chromium.sh [prefix]" |
echo "Prefix is optional, but if present, must be the absolute path to where" |
echo "you want to install valgrind's bin, include, and lib directories." |
- echo "Prefix defaults to /usr/local/valgrind-$SHORTSVNDATE, where" |
- echo "$SHORTSVNDATE is the date used when retrieving valgrind from svn." |
+ echo "Prefix defaults to /usr/local/valgrind-$VALGRIND_SVN_REV, where" |
+ echo "$VALGRIND_SVN_REV is the revision used when retrieving valgrind from svn." |
echo "Will use sudo to do the install if you don't own the parent of prefix." |
exit 1 |
;; |
@@ -27,77 +32,103 @@ |
set -x |
set -e |
-if ld --version | grep gold |
+if test x"$USE_TARBALL" = xyes && test x"$MAKE_TARBALL" = yes |
then |
- # build/install-build-deps leaves original ld around, try using that |
- if test -x /usr/bin/ld.orig |
- then |
- echo "Using /usr/bin/ld.orig instead of gold to link valgrind" |
- test -d $THISDIR/override_ld && rm -rf $THISDIR/override_ld |
- mkdir $THISDIR/override_ld |
- ln -s /usr/bin/ld.orig $THISDIR/override_ld/ld |
- PATH="$THISDIR/override_ld:$PATH" |
- else |
- echo "Cannot build valgrind with gold. Please switch to normal /usr/bin/ld, rerun this script, then switch back to gold." |
- exit 1 |
- fi |
+ echo Set only one of MAKE_TARBALL or USE_TARBALL to yes |
+ exit 1 |
fi |
-# Desired parent directory for valgrind's bin, include, etc. |
-PREFIX="${1:-/usr/local/valgrind-$VALGRIND_SVN_REV}" |
-parent_of_prefix="`dirname $PREFIX`" |
-if test ! -d "$parent_of_prefix" |
+if test x"$USE_TARBALL" != xyes |
then |
- echo "Directory $parent_of_prefix does not exist" |
- exit 1 |
-fi |
+ # Check out latest version that following patches known to apply against |
+ rm -rf valgrind-$VALGRIND_SVN_REV |
+ svn co -r $VALGRIND_SVN_REV svn://svn.valgrind.org/valgrind/trunk valgrind-$VALGRIND_SVN_REV |
-# Check out latest version that following patches known to apply against |
-rm -rf valgrind-$VALGRIND_SVN_REV |
-svn co -r $VALGRIND_SVN_REV svn://svn.valgrind.org/valgrind/trunk valgrind-$VALGRIND_SVN_REV |
+ cd valgrind-$VALGRIND_SVN_REV |
-cd valgrind-$VALGRIND_SVN_REV |
+ # Make sure svn gets the right version of the external VEX repo, too |
+ svn update -r $VEX_SVN_REV VEX/ |
-# Make sure svn gets the right version of the external VEX repo, too |
-svn update -r $VEX_SVN_REV VEX/ |
+ # Work around bug https://bugs.kde.org/show_bug.cgi?id=162848 |
+ # "fork() not handled properly" |
+ patch -p0 < "$THISDIR"/fork.patch |
-# Work around bug https://bugs.kde.org/show_bug.cgi?id=162848 |
-# "fork() not handled properly" |
-patch -p0 < "$THISDIR"/fork.patch |
+ # Add feature bug https://bugs.kde.org/show_bug.cgi?id=201170 |
+ # "Want --show-possible option so I can ignore the bazillion possible leaks..." |
+ patch -p0 < "$THISDIR"/possible.patch |
-# Add feature bug https://bugs.kde.org/show_bug.cgi?id=201170 |
-# "Want --show-possible option so I can ignore the bazillion possible leaks..." |
-patch -p0 < "$THISDIR"/possible.patch |
+ if [ "$INSTALL_TSAN" = "yes" ] |
+ then |
+ # Add ThreadSanitier to the installation. |
+ # ThreadSanitizer is an experimental dynamic data race detector. |
+ # See http://code.google.com/p/data-race-test/wiki/ThreadSanitizer |
+ svn checkout -r $TSAN_SVN_REV http://data-race-test.googlecode.com/svn/trunk/tsan tsan |
+ mkdir tsan/{docs,tests} |
+ touch tsan/{docs,tests}/Makefile.am |
+ patch -p 0 < tsan/valgrind.patch |
+ fi |
-if [ "$INSTALL_TSAN" = "yes" ] |
+ sh autogen.sh |
+ cd .. |
+fi |
+ |
+if test x"$MAKE_TARBALL" = xyes |
then |
- # Add ThreadSanitier to the installation. |
- # ThreadSanitizer is an experimental dynamic data race detector. |
- # See http://code.google.com/p/data-race-test/wiki/ThreadSanitizer |
- svn checkout -r $TSAN_SVN_REV http://data-race-test.googlecode.com/svn/trunk/tsan tsan |
- mkdir tsan/{docs,tests} |
- touch tsan/{docs,tests}/Makefile.am |
- patch -p 0 < tsan/valgrind.patch |
+ tar -czvf valgrind-$VALGRIND_SVN_REV.tgz valgrind-$VALGRIND_SVN_REV |
fi |
-sh autogen.sh |
-./configure --prefix="$PREFIX" |
-make -j4 |
- |
-if ./vg-in-place true |
+if test x"$USE_TARBALL" = xyes |
then |
- echo built valgrind passes smoke test, good |
-else |
- echo built valgrind fails smoke test |
- exit 1 |
+ tar -xzvf valgrind-$VALGRIND_SVN_REV.tgz |
fi |
-test -d $THISDIR/override_ld && rm -rf $THISDIR/override_ld |
+if test x"$MAKE_TARBALL" != xyes |
+then |
+ cd valgrind-$VALGRIND_SVN_REV |
-# Don't use sudo if we own the destination |
-if test -w "$parent_of_prefix" |
-then |
- make install |
-else |
- sudo make install |
+ if ld --version | grep gold |
+ then |
+ # build/install-build-deps leaves original ld around, try using that |
+ if test -x /usr/bin/ld.orig |
+ then |
+ echo "Using /usr/bin/ld.orig instead of gold to link valgrind" |
+ test -d $THISDIR/override_ld && rm -rf $THISDIR/override_ld |
+ mkdir $THISDIR/override_ld |
+ ln -s /usr/bin/ld.orig $THISDIR/override_ld/ld |
+ PATH="$THISDIR/override_ld:$PATH" |
+ else |
+ echo "Cannot build valgrind with gold. Please switch to normal /usr/bin/ld, rerun this script, then switch back to gold." |
+ exit 1 |
+ fi |
+ fi |
+ |
+ # Desired parent directory for valgrind's bin, include, etc. |
+ PREFIX="${1:-/usr/local/valgrind-$VALGRIND_SVN_REV}" |
+ parent_of_prefix="`dirname $PREFIX`" |
+ if test ! -d "$parent_of_prefix" |
+ then |
+ echo "Directory $parent_of_prefix does not exist" |
+ exit 1 |
+ fi |
+ |
+ ./configure --prefix="$PREFIX" |
+ make -j4 |
+ |
+ if ./vg-in-place true |
+ then |
+ echo built valgrind passes smoke test, good |
+ else |
+ echo built valgrind fails smoke test |
+ exit 1 |
+ fi |
+ |
+ test -d $THISDIR/override_ld && rm -rf $THISDIR/override_ld |
+ |
+ # Don't use sudo if we own the destination |
+ if test -w "$parent_of_prefix" |
+ then |
+ make install |
+ else |
+ sudo make install |
+ fi |
fi |