build/qemu-wrap
author arthur.iakab <aiakab@mozilla.com>
Tue, 01 May 2018 01:39:08 +0300
changeset 472470 8ba36d8d99231b963a57c086550b4b371d2d9724
parent 122091 1a53df18c076a7388496b9d78cceb855ce793735
permissions -rwxr-xr-x
Backed out 4 changesets (bug 1372381) for artifact build bustages Backed out changeset 56c7ffeaa9fd (bug 1372381) Backed out changeset 4e0f7fe818d0 (bug 1372381) Backed out changeset 92a96d6b599b (bug 1372381) Backed out changeset 620bdfafd42f (bug 1372381)

#!/bin/bash
# this script creates a wrapper shell script for an executable.  The idea is the actual executable cannot be
# executed natively (it was cross compiled), but we want to run tests natively.  Running this script
# as part of the compilation process will move the non-native executable to a new location, and replace it
# with a script that will run it under qemu.
while [[ -n $1 ]]; do
    case $1 in
        --qemu) QEMU="$2"; shift 2;;
        --libdir) LIBDIR="$2"; shift 2;;
        --ld) LD="$2"; shift 2;;
        *) exe="$1"; shift;;
    esac
done
if [[ -z $LIBDIR ]]; then
    echo "You need to specify a directory for the cross libraries when you configure the shell"
    echo "You can do this with --with-cross-lib="
    exit 1
fi
LD=${LD:-$LIBDIR/ld-linux.so.3}
mv $exe $exe.target
# Just hardcode the path to the executable.  It'll be pretty obvious if it is doing the wrong thing.

echo $'#!/bin/bash\n' $QEMU -E LD_LIBRARY_PATH="${LIBDIR}" "$LD" "$(readlink -f "$exe.target")" '"$@"' >"$exe"
chmod +x $exe