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

Unified Diff: tools/android/asan/asan_device_setup.sh

Issue 130913011: Update asan_device_setup script to LLVM r200382. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/android/asan/asan_device_setup.sh
diff --git a/tools/android/asan/asan_device_setup.sh b/tools/android/asan/asan_device_setup.sh
index 03e84a44f0ee9b2937c0495c69fb2eb8cf9e8cfb..25fb26af9f052cff0a91d8ca8a23c6ce920efa64 100755
--- a/tools/android/asan/asan_device_setup.sh
+++ b/tools/android/asan/asan_device_setup.sh
@@ -1,9 +1,14 @@
#!/bin/bash -e
-# Copyright (c) 2014 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# Prepare Android device to run ASan application.
+#===- lib/asan/scripts/asan_device_setup.py -----------------------------------===#
+#
+# The LLVM Compiler Infrastructure
+#
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
+#
+# Prepare Android device to run ASan applications.
+#
+#===------------------------------------------------------------------------===#
HERE="$(cd "$(dirname "$0")" && pwd)"
@@ -11,10 +16,12 @@ HERE="$(cd "$(dirname "$0")" && pwd)"
revert=no
extra_options=
device=
+lib=
function usage {
- echo "usage: $0 [--revert] [--device device-id]"
+ echo "usage: $0 [--revert] [--device device-id] [--lib path] [--extra_options options]"
echo " --revert: Uninstall ASan from the device."
+ echo " --lib: Path to ASan runtime library."
echo " --extra_options: Extra ASAN_OPTIONS."
echo " --device: Install to the given device. Use 'adb devices' to find"
echo " device-id."
@@ -35,6 +42,14 @@ while [[ $# > 0 ]]; do
fi
extra_options="$1"
;;
+ --lib)
+ shift
+ if [[ $# == 0 ]]; then
+ echo "--lib requires an argument."
+ exit 1
+ fi
+ lib="$1"
+ ;;
--device)
shift
if [[ $# == 0 ]]; then
@@ -55,11 +70,12 @@ if [[ x$device != x ]]; then
ADB="adb -s $device"
fi
-ASAN_RT_PATH="$HERE"
ASAN_RT="libclang_rt.asan-arm-android.so"
if [[ x$revert == xyes ]]; then
echo '>> Uninstalling ASan'
+ $ADB root
+ $ADB wait-for-device
$ADB remount
$ADB shell mv /system/bin/app_process.real /system/bin/app_process
$ADB shell rm /system/bin/asanwrapper
@@ -73,18 +89,34 @@ if [[ x$revert == xyes ]]; then
exit 0
fi
-if ! [[ -f "$ASAN_RT_PATH/$ASAN_RT" ]]; then
- echo "ASan runtime library not found at $ASAN_RT"
+if [[ -d "$lib" ]]; then
+ ASAN_RT_PATH="$lib"
+elif [[ -f "$lib" && "$lib" == *"$ASAN_RT" ]]; then
+ ASAN_RT_PATH=$(dirname "$lib")
+elif [[ -f "$HERE/$ASAN_RT" ]]; then
+ ASAN_RT_PATH="$HERE"
+elif [[ $(basename "$HERE") == "bin" ]]; then
+ # We could be in the toolchain's base directory.
+ # Consider ../lib and ../lib/clang/$VERSION/lib/linux.
+ P=$(ls "$HERE"/../lib/"$ASAN_RT" "$HERE"/../lib/clang/*/lib/linux/"$ASAN_RT" 2>/dev/null | sort | tail -1)
+ if [[ -n "$P" ]]; then
+ ASAN_RT_PATH="$(dirname "$P")"
+ fi
+fi
+
+if [[ -z "$ASAN_RT_PATH" || ! -f "$ASAN_RT_PATH/$ASAN_RT" ]]; then
+ echo "ASan runtime library not found"
exit 1
fi
TMPDIRBASE=$(mktemp -d)
-echo $TMPDIRBASE
TMPDIROLD="$TMPDIRBASE/old"
TMPDIR="$TMPDIRBASE/new"
mkdir "$TMPDIROLD"
echo '>> Remounting /system rw'
+$ADB root
+$ADB wait-for-device
$ADB remount
echo '>> Copying files from the device'
« 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