bcm53xx: 6.6: fix ASM cache workaround linking
[openwrt/openwrt.git] / target / toolchain / files / wrapper.sh
index bd4996cac278add38ceed7af04c7d2e06c4c18da..09a9cac928abd9f38e55e4b7ef6e6a0bb415f0e9 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 
 # 2009 (C) Copyright Industrie Dial Face S.p.A.
 #          Luigi 'Comio' Mantellini <luigi.mantellini@idf-hit.com>
 #
 
 PROGNAME=$0
-REALNAME=$(readlink -f $0)
+REALNAME=$(readlink -f "$0")
 
-REALNAME_BASE=$(basename $REALNAME)
-REALNAME_DIR=$(dirname $REALNAME)
+REALNAME_BASE=$(basename "$REALNAME")
+REALNAME_DIR=$(dirname "$REALNAME")
 
 TARGET_FUNDAMENTAL_ASFLAGS=''
 TARGET_FUNDAMENTAL_CFLAGS=''
@@ -30,7 +30,7 @@ TARGET_TOOLCHAIN_TRIPLET=${REALNAME_BASE%-*}
 BINARY=${PROGNAME##*-}
 
 # Parse our tool name, splitting it at '-' characters.
-IFS=- read TOOLCHAIN_ARCH TOOLCHAIN_BUILDROOT TOOLCHAIN_OS TOOLCHAIN_PLATFORM PROGNAME << EOF
+IFS=- read -r _ _ _ TOOLCHAIN_PLATFORM PROGNAME << EOF
 $REALNAME_BASE
 EOF
 
@@ -43,27 +43,28 @@ TOOLCHAIN_BIN_DIR="$REALNAME_DIR/"
 
 # Set the PATH so that our run-time location is first
 # (get_feature is run from the path, so this has to be set)
+export ORIG_PATH=${ORIG_PATH:-$PATH}
 export PATH="$TOOLCHAIN_BIN_DIR":$PATH
 export GCC_HONOUR_COPTS
 
-TOOLCHAIN_SYSROOT="$TOOLCHAIN_BIN_DIR/../.."
+TOOLCHAIN_SYSROOT="$TOOLCHAIN_BIN_DIR/.."
 if [ ! -d "$TOOLCHAIN_SYSROOT" ]; then
-  echo "Error: Unable to determine sysroot (looking for $TOOLCHAIN_SYSROOT)!" >&2
-  exit 1
+       echo "Error: Unable to determine sysroot (looking for $TOOLCHAIN_SYSROOT)!" >&2
+       exit 1
 fi
 
 # -Wl,--dynamic-linker=$TOOLCHAIN_SYSROOT/lib/ld-uClibc.so.0 
 # --dynamic-linker=$TOOLCHAIN_SYSROOT/lib/ld-uClibc.so.0 
 
 case $TOOLCHAIN_PLATFORM in
-   gnu|glibc|uclibc|musl)
-       GCC_SYSROOT_FLAGS="--sysroot=$TOOLCHAIN_SYSROOT -Wl,-rpath=$TOOLCHAIN_SYSROOT/lib:$TOOLCHAIN_SYSROOT/usr/lib"
-       LD_SYSROOT_FLAGS="-rpath=$TOOLCHAIN_SYSROOT/lib:$TOOLCHAIN_SYSROOT/usr/lib"
-       ;;
-   *)
-       GCC_SYSROOT_FLAGS=""
-       LD_SYSROOT_FLAGS=""
-       ;;
+       gnu|glibc|uclibc|musl)
+               GCC_SYSROOT_FLAGS="--sysroot=$TOOLCHAIN_SYSROOT -Wl,-rpath-link=$TOOLCHAIN_SYSROOT/lib:$TOOLCHAIN_SYSROOT/usr/lib"
+               LD_SYSROOT_FLAGS="-rpath-link=$TOOLCHAIN_SYSROOT/lib:$TOOLCHAIN_SYSROOT/usr/lib"
+               ;;
+       *)
+               GCC_SYSROOT_FLAGS=""
+               LD_SYSROOT_FLAGS=""
+               ;;
 esac
 
 #
@@ -71,16 +72,16 @@ esac
 #
 case $BINARY in
        cc|gcc|g++|c++|cpp)
-               exec $TARGET_TOOLCHAIN_TRIPLET-$BINARY.bin $GCC_SYSROOT_FLAGS $TARGET_FUNDAMENTAL_CFLAGS $TARGET_ROOTFS_CFLAGS "$@"
+               exec "$TARGET_TOOLCHAIN_TRIPLET-$BINARY.bin" $GCC_SYSROOT_FLAGS $TARGET_FUNDAMENTAL_CFLAGS $TARGET_ROOTFS_CFLAGS "$@"
                ;;
        ld)
-               exec $TARGET_TOOLCHAIN_TRIPLET-$BINARY.bin $LD_SYSROOT_FLAGS $TARGET_FUNDAMENTAL_LDFLAGS "$@"
+               exec "$TARGET_TOOLCHAIN_TRIPLET-$BINARY.bin" $LD_SYSROOT_FLAGS $TARGET_FUNDAMENTAL_LDFLAGS "$@"
                ;;
        as)
-               exec $TARGET_TOOLCHAIN_TRIPLET-$BINARY.bin $TARGET_FUNDAMENTAL_ASFLAGS "$@"
+               exec "$TARGET_TOOLCHAIN_TRIPLET-$BINARY.bin" $TARGET_FUNDAMENTAL_ASFLAGS "$@"
                ;;
        *)
-               exec $TARGET_TOOLCHAIN_TRIPLET-$BINARY.bin "$@"
+               exec "$TARGET_TOOLCHAIN_TRIPLET-$BINARY.bin" "$@"
                ;;
 esac