diff --git a/debug_32bit.sh b/debug_32bit.sh new file mode 100755 index 0000000000..7ae6969ed5 --- /dev/null +++ b/debug_32bit.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +# Copyright (c) 2009 The Chromium OS Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# Debug a 32 bit binary on 64 bit linux. Can be run from inside or outside +# the chroot. If inside, then the 32 bit gdb from the chroot is used, otherwise +# the system's 64 bit gdb is used. + +. "$(dirname "$0")/common.sh" + +# Command line options +DEFINE_string chroot "$DEFAULT_CHROOT_DIR" "Location of chroot" + +# Parse command line and update positional args +FLAGS "$@" || exit 1 +eval set -- "${FLAGS_ARGV}" + + # Die on any errors +set -e + +if [ -z "$SYSROOT" ]; then + if [ $INSIDE_CHROOT == 1 ]; then + SYSROOT=/build/x86-generic + else + SYSROOT=$FLAGS_chroot/build/x86-generic + fi +fi + +if [ -z "$CHOST" ]; then + CHOST="x86-generic" +fi + +SYSROOT="$FLAGS_chroot/build/$CHOST" +LIB_PATHS="/lib32:/usr/lib32:$LIB_PATHS:$SYSROOT/usr/lib:$SYSROOT/lib:." +LIB_PATHS="$LIB_PATHS:$SYSROOT/opt/google/chrome/chromeos" + +if [ $INSIDE_CHROOT == 1 ]; then + # if we're inside the chroot, the we'll be running a 32 bit gdb, so we'll + # need the same library path as the target + export LD_LIBRARY_PATH=$LIB_PATHS + GDB="$SYSROOT/usr/bin/gdb" +else + GDB="gdb" +fi + +exec $GDB \ + --eval-command "set environment LD_LIBRARY_PATH=$LIB_PATHS" \ + --eval-command "set sysroot $SYSROOT " \ + --eval-command "set prompt (cros-gdb) " \ + --args "$@" diff --git a/run_32bit.sh b/run_32bit.sh new file mode 100755 index 0000000000..4fcc82b082 --- /dev/null +++ b/run_32bit.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +# Copyright (c) 2009 The Chromium OS Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# Run a 32 bit binary on 64 bit linux, can be run from inside or outside +# the chroot. + +. "$(dirname "$0")/common.sh" + +# Command line options +DEFINE_string chroot "$DEFAULT_CHROOT_DIR" "Location of chroot" + +# Parse command line and update positional args +FLAGS "$@" || exit 1 +eval set -- "${FLAGS_ARGV}" + + # Die on any errors +set -e + +if [ -z "$SYSROOT" ]; then + if [ $INSIDE_CHROOT == 1 ]; then + SYSROOT=/build/x86-generic + else + SYSROOT=$FLAGS_chroot/build/x86-generic + fi +fi + +if [ -z "$CHOST" ]; then + CHOST=i686-pc-linux-gnu +fi + +LIB_PATHS="/lib32:/usr/lib32:$LIB_PATHS:$SYSROOT/usr/lib:$SYSROOT/lib:." +LIB_PATHS="$LIB_PATHS:$SYSROOT/opt/google/chrome/chromeos" +export LD_LIBRARY_PATH=$LIB_PATHS + +exec "$@"