forked from mozilla/gecko-dev
-
Notifications
You must be signed in to change notification settings - Fork 1
/
qemu-wrap
executable file
·24 lines (23 loc) · 1 KB
/
qemu-wrap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/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