qemu-wrap 1.0 KB

123456789101112131415161718192021222324
  1. #!/bin/bash
  2. # this script creates a wrapper shell script for an executable. The idea is the actual executable cannot be
  3. # executed natively (it was cross compiled), but we want to run tests natively. Running this script
  4. # as part of the compilation process will move the non-native executable to a new location, and replace it
  5. # with a script that will run it under qemu.
  6. while [[ -n $1 ]]; do
  7. case $1 in
  8. --qemu) QEMU="$2"; shift 2;;
  9. --libdir) LIBDIR="$2"; shift 2;;
  10. --ld) LD="$2"; shift 2;;
  11. *) exe="$1"; shift;;
  12. esac
  13. done
  14. if [[ -z $LIBDIR ]]; then
  15. echo "You need to specify a directory for the cross libraries when you configure the shell"
  16. echo "You can do this with --with-cross-lib="
  17. exit 1
  18. fi
  19. LD=${LD:-$LIBDIR/ld-linux.so.3}
  20. mv $exe $exe.target
  21. # Just hardcode the path to the executable. It'll be pretty obvious if it is doing the wrong thing.
  22. echo $'#!/bin/bash\n' $QEMU -E LD_LIBRARY_PATH="${LIBDIR}" "$LD" "$(readlink -f "$exe.target")" '"$@"' >"$exe"
  23. chmod +x $exe