[compiler-rt] r202245 - [asan] Remove .sh extension from asan_device_setup.

Evgeniy Stepanov eugeni.stepanov at gmail.com
Wed Feb 26 00:10:04 PST 2014


Author: eugenis
Date: Wed Feb 26 02:10:03 2014
New Revision: 202245

URL: http://llvm.org/viewvc/llvm-project?rev=202245&view=rev
Log:
[asan] Remove .sh extension from asan_device_setup.

Added:
    compiler-rt/trunk/lib/asan/scripts/asan_device_setup
      - copied, changed from r202036, compiler-rt/trunk/lib/asan/scripts/asan_device_setup.sh
Removed:
    compiler-rt/trunk/lib/asan/scripts/asan_device_setup.sh

Copied: compiler-rt/trunk/lib/asan/scripts/asan_device_setup (from r202036, compiler-rt/trunk/lib/asan/scripts/asan_device_setup.sh)
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/scripts/asan_device_setup?p2=compiler-rt/trunk/lib/asan/scripts/asan_device_setup&p1=compiler-rt/trunk/lib/asan/scripts/asan_device_setup.sh&r1=202036&r2=202245&rev=202245&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/scripts/asan_device_setup.sh (original)
+++ compiler-rt/trunk/lib/asan/scripts/asan_device_setup Wed Feb 26 02:10:03 2014
@@ -1,5 +1,5 @@
 #!/bin/bash -e
-#===- lib/asan/scripts/asan_device_setup.py -----------------------------------===#
+#===- lib/asan/scripts/asan_device_setup -----------------------------------===#
 #
 #                     The LLVM Compiler Infrastructure
 #

Removed: compiler-rt/trunk/lib/asan/scripts/asan_device_setup.sh
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/scripts/asan_device_setup.sh?rev=202244&view=auto
==============================================================================
--- compiler-rt/trunk/lib/asan/scripts/asan_device_setup.sh (original)
+++ compiler-rt/trunk/lib/asan/scripts/asan_device_setup.sh (removed)
@@ -1,194 +0,0 @@
-#!/bin/bash -e
-#===- 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)"
-
-revert=no
-extra_options=
-device=
-lib=
-
-function usage {
-    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."
-    echo
-    exit 1
-}
-
-while [[ $# > 0 ]]; do
-  case $1 in
-    --revert)
-      revert=yes
-      ;;
-    --extra-options)
-      shift
-      if [[ $# == 0 ]]; then
-        echo "--extra-options requires an argument."
-        exit 1
-      fi
-      extra_options="$1"
-      ;;
-    --lib)
-      shift
-      if [[ $# == 0 ]]; then
-        echo "--lib requires an argument."
-        exit 1
-      fi
-      lib="$1"
-      ;;
-    --device)
-      shift
-      if [[ $# == 0 ]]; then
-        echo "--device requires an argument."
-        exit 1
-      fi
-      device="$1"
-      ;;
-    *)
-      usage
-      ;;
-  esac
-  shift
-done
-
-ADB=${ADB:-adb}
-if [[ x$device != x ]]; then
-    ADB="$ADB -s $device"
-fi
-
-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
-    $ADB shell rm /system/lib/$ASAN_RT
-
-    echo '>> Restarting shell'
-    $ADB shell stop
-    $ADB shell start
-
-    echo '>> Done'
-    exit 0
-fi
-
-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)
-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'
-$ADB pull /system/bin/app_process "$TMPDIROLD"
-$ADB pull /system/bin/app_process.real "$TMPDIROLD" || true
-$ADB pull /system/bin/asanwrapper "$TMPDIROLD" || true
-$ADB pull /system/lib/libclang_rt.asan-arm-android.so "$TMPDIROLD" || true
-cp -r "$TMPDIROLD" "$TMPDIR"
-
-if ! [[ -f "$TMPDIR/app_process" ]]; then
-    echo "app_process missing???"
-    exit 1
-fi
-
-if [[ -f "$TMPDIR/app_process.real" ]]; then
-    echo "app_process.real exists, updating the wrapper"
-else
-    echo "app_process.real missing, new installation"
-    mv "$TMPDIR/app_process" "$TMPDIR/app_process.real"
-fi
-
-echo '>> Generating wrappers'
-
-cp "$ASAN_RT_PATH/$ASAN_RT" "$TMPDIR/"
-
-# FIXME: alloc_dealloc_mismatch=0 prevents a failure in libdvm startup,
-# which may or may not be a real bug (probably not).
-ASAN_OPTIONS=start_deactivated=1,alloc_dealloc_mismatch=0
-if [[ x$extra_options != x ]] ; then
-    ASAN_OPTIONS="$ASAN_OPTIONS,$extra_options"
-fi
-
-# Zygote wrapper.
-cat <<EOF >"$TMPDIR/app_process"
-#!/system/bin/sh
-ASAN_OPTIONS=$ASAN_OPTIONS \\
-LD_PRELOAD=libclang_rt.asan-arm-android.so \\
-exec /system/bin/app_process.real \$@
-
-EOF
-
-# General command-line tool wrapper (use for anything that's not started as
-# zygote).
-cat <<EOF >"$TMPDIR/asanwrapper"
-#!/system/bin/sh
-LD_PRELOAD=libclang_rt.asan-arm-android.so \\
-exec \$@
-
-EOF
-
-if ! ( cd "$TMPDIRBASE" && diff -qr old/ new/ ) ; then
-    echo '>> Pushing files to the device'
-    $ADB push "$TMPDIR/$ASAN_RT" /system/lib/
-    $ADB push "$TMPDIR/app_process" /system/bin/app_process
-    $ADB push "$TMPDIR/app_process.real" /system/bin/app_process.real
-    $ADB push "$TMPDIR/asanwrapper" /system/bin/asanwrapper
-    $ADB shell chown root.shell \
-        /system/bin/app_process \
-        /system/bin/app_process.real \
-        /system/bin/asanwrapper
-    $ADB shell chmod 755 \
-        /system/bin/app_process \
-        /system/bin/app_process.real \
-        /system/bin/asanwrapper
-
-    echo '>> Restarting shell (asynchronous)'
-    $ADB shell stop
-    $ADB shell start
-
-    echo '>> Please wait until the device restarts'
-else
-    echo '>> Device is up to date'
-fi
-
-rm -r "$TMPDIRBASE"





More information about the llvm-commits mailing list