run-smartdns 949 B

12345678910111213141516171819202122232425262728293031
  1. #!/bin/sh
  2. CWD=$(pwd)
  3. real_path=$(readlink -f "$0")
  4. CURDIR=$(cd $(dirname $real_path); pwd)
  5. SMARTDNS_BIN=${CURDIR}/smartdns
  6. NEED_CHECK_ARM_CP15=0
  7. INTERPRETER="${CURDIR}/lib/ld-linux.so"
  8. if [ "$NEED_CHECK_ARM_CP15" = "1" ] && [ "$(uname -m)" = "aarch64" ]; then
  9. # Fix arm cp15_barrier issue when running on aarch64 with 32bit userland
  10. # sysctl abi.cp15_barrier=2
  11. cp15_barrier=$(cat /proc/sys/abi/cp15_barrier 2>/dev/null)
  12. if [ "$cp15_barrier" != "2" ]; then
  13. sh -c "echo "2" > /proc/sys/abi/cp15_barrier" 2>/dev/null;
  14. if [ "$?" != "0" ]; then
  15. echo "Failed to set cp15_barrier to 2, please run 'echo 2 > /proc/sys/abi/cp15_barrier' manually"
  16. exit 1
  17. else
  18. echo "Set cp15_barrier to 2"
  19. fi
  20. fi
  21. fi
  22. if [ ! -f ${INTERPRETER} ]; then
  23. echo "smartdns dynamic loader not found: ${INTERPRETER}"
  24. exit 1
  25. fi
  26. cd $CURDIR
  27. SMARTDNS_WORKDIR="$CWD" exec "${SMARTDNS_BIN}" $@