| #!/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 |